diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 149bce058..b3e91b705 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ ci: repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.9.6 + rev: v0.9.7 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix, --show-fixes] diff --git a/README.md b/README.md index 5c36df559..5240bc236 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ LibreSVIP is a cross-platform and universal converter for many Singing Voice Syn Download from github releases: [Releases](https://github.com/SoulMelody/LibreSVIP/releases) -Alternatively, you can install LibreSVIP with desktop support via pip (requires python 3.9+): +Alternatively, you can install LibreSVIP with desktop support via pip (requires python 3.10+): ```bash pip install libresvip[desktop] diff --git a/docs/index.md b/docs/index.md index 788ebf5e5..00522699b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -14,7 +14,7 @@ LibreSVIP 是一个跨平台且通用的文件转换工具,它适用于多种 从Github发布页下载: [发布页地址](https://github.com/SoulMelody/LibreSVIP/releases) -或者你也可以通过pip安装带有桌面支持的LibreSVIP (需要先安装 python 3.9 以上版本): +或者你也可以通过pip安装带有桌面支持的LibreSVIP (需要先安装 python 3.10 以上版本): ```bash pip install libresvip[desktop] diff --git a/experimental/dspx/model.py b/experimental/dspx/model.py index 355751094..a5a27f77e 100644 --- a/experimental/dspx/model.py +++ b/experimental/dspx/model.py @@ -1,5 +1,5 @@ import abc -from typing import Annotated, Any, Literal, Optional, Union +from typing import Annotated, Any, Literal from pydantic import Field @@ -87,7 +87,7 @@ class DspxParamAnchor(BaseModel): nodes: list[DspxParamNode] = Field(default_factory=list) -DsParamCurve = Annotated[Union[DspxParamFree, DspxParamAnchor], Field(discriminator="type_")] +DsParamCurve = Annotated[DspxParamFree | DspxParamAnchor, Field(discriminator="type_")] class DspxParam(BaseModel): @@ -135,7 +135,7 @@ class DspxPhonemes(BaseModel): class DspxPronunciation(BaseModel): original: str = DEFAULT_PHONEME - edited: Optional[str] = None + edited: str | None = None class DspxNote(HasExtra): @@ -168,7 +168,7 @@ class DspxSingingClip(DspxClipMixin, BaseModel): params: DspxParams = Field(default_factory=DspxParams) -DspxClip = Annotated[Union[DspxAudioClip, DspxSingingClip], Field(discriminator="type_")] +DspxClip = Annotated[DspxAudioClip | DspxSingingClip, Field(discriminator="type_")] class DspxTrackControl(BaseModel): @@ -179,8 +179,8 @@ class DspxTrackControl(BaseModel): class DspxTrackColor(BaseModel): - color_id: Optional[int] = Field(None, alias="id") - value: Optional[str] = None + color_id: int | None = Field(None, alias="id") + value: str | None = None class DspxTrack(HasExtra): diff --git a/experimental/xvsq/model.py b/experimental/xvsq/model.py index b4c20a9c1..b51f8e70e 100644 --- a/experimental/xvsq/model.py +++ b/experimental/xvsq/model.py @@ -1,4 +1,4 @@ -from typing import Optional, Union +from typing import Optional from pydantic import BaseModel from xsdata_pydantic.fields import field @@ -248,14 +248,14 @@ class ControlLeft(BaseModel): class ControlRight(BaseModel): - x: Union[float, int] = field( + x: float | int = field( metadata={ "name": "X", "type": "Element", "required": True, } ) - y: Union[float, int] = field( + y: float | int = field( metadata={ "name": "Y", "type": "Element", @@ -439,7 +439,7 @@ class L0(BaseModel): "required": True, } ) - unknown_float: Union[int, float] = field( + unknown_float: int | float = field( metadata={ "name": "UnknownFloat", "type": "Element", @@ -453,7 +453,7 @@ class L0(BaseModel): "required": True, } ) - consonant_adjustment: Union[int, str] = field( + consonant_adjustment: int | str = field( metadata={ "name": "ConsonantAdjustment", "type": "Element", @@ -809,7 +809,7 @@ class TimeSigTableEntry(BaseModel): class UstEvent(BaseModel): - flags: Optional[object] = field( + flags: object | None = field( default=None, metadata={ "name": "Flags", @@ -823,14 +823,14 @@ class UstEvent(BaseModel): "required": True, } ) - properties: Optional[object] = field( + properties: object | None = field( default=None, metadata={ "name": "Properties", "type": "Element", }, ) - lyric: Optional[object] = field( + lyric: object | None = field( default=None, metadata={ "name": "Lyric", @@ -1894,7 +1894,7 @@ class Meta: "required": True, } ) - icon_handle: Optional[IconHandle] = field( + icon_handle: IconHandle | None = field( default=None, metadata={ "name": "IconHandle", @@ -1950,14 +1950,14 @@ class Meta: "required": True, } ) - lyric_handle: Optional[LyricHandle] = field( + lyric_handle: LyricHandle | None = field( default=None, metadata={ "name": "LyricHandle", "type": "Element", }, ) - vibrato_handle: Optional[VibratoHandle] = field( + vibrato_handle: VibratoHandle | None = field( default=None, metadata={ "name": "VibratoHandle", @@ -1971,7 +1971,7 @@ class Meta: "required": True, } ) - note_head_handle: Optional[NoteHeadHandle] = field( + note_head_handle: NoteHeadHandle | None = field( default=None, metadata={ "name": "NoteHeadHandle", @@ -2005,7 +2005,7 @@ class Meta: "required": True, } ) - icon_dynamics_handle: Optional[IconDynamicsHandle] = field( + icon_dynamics_handle: IconDynamicsHandle | None = field( default=None, metadata={ "name": "IconDynamicsHandle", @@ -2194,112 +2194,112 @@ class BezierCurves(BaseModel): "required": True, } ) - vibrato_rate: Optional[object] = field( + vibrato_rate: object | None = field( default=None, metadata={ "name": "VibratoRate", "type": "Element", }, ) - vibrato_depth: Optional[object] = field( + vibrato_depth: object | None = field( default=None, metadata={ "name": "VibratoDepth", "type": "Element", }, ) - harmonics: Optional[object] = field( + harmonics: object | None = field( default=None, metadata={ "name": "Harmonics", "type": "Element", }, ) - fx2_depth: Optional[object] = field( + fx2_depth: object | None = field( default=None, metadata={ "name": "FX2Depth", "type": "Element", }, ) - reso1_freq: Optional[object] = field( + reso1_freq: object | None = field( default=None, metadata={ "name": "Reso1Freq", "type": "Element", }, ) - reso1_bw: Optional[object] = field( + reso1_bw: object | None = field( default=None, metadata={ "name": "Reso1BW", "type": "Element", }, ) - reso1_amp: Optional[object] = field( + reso1_amp: object | None = field( default=None, metadata={ "name": "Reso1Amp", "type": "Element", }, ) - reso2_freq: Optional[object] = field( + reso2_freq: object | None = field( default=None, metadata={ "name": "Reso2Freq", "type": "Element", }, ) - reso2_bw: Optional[object] = field( + reso2_bw: object | None = field( default=None, metadata={ "name": "Reso2BW", "type": "Element", }, ) - reso2_amp: Optional[object] = field( + reso2_amp: object | None = field( default=None, metadata={ "name": "Reso2Amp", "type": "Element", }, ) - reso3_freq: Optional[object] = field( + reso3_freq: object | None = field( default=None, metadata={ "name": "Reso3Freq", "type": "Element", }, ) - reso3_bw: Optional[object] = field( + reso3_bw: object | None = field( default=None, metadata={ "name": "Reso3BW", "type": "Element", }, ) - reso3_amp: Optional[object] = field( + reso3_amp: object | None = field( default=None, metadata={ "name": "Reso3Amp", "type": "Element", }, ) - reso4_freq: Optional[object] = field( + reso4_freq: object | None = field( default=None, metadata={ "name": "Reso4Freq", "type": "Element", }, ) - reso4_bw: Optional[object] = field( + reso4_bw: object | None = field( default=None, metadata={ "name": "Reso4BW", "type": "Element", }, ) - reso4_amp: Optional[object] = field( + reso4_amp: object | None = field( default=None, metadata={ "name": "Reso4Amp", diff --git a/libresvip/__init__.py b/libresvip/__init__.py index 8b72f927d..c0cf80615 100644 --- a/libresvip/__init__.py +++ b/libresvip/__init__.py @@ -1,4 +1,4 @@ import os -__version__ = "1.8.1" +__version__ = "1.9.0" os.environ.setdefault("LOGURU_AUTOINIT", "false") diff --git a/libresvip/cli/commands/plugin.py b/libresvip/cli/commands/plugin.py index f231c5f70..c3e05f54e 100644 --- a/libresvip/cli/commands/plugin.py +++ b/libresvip/cli/commands/plugin.py @@ -112,7 +112,7 @@ def print_plugin_details(plugin: FormatProviderPluginInfo) -> None: continue typer.echo(_("This plugin supports the following {} conversion options:").format(op)) for field_info in options.model_fields.values(): - if issubclass(field_info.annotation, (bool, int, float, str, enum.Enum)): + if issubclass(field_info.annotation, bool | int | float | str | enum.Enum): typer.echo( "\n " + f"{_(field_info.title)} = {field_info.annotation.__name__} {_(field_info.description)}" diff --git a/libresvip/cli/commands/proj.py b/libresvip/cli/commands/proj.py index 05385d959..e0fb9ddbb 100644 --- a/libresvip/cli/commands/proj.py +++ b/libresvip/cli/commands/proj.py @@ -1,6 +1,6 @@ # mypy: disable-error-code="attr-defined" import pathlib -from typing import Annotated, Optional, get_type_hints +from typing import Annotated, get_type_hints import typer from rich.progress import track @@ -14,7 +14,7 @@ app = typer.Typer() -def option_callback(ctx: typer.Context, value: pathlib.Path) -> Optional[pathlib.Path]: +def option_callback(ctx: typer.Context, value: pathlib.Path) -> pathlib.Path | None: if ctx.resilient_parsing: return None ext = value.suffix.lstrip(".").lower() diff --git a/libresvip/cli/prompt.py b/libresvip/cli/prompt.py index 1c7d840a8..8059b762c 100644 --- a/libresvip/cli/prompt.py +++ b/libresvip/cli/prompt.py @@ -56,7 +56,7 @@ def prompt_fields(option_class: BaseModel) -> dict[str, Any]: translated_title, default=default_value, ) - elif issubclass(field_info.annotation, (str, Color)): + elif issubclass(field_info.annotation, str | Color): option_kwargs[option_key] = Prompt.ask( translated_title, default=default_value, diff --git a/libresvip/core/compat.py b/libresvip/core/compat.py index faa7ebe17..2c698092b 100644 --- a/libresvip/core/compat.py +++ b/libresvip/core/compat.py @@ -17,19 +17,11 @@ except ImportError: import zstandard as zstd -__all__ = ["Traversable", "ZipFile", "as_file", "files", "json", "zstd"] - -if sys.version_info < (3, 10): - from importlib_resources import as_file, files -else: - from importlib.resources import as_file, files +__all__ = ["Traversable", "ZipFile", "json", "zstd"] if sys.version_info < (3, 11): from importlib_resources.abc import Traversable -else: - from importlib.resources.abc import Traversable - -if sys.version_info < (3, 11): from repro_zipfile import ReproducibleZipFile as ZipFile else: + from importlib.resources.abc import Traversable from zipfile import ZipFile diff --git a/libresvip/core/config.py b/libresvip/core/config.py index 909c00f8b..e8586b63b 100644 --- a/libresvip/core/config.py +++ b/libresvip/core/config.py @@ -5,7 +5,7 @@ import locale import pathlib import re -from typing import Annotated, Any, Optional, TypeVar, Union +from typing import Annotated, Any, TypeVar import pydantic_settings import yaml @@ -190,11 +190,11 @@ class YamlSettings(pydantic_settings.BaseSettings): __FILENAME__: str = "settings.yml" @classmethod - def exists(cls, settings_dir: Union[str, pathlib.Path]) -> bool: + def exists(cls, settings_dir: str | pathlib.Path) -> bool: return (pathlib.Path(settings_dir).resolve() / cls.__FILENAME__).exists() @classmethod - def create(cls: type[T], settings_dir: Union[str, pathlib.Path], exists_ok: bool = False) -> T: + def create(cls: type[T], settings_dir: str | pathlib.Path, exists_ok: bool = False) -> T: settings_dir = pathlib.Path(settings_dir).resolve() if not exists_ok and cls.exists(settings_dir): msg = f"`{cls.__FILENAME__}` already exists in `{settings_dir}`" @@ -207,7 +207,7 @@ def create(cls: type[T], settings_dir: Union[str, pathlib.Path], exists_ok: bool @classmethod def load( cls: type[T], - settings_dir: Union[str, pathlib.Path], + settings_dir: str | pathlib.Path, create_if_missing: bool = False, raise_error_if_failed: bool = True, ) -> T: @@ -337,8 +337,8 @@ class ConversionMode(enum.Enum): class LibreSvipBaseUISettings(YamlSettings): language: Annotated[Language, pydantic_enum(Language)] = Field(default_factory=Language.auto) - last_input_format: Optional[str] = Field(default=None) - last_output_format: Optional[str] = Field(default=None) + last_input_format: str | None = Field(default=None) + last_output_format: str | None = Field(default=None) dark_mode: Annotated[DarkMode, pydantic_enum(DarkMode)] = Field(default=DarkMode.SYSTEM) auto_detect_input_format: bool = Field(default=True) reset_tasks_on_input_change: bool = Field(default=True) @@ -346,7 +346,7 @@ class LibreSvipBaseUISettings(YamlSettings): lyric_replace_rules: dict[str, list[LyricsReplacement]] = Field(default_factory=dict) -ui_settings_ctx: contextvars.ContextVar[Optional[LibreSvipBaseUISettings]] = contextvars.ContextVar( +ui_settings_ctx: contextvars.ContextVar[LibreSvipBaseUISettings | None] = contextvars.ContextVar( "ui_settings_ctx" ) diff --git a/libresvip/core/constants.py b/libresvip/core/constants.py index 185484acf..42e4a15f7 100644 --- a/libresvip/core/constants.py +++ b/libresvip/core/constants.py @@ -1,9 +1,8 @@ +from importlib.resources import files from typing import Final import platformdirs -from libresvip.core.compat import files - PACKAGE_NAME: Final[str] = "libresvip" # lyric related constants diff --git a/libresvip/core/time_interval.py b/libresvip/core/time_interval.py index 9bfd821be..abb266125 100644 --- a/libresvip/core/time_interval.py +++ b/libresvip/core/time_interval.py @@ -3,31 +3,28 @@ import dataclasses import operator from functools import reduce, singledispatchmethod -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING import portion if TYPE_CHECKING: from collections.abc import Callable, Iterable, Mapping - UnaryFunction = Callable[[Union[int, float]], float] - UnaryFunctionOrConstant = Union[UnaryFunction, int, float] + UnaryFunction = Callable[[int | float], float] + UnaryFunctionOrConstant = UnaryFunction | int | float class PiecewiseIntervalDict(portion.IntervalDict): def __init__( self, - mapping_or_iterable: Optional[ - Union[ - Mapping[portion.Interval, UnaryFunctionOrConstant], - Iterable[tuple[portion.Interval, UnaryFunctionOrConstant]], - ] - ] = None, + mapping_or_iterable: Mapping[portion.Interval, UnaryFunctionOrConstant] + | Iterable[tuple[portion.Interval, UnaryFunctionOrConstant]] + | None = None, ) -> None: super().__init__(mapping_or_iterable=mapping_or_iterable) self._last_index = 0 - def _get_func(self, x: float) -> Optional[UnaryFunctionOrConstant]: + def _get_func(self, x: float) -> UnaryFunctionOrConstant | None: _last_index = self._last_index while _last_index < len(self._storage._list): boundary, func = self._storage.peekitem(_last_index) @@ -39,9 +36,7 @@ def _get_func(self, x: float) -> Optional[UnaryFunctionOrConstant]: break _last_index += 1 - def __setitem__( - self, key: Union[portion.Interval, float], value: UnaryFunctionOrConstant - ) -> None: + def __setitem__(self, key: portion.Interval | float, value: UnaryFunctionOrConstant) -> None: if isinstance(key, portion.Interval): interval = key else: @@ -52,7 +47,7 @@ def __setitem__( self._storage[interval] = value - def __getitem__(self, key: Union[portion.Interval, float]) -> Optional[UnaryFunctionOrConstant]: + def __getitem__(self, key: portion.Interval | float) -> UnaryFunctionOrConstant | None: if isinstance(key, portion.Interval): return super().__getitem__(key) elif (func := self._get_func(key)) is not None: @@ -62,10 +57,10 @@ def __getitem__(self, key: Union[portion.Interval, float]) -> Optional[UnaryFunc @dataclasses.dataclass class RangeInterval: - _sub_ranges: dataclasses.InitVar[Optional[list[tuple[int, int]]]] = None + _sub_ranges: dataclasses.InitVar[list[tuple[int, int]] | None] = None interval: portion.Interval = dataclasses.field(init=False) - def __post_init__(self, _sub_ranges: Optional[list[tuple[int, int]]]) -> None: + def __post_init__(self, _sub_ranges: list[tuple[int, int]] | None) -> None: self.interval = reduce( operator.or_, (portion.closedopen(*sub_range) for sub_range in (_sub_ranges or [])), @@ -79,7 +74,7 @@ def sub_ranges(self) -> Iterable[tuple[int, int]]: for sub_range in portion.to_data(self.interval): yield sub_range[1], sub_range[2] - def sub_range_including(self, value: int) -> Optional[tuple[int, int]]: + def sub_range_including(self, value: int) -> tuple[int, int] | None: for sub_range in self.interval: if value in sub_range: sub_range_data = portion.to_data(sub_range) @@ -89,7 +84,7 @@ def sub_range_including(self, value: int) -> Optional[tuple[int, int]]: def includes(self, value: int) -> bool: return value in self.interval - def __contains__(self, interval: Union[RangeInterval, int]) -> bool: + def __contains__(self, interval: RangeInterval | int) -> bool: if isinstance(interval, RangeInterval): interval = interval.interval return interval in self.interval @@ -115,7 +110,7 @@ def complement(self, complete_interval: RangeInterval) -> RangeInterval: return new_interval @singledispatchmethod - def expand(self, a: Union[tuple[int, int], int]) -> RangeInterval: + def expand(self, a: tuple[int, int] | int) -> RangeInterval: raise NotImplementedError @expand.register(tuple) @@ -135,7 +130,7 @@ def _(self, radius: int) -> RangeInterval: return self.expand((radius, radius)) @singledispatchmethod - def shrink(self, a: Union[tuple[int, int], int]) -> RangeInterval: + def shrink(self, a: tuple[int, int] | int) -> RangeInterval: raise NotImplementedError @shrink.register(int) diff --git a/libresvip/core/warning_types.py b/libresvip/core/warning_types.py index 06157a774..daf7db3fc 100644 --- a/libresvip/core/warning_types.py +++ b/libresvip/core/warning_types.py @@ -1,7 +1,6 @@ import atexit import io from contextlib import ExitStack -from typing import Optional from loguru import _logger from typing_extensions import Self @@ -27,7 +26,7 @@ def show_warning(message: str) -> None: class CatchWarnings: def __init__(self) -> None: self._handler_id = None - self._exit_stack: Optional[ExitStack] = None + self._exit_stack: ExitStack | None = None self._output = io.StringIO() self.output = "" diff --git a/libresvip/extension/manager.py b/libresvip/extension/manager.py index 3f974ce14..df2f6f491 100644 --- a/libresvip/extension/manager.py +++ b/libresvip/extension/manager.py @@ -12,12 +12,12 @@ SourceFileLoader, all_suffixes, ) -from typing import TYPE_CHECKING, Generic, Optional, cast +from importlib.resources import files +from typing import TYPE_CHECKING, Generic, TypeGuard, cast from loguru import logger -from typing_extensions import TypeGuard, TypeVar +from typing_extensions import TypeVar -from libresvip.core.compat import files from libresvip.core.config import get_ui_settings, settings from libresvip.core.constants import app_dir, pkg_dir, res_dir from libresvip.utils.module_loading import import_module @@ -61,9 +61,9 @@ def lib_suffixes(self) -> list[str]: def find_spec( self, fullname: str, - path: Optional[list[str]], - target: Optional[ModuleType] = None, - ) -> Optional[ModuleSpec]: + path: list[str] | None, + target: ModuleType | None = None, + ) -> ModuleSpec | None: if not fullname.startswith(self.plugin_namespace) or not path: return None path = [str(path) for path in self.plugin_places] @@ -218,7 +218,7 @@ def merge_translation( return ori_translation -def get_translation(lang: Optional[str] = None) -> gettext.NullTranslations: +def get_translation(lang: str | None = None) -> gettext.NullTranslations: if lang is None: lang = get_ui_settings().language.value translation = gettext.NullTranslations() diff --git a/libresvip/extension/meta_info.py b/libresvip/extension/meta_info.py index e6c6a1140..462406335 100644 --- a/libresvip/extension/meta_info.py +++ b/libresvip/extension/meta_info.py @@ -4,7 +4,7 @@ import contextlib import dataclasses from configparser import RawConfigParser -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING from loguru import logger from packaging.specifiers import SpecifierSet @@ -20,7 +20,7 @@ @dataclasses.dataclass class BasePluginInfo(abc.ABC): _config: dataclasses.InitVar[RawConfigParser] - plugin_object: Optional[BasePlugin] = None + plugin_object: BasePlugin | None = None name: str = dataclasses.field(init=False) module: str = dataclasses.field(init=False) version: Version = dataclasses.field(init=False) @@ -47,7 +47,7 @@ def __post_init__(self, _config: RawConfigParser) -> None: ) @classmethod - def load(cls, plugfile_path: Traversable) -> Optional[Self]: + def load(cls, plugfile_path: Traversable) -> Self | None: try: with plugfile_path.open(encoding="utf-8") as metafile: cp = RawConfigParser() @@ -57,7 +57,7 @@ def load(cls, plugfile_path: Traversable) -> Optional[Self]: logger.error(f"Failed to load plugin info from {plugfile_path}") @classmethod - def load_from_string(cls, content: str) -> Optional[Self]: + def load_from_string(cls, content: str) -> Self | None: with contextlib.suppress(Exception): cp = RawConfigParser() cp.read_string(content) @@ -70,10 +70,10 @@ def identifier(self) -> str: ... @dataclasses.dataclass class FormatProviderPluginInfo(BasePluginInfo): # type: ignore[override] - plugin_object: Optional[SVSConverterBase] = None + plugin_object: SVSConverterBase | None = None file_format: str = dataclasses.field(init=False) suffix: str = dataclasses.field(init=False) - icon_base64: Optional[str] = dataclasses.field(init=False) + icon_base64: str | None = dataclasses.field(init=False) def __post_init__(self, _config: RawConfigParser) -> None: super().__post_init__(_config) @@ -88,7 +88,7 @@ def identifier(self) -> str: @dataclasses.dataclass class MiddlewarePluginInfo(BasePluginInfo): # type: ignore[override] - plugin_object: Optional[MiddlewareBase] = None + plugin_object: MiddlewareBase | None = None abbreviation: str = dataclasses.field(init=False) def __post_init__(self, _config: RawConfigParser) -> None: diff --git a/libresvip/gui/__init__.py b/libresvip/gui/__init__.py index 25e1e1bbe..a5ab5eda2 100644 --- a/libresvip/gui/__init__.py +++ b/libresvip/gui/__init__.py @@ -1,6 +1,7 @@ +from importlib.resources import as_file + from PySide6 import QtCore -from libresvip.core.compat import as_file from libresvip.core.constants import res_dir diff --git a/libresvip/gui/models/base_task.py b/libresvip/gui/models/base_task.py index 57f08d966..e62772449 100644 --- a/libresvip/gui/models/base_task.py +++ b/libresvip/gui/models/base_task.py @@ -1,19 +1,18 @@ from __future__ import annotations import dataclasses -from typing import Optional @dataclasses.dataclass class BaseTask: - name: Optional[str] = "" - path: Optional[str] = "" - stem: Optional[str] = "" - ext: Optional[str] = "" - tmp_path: Optional[str] = "" + name: str | None = "" + path: str | None = "" + stem: str | None = "" + ext: str | None = "" + tmp_path: str | None = "" - running: Optional[bool] = False - success: Optional[bool] = None - error: Optional[str] = "" - warning: Optional[str] = "" + running: bool | None = False + success: bool | None = None + error: str | None = "" + warning: str | None = "" child_tasks: list[BaseTask] = dataclasses.field(default_factory=list) diff --git a/libresvip/gui/models/list_models.py b/libresvip/gui/models/list_models.py index 97c7442e2..8d0b3b2ac 100644 --- a/libresvip/gui/models/list_models.py +++ b/libresvip/gui/models/list_models.py @@ -1,7 +1,7 @@ from __future__ import annotations from functools import cache -from typing import TYPE_CHECKING, Any, Optional, Union +from typing import TYPE_CHECKING, Any from PySide6.QtCore import ( QAbstractListModel, @@ -22,7 +22,7 @@ Items = list[Item] Role2Name = dict[int, str] Name2Role = dict[str, int] - RoleNames = Union[dict[str, Any], tuple[str, ...], list[str]] # suggested + RoleNames = dict[str, Any] | tuple[str, ...] | list[str] # suggested class ModelProxy(QAbstractListModel): @@ -187,8 +187,8 @@ def get(self, index: int) -> Item: @Slot(int, int, result="QVariant") def get_many( self, - start: Optional[int] = None, - end: Optional[int] = None, # TODO: shall we use `count` instead? + start: int | None = None, + end: int | None = None, # TODO: shall we use `count` instead? ) -> Items: if start is not None and end is None: start, end = 0, start @@ -249,7 +249,7 @@ def role_names(self) -> dict[int, bytes]: class LyricReplacementPresetsModel(QStringListModel): - def __init__(self, parent: Optional[QObject] = None) -> None: + def __init__(self, parent: QObject | None = None) -> None: super().__init__(parent) self.set_string_list(list(settings.lyric_replace_rules)) diff --git a/libresvip/gui/models/table_models.py b/libresvip/gui/models/table_models.py index eb69dceff..8b41fcc55 100644 --- a/libresvip/gui/models/table_models.py +++ b/libresvip/gui/models/table_models.py @@ -1,6 +1,6 @@ import re from functools import cache -from typing import Any, Optional +from typing import Any from PySide6.QtCore import QAbstractTableModel, QModelIndex, Qt, Slot @@ -56,7 +56,7 @@ def column_count(self, parent: QModelIndex) -> int: def header_data( self, section: int, orientation: Qt.Orientation, role: Qt.ItemDataRole - ) -> Optional[str]: + ) -> str | None: if role != Qt.ItemDataRole.DisplayRole: return None @@ -119,7 +119,7 @@ def column_count(self, parent: QModelIndex) -> int: def header_data( self, section: int, orientation: Qt.Orientation, role: Qt.ItemDataRole - ) -> Optional[str]: + ) -> str | None: if role != Qt.ItemDataRole.DisplayRole: return None diff --git a/libresvip/gui/modules/clipboard.py b/libresvip/gui/modules/clipboard.py index 9b0bcea56..c1b91b0bc 100644 --- a/libresvip/gui/modules/clipboard.py +++ b/libresvip/gui/modules/clipboard.py @@ -1,5 +1,3 @@ -from typing import Optional - from PySide6.QtCore import QObject, Slot from PySide6.QtQml import QmlElement @@ -16,7 +14,7 @@ @QmlElement class Clipboard(QObject): - def __init__(self, parent: Optional[QObject] = None) -> None: + def __init__(self, parent: QObject | None = None) -> None: super().__init__(parent=parent) self.clipboard = app.clipboard() diff --git a/libresvip/gui/modules/config_items.py b/libresvip/gui/modules/config_items.py index e3ebc74c9..61371855f 100644 --- a/libresvip/gui/modules/config_items.py +++ b/libresvip/gui/modules/config_items.py @@ -2,7 +2,7 @@ import base64 import pathlib -from typing import Any, Optional +from typing import Any from PySide6.QtCore import Property, QObject, Signal, Slot from PySide6.QtQml import QmlElement @@ -62,7 +62,7 @@ class ConfigItems(QObject, metaclass=AutoBindBaseConfigMetaObject): conflict_policy_changed = Signal(str) theme_changed = Signal(str) - def __init__(self, parent: Optional[QObject] = None) -> None: + def __init__(self, parent: QObject | None = None) -> None: super().__init__(parent=parent) self.folder_presets = ModelProxy({"path": ""}) self.folder_presets.append_many( diff --git a/libresvip/gui/modules/frameless_window.py b/libresvip/gui/modules/frameless_window.py index 465351d29..ff68a67fe 100644 --- a/libresvip/gui/modules/frameless_window.py +++ b/libresvip/gui/modules/frameless_window.py @@ -1,5 +1,3 @@ -from typing import Optional - from PySide6.QtCore import QCoreApplication, QEvent, QObject, Qt, Slot from PySide6.QtGui import QMouseEvent, QWindow from PySide6.QtQml import QmlElement @@ -14,7 +12,7 @@ @QmlElement class FramelessWindow(QQuickWindow): - def __init__(self, parent: Optional[QWindow] = None, border_width: int = 5) -> None: + def __init__(self, parent: QWindow | None = None, border_width: int = 5) -> None: super().__init__(parent) self.flags: Qt.WindowType = ( self.flags | Qt.WindowType.FramelessWindowHint | Qt.WindowType.Window diff --git a/libresvip/gui/modules/frameless_window_win32.py b/libresvip/gui/modules/frameless_window_win32.py index 92194f9c0..ffba05e2f 100644 --- a/libresvip/gui/modules/frameless_window_win32.py +++ b/libresvip/gui/modules/frameless_window_win32.py @@ -1,7 +1,7 @@ # mypy: disable-error-code="attr-defined" import ctypes from ctypes.wintypes import MSG -from typing import Optional, SupportsInt +from typing import SupportsInt from PySide6.QtCore import QPoint, QRect, Qt, Slot from PySide6.QtGui import QGuiApplication, QMouseEvent, QWindow @@ -28,7 +28,7 @@ class MARGINS(ctypes.Structure): @QmlElement class FramelessWindow(QQuickWindow): - def __init__(self, parent: Optional[QWindow] = None, border_width: int = 5) -> None: + def __init__(self, parent: QWindow | None = None, border_width: int = 5) -> None: super().__init__(parent) self.flags: Qt.WindowType = ( self.flags @@ -37,7 +37,7 @@ def __init__(self, parent: Optional[QWindow] = None, border_width: int = 5) -> N | Qt.WindowType.WindowMinMaxButtonsHint ) self.border_width = border_width - self.maximize_btn: Optional[QQuickItem] = None + self.maximize_btn: QQuickItem | None = None self.maximize_btn_hovered = False self.set_borderless() screen_geometry = self.screen().available_geometry @@ -95,7 +95,7 @@ def set_borderless(self) -> None: style &= ~win32con.WS_EX_LAYERED user32.SetWindowLongW(hwnd, win32con.GWL_EXSTYLE, style) - def add_dwm_effect(self) -> Optional[SupportsInt]: + def add_dwm_effect(self) -> SupportsInt | None: if not self.is_composition_enabled: return None diff --git a/libresvip/gui/modules/locale_switcher.py b/libresvip/gui/modules/locale_switcher.py index baf31f75b..c39160a86 100644 --- a/libresvip/gui/modules/locale_switcher.py +++ b/libresvip/gui/modules/locale_switcher.py @@ -1,5 +1,5 @@ import gettext -from typing import Any, Optional +from typing import Any from PySide6.QtCore import QLocale, QObject, QTranslator, Signal, Slot from PySide6.QtQml import QmlElement @@ -28,7 +28,7 @@ def translate( self, context: str, source_text: str, - disambiguation: Optional[bytes] = None, + disambiguation: bytes | None = None, n: int = 0, ) -> str: if translation.singleton_translation is not None and source_text.strip(): diff --git a/libresvip/gui/modules/notifier.py b/libresvip/gui/modules/notifier.py index 4612e3f1d..44a5cc4d5 100644 --- a/libresvip/gui/modules/notifier.py +++ b/libresvip/gui/modules/notifier.py @@ -4,7 +4,8 @@ import time from collections.abc import Awaitable, Sequence from functools import partial -from typing import TYPE_CHECKING, Optional +from importlib.resources import as_file +from typing import TYPE_CHECKING import httpx from desktop_notifier import Button, DesktopNotifier, Notification @@ -16,7 +17,6 @@ from __feature__ import snake_case, true_property # isort:skip # noqa: F401 import libresvip -from libresvip.core.compat import as_file from libresvip.core.constants import PACKAGE_NAME, app_dir, res_dir from libresvip.utils.translation import gettext_lazy as _ @@ -38,7 +38,7 @@ def __init__(self) -> None: super().__init__() self.request_timeout = 30 self.notify_timeout = 5 - self.last_notify_time: Optional[float] = None + self.last_notify_time: float | None = None try: icon_path: AbstractContextManager[Path] = as_file(res_dir / "libresvip.ico") app.aboutToQuit.connect(lambda: icon_path.__exit__(None, None, None)) @@ -222,7 +222,7 @@ async def notify_async( message: str, buttons: Sequence[Button] = (), send_timeout: int = -1, - ) -> Optional[Awaitable[Notification]]: + ) -> Awaitable[Notification] | None: try: if self.last_notify_time is None: pass diff --git a/libresvip/gui/modules/task_manager.py b/libresvip/gui/modules/task_manager.py index 4aa7c7d24..77ce94766 100644 --- a/libresvip/gui/modules/task_manager.py +++ b/libresvip/gui/modules/task_manager.py @@ -6,7 +6,7 @@ import pathlib import traceback import zipfile -from typing import Any, Optional, get_args, get_type_hints +from typing import Any, get_args, get_type_hints import more_itertools from loguru import logger @@ -60,7 +60,7 @@ def __init__( input_options: dict[str, Any], output_options: dict[str, Any], middleware_options: dict[str, dict[str, Any]], - parent: Optional[QObject] = None, + parent: QObject | None = None, ) -> None: super().__init__(parent=parent) self.index = index @@ -157,7 +157,7 @@ def __init__( input_options: dict[str, Any], output_options: dict[str, Any], middleware_options: dict[str, dict[str, Any]], - parent: Optional[QObject] = None, + parent: QObject | None = None, ) -> None: super().__init__(parent=parent) self.index = index @@ -257,7 +257,7 @@ def __init__( input_options: dict[str, Any], output_options: dict[str, Any], middleware_options: dict[str, dict[str, Any]], - parent: Optional[QObject] = None, + parent: QObject | None = None, ) -> None: super().__init__(parent=parent) self.index = index @@ -358,7 +358,7 @@ class TaskManager(QObject): middleware_options_updated = Signal() _start_conversion = Signal() - def __init__(self, parent: Optional[QObject] = None) -> None: + def __init__(self, parent: QObject | None = None) -> None: super().__init__(parent=parent) self._conversion_mode = ConversionMode.DIRECT self.tasks = ModelProxy(dataclasses.asdict(BaseTask())) @@ -536,20 +536,20 @@ def delete_tmp_file(self, index: QModelIndex, start: int, end: int) -> bool: return deleted @property - def input_format(self) -> Optional[str]: + def input_format(self) -> str | None: return settings.last_input_format @input_format.setter - def input_format(self, value: Optional[str]) -> None: + def input_format(self, value: str | None) -> None: if value is not None: settings.last_input_format = value @property - def output_format(self) -> Optional[str]: + def output_format(self) -> str | None: return settings.last_output_format @output_format.setter - def output_format(self, value: Optional[str]) -> None: + def output_format(self, value: str | None) -> None: if value is not None: settings.last_output_format = value @@ -732,7 +732,7 @@ def inspect_fields(option_class: BaseModel) -> list[dict[str, Any]]: ) elif issubclass( field_info.annotation, - (str, int, float, Color, BaseComplexModel), + str | int | float | Color | BaseComplexModel, ): if issubclass(field_info.annotation, BaseComplexModel): default_value = field_info.annotation.default_repr() @@ -870,7 +870,7 @@ def set_str(self, name: str, value: str) -> None: self.tasks.delete_many(0, delete_len) getattr(self, f"{name}_changed").emit(value) - def plugin_info_file(self, plugin_archive: zipfile.Path) -> Optional[zipfile.Path]: + def plugin_info_file(self, plugin_archive: zipfile.Path) -> zipfile.Path | None: plugin_info_filename = None for plugin_file in plugin_archive.iterdir(): if plugin_file.is_file() and plugin_file.name.endswith( diff --git a/libresvip/gui/modules/vendor/qasync/__init__.py b/libresvip/gui/modules/vendor/qasync/__init__.py index 8c19d5af6..b1c1dca02 100644 --- a/libresvip/gui/modules/vendor/qasync/__init__.py +++ b/libresvip/gui/modules/vendor/qasync/__init__.py @@ -27,7 +27,7 @@ import time from concurrent.futures import Future from queue import Queue -from typing import TYPE_CHECKING, Any, Optional +from typing import TYPE_CHECKING, Any from loguru import logger from PySide6 import QtCore, QtWidgets @@ -62,18 +62,9 @@ class _QThreadWorker(QtCore.QThread): def __init__( self, - queue: Queue[ - Optional[ - tuple[ - Future[_T], - Callable[_P, _T], - Any, - Any, - ] - ] - ], + queue: Queue[tuple[Future[_T], Callable[_P, _T], Any, Any] | None], num: int, - stack_size: Optional[int] = None, + stack_size: int | None = None, ) -> None: self.__queue = queue self.__num = num @@ -130,10 +121,10 @@ class QThreadExecutor: ... assert r == 4 """ - def __init__(self, max_workers: int = 10, stack_size: Optional[int] = None) -> None: + def __init__(self, max_workers: int = 10, stack_size: int | None = None) -> None: super().__init__() self.__max_workers = max_workers - self.__queue: Queue[Optional[Any]] = Queue() + self.__queue: Queue[Any | None] = Queue() if stack_size is None: # Match cpython/Python/thread_pthread.h if sys.platform.startswith("darwin"): @@ -187,9 +178,9 @@ def __enter__(self) -> Self: def __exit__( self, - exc_type: Optional[type[BaseException]], - exc_value: Optional[BaseException], - traceback: Optional[TracebackType], + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + traceback: TracebackType | None, ) -> None: self.shutdown() @@ -269,7 +260,7 @@ class _QEventLoop(asyncio.AbstractEventLoop): def __init__( self, - app: Optional[QtCore.QCoreApplication] = None, + app: QtCore.QCoreApplication | None = None, set_running_loop: bool = False, already_running: bool = False, ) -> None: @@ -397,7 +388,7 @@ def call_later( delay: float, callback: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts], - context: Optional[Context] = None, + context: Context | None = None, ) -> asyncio.TimerHandle: """Register callback to be invoked after a certain delay.""" if asyncio.iscoroutinefunction(callback): @@ -423,7 +414,7 @@ def call_soon( self, callback: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts], - context: Optional[Context] = None, + context: Context | None = None, ) -> asyncio.Handle: """Register a callback to be run on the next iteration of the event loop.""" return self.call_later(0, callback, *args, context=context) @@ -433,7 +424,7 @@ def call_at( when: float, callback: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts], - context: Optional[Context] = None, + context: Context | None = None, ) -> asyncio.TimerHandle: """Register callback to be invoked at a certain time.""" return self.call_later(when - self.time(), callback, *args, context=context) @@ -469,7 +460,7 @@ def _add_reader( ) self._read_notifiers[fd] = notifier - def _remove_reader(self, fd: FileDescriptor) -> Optional[bool]: + def _remove_reader(self, fd: FileDescriptor) -> bool | None: """Remove reader callback.""" if self.is_closed(): return None @@ -512,7 +503,7 @@ def _add_writer( ) self._write_notifiers[fd] = notifier - def _remove_writer(self, fd: FileDescriptor) -> Optional[bool]: + def _remove_writer(self, fd: FileDescriptor) -> bool | None: """Remove writer callback.""" if self.is_closed(): return None @@ -587,7 +578,7 @@ def call_soon_threadsafe( # type: ignore[return-value] self, callback: Callable[[Unpack[_Ts]], _T], *args: Unpack[_Ts], - context: Optional[Context] = None, + context: Context | None = None, ) -> asyncio.Handle: """Thread-safe version of call_soon.""" self.signaller.signal.emit(callback, args) @@ -629,7 +620,7 @@ def set_default_executor(self, executor: Any) -> None: # Error handlers. - def set_exception_handler(self, handler: Optional[asyncio.events._ExceptionHandler]) -> None: + def set_exception_handler(self, handler: asyncio.events._ExceptionHandler | None) -> None: self.__exception_handler = handler # type: ignore[assignment] def default_exception_handler(self, context: asyncio.events._Context) -> None: @@ -710,9 +701,9 @@ def __enter__(self) -> Self: def __exit__( self, - exc_type: Optional[type[BaseException]], - exc_value: Optional[BaseException], - traceback: Optional[TracebackType], + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + traceback: TracebackType | None, ) -> None: self.stop() self.close() diff --git a/libresvip/gui/modules/vendor/qasync/_unix.py b/libresvip/gui/modules/vendor/qasync/_unix.py index b446e665c..0a9adf353 100644 --- a/libresvip/gui/modules/vendor/qasync/_unix.py +++ b/libresvip/gui/modules/vendor/qasync/_unix.py @@ -10,7 +10,7 @@ import asyncio import selectors from collections.abc import Iterator, Mapping -from typing import TYPE_CHECKING, Any, Optional +from typing import TYPE_CHECKING, Any from loguru import logger from PySide6 import QtCore @@ -56,7 +56,7 @@ def __init__(self, parent: _SelectorEventLoop) -> None: self.__write_notifiers: dict[FileDescriptorLike, QtCore.QSocketNotifier] = {} self.__parent = parent - def select(self, timeout: Optional[float] = None) -> list[tuple[selectors.SelectorKey, int]]: + def select(self, timeout: float | None = None) -> list[tuple[selectors.SelectorKey, int]]: """Implement abstract method even though we don't need it.""" raise NotImplementedError @@ -83,7 +83,7 @@ def register( self, fileobj: FileDescriptorLike, events: int, - data: Optional[Any] = None, + data: Any | None = None, ) -> selectors.SelectorKey: if (not events) or (events & ~(EVENT_READ | EVENT_WRITE)): msg = f"Invalid events: {events!r}" @@ -144,7 +144,7 @@ def modify( self, fileobj: FileDescriptorLike, events: int, - data: Optional[Any] = None, + data: Any | None = None, ) -> selectors.SelectorKey: try: key = self._fd_to_key[self._fileobj_lookup(fileobj)] @@ -169,7 +169,7 @@ def close(self) -> None: def get_map(self) -> Mapping[FileDescriptorLike, selectors.SelectorKey]: return self.__map # type: ignore[return-value] - def _key_from_fd(self, fd: FileDescriptor) -> Optional[selectors.SelectorKey]: + def _key_from_fd(self, fd: FileDescriptor) -> selectors.SelectorKey | None: """ Return the key associated to a given file descriptor. diff --git a/libresvip/gui/modules/vendor/qasync/_windows.py b/libresvip/gui/modules/vendor/qasync/_windows.py index 41554c5b3..7137af084 100644 --- a/libresvip/gui/modules/vendor/qasync/_windows.py +++ b/libresvip/gui/modules/vendor/qasync/_windows.py @@ -15,7 +15,7 @@ import math import sys from asyncio import windows_events -from typing import IO, TYPE_CHECKING, Any, Optional, Union +from typing import IO, TYPE_CHECKING, Any from loguru import logger from PySide6 import QtCore @@ -83,7 +83,7 @@ def __init__(self) -> None: super().__init__() self._lock = QtCore.QMutex() - def select(self, timeout: Optional[float] = None) -> list[ProactorEvent]: # type: ignore[override] + def select(self, timeout: float | None = None) -> list[ProactorEvent]: # type: ignore[override] """Override in order to handle events in a threadsafe manner.""" if not self.__events: self._poll(timeout) @@ -127,7 +127,7 @@ def sendto( conn: socket.socket, buf: ReadableBuffer, flags: int = 0, - addr: Optional[socket._RetAddress] = None, + addr: socket._RetAddress | None = None, ) -> asyncio.Future[int]: with QtCore.QMutexLocker(self._lock): return super().sendto(conn, buf, flags, addr) @@ -145,10 +145,8 @@ def accept(self, listener: socket.socket) -> asyncio.Future[Any]: def connect( self, conn: socket.socket, - address: Union[ - tuple[Incomplete, Incomplete], - tuple[Incomplete, Incomplete, Incomplete, Incomplete], - ], + address: tuple[Incomplete, Incomplete] + | tuple[Incomplete, Incomplete, Incomplete, Incomplete], ) -> asyncio.Future[Any]: with QtCore.QMutexLocker(self._lock): return super().connect(conn, address) @@ -176,7 +174,7 @@ def _wait_for_handle( handle, timeout, _is_cancel ) - def _poll(self, timeout: Optional[float] = None) -> None: + def _poll(self, timeout: float | None = None) -> None: """Override in order to handle events in a threadsafe manner.""" if timeout is None: ms = UINT32_MAX # wait for eternity diff --git a/libresvip/middlewares/replace_lyric/replace_lyric.py b/libresvip/middlewares/replace_lyric/replace_lyric.py index 33650440b..f45bf44db 100644 --- a/libresvip/middlewares/replace_lyric/replace_lyric.py +++ b/libresvip/middlewares/replace_lyric/replace_lyric.py @@ -1,6 +1,6 @@ import functools from collections.abc import MutableMapping -from typing import Any, Union +from typing import Any from libresvip.core.config import LyricsReplacement, get_ui_settings from libresvip.extension import base as plugin_base @@ -9,9 +9,7 @@ from .options import ProcessOptions -def replace_lyric( - replacement: Union[LyricsReplacement, MutableMapping[str, Any]], text: str -) -> str: +def replace_lyric(replacement: LyricsReplacement | MutableMapping[str, Any], text: str) -> str: if isinstance(replacement, MutableMapping): replacement = LyricsReplacement(**replacement) return replacement.replace(text) diff --git a/libresvip/mobile/app.py b/libresvip/mobile/app.py index cc291a984..cea42c2fc 100644 --- a/libresvip/mobile/app.py +++ b/libresvip/mobile/app.py @@ -2,7 +2,8 @@ import io import pathlib import traceback -from typing import Optional, get_args, get_type_hints +from importlib.resources import as_file +from typing import get_args, get_type_hints import flet as ft import more_itertools @@ -12,7 +13,7 @@ from upath import UPath import libresvip -from libresvip.core.compat import ZipFile, as_file +from libresvip.core.compat import ZipFile from libresvip.core.config import settings from libresvip.core.constants import res_dir from libresvip.core.warning_types import CatchWarnings @@ -139,7 +140,7 @@ def build_options(option_class: BaseModel) -> list[ft.Control]: col=10 if field_info.description is not None else 12, ) ) - elif issubclass(field_info.annotation, (str, BaseComplexModel, Color)): + elif issubclass(field_info.annotation, str | BaseComplexModel | Color): if issubclass(field_info.annotation, BaseComplexModel): default_value = field_info.annotation.default_repr() fields.append( @@ -163,7 +164,7 @@ def build_options(option_class: BaseModel) -> list[ft.Control]: ) return fields - def build_input_options(value: Optional[str]) -> list[ft.Control]: + def build_input_options(value: str | None) -> list[ft.Control]: if value in plugin_manager.plugin_registry: input_plugin = plugin_manager.plugin_registry[value] if ( @@ -193,7 +194,7 @@ def build_middleware_options(value: str) -> list[ft.Control]: return build_options(middleware_option_cls) return [] - def build_output_options(value: Optional[str]) -> list[ft.Control]: + def build_output_options(value: str | None) -> list[ft.Control]: if value in plugin_manager.plugin_registry: output_plugin = plugin_manager.plugin_registry[value] if ( @@ -208,7 +209,7 @@ def build_output_options(value: Optional[str]) -> list[ft.Control]: return build_options(output_option_cls) return [] - def set_last_input_format(value: Optional[str]) -> None: + def set_last_input_format(value: str | None) -> None: if input_select.current.value != value: input_select.current.value = value last_input_format = page.client_storage.get("last_input_format") @@ -221,7 +222,7 @@ def set_last_input_format(value: Optional[str]) -> None: task_list_view.current.update() page.client_storage.set("last_input_format", value) - def set_last_output_format(value: Optional[str]) -> None: + def set_last_output_format(value: str | None) -> None: if output_select.current.value != value: output_select.current.value = value last_output_format = page.client_storage.get("last_output_format") @@ -638,7 +639,7 @@ def convert_one(list_tile: ft.ListTile, *sub_tasks: list[ft.ListTile]) -> None: def on_route_change(event: ft.RouteChangeEvent) -> None: page.views.clear() - def click_navigation_bar(event: Optional[ft.ControlEvent]) -> None: + def click_navigation_bar(event: ft.ControlEvent | None) -> None: for index, p in enumerate(pages.controls): p.visible = index == bottom_nav_bar.selected_index page.update() @@ -1185,7 +1186,7 @@ def select_page(e: ft.ControlEvent) -> None: ) page.update() - def view_pop(view: Optional[ft.View]) -> None: + def view_pop(view: ft.View | None) -> None: page.views.pop() top_view = page.views[-1] page.go(top_view.route or "/") diff --git a/libresvip/model/base.py b/libresvip/model/base.py index 67ac38578..bb9533c66 100644 --- a/libresvip/model/base.py +++ b/libresvip/model/base.py @@ -7,9 +7,7 @@ from typing import ( Annotated, Literal, - Optional, Protocol, - Union, runtime_checkable, ) @@ -76,7 +74,7 @@ class ParamCurve(BaseModel): @classmethod def load_points( cls, - points: Union[Points, list[tuple[int, int]], list[dict[str, int]]], + points: Points | list[tuple[int, int]] | list[dict[str, int]], _info: ValidationInfo, ) -> Points: return ( @@ -210,11 +208,11 @@ class Note(BaseModel): start_pos: int = Field(0, alias="StartPos") length: int = Field(0, alias="Length") key_number: int = Field(0, alias="KeyNumber") - head_tag: Optional[str] = Field(None, alias="HeadTag") + head_tag: str | None = Field(None, alias="HeadTag") lyric: str = Field("", alias="Lyric") - pronunciation: Optional[str] = Field(None, alias="Pronunciation") - edited_phones: Optional[Phones] = Field(None, alias="EditedPhones") - vibrato: Optional[VibratoParam] = Field(None, alias="Vibrato") + pronunciation: str | None = Field(None, alias="Pronunciation") + edited_phones: Phones | None = Field(None, alias="EditedPhones") + vibrato: VibratoParam | None = Field(None, alias="Vibrato") @property def end_pos(self) -> int: @@ -249,7 +247,7 @@ class InstrumentalTrack(TrackMixin): offset: int = Field(default=0, alias="Offset") -Track = Annotated[Union[SingingTrack, InstrumentalTrack], Field(discriminator="type_")] +Track = Annotated[SingingTrack | InstrumentalTrack, Field(discriminator="type_")] class Project(BaseModel): diff --git a/libresvip/model/pitch_simulator.py b/libresvip/model/pitch_simulator.py index 1b4b91b7f..3c2a6a6a2 100644 --- a/libresvip/model/pitch_simulator.py +++ b/libresvip/model/pitch_simulator.py @@ -1,6 +1,5 @@ import dataclasses import functools -from typing import Optional import portion @@ -115,9 +114,9 @@ def __post_init__(self, note_list: list[Note]) -> None: current_note.key_number ) - def pitch_at_ticks(self, ticks: int) -> Optional[float]: + def pitch_at_ticks(self, ticks: int) -> float | None: return self.pitch_at_secs(self.synchronizer.get_actual_secs_from_ticks(ticks)) - def pitch_at_secs(self, secs: float) -> Optional[float]: + def pitch_at_secs(self, secs: float) -> float | None: if value := self.interval_dict.get(secs): return value * 100 diff --git a/libresvip/model/point.py b/libresvip/model/point.py index 725d67430..fc79d774b 100644 --- a/libresvip/model/point.py +++ b/libresvip/model/point.py @@ -1,7 +1,7 @@ from __future__ import annotations import abc -from typing import TYPE_CHECKING, Any, Generic, NamedTuple, TypeVar, Union +from typing import TYPE_CHECKING, Any, Generic, NamedTuple, TypeVar if TYPE_CHECKING: from collections.abc import Iterable @@ -68,7 +68,7 @@ def reverse(self) -> None: def sort(self, /, *args: Any, **kwds: Any) -> None: self.root.sort(*args, **kwds) - def extend(self, other: Union[PointList[PointType], Iterable[PointType]]) -> None: + def extend(self, other: PointList[PointType] | Iterable[PointType]) -> None: if isinstance(other, PointList): self.root.extend(other.root) else: diff --git a/libresvip/model/relative_pitch_curve.py b/libresvip/model/relative_pitch_curve.py index c9c5b1cca..b649ddc09 100644 --- a/libresvip/model/relative_pitch_curve.py +++ b/libresvip/model/relative_pitch_curve.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING import portion @@ -33,7 +33,7 @@ def _convert_relativity( ) -> list[Point]: converted_data: list[Point] = [] prev_x = None - prev_y: Optional[float] = None + prev_y: float | None = None for point in points: pos = point.x + (0 if to_absolute else -self.first_bar_length) cur_x = point.x + (self.first_bar_length if to_absolute else -self.first_bar_length) diff --git a/libresvip/model/reset_time_axis.py b/libresvip/model/reset_time_axis.py index 37cb08d9f..52ee3c0ac 100644 --- a/libresvip/model/reset_time_axis.py +++ b/libresvip/model/reset_time_axis.py @@ -1,6 +1,5 @@ import functools from collections.abc import Callable -from typing import Optional import more_itertools @@ -23,7 +22,7 @@ def _update_curve_points_position( func: Callable[[int], float], ori_first_bar_ticks: int, new_first_bar_ticks: int, - limit_func: Optional[Callable[[int], bool]] = None, + limit_func: Callable[[int], bool] | None = None, ) -> ParamCurve: return ParamCurve( points=Points( diff --git a/libresvip/plugins/acep/ace_studio_generator.py b/libresvip/plugins/acep/ace_studio_generator.py index 6f170c74c..0ac7aa9a2 100644 --- a/libresvip/plugins/acep/ace_studio_generator.py +++ b/libresvip/plugins/acep/ace_studio_generator.py @@ -2,7 +2,6 @@ import math import random from collections.abc import Callable -from typing import Optional from libresvip.core.constants import TICKS_IN_BEAT from libresvip.core.lyric_phoneme.chinese import get_pinyin_series @@ -105,7 +104,7 @@ def generate_tempos(self, tempos: list[SongTempo]) -> list[AcepTempo]: for tempo in tempos ] - def generate_track(self, track: Track) -> Optional[AcepTrack]: + def generate_track(self, track: Track) -> AcepTrack | None: if isinstance(track, InstrumentalTrack): ace_audio_track = AcepAudioTrack() audio_pattern = AcepAudioPattern(path=track.audio_file_path) diff --git a/libresvip/plugins/acep/ace_studio_parser.py b/libresvip/plugins/acep/ace_studio_parser.py index 5693da7a3..89f5a4c2d 100644 --- a/libresvip/plugins/acep/ace_studio_parser.py +++ b/libresvip/plugins/acep/ace_studio_parser.py @@ -3,7 +3,6 @@ import operator import re from collections.abc import Callable -from typing import Optional from libresvip.core.lyric_phoneme.chinese import get_pinyin_series from libresvip.core.tick_counter import shift_tempo_list @@ -84,7 +83,7 @@ def parse_tempos(ace_tempos: list[AcepTempo]) -> list[SongTempo]: SongTempo(position=ace_tempo.position, bpm=ace_tempo.bpm) for ace_tempo in ace_tempos ] - def parse_track(self, ace_track: AcepTrack) -> Optional[Track]: + def parse_track(self, ace_track: AcepTrack) -> Track | None: if ( self.options.import_instrumental_track and isinstance(ace_track, AcepAudioTrack) diff --git a/libresvip/plugins/acep/model.py b/libresvip/plugins/acep/model.py index ee74955ac..37393ffc9 100644 --- a/libresvip/plugins/acep/model.py +++ b/libresvip/plugins/acep/model.py @@ -10,8 +10,6 @@ Any, Literal, NamedTuple, - Optional, - Union, cast, ) @@ -53,8 +51,8 @@ class AcepParamCurve(BaseModel): curve_type: str = Field("data", alias="type") offset: int = 0 values: list[float] = Field(default_factory=list) - points: Optional[AcepAnchorPoints] = None - points_vuv: Optional[list[float]] = Field(None, alias="pointsVUV") + points: AcepAnchorPoints | None = None + points_vuv: list[float] | None = Field(None, alias="pointsVUV") @field_validator("points", mode="before") @classmethod @@ -98,7 +96,7 @@ class AcepParamCurveList(RootModel[list[AcepParamCurve]]): def plus( self, - others: Optional[AcepParamCurveList], + others: AcepParamCurveList | None, default_value: float, transform: Callable[[float], float], ) -> AcepParamCurveList: @@ -183,7 +181,7 @@ class AcepMaster(BaseModel): class AcepTempo(BaseModel): bpm: float = 0.0 position: int = 0 - is_lerp: Optional[bool] = Field(False, alias="isLerp") + is_lerp: bool | None = Field(False, alias="isLerp") class AcepParams(BaseModel): @@ -203,7 +201,7 @@ class AcepParams(BaseModel): real_falsetto: AcepParamCurveList = Field( default_factory=AcepParamCurveList, alias="realFalsetto" ) - vuv: Optional[AcepParamCurveList] = Field(default_factory=AcepParamCurveList) + vuv: AcepParamCurveList | None = Field(default_factory=AcepParamCurveList) class AcepVibrato(BaseModel): @@ -227,15 +225,15 @@ class AcepNote(BaseModel): pitch: int = 0 language: AcepLyricsLanguage = AcepLyricsLanguage.CHINESE lyric: str = "" - pronunciation: Optional[str] = None - freezed_default_syllable: Optional[str] = Field(None, alias="freezedDefaultSyllable") + pronunciation: str | None = None + freezed_default_syllable: str | None = Field(None, alias="freezedDefaultSyllable") new_line: bool = Field(False, alias="newLine") - consonant_len: Optional[int] = Field(None, alias="consonantLen") - head_consonants: Optional[list[float]] = Field(default_factory=list, alias="headConsonants") - tail_consonants: Optional[list[float]] = Field(default_factory=list, alias="tailConsonants") + consonant_len: int | None = Field(None, alias="consonantLen") + head_consonants: list[float] | None = Field(default_factory=list, alias="headConsonants") + tail_consonants: list[float] | None = Field(default_factory=list, alias="tailConsonants") syllable: str = "" br_len: float = Field(0.0, alias="brLen") - vibrato: Optional[AcepVibrato] = None + vibrato: AcepVibrato | None = None extra_info: dict[str, Any] = Field(default_factory=dict, alias="extraInfo") @@ -245,8 +243,8 @@ class AcepPattern(BaseModel): dur: float = 0.0 clip_pos: float = Field(0.0, alias="clipPos") clip_dur: float = Field(0.0, alias="clipDur") - enabled: Optional[bool] = True - color: Optional[str] = None + enabled: bool | None = True + color: str | None = None extra_info: dict[str, Any] = Field(default_factory=dict, alias="extraInfo") @@ -264,17 +262,17 @@ class AcepAudioFadeShape(BaseModel): class AcepAudioFadeEffect(BaseModel): length: float = 0.0 - crossfade: Optional[bool] = False + crossfade: bool | None = False shape: AcepAudioFadeShape = Field(default_factory=AcepAudioFadeShape) class AcepAudioPattern(AcepPattern): path: str = "" - gain: Optional[float] = None - analysed_beat: Optional[AcepAnalysedBeat] = Field(None, alias="analysedBeat") - time_unit: Optional[str] = Field("sec", alias="timeUnit") - fade_in: Optional[AcepAudioFadeEffect] = Field(None, alias="fadeIn") - fade_out: Optional[AcepAudioFadeEffect] = Field(None, alias="fadeOut") + gain: float | None = None + analysed_beat: AcepAnalysedBeat | None = Field(None, alias="analysedBeat") + time_unit: str | None = Field("sec", alias="timeUnit") + fade_in: AcepAudioFadeEffect | None = Field(None, alias="fadeIn") + fade_out: AcepAudioFadeEffect | None = Field(None, alias="fadeOut") validate_path = field_validator("path", mode="before")(audio_path_validator) @@ -282,7 +280,7 @@ class AcepVocalPattern(AcepPattern): language: AcepLyricsLanguage = AcepLyricsLanguage.CHINESE extend_lyrics: str = Field("", alias="extendLyrics") notes: list[AcepNote] = Field(default_factory=list) - time_unit: Optional[str] = Field("tick", alias="timeUnit") + time_unit: str | None = Field("tick", alias="timeUnit") parameters: AcepParams = Field(default_factory=AcepParams) @@ -294,8 +292,8 @@ class AcepTrackProperties(BaseModel): mute: bool = False solo: bool = False record: bool = False - channel: Optional[int] = 0 - listen: Optional[bool] = False + channel: int | None = 0 + listen: bool | None = False extra_info: dict[str, Any] = Field(default_factory=dict, alias="extraInfo") built_in_fx: dict[str, Any] = Field(default_factory=dict, alias="builtInFx") @@ -320,10 +318,10 @@ class AcepCustomSinger(BaseModel): composition: list[AcepSeedComposition] = Field(default_factory=list) state: str = "Unmixed" name: str = DEFAULT_SINGER - singer_id: Optional[int] = Field(DEFAULT_SINGER_ID, alias="id") - head: Optional[int] = -1 - router: Optional[int] = 1 - group: Optional[str] = "" + singer_id: int | None = Field(DEFAULT_SINGER_ID, alias="id") + head: int | None = -1 + router: int | None = 1 + group: str | None = "" class AcepSingerConfig(BaseModel): @@ -335,7 +333,7 @@ class AcepSingerConfig(BaseModel): class AcepVocalTrack(AcepTrackProperties, BaseModel): type_: Literal["sing"] = Field(default="sing", alias="type") - singer: Optional[Union[int, AcepCustomSinger]] = None + singer: int | AcepCustomSinger | None = None language: AcepLyricsLanguage = AcepLyricsLanguage.CHINESE patterns: list[AcepVocalPattern] = Field(default_factory=list) choir_info: dict[str, Any] = Field(default_factory=dict, alias="choirInfo") @@ -371,7 +369,7 @@ class AcepChord(BaseModel): class AcepChordPattern(AcepPattern): chords: list[AcepChord] = Field(default_factory=list) - time_unit: Optional[str] = Field("tick", alias="timeUnit") + time_unit: str | None = Field("tick", alias="timeUnit") class AcepChordTrack(AcepTrackProperties, BaseModel): @@ -380,7 +378,7 @@ class AcepChordTrack(AcepTrackProperties, BaseModel): AcepTrack = Annotated[ - Union[AcepAudioTrack, AcepEmptyTrack, AcepVocalTrack, AcepChordTrack], + AcepAudioTrack | AcepEmptyTrack | AcepVocalTrack | AcepChordTrack, Field(discriminator="type_"), ] @@ -394,7 +392,7 @@ class AcepTimeSignature(BaseModel): class AcepProject(BaseModel): beats_per_bar: int = Field(4, alias="beatsPerBar") color_index: int = Field(0, alias="colorIndex") - pattern_individual_color_index: Optional[int] = Field(0, alias="patternIndividualColorIndex") + pattern_individual_color_index: int | None = Field(0, alias="patternIndividualColorIndex") debug_info: dict[str, Any] = Field(default_factory=dict, alias="debugInfo") duration: int = 0 extra_info: dict[str, Any] = Field(default_factory=dict, alias="extraInfo") @@ -403,16 +401,16 @@ class AcepProject(BaseModel): tempos: list[AcepTempo] = Field(default_factory=list) track_cells: int = Field(2147483646, alias="trackCells") tracks: list[AcepTrack] = Field(default_factory=list) - loop: Optional[bool] = False - loop_start: Optional[int] = Field(0, alias="loopStart") - loop_end: Optional[int] = Field(7680, alias="loopEnd") + loop: bool | None = False + loop_start: int | None = Field(0, alias="loopStart") + loop_end: int | None = Field(7680, alias="loopEnd") version: int = 9 - version_revision: Optional[int] = Field(0, alias="versionRevision") + version_revision: int | None = Field(0, alias="versionRevision") merged_pattern_index: int = Field(0, alias="mergedPatternIndex") record_pattern_index: int = Field(0, alias="recordPatternIndex") - singer_library_id: Optional[str] = "1200593006" + singer_library_id: str | None = "1200593006" time_signatures: list[AcepTimeSignature] = Field(default_factory=list, alias="timeSignatures") - track_control_panel_w: Optional[int] = Field(0, alias="trackControlPanelW") + track_control_panel_w: int | None = Field(0, alias="trackControlPanelW") @model_validator(mode="after") def migrate_time_signatures(self) -> Self: diff --git a/libresvip/plugins/acep/options.py b/libresvip/plugins/acep/options.py index 2ddb6d5b8..ee02b82a6 100644 --- a/libresvip/plugins/acep/options.py +++ b/libresvip/plugins/acep/options.py @@ -3,7 +3,7 @@ from enum import Enum from types import SimpleNamespace -from typing import Annotated, Literal, Union +from typing import Annotated, Literal from pydantic import Field, ValidationInfo, field_validator @@ -165,7 +165,7 @@ class InputOptions( ) @classmethod def _validate_normalization_argument( - cls, v: Union[str, dict[str, Union[str, float]]], _info: ValidationInfo + cls, v: str | dict[str, str | float], _info: ValidationInfo ) -> NormalizationArgument: if isinstance(v, str): v = NormalizationArgument.from_str(v).model_dump() diff --git a/libresvip/plugins/aisp/aisingers_generator.py b/libresvip/plugins/aisp/aisingers_generator.py index fce8355b2..a40e61b47 100644 --- a/libresvip/plugins/aisp/aisingers_generator.py +++ b/libresvip/plugins/aisp/aisingers_generator.py @@ -1,6 +1,5 @@ import bisect import dataclasses -from typing import Union from libresvip.core.constants import DEFAULT_PHONEME from libresvip.core.lyric_phoneme.chinese import CHINESE_RE, get_pinyin_series @@ -203,7 +202,7 @@ def generate_pitch(self, pitch_param_curve: ParamCurve, note: Note) -> list[floa pitch_param_time_in_note = dict(pitch_param_in_note) - ais_pitch_param: list[Union[int, float]] = [] + ais_pitch_param: list[int | float] = [] for sample_time in sample_time_list: if (pitch := pitch_param_time_in_note.get(sample_time)) is None: distance = -1 diff --git a/libresvip/plugins/aisp/model.py b/libresvip/plugins/aisp/model.py index ddd79e1cd..5d28f205c 100644 --- a/libresvip/plugins/aisp/model.py +++ b/libresvip/plugins/aisp/model.py @@ -1,7 +1,7 @@ import enum import itertools from collections.abc import Iterable -from typing import Annotated, Literal, Optional, Union, cast +from typing import Annotated, Literal, cast import more_itertools from pydantic import ( @@ -26,25 +26,25 @@ class AISNote(BaseModel): start: int = Field(alias="s") length: int = Field(alias="l") midi_no: int = Field(alias="m") - lyric: Optional[str] = Field(alias="ly") - pinyin: Optional[str] = Field(alias="py") - vel: Optional[int] = 50 - triple: Optional[bool] = Field(False, alias="tri") + lyric: str | None = Field(alias="ly") + pinyin: str | None = Field(alias="py") + vel: int | None = 50 + triple: bool | None = Field(False, alias="tri") pit: list[float] = Field(default_factory=list) - bc: Optional[int] = 0 - bj: Optional[int] = 0 - bq: Optional[int] = 0 + bc: int | None = 0 + bj: int | None = 0 + bq: int | None = 0 @field_validator("pit", mode="before") @classmethod def validate_pit( - cls, value: Union[str, list[Union[float, str]]], _info: ValidationInfo - ) -> Optional[list[float]]: + cls, value: str | list[float | str], _info: ValidationInfo + ) -> list[float] | None: if value is None: return None value_list = value.split() if isinstance(value, str) else value pit_list = [] - for x in cast(Iterable[Union[float, str]], value_list): + for x in cast(Iterable[float | str], value_list): if isinstance(x, str) and "x" in x: x, _, repeat_times = x.partition("x") pit_list.extend([float(x)] * int(repeat_times)) @@ -56,7 +56,7 @@ def validate_pit( @field_serializer("pit", when_used="json-unless-none") @classmethod - def serialize_pit(cls, value: Optional[list[float]], _info: SerializationInfo) -> str: + def serialize_pit(cls, value: list[float] | None, _info: SerializationInfo) -> str: if value is None: return "0x500" pit_str = "" @@ -69,9 +69,9 @@ def serialize_pit(cls, value: Optional[list[float]], _info: SerializationInfo) - class AISBasePattern(BaseModel): - uid: Optional[int] = None + uid: int | None = None start: int = Field(alias="s") - length: Optional[int] = Field(alias="l") + length: int | None = Field(alias="l") class AISSingVoicePattern(AISBasePattern): @@ -79,27 +79,27 @@ class AISSingVoicePattern(AISBasePattern): class AISAudioPattern(AISBasePattern): - path_audio: Optional[str] = Field(alias="pa") - path_wave: Optional[str] = Field(alias="pw") - n_channel: Optional[int] = 2 - len_sec: Optional[int] = 0 + path_audio: str | None = Field(alias="pa") + path_wave: str | None = Field(alias="pw") + n_channel: int | None = 2 + len_sec: int | None = 0 class AISBaseTrack(BaseModel): - idx: Optional[int] = Field(alias="i") - solo: Optional[bool] = Field(False, alias="s") - mute: Optional[bool] = Field(False, alias="m") - volume: Optional[float] = Field(0, alias="v") - name: Optional[str] = Field(alias="n") + idx: int | None = Field(alias="i") + solo: bool | None = Field(False, alias="s") + mute: bool | None = Field(False, alias="m") + volume: float | None = Field(0, alias="v") + name: str | None = Field(alias="n") class AISSingVoiceTrack(AISBaseTrack): track_type: Literal[AISTrackType.TRACK_SING_VOICE] = Field( AISTrackType.TRACK_SING_VOICE, alias="t" ) - singer_namecn: Optional[str] = Field(alias="sn") - singer_nameen: Optional[str] = Field("", alias="se") - singer_head_path: Optional[str] = Field("", alias="sh") + singer_namecn: str | None = Field(alias="sn") + singer_nameen: str | None = Field("", alias="se") + singer_head_path: str | None = Field("", alias="sh") items: list[AISSingVoicePattern] = Field(alias="im", default_factory=list) @@ -113,7 +113,7 @@ class AISMidiTrack(AISBaseTrack): AISTrack = Annotated[ - Union[AISSingVoiceTrack, AISAudioTrack, AISMidiTrack], + AISSingVoiceTrack | AISAudioTrack | AISMidiTrack, Field(discriminator="track_type"), ] @@ -129,10 +129,10 @@ def str_value(self) -> str: class AISTempo(BaseModel): - tempo_float: Optional[float] = None + tempo_float: float | None = None start_128: int start_bar: int - start_beat_in_bar: Optional[int] = None + start_beat_in_bar: int | None = None class AISProjectBody(BaseModel): @@ -146,7 +146,7 @@ def num_track(self) -> int: class AISProjectHead(BaseModel): tempo: list[AISTempo] = Field(default_factory=list) signature: list[AISTimeSignature] = Field(default_factory=list) - flags: Optional[int] = -256 - flage: Optional[int] = -128 - time: Optional[int] = None - bar: Optional[int] = None + flags: int | None = -256 + flage: int | None = -128 + time: int | None = None + bar: int | None = None diff --git a/libresvip/plugins/ccs/cevio_generator.py b/libresvip/plugins/ccs/cevio_generator.py index 9d6614bb1..ce4963a65 100644 --- a/libresvip/plugins/ccs/cevio_generator.py +++ b/libresvip/plugins/ccs/cevio_generator.py @@ -1,6 +1,5 @@ import dataclasses import datetime -from typing import Optional from wanakana import PROLONGED_SOUND_MARK from xsdata.models.datatype import XmlTime @@ -203,7 +202,7 @@ def generate_notes(self, notes: list[Note]) -> list[CeVIONote]: def generate_pitch( self, pitch: ParamCurve, tempo_list: list[SongTempo] - ) -> Optional[CeVIOParameter]: + ) -> CeVIOParameter | None: if (data := generate_for_cevio(pitch, tempo_list, self.first_bar_length)) is not None: log_f0_node = CeVIOParameter(length=data.length) log_f0_node.data.extend( diff --git a/libresvip/plugins/ccs/cevio_parser.py b/libresvip/plugins/ccs/cevio_parser.py index 81e9b8dc7..0d576f4ea 100644 --- a/libresvip/plugins/ccs/cevio_parser.py +++ b/libresvip/plugins/ccs/cevio_parser.py @@ -1,6 +1,6 @@ import dataclasses import operator -from typing import Optional, cast +from typing import cast import more_itertools from wanakana import PROLONGED_SOUND_MARK @@ -31,7 +31,7 @@ class CeVIOParser: options: InputOptions time_synchronizer: TimeSynchronizer = dataclasses.field(init=False) - singer_id2name: dict[Optional[str], str] = dataclasses.field(default_factory=dict) + singer_id2name: dict[str | None, str] = dataclasses.field(default_factory=dict) def parse_project(self, ccs_project: CeVIOCreativeStudioProject) -> Project: scene_node = ccs_project.sequence.scene @@ -94,7 +94,7 @@ def parse_instrumental_track( index: int, unit_node: CeVIOUnit, group_node: CeVIOGroup, - track_name: Optional[str], + track_name: str | None, ) -> InstrumentalTrack: return InstrumentalTrack( title=track_name or f"Track {index + 1}", @@ -113,7 +113,7 @@ def parse_singing_track( index: int, unit_node: CeVIOUnit, group_node: CeVIOGroup, - track_name: Optional[str], + track_name: str | None, ) -> tuple[SingingTrack, list[SongTempo], list[TimeSignature]]: time_nodes = unit_node.song.beat.time if unit_node.song.beat is not None else [] @@ -252,7 +252,7 @@ def parse_singing_track( return track, tempos, time_signatures @staticmethod - def parse_param_data(data_element: CeVIOData) -> Optional[CeVIOParamEvent]: + def parse_param_data(data_element: CeVIOData) -> CeVIOParamEvent | None: value = float(data_element.value) if data_element.value is not None else None if value is not None: index = data_element.index or None diff --git a/libresvip/plugins/ccs/cevio_pitch.py b/libresvip/plugins/ccs/cevio_pitch.py index 60e5ae867..b88dabb9a 100644 --- a/libresvip/plugins/ccs/cevio_pitch.py +++ b/libresvip/plugins/ccs/cevio_pitch.py @@ -5,7 +5,7 @@ import functools import itertools import math -from typing import NamedTuple, Optional, cast +from typing import NamedTuple, cast import more_itertools import portion @@ -28,15 +28,15 @@ class CeVIOParamEvent(NamedTuple): - idx: Optional[int] - repeat: Optional[int] + idx: int | None + repeat: int | None value: float class CeVIOParamEventFloat(NamedTuple): - idx: Optional[float] - repeat: Optional[float] - value: Optional[float] + idx: float | None + repeat: float | None + value: float | None @classmethod def from_event(cls, event: CeVIOParamEvent) -> CeVIOParamEventFloat: @@ -64,7 +64,7 @@ def length(self) -> int: return length + MIN_DATA_LENGTH -def pitch_from_cevio_track(data: CeVIOTrackPitchData) -> Optional[ParamCurve]: +def pitch_from_cevio_track(data: CeVIOTrackPitchData) -> ParamCurve | None: converted_points = [Point.start_point()] current_value = -100 @@ -312,7 +312,7 @@ def build_cevio_wave_interval_dict( def generate_for_cevio( pitch: ParamCurve, tempos: list[SongTempo], tick_prefix: int -) -> Optional[CeVIOTrackPitchData]: +) -> CeVIOTrackPitchData | None: events_with_full_params = [] for i, this_point in enumerate(pitch.points.root): next_point = pitch.points[i + 1] if i + 1 < len(pitch.points) else None diff --git a/libresvip/plugins/ccs/model.py b/libresvip/plugins/ccs/model.py index 76c544bed..d417d6ffb 100644 --- a/libresvip/plugins/ccs/model.py +++ b/libresvip/plugins/ccs/model.py @@ -1,5 +1,4 @@ from decimal import Decimal -from typing import Optional, Union from xsdata.models.datatype import XmlTime from xsdata_pydantic.fields import field @@ -11,7 +10,7 @@ class CeVIOAuthor(BaseModel): class Meta: name = "Author" - version: Optional[str] = field( + version: str | None = field( default="3.2.21.2", metadata={ "name": "Version", @@ -24,14 +23,14 @@ class CeVIONoData(BaseModel): class Meta: name = "NoData" - index: Optional[int] = field( + index: int | None = field( default=None, metadata={ "name": "Index", "type": "Attribute", }, ) - repeat: Optional[int] = field( + repeat: int | None = field( default=None, metadata={ "name": "Repeat", @@ -44,14 +43,14 @@ class CeVIOData(CeVIONoData): class Meta: name = "Data" - value: Optional[Union[float, int, Decimal]] = field(default=None) + value: float | int | Decimal | None = field(default=None) class CeVIODictExtension(BaseModel): class Meta: name = "Extension" - version: Optional[str] = field( + version: str | None = field( default="1.0.0", metadata={ "name": "Version", @@ -59,7 +58,7 @@ class Meta: }, ) - language: Optional[str] = field( + language: str | None = field( default="English", metadata={ "name": "Language", @@ -72,14 +71,14 @@ class CeVIODictionary(BaseModel): class Meta: name = "Dictionary" - version: Optional[str] = field( + version: str | None = field( default="1.0.0", metadata={ "name": "Version", "type": "Attribute", }, ) - extension: Optional[CeVIODictExtension] = field( + extension: CeVIODictExtension | None = field( default=None, metadata={ "name": "Extension", @@ -92,14 +91,14 @@ class CeVIODynamics(BaseModel): class Meta: name = "Dynamics" - clock: Optional[int] = field( + clock: int | None = field( default=None, metadata={ "name": "Clock", "type": "Attribute", }, ) - value: Optional[int] = field( + value: int | None = field( default=None, metadata={ "name": "Value", @@ -112,7 +111,7 @@ class CeVIOTalkExtension(BaseModel): class Meta: name = "Extension" - vertical_ratio: Optional[str] = field( + vertical_ratio: str | None = field( default=None, metadata={ "name": "VerticalRatio", @@ -125,14 +124,14 @@ class CeVIOGroup(BaseModel): class Meta: name = "Group" - version: Optional[str] = field( + version: str | None = field( default="1.0", metadata={ "name": "Version", "type": "Attribute", }, ) - group_id: Optional[str] = field( + group_id: str | None = field( default=None, metadata={ "name": "Id", @@ -146,63 +145,63 @@ class Meta: "type": "Attribute", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "name": "Name", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "name": "Color", "type": "Attribute", }, ) - volume: Optional[float] = field( + volume: float | None = field( default=None, metadata={ "name": "Volume", "type": "Attribute", }, ) - pan: Optional[float] = field( + pan: float | None = field( default=None, metadata={ "name": "Pan", "type": "Attribute", }, ) - is_solo: Optional[bool] = field( + is_solo: bool | None = field( default=False, metadata={ "name": "IsSolo", "type": "Attribute", }, ) - is_muted: Optional[bool] = field( + is_muted: bool | None = field( default=False, metadata={ "name": "IsMuted", "type": "Attribute", }, ) - cast_id: Optional[str] = field( + cast_id: str | None = field( default=None, metadata={ "name": "CastId", "type": "Attribute", }, ) - language: Optional[str] = field( + language: str | None = field( default="Japanese", metadata={ "name": "Language", "type": "Attribute", }, ) - snapshot: Optional[str] = field( + snapshot: str | None = field( default=None, metadata={ "name": "SnapShot", @@ -215,21 +214,21 @@ class CeVIOKey(BaseModel): class Meta: name = "Key" - clock: Optional[int] = field( + clock: int | None = field( default=None, metadata={ "name": "Clock", "type": "Attribute", }, ) - fifths: Optional[int] = field( + fifths: int | None = field( default=None, metadata={ "name": "Fifths", "type": "Attribute", }, ) - mode: Optional[int] = field( + mode: int | None = field( default=None, metadata={ "name": "Mode", @@ -242,91 +241,91 @@ class CeVIONote(BaseModel): class Meta: name = "Note" - clock: Optional[int] = field( + clock: int | None = field( default=None, metadata={ "name": "Clock", "type": "Attribute", }, ) - pitch_step: Optional[int] = field( + pitch_step: int | None = field( default=None, metadata={ "name": "PitchStep", "type": "Attribute", }, ) - pitch_octave: Optional[int] = field( + pitch_octave: int | None = field( default=None, metadata={ "name": "PitchOctave", "type": "Attribute", }, ) - duration: Optional[int] = field( + duration: int | None = field( default=None, metadata={ "name": "Duration", "type": "Attribute", }, ) - lyric: Optional[str] = field( + lyric: str | None = field( default=None, metadata={ "name": "Lyric", "type": "Attribute", }, ) - phonetic: Optional[str] = field( + phonetic: str | None = field( default=None, metadata={ "name": "Phonetic", "type": "Attribute", }, ) - do_re_mi: Optional[bool] = field( + do_re_mi: bool | None = field( default=None, metadata={ "name": "DoReMi", "type": "Attribute", }, ) - staccato: Optional[bool] = field( + staccato: bool | None = field( default=None, metadata={ "name": "Staccato", "type": "Attribute", }, ) - slur_start: Optional[bool] = field( + slur_start: bool | None = field( default=None, metadata={ "name": "SlurStart", "type": "Attribute", }, ) - slur_stop: Optional[bool] = field( + slur_stop: bool | None = field( default=None, metadata={ "name": "SlurStop", "type": "Attribute", }, ) - syllabic: Optional[int] = field( + syllabic: int | None = field( default=None, metadata={ "name": "Syllabic", "type": "Attribute", }, ) - accent: Optional[bool] = field( + accent: bool | None = field( default=None, metadata={ "name": "Accent", "type": "Attribute", }, ) - breath: Optional[bool] = field( + breath: bool | None = field( default=None, metadata={ "name": "Breath", @@ -339,14 +338,14 @@ class CeVIOReferenceState(BaseModel): class Meta: name = "ReferenceState" - current: Optional[str] = field( + current: str | None = field( default=None, metadata={ "name": "Current", "type": "Attribute", }, ) - previous: Optional[str] = field( + previous: str | None = field( default=None, metadata={ "name": "Previous", @@ -359,14 +358,14 @@ class CeVIOSound(BaseModel): class Meta: name = "Sound" - clock: Optional[int] = field( + clock: int | None = field( default=None, metadata={ "name": "Clock", "type": "Attribute", }, ) - tempo: Optional[float] = field( + tempo: float | None = field( default=None, metadata={ "name": "Tempo", @@ -379,21 +378,21 @@ class CeVIOSoundSetting(BaseModel): class Meta: name = "SoundSetting" - rhythm: Optional[str] = field( + rhythm: str | None = field( default="4/4", metadata={ "name": "Rhythm", "type": "Attribute", }, ) - tempo: Optional[float] = field( + tempo: float | None = field( default=120.0, metadata={ "name": "Tempo", "type": "Attribute", }, ) - master_volume: Optional[float] = field( + master_volume: float | None = field( default=None, metadata={ "name": "MasterVolume", @@ -406,21 +405,21 @@ class CeVIOSoundSource(BaseModel): class Meta: name = "SoundSource" - version: Optional[str] = field( + version: str | None = field( default="1.0.0", metadata={ "name": "Version", "type": "Attribute", }, ) - sound_source_id: Optional[str] = field( + sound_source_id: str | None = field( default=None, metadata={ "name": "Id", "type": "Attribute", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "name": "Name", @@ -439,14 +438,14 @@ class Meta: "type": "Attribute", }, ) - beats: Optional[int] = field( + beats: int | None = field( default=None, metadata={ "name": "Beats", "type": "Attribute", }, ) - beat_type: Optional[int] = field( + beat_type: int | None = field( default=None, metadata={ "name": "BeatType", @@ -459,14 +458,14 @@ class CeVIOViewScale(BaseModel): class Meta: name = "ViewScale" - horizontal: Optional[Union[int, float]] = field( + horizontal: int | float | None = field( default=None, metadata={ "name": "Horizontal", "type": "Attribute", }, ) - vertical: Optional[Union[int, Decimal]] = field( + vertical: int | Decimal | None = field( default=None, metadata={ "name": "Vertical", @@ -492,7 +491,7 @@ class CeVIOGroups(BaseModel): class Meta: name = "Groups" - active_group: Optional[str] = field( + active_group: str | None = field( default=None, metadata={ "name": "ActiveGroup", @@ -512,63 +511,63 @@ class CeVIOScore(BaseModel): class Meta: name = "Score" - alpha: Optional[float] = field( + alpha: float | None = field( default=None, metadata={ "name": "Alpha", "type": "Attribute", }, ) - tune: Optional[float] = field( + tune: float | None = field( default=None, metadata={ "name": "Tune", "type": "Attribute", }, ) - pitch_shift: Optional[float] = field( + pitch_shift: float | None = field( default=None, metadata={ "name": "PitchShift", "type": "Attribute", }, ) - pitch_tune: Optional[float] = field( + pitch_tune: float | None = field( default=None, metadata={ "name": "PitchTune", "type": "Attribute", }, ) - husky: Optional[float] = field( + husky: float | None = field( default=None, metadata={ "name": "Husky", "type": "Attribute", }, ) - vib_amp: Optional[float] = field( + vib_amp: float | None = field( default=None, metadata={ "name": "VibAmp", "type": "Attribute", }, ) - vib_frq: Optional[float] = field( + vib_frq: float | None = field( default=None, metadata={ "name": "VibFrq", "type": "Attribute", }, ) - emotion0: Optional[Union[float, int]] = field( + emotion0: float | int | None = field( default=None, metadata={ "name": "Emotion0", "type": "Attribute", }, ) - emotion1: Optional[Union[float, int]] = field( + emotion1: float | int | None = field( default=None, metadata={ "name": "Emotion1", @@ -604,42 +603,42 @@ class CeVIOSongEditor(BaseModel): class Meta: name = "SongEditor" - partition: Optional[int] = field( + partition: int | None = field( default=None, metadata={ "name": "Partition", "type": "Attribute", }, ) - quantize: Optional[int] = field( + quantize: int | None = field( default=None, metadata={ "name": "Quantize", "type": "Attribute", }, ) - mode: Optional[int] = field( + mode: int | None = field( default=None, metadata={ "name": "Mode", "type": "Attribute", }, ) - editing_tool: Optional[int] = field( + editing_tool: int | None = field( default=None, metadata={ "name": "EditingTool", "type": "Attribute", }, ) - view_scale: Optional[CeVIOViewScale] = field( + view_scale: CeVIOViewScale | None = field( default=None, metadata={ "name": "ViewScale", "type": "Element", }, ) - reference_state: Optional[CeVIOReferenceState] = field( + reference_state: CeVIOReferenceState | None = field( default=None, metadata={ "name": "ReferenceState", @@ -665,14 +664,14 @@ class CeVIOTts(BaseModel): class Meta: name = "TTS" - version: Optional[str] = field( + version: str | None = field( default="3.1.0", metadata={ "name": "Version", "type": "Attribute", }, ) - dictionary: Optional[CeVIODictionary] = field( + dictionary: CeVIODictionary | None = field( default_factory=CeVIODictionary, metadata={ "name": "Dictionary", @@ -692,14 +691,14 @@ class CeVIOTalkEditor(BaseModel): class Meta: name = "TalkEditor" - partition: Optional[int] = field( + partition: int | None = field( default=None, metadata={ "name": "Partition", "type": "Attribute", }, ) - extension: Optional[CeVIOTalkExtension] = field( + extension: CeVIOTalkExtension | None = field( default=None, metadata={ "name": "Extension", @@ -725,35 +724,35 @@ class CeVIOTimeline(BaseModel): class Meta: name = "Timeline" - partition: Optional[str] = field( + partition: str | None = field( default=None, metadata={ "name": "Partition", "type": "Attribute", }, ) - current_position: Optional[XmlTime] = field( + current_position: XmlTime | None = field( default=None, metadata={ "name": "CurrentPosition", "type": "Attribute", }, ) - start_position: Optional[XmlTime] = field( + start_position: XmlTime | None = field( default=None, metadata={ "name": "StartPosition", "type": "Attribute", }, ) - end_position: Optional[XmlTime] = field( + end_position: XmlTime | None = field( default=None, metadata={ "name": "EndPosition", "type": "Attribute", }, ) - view_scale: Optional[CeVIOViewScale] = field( + view_scale: CeVIOViewScale | None = field( default=None, metadata={ "name": "ViewScale", @@ -766,14 +765,14 @@ class CeVIOParameter(BaseModel): class Meta: name = "Parameter" - length: Optional[int] = field( + length: int | None = field( default=None, metadata={ "name": "Length", "type": "Attribute", }, ) - data: list[Union[CeVIOData, float, Decimal, int]] = field( + data: list[CeVIOData | float | Decimal | int] = field( default_factory=list, metadata={ "name": "Data", @@ -793,49 +792,49 @@ class CeVIOParameters(BaseModel): class Meta: name = "Parameters" - timing: Optional[CeVIOParameter] = field( + timing: CeVIOParameter | None = field( default=None, metadata={ "name": "Timing", "type": "Element", }, ) - log_f0: Optional[CeVIOParameter] = field( + log_f0: CeVIOParameter | None = field( default=None, metadata={ "name": "LogF0", "type": "Element", }, ) - c0: Optional[CeVIOParameter] = field( + c0: CeVIOParameter | None = field( default=None, metadata={ "name": "C0", "type": "Element", }, ) - vib_amp: Optional[CeVIOParameter] = field( + vib_amp: CeVIOParameter | None = field( default=None, metadata={ "name": "VibAmp", "type": "Element", }, ) - vib_frq: Optional[CeVIOParameter] = field( + vib_frq: CeVIOParameter | None = field( default=None, metadata={ "name": "VibFrq", "type": "Element", }, ) - alpha: Optional[CeVIOParameter] = field( + alpha: CeVIOParameter | None = field( default=None, metadata={ "name": "Alpha", "type": "Element", }, ) - husky: Optional[CeVIOParameter] = field( + husky: CeVIOParameter | None = field( default=None, metadata={ "name": "Husky", @@ -848,14 +847,14 @@ class CeVIOSvss(BaseModel): class Meta: name = "SVSS" - version: Optional[str] = field( + version: str | None = field( default="3.0.5", metadata={ "name": "Version", "type": "Attribute", }, ) - dictionary: Optional[CeVIODictionary] = field( + dictionary: CeVIODictionary | None = field( default_factory=CeVIODictionary, metadata={ "name": "Dictionary", @@ -875,14 +874,14 @@ class CeVIOGeneration(BaseModel): class Meta: name = "Generation" - author: Optional[CeVIOAuthor] = field( + author: CeVIOAuthor | None = field( default_factory=CeVIOAuthor, metadata={ "name": "Author", "type": "Element", }, ) - tts: Optional[CeVIOTts] = field( + tts: CeVIOTts | None = field( default_factory=CeVIOTts, metadata={ "name": "TTS", @@ -902,28 +901,28 @@ class CeVIOSong(BaseModel): class Meta: name = "Song" - version: Optional[str] = field( + version: str | None = field( default="1.02", metadata={ "name": "Version", "type": "Attribute", }, ) - common_keys: Optional[bool] = field( + common_keys: bool | None = field( default=None, metadata={ "name": "CommonKeys", "type": "Attribute", }, ) - tempo: Optional[CeVIOTempo] = field( + tempo: CeVIOTempo | None = field( default=None, metadata={ "name": "Tempo", "type": "Element", }, ) - beat: Optional[CeVIOBeat] = field( + beat: CeVIOBeat | None = field( default=None, metadata={ "name": "Beat", @@ -947,35 +946,35 @@ class Meta: class CeVIOBaseUnit(BaseModel): - version: Optional[str] = field( + version: str | None = field( default="1.0", metadata={ "name": "Version", "type": "Attribute", }, ) - unit_id: Optional[str] = field( + unit_id: str | None = field( default="", metadata={ "name": "Id", "type": "Attribute", }, ) - group: Optional[str] = field( + group: str | None = field( default=None, metadata={ "name": "Group", "type": "Attribute", }, ) - start_time: Optional[XmlTime] = field( + start_time: XmlTime | None = field( default=None, metadata={ "name": "StartTime", "type": "Attribute", }, ) - duration: Optional[XmlTime] = field( + duration: XmlTime | None = field( default=None, metadata={ "name": "Duration", @@ -989,14 +988,14 @@ class CeVIOBaseUnit(BaseModel): "type": "Attribute", }, ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "name": "Text", "type": "Attribute", }, ) - snap_shot: Optional[str] = field( + snap_shot: str | None = field( default=None, metadata={ "name": "SnapShot", @@ -1013,14 +1012,14 @@ class CeVIOSongUnit(CeVIOBaseUnit): "type": "Element", }, ) - cast_id: Optional[str] = field( + cast_id: str | None = field( default=None, metadata={ "name": "CastId", "type": "Attribute", }, ) - language: Optional[str] = field( + language: str | None = field( default="Japanese", metadata={ "name": "Language", @@ -1033,7 +1032,7 @@ class CeVIOComponent(BaseModel): class Meta: name = "Component" - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "name": "Name", @@ -1041,7 +1040,7 @@ class Meta: "required": True, }, ) - value: Optional[Decimal] = field( + value: Decimal | None = field( default=None, metadata={ "name": "Value", @@ -1055,7 +1054,7 @@ class CeVIOPhoneme(BaseModel): class Meta: name = "Phoneme" - data: Optional[str] = field( + data: str | None = field( default=None, metadata={ "name": "Data", @@ -1063,21 +1062,21 @@ class Meta: "required": True, }, ) - volume: Optional[Union[Decimal, float]] = field( + volume: Decimal | float | None = field( default=None, metadata={ "name": "Volume", "type": "Attribute", }, ) - speed: Optional[Union[float, Decimal]] = field( + speed: float | Decimal | None = field( default=None, metadata={ "name": "Speed", "type": "Attribute", }, ) - tone: Optional[Union[Decimal, float]] = field( + tone: Decimal | float | None = field( default=None, metadata={ "name": "Tone", @@ -1090,7 +1089,7 @@ class CeVIODirection(BaseModel): class Meta: name = "Direction" - volume: Optional[float] = field( + volume: float | None = field( default=None, metadata={ "name": "Volume", @@ -1098,7 +1097,7 @@ class Meta: "required": True, }, ) - speed: Optional[float] = field( + speed: float | None = field( default=None, metadata={ "name": "Speed", @@ -1106,7 +1105,7 @@ class Meta: "required": True, }, ) - tone: Optional[float] = field( + tone: float | None = field( default=None, metadata={ "name": "Tone", @@ -1114,7 +1113,7 @@ class Meta: "required": True, }, ) - alpha: Optional[float] = field( + alpha: float | None = field( default=None, metadata={ "name": "Alpha", @@ -1122,7 +1121,7 @@ class Meta: "required": True, }, ) - log_f0_scale: Optional[float] = field( + log_f0_scale: float | None = field( default=None, metadata={ "name": "LogF0Scale", @@ -1158,21 +1157,21 @@ class Word(BaseModel): class Meta: name = "word" - phoneme: Optional[str] = field( + phoneme: str | None = field( default=None, metadata={ "type": "Attribute", "required": True, }, ) - pronunciation: Optional[str] = field( + pronunciation: str | None = field( default=None, metadata={ "type": "Attribute", "required": True, }, ) - pos: Optional[str] = field( + pos: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1215,7 +1214,7 @@ class CeVIOMetadataEN(BaseModel): class Meta: name = "Metadata_EN" - base: Optional[Base] = field( + base: Base | None = field( default=None, metadata={ "name": "Base", @@ -1223,7 +1222,7 @@ class Meta: "required": True, }, ) - edited: Optional[Edited] = field( + edited: Edited | None = field( default=None, metadata={ "name": "Edited", @@ -1233,21 +1232,21 @@ class Meta: class CeVIOTalkUnit(CeVIOBaseUnit): - metadata: Optional[str] = field( + metadata: str | None = field( default=None, metadata={ "name": "Metadata", "type": "Element", }, ) - metadata_en: Optional[CeVIOMetadataEN] = field( + metadata_en: CeVIOMetadataEN | None = field( default=None, metadata={ "name": "Metadata_EN", "type": "Element", }, ) - direction: Optional[CeVIODirection] = field( + direction: CeVIODirection | None = field( default=None, metadata={ "name": "Direction", @@ -1255,7 +1254,7 @@ class CeVIOTalkUnit(CeVIOBaseUnit): "required": True, }, ) - phonemes: Optional[CeVIOPhonemes] = field( + phonemes: CeVIOPhonemes | None = field( default=None, metadata={ "name": "Phonemes", @@ -1266,7 +1265,7 @@ class CeVIOTalkUnit(CeVIOBaseUnit): class CeVIOAudioUnit(CeVIOBaseUnit): - file_path: Optional[str] = field( + file_path: str | None = field( default=None, metadata={ "name": "FilePath", @@ -1297,28 +1296,28 @@ class CeVIOScene(BaseModel): class Meta: name = "Scene" - scene_id: Optional[str] = field( + scene_id: str | None = field( default="", metadata={ "name": "Id", "type": "Attribute", }, ) - timeline: Optional[CeVIOTimeline] = field( + timeline: CeVIOTimeline | None = field( default=None, metadata={ "name": "Timeline", "type": "Element", }, ) - talk_editor: Optional[CeVIOTalkEditor] = field( + talk_editor: CeVIOTalkEditor | None = field( default=None, metadata={ "name": "TalkEditor", "type": "Element", }, ) - song_editor: Optional[CeVIOSongEditor] = field( + song_editor: CeVIOSongEditor | None = field( default=None, metadata={ "name": "SongEditor", @@ -1339,7 +1338,7 @@ class Meta: "type": "Element", }, ) - sound_setting: Optional[CeVIOSoundSetting] = field( + sound_setting: CeVIOSoundSetting | None = field( default_factory=CeVIOSoundSetting, metadata={ "name": "SoundSetting", @@ -1352,7 +1351,7 @@ class CeVIOSequence(BaseModel): class Meta: name = "Sequence" - sequence_id: Optional[str] = field( + sequence_id: str | None = field( default="", metadata={ "name": "Id", @@ -1372,7 +1371,7 @@ class CeVIOCreativeStudioProject(BaseModel): class Meta: name = "Scenario" - code: Optional[str] = field( + code: str | None = field( default="7251BC4B6168E7B2992FA620BD3E1E77", metadata={ "name": "Code", diff --git a/libresvip/plugins/ds/model.py b/libresvip/plugins/ds/model.py index 820772d00..245c658ec 100644 --- a/libresvip/plugins/ds/model.py +++ b/libresvip/plugins/ds/model.py @@ -1,5 +1,5 @@ import enum -from typing import Literal, Optional, Union +from typing import Literal from pydantic import ( Field, @@ -23,35 +23,35 @@ class DsItem(BaseModel): text: list[str] ph_seq: list[str] note_seq: list[str] - note_dur: Optional[list[float]] = None - note_dur_seq: Optional[list[float]] = None - note_slur: Optional[list[int]] = None - note_glide: Optional[list[GlideStyle]] = None - is_slur_seq: Optional[list[int]] = None - ph_dur: Optional[list[float]] = None - ph_num: Optional[list[int]] = None - f0_timestep: Optional[float] = None - f0_seq: Optional[Union[str, list[float]]] = None - input_type: Optional[Literal["phoneme"]] = None - offset: Union[str, float] - seed: Optional[int] = None - spk_mix: Optional[dict[str, list[float]]] = None - spk_mix_timestep: Optional[float] = None - gender: Optional[list[float]] = None - gender_timestep: Optional[float] = None - velocity: Optional[list[float]] = None - velocity_timestep: Optional[float] = None + note_dur: list[float] | None = None + note_dur_seq: list[float] | None = None + note_slur: list[int] | None = None + note_glide: list[GlideStyle] | None = None + is_slur_seq: list[int] | None = None + ph_dur: list[float] | None = None + ph_num: list[int] | None = None + f0_timestep: float | None = None + f0_seq: str | list[float] | None = None + input_type: Literal["phoneme"] | None = None + offset: str | float + seed: int | None = None + spk_mix: dict[str, list[float]] | None = None + spk_mix_timestep: float | None = None + gender: list[float] | None = None + gender_timestep: float | None = None + velocity: list[float] | None = None + velocity_timestep: float | None = None @field_validator("text", "note_seq", "ph_seq", mode="before") @classmethod - def _validate_str_list(cls, value: Optional[str], _info: ValidationInfo) -> Optional[list[str]]: + def _validate_str_list(cls, value: str | None, _info: ValidationInfo) -> list[str] | None: return None if value is None else value.split() @field_validator("note_glide", mode="before") @classmethod def _validate_glide_list( - cls, value: Optional[str], _info: ValidationInfo - ) -> Optional[list[GlideStyle]]: + cls, value: str | None, _info: ValidationInfo + ) -> list[GlideStyle] | None: return None if value is None else [GlideStyle(x) for x in value.split()] @field_validator( @@ -64,14 +64,12 @@ def _validate_glide_list( mode="before", ) @classmethod - def _validate_float_list( - cls, value: Optional[str], _info: ValidationInfo - ) -> Optional[list[float]]: + def _validate_float_list(cls, value: str | None, _info: ValidationInfo) -> list[float] | None: return None if value is None else [float(x) for x in value.split()] @field_validator("is_slur_seq", "note_slur", "ph_num", mode="before") @classmethod - def _validate_int_list(cls, value: Optional[str], _info: ValidationInfo) -> Optional[list[int]]: + def _validate_int_list(cls, value: str | None, _info: ValidationInfo) -> list[int] | None: return None if value is None else [int(x) for x in value.split()] @field_serializer( @@ -90,7 +88,7 @@ def _validate_int_list(cls, value: Optional[str], _info: ValidationInfo) -> Opti when_used="json-unless-none", ) @classmethod - def _serialize_list(cls, value: list[Union[str, int, float]], _info: SerializationInfo) -> str: + def _serialize_list(cls, value: list[str | int | float], _info: SerializationInfo) -> str: return " ".join(str(x) for x in value) @field_serializer( @@ -104,8 +102,8 @@ def _serialize_glide(cls, value: list[GlideStyle], _info: SerializationInfo) -> @field_validator("spk_mix", mode="before") @classmethod def _validate_nested_dict( - cls, values: Optional[dict[str, str]], _info: ValidationInfo - ) -> Optional[dict[str, list[float]]]: + cls, values: dict[str, str] | None, _info: ValidationInfo + ) -> dict[str, list[float]] | None: if values is None: return None diff --git a/libresvip/plugins/ds/models/ds_param_curve.py b/libresvip/plugins/ds/models/ds_param_curve.py index 76b2cf70b..4e4f837d1 100644 --- a/libresvip/plugins/ds/models/ds_param_curve.py +++ b/libresvip/plugins/ds/models/ds_param_curve.py @@ -1,5 +1,4 @@ from dataclasses import dataclass -from typing import Optional from .ds_param_node import DsParamNode @@ -7,4 +6,4 @@ @dataclass class DsParamCurve: step_size: float = 0.005 - point_list: Optional[list[DsParamNode]] = None + point_list: list[DsParamNode] | None = None diff --git a/libresvip/plugins/ds/phoneme_dict.py b/libresvip/plugins/ds/phoneme_dict.py index 8fb9ed87c..d22080eff 100644 --- a/libresvip/plugins/ds/phoneme_dict.py +++ b/libresvip/plugins/ds/phoneme_dict.py @@ -1,7 +1,7 @@ import csv import io +from importlib.resources import files -from libresvip.core.compat import files from libresvip.utils.translation import gettext_lazy as _ diff --git a/libresvip/plugins/ds/utils/pitch_param_utils.py b/libresvip/plugins/ds/utils/pitch_param_utils.py index 65ff1f7e7..8c57b493b 100644 --- a/libresvip/plugins/ds/utils/pitch_param_utils.py +++ b/libresvip/plugins/ds/utils/pitch_param_utils.py @@ -1,5 +1,3 @@ -from typing import Optional - from libresvip.model.base import ParamCurve, Points from libresvip.model.point import Point from libresvip.utils.music_math import midi2hz @@ -18,7 +16,7 @@ def encode(cls, curve: ParamCurve, end: int, time_step: float = 0.005) -> DsPara ) @classmethod - def encode_point_list(cls, os_point_list: Points, end: int) -> Optional[list[DsParamNode]]: + def encode_point_list(cls, os_point_list: Points, end: int) -> list[DsParamNode] | None: if valid_points := [ p for p in os_point_list.root if p.x >= 1930 and p.x + 10 < end and p.y >= 0 ]: diff --git a/libresvip/plugins/dv/deepvocal_pitch.py b/libresvip/plugins/dv/deepvocal_pitch.py index c53dab551..5d8fea0d0 100644 --- a/libresvip/plugins/dv/deepvocal_pitch.py +++ b/libresvip/plugins/dv/deepvocal_pitch.py @@ -4,7 +4,7 @@ import operator from functools import singledispatch from itertools import groupby -from typing import Optional, SupportsFloat +from typing import SupportsFloat from libresvip.core.time_sync import TimeSynchronizer from libresvip.model.base import Note, ParamCurve, SongTempo @@ -44,7 +44,7 @@ class DvNoteWithPitch: def merge_points_from_segments( segments: list[DvSegmentPitchRawData], -) -> Optional[list[Point]]: +) -> list[Point] | None: points = [] for segment in segments: for dv_point in segment.data: @@ -58,7 +58,7 @@ def merge_points_from_segments( return points or None -def merge_same_tick_points(points: list[Point]) -> Optional[list[Point]]: +def merge_same_tick_points(points: list[Point]) -> list[Point] | None: merged_points = [] for tick, group in groupby(iter(points), key=operator.attrgetter("x")): group_list = list(group) @@ -77,7 +77,7 @@ def merge_same_tick_points(points: list[Point]) -> Optional[list[Point]]: return merged_points or None -def merge_same_value_points(points: list[Point]) -> Optional[list[Point]]: +def merge_same_value_points(points: list[Point]) -> list[Point] | None: merged_points = [next(group) for key, group in groupby(points, key=operator.attrgetter("y"))] return merged_points or None @@ -277,7 +277,7 @@ def pitch_from_dv_track( segments: list[DvSegmentPitchRawData], notes: list[DvNoteWithPitch], tempos: list[SongTempo], -) -> Optional[ParamCurve]: +) -> ParamCurve | None: merged_points = merge_points_from_segments(segments) if merged_points is None: return None @@ -292,7 +292,7 @@ def pitch_from_dv_track( def generate_for_dv( first_bar_length: int, pitch: ParamCurve, notes: list[Note] -) -> Optional[DvSegmentPitchRawData]: +) -> DvSegmentPitchRawData | None: if not len(pitch.points): return None data = [DvPoint(x=-1, y=-1)] diff --git a/libresvip/plugins/dv/model.py b/libresvip/plugins/dv/model.py index 78cce1af9..a3b6ff3ab 100644 --- a/libresvip/plugins/dv/model.py +++ b/libresvip/plugins/dv/model.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Union from construct import ( Byte, @@ -141,7 +140,7 @@ class DvTrackType(EnumBase): @dataclasses.dataclass class DvTrack(DataclassMixin): track_type: DvTrackType = csfield(TEnum(Int32ul, DvTrackType)) - track_data: Union[DvSingingTrack, DvAudioTrack] = csfield( + track_data: DvSingingTrack | DvAudioTrack = csfield( IfThenElse( this.track_type == DvTrackType.SINGING, DataclassStruct(DvSingingTrack), diff --git a/libresvip/plugins/gj/model.py b/libresvip/plugins/gj/model.py index df82f0c36..46679f4fd 100644 --- a/libresvip/plugins/gj/model.py +++ b/libresvip/plugins/gj/model.py @@ -1,5 +1,4 @@ from enum import Enum -from typing import Optional from pydantic import Field @@ -14,59 +13,59 @@ class GjgjBeatStyle(Enum): class GjgjBeatItems(BaseModel): - id_value: Optional[int] = Field(alias="ID") + id_value: int | None = Field(alias="ID") lyric: str = Field(alias="Lyric") pinyin: str = Field(alias="Pinyin") start_tick: int = Field(alias="StartTick") duration: int = Field(alias="Duration") - track: Optional[int] = Field(alias="Track") + track: int | None = Field(alias="Track") pre_time: float = Field(0.0, alias="PreTime") post_time: float = Field(0.0, alias="PostTime") - style: Optional[GjgjBeatStyle] = Field(alias="Style") - velocity: Optional[int] = Field(127, alias="Velocity") + style: GjgjBeatStyle | None = Field(alias="Style") + velocity: int | None = Field(127, alias="Velocity") class GjgjKeyboard(BaseModel): - key_mode: Optional[int] = Field(1, alias="KeyMode") - key_type: Optional[int] = Field(0, alias="KeyType") + key_mode: int | None = Field(1, alias="KeyMode") + key_type: int | None = Field(0, alias="KeyType") class GjgjTrackVolume(BaseModel): - volume: Optional[float] = Field(1.0, alias="Volume") - left_volume: Optional[float] = Field(1.0, alias="LeftVolume") - right_volume: Optional[float] = Field(1.0, alias="RightVolume") + volume: float | None = Field(1.0, alias="Volume") + left_volume: float | None = Field(1.0, alias="LeftVolume") + right_volume: float | None = Field(1.0, alias="RightVolume") mute: bool = Field(False, alias="Mute") class GjgjProjectSetting(BaseModel): - no1_key_name: Optional[str] = Field("C", alias="No1KeyName") - eq_after_mix: Optional[str] = Field("", alias="EQAfterMix") - project_type: Optional[int] = Field(0, alias="ProjectType") - denominator: Optional[int] = Field(4, alias="Denominator") - syn_mode: Optional[int] = Field(0, alias="SynMode") + no1_key_name: str | None = Field("C", alias="No1KeyName") + eq_after_mix: str | None = Field("", alias="EQAfterMix") + project_type: int | None = Field(0, alias="ProjectType") + denominator: int | None = Field(4, alias="Denominator") + syn_mode: int | None = Field(0, alias="SynMode") class GjgjSingerInfo(BaseModel): name: str = Field("", alias="Name") display_name: str = Field("", alias="DisplayName") - template_id: Optional[str] = Field("", alias="TemplateID") - sex: Optional[str] = Field("", alias="Sex") - age: Optional[int] = Field(100, alias="Age") - color: Optional[int] = Field(0, alias="Color") - user_id: Optional[str] = Field("", alias="UserID") - up_pitch: Optional[int] = Field(0, alias="UpPitch") - low_pitch: Optional[int] = Field(0, alias="LowPitch") - recommend_up_pitch: Optional[int] = Field(0, alias="RecommandUpPitch") - recommend_low_pitch: Optional[int] = Field(0, alias="RecommandLowPitch") - image: Optional[str] = "" - image_url: Optional[str] = "" - full_avatar: Optional[str] = "" - synthesize_file: Optional[str] = Field("", alias="synthetize_file") + template_id: str | None = Field("", alias="TemplateID") + sex: str | None = Field("", alias="Sex") + age: int | None = Field(100, alias="Age") + color: int | None = Field(0, alias="Color") + user_id: str | None = Field("", alias="UserID") + up_pitch: int | None = Field(0, alias="UpPitch") + low_pitch: int | None = Field(0, alias="LowPitch") + recommend_up_pitch: int | None = Field(0, alias="RecommandUpPitch") + recommend_low_pitch: int | None = Field(0, alias="RecommandLowPitch") + image: str | None = "" + image_url: str | None = "" + full_avatar: str | None = "" + synthesize_file: str | None = Field("", alias="synthetize_file") class GjgjTempos(BaseModel): - time: Optional[int] = Field(alias="Time") - microseconds_per_quarter_note: Optional[int] = Field(alias="MicrosecondsPerQuarterNote") + time: int | None = Field(alias="Time") + microseconds_per_quarter_note: int | None = Field(alias="MicrosecondsPerQuarterNote") class GjgjTimeSignature(BaseModel): @@ -97,48 +96,48 @@ class GjgjVolumeMap(BaseModel): class GjgjSingingTrack(BaseModel): - id_value: Optional[str] = Field(None, alias="ID") - type_: Optional[int] = Field(0, alias="Type") - name: Optional[str] = Field(None, alias="Name") + id_value: str | None = Field(None, alias="ID") + type_: int | None = Field(0, alias="Type") + name: str | None = Field(None, alias="Name") beat_items: list[GjgjBeatItems] = Field(default_factory=list, alias="BeatItems") tone: GjgjTone = Field(default_factory=GjgjTone, alias="Tone") volume_map: list[GjgjVolumeMap] = Field(default_factory=list, alias="VolumeMap") singer_info: GjgjSingerInfo = Field(default_factory=GjgjSingerInfo, alias="SingerInfo") - keyboard: Optional[GjgjKeyboard] = Field(default_factory=GjgjKeyboard, alias="Keyboard") - master_volume: Optional[GjgjTrackVolume] = Field(None, alias="MasterVolume") - eq_program: Optional[str] = Field("无", alias="EQProgram") - sort_index: Optional[int] = Field(0, alias="SortIndex") + keyboard: GjgjKeyboard | None = Field(default_factory=GjgjKeyboard, alias="Keyboard") + master_volume: GjgjTrackVolume | None = Field(None, alias="MasterVolume") + eq_program: str | None = Field("无", alias="EQProgram") + sort_index: int | None = Field(0, alias="SortIndex") class GjgjInstrumentalTrack(BaseModel): - id_value: Optional[str] = Field(None, alias="ID") - type_: Optional[int] = Field(1, alias="Type") - path: Optional[str] = Field(None, alias="Path") + id_value: str | None = Field(None, alias="ID") + type_: int | None = Field(1, alias="Type") + path: str | None = Field(None, alias="Path") offset: int = Field(alias="Offset") - master_volume: Optional[GjgjTrackVolume] = Field(None, alias="MasterVolume") - eq_program: Optional[str] = Field("", alias="EQProgram") - sort_index: Optional[int] = Field(0, alias="SortIndex") + master_volume: GjgjTrackVolume | None = Field(None, alias="MasterVolume") + eq_program: str | None = Field("", alias="EQProgram") + sort_index: int | None = Field(0, alias="SortIndex") class GjgjMidiControl(BaseModel): - control_num: Optional[int] = Field(None, alias="ControlNum") + control_num: int | None = Field(None, alias="ControlNum") volume_map: list[GjgjVolumeMap] = Field(default_factory=list, alias="VolumeMap") class GjgjMidiTrack(BaseModel): - id_value: Optional[str] = Field(None, alias="ID") - type_: Optional[int] = Field(2, alias="Type") - sort_index: Optional[int] = Field(None, alias="SortIndex") - bank: Optional[int] = Field(None, alias="Bank") - program: Optional[int] = Field(None, alias="Program") - channel: Optional[int] = Field(None, alias="Channel") + id_value: str | None = Field(None, alias="ID") + type_: int | None = Field(2, alias="Type") + sort_index: int | None = Field(None, alias="SortIndex") + bank: int | None = Field(None, alias="Bank") + program: int | None = Field(None, alias="Program") + channel: int | None = Field(None, alias="Channel") beat_items: list[GjgjBeatItems] = Field(default_factory=list, alias="BeatItems") control_map: list[GjgjMidiControl] = Field(default_factory=list, alias="ControlMap") class GjgjProject(BaseModel): - gjgj_version: Optional[int] = Field(2, alias="gjgjVersion") - project_setting: Optional[GjgjProjectSetting] = Field( + gjgj_version: int | None = Field(2, alias="gjgjVersion") + project_setting: GjgjProjectSetting | None = Field( default_factory=GjgjProjectSetting, alias="ProjectSetting" ) accompaniments: list[GjgjInstrumentalTrack] = Field( diff --git a/libresvip/plugins/lrc/model.py b/libresvip/plugins/lrc/model.py index 38992c842..dc3c32a1b 100644 --- a/libresvip/plugins/lrc/model.py +++ b/libresvip/plugins/lrc/model.py @@ -1,5 +1,4 @@ from functools import partial -from typing import Optional from libresvip.model.base import BaseModel @@ -12,7 +11,7 @@ class TimeTag(BaseModel): class LyricLine(BaseModel): time_tags: list[TimeTag] - lyric: Optional[str] = None + lyric: str | None = None class InfoTag(BaseModel): diff --git a/libresvip/plugins/mid/midi_pitch.py b/libresvip/plugins/mid/midi_pitch.py index 9f6a5da73..f36e00bbb 100644 --- a/libresvip/plugins/mid/midi_pitch.py +++ b/libresvip/plugins/mid/midi_pitch.py @@ -1,6 +1,6 @@ import math from dataclasses import dataclass -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING from libresvip.core.constants import ( DEFAULT_PITCH_BEND_SENSITIVITY, @@ -36,7 +36,7 @@ def generate_for_midi( pitch: ParamCurve, notes: list[Note], synchronizer: TimeSynchronizer, -) -> Optional[MIDIPitchData]: +) -> MIDIPitchData | None: pitch_simulator = PitchSimulator( synchronizer=synchronizer, portamento=PortamentoPitch.no_portamento(), diff --git a/libresvip/plugins/mtp/model.py b/libresvip/plugins/mtp/model.py index 2813bc091..7f1709eab 100644 --- a/libresvip/plugins/mtp/model.py +++ b/libresvip/plugins/mtp/model.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from construct import ( Byte, @@ -159,19 +158,19 @@ class MutaTrack(DataclassMixin): pan: int = csfield(Int32ul) name: str = csfield(PaddedString(12, "utf-16-le")) padding: bytes = csfield(Bytes(52)) - talk_track_data: Optional[list[MutaTalkTrackData]] = csfield( + talk_track_data: list[MutaTalkTrackData] | None = csfield( If( this.track_type == MutaTrackType.TALK, DataclassStruct(MutaTalkTrackData)[this.seq_count], ) ) - audio_track_data: Optional[list[MutaAudioTrackData]] = csfield( + audio_track_data: list[MutaAudioTrackData] | None = csfield( If( this.track_type == MutaTrackType.AUDIO, DataclassStruct(MutaAudioTrackData)[this.seq_count], ), ) - song_track_data: Optional[list[MutaSongTrackData]] = csfield( + song_track_data: list[MutaSongTrackData] | None = csfield( If( this.track_type == MutaTrackType.SONG, DataclassStruct(MutaSongTrackData)[this.seq_count], diff --git a/libresvip/plugins/mtp/muta_parser.py b/libresvip/plugins/mtp/muta_parser.py index 9652f4a12..60de3a536 100644 --- a/libresvip/plugins/mtp/muta_parser.py +++ b/libresvip/plugins/mtp/muta_parser.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.tick_counter import skip_beat_list from libresvip.model.base import ( @@ -91,7 +90,7 @@ def parse_singing_tracks(self, muta_singing_tracks: list[MutaTrack]) -> list[Sin track_list.append(singing_track) return track_list - def parse_pitch(self, muta_pitch: list[MutaPoint], tick_offset: int) -> Optional[ParamCurve]: + def parse_pitch(self, muta_pitch: list[MutaPoint], tick_offset: int) -> ParamCurve | None: pitch_points = [Point.start_point()] pitch_points.extend( Point( diff --git a/libresvip/plugins/musicxml/model.py b/libresvip/plugins/musicxml/model.py index fbf22cae8..7ba122b6a 100644 --- a/libresvip/plugins/musicxml/model.py +++ b/libresvip/plugins/musicxml/model.py @@ -2,7 +2,7 @@ import enum from dataclasses import dataclass -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING if TYPE_CHECKING: from libresvip.model.base import Note, SongTempo, TimeSignature @@ -11,10 +11,10 @@ @dataclass class KeyTick: tick: int - tempo: Optional[SongTempo] = None - note_start: Optional[Note] = None - note_end: Optional[Note] = None - track_index: Optional[int] = None + tempo: SongTempo | None = None + note_start: Note | None = None + note_end: Note | None = None + track_index: int | None = None @dataclass @@ -26,9 +26,9 @@ class NoteType(enum.IntEnum): SINGLE = 4 duration: int - note: Optional[Note] - note_type: Optional[NoteType] - bpm: Optional[float] = None + note: Note | None + note_type: NoteType | None + bpm: float | None = None @classmethod def with_tempo(cls, bpm: float) -> MXmlMeasureContent: @@ -47,5 +47,5 @@ def with_note(cls, duration: int, note: Note, note_type: NoteType) -> MXmlMeasur class MXmlMeasure: tick_start: int length: int - time_signature: Optional[TimeSignature] = None - contents: Optional[list[MXmlMeasureContent]] = None + time_signature: TimeSignature | None = None + contents: list[MXmlMeasureContent] | None = None diff --git a/libresvip/plugins/musicxml/models/container.py b/libresvip/plugins/musicxml/models/container.py index b588b03e3..9c3258d4d 100644 --- a/libresvip/plugins/musicxml/models/container.py +++ b/libresvip/plugins/musicxml/models/container.py @@ -1,5 +1,3 @@ -from typing import Optional - from pydantic import BaseModel, ConfigDict from xsdata_pydantic.fields import field @@ -29,7 +27,7 @@ class Meta: "required": True, } ) - media_type: Optional[str] = field( + media_type: str | None = field( default=None, metadata={ "name": "media-type", diff --git a/libresvip/plugins/musicxml/models/mxml4.py b/libresvip/plugins/musicxml/models/mxml4.py index bc74806fe..8441a3d1b 100644 --- a/libresvip/plugins/musicxml/models/mxml4.py +++ b/libresvip/plugins/musicxml/models/mxml4.py @@ -1,5 +1,4 @@ from decimal import Decimal -from typing import Optional, Union from pydantic import BaseModel, ConfigDict from xsdata_pydantic.fields import field @@ -125,19 +124,19 @@ class Meta: "required": True, } ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - element: Optional[str] = field( + element: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - position: Optional[int] = field( + position: int | None = field( default=None, metadata={ "type": "Attribute", @@ -182,7 +181,7 @@ class Meta: "required": True, }, ) - type_value: Optional[str] = field( + type_value: str | None = field( default=None, metadata={ "name": "type", @@ -242,7 +241,7 @@ class Meta: name = "measure-layout" model_config = ConfigDict(defer_build=True) - measure_distance: Optional[Decimal] = field( + measure_distance: Decimal | None = field( default=None, metadata={ "name": "measure-distance", @@ -262,7 +261,7 @@ class Meta: "required": True, }, ) - port: Optional[int] = field( + port: int | None = field( default=None, metadata={ "type": "Attribute", @@ -270,7 +269,7 @@ class Meta: "max_inclusive": 16, }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -283,7 +282,7 @@ class Meta: name = "midi-instrument" model_config = ConfigDict(defer_build=True) - midi_channel: Optional[int] = field( + midi_channel: int | None = field( default=None, metadata={ "name": "midi-channel", @@ -292,14 +291,14 @@ class Meta: "max_inclusive": 16, }, ) - midi_name: Optional[str] = field( + midi_name: str | None = field( default=None, metadata={ "name": "midi-name", "type": "Element", }, ) - midi_bank: Optional[int] = field( + midi_bank: int | None = field( default=None, metadata={ "name": "midi-bank", @@ -308,7 +307,7 @@ class Meta: "max_inclusive": 16384, }, ) - midi_program: Optional[int] = field( + midi_program: int | None = field( default=None, metadata={ "name": "midi-program", @@ -317,7 +316,7 @@ class Meta: "max_inclusive": 128, }, ) - midi_unpitched: Optional[int] = field( + midi_unpitched: int | None = field( default=None, metadata={ "name": "midi-unpitched", @@ -326,7 +325,7 @@ class Meta: "max_inclusive": 128, }, ) - volume: Optional[Decimal] = field( + volume: Decimal | None = field( default=None, metadata={ "type": "Element", @@ -334,7 +333,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - pan: Optional[Decimal] = field( + pan: Decimal | None = field( default=None, metadata={ "type": "Element", @@ -342,7 +341,7 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - elevation: Optional[Decimal] = field( + elevation: Decimal | None = field( default=None, metadata={ "type": "Element", @@ -415,13 +414,13 @@ class Meta: "required": True, } ) - player: Optional[str] = field( + player: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -462,7 +461,7 @@ class Meta: "required": True, }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -514,14 +513,14 @@ class Meta: name = "staff-layout" model_config = ConfigDict(defer_build=True) - staff_distance: Optional[Decimal] = field( + staff_distance: Decimal | None = field( default=None, metadata={ "name": "staff-distance", "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -540,7 +539,7 @@ class Meta: "min_inclusive": Decimal("0"), } ) - scaling: Optional[Decimal] = field( + scaling: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -575,7 +574,7 @@ class Meta: name = "timpani" model_config = ConfigDict(defer_build=True) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -595,7 +594,7 @@ class Meta: "required": True, }, ) - type_value: Optional[str] = field( + type_value: str | None = field( default=None, metadata={ "name": "type", @@ -609,14 +608,14 @@ class Meta: name = "virtual-instrument" model_config = ConfigDict(defer_build=True) - virtual_library: Optional[str] = field( + virtual_library: str | None = field( default=None, metadata={ "name": "virtual-library", "type": "Element", }, ) - virtual_name: Optional[str] = field( + virtual_name: str | None = field( default=None, metadata={ "name": "virtual-name", @@ -630,13 +629,13 @@ class Meta: name = "wait" model_config = ConfigDict(defer_build=True) - player: Optional[str] = field( + player: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -656,65 +655,65 @@ class Meta: "required": True, } ) - cautionary: Optional[YesNo] = field( + cautionary: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - editorial: Optional[YesNo] = field( + editorial: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - bracket: Optional[YesNo] = field( + bracket: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - size: Optional[SymbolSize] = field( + size: SymbolSize | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -722,35 +721,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -769,53 +768,53 @@ class Meta: "required": True, } ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - bracket: Optional[YesNo] = field( + bracket: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - size: Optional[SymbolSize] = field( + size: SymbolSize | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -823,48 +822,48 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"(acc|medRenFla|medRenNatura|medRenShar|kievanAccidental)(\c+)", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -882,41 +881,41 @@ class Meta: "required": True, } ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -924,47 +923,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -972,7 +971,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -980,7 +979,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -989,7 +988,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -997,47 +996,47 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - line_height: Optional[Union[Decimal, NumberOrNormalValue]] = field( + line_height: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "line-height", "type": "Attribute", }, ) - lang: Optional[Union[str, LangValue]] = field( + lang: str | LangValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - space: Optional[SpaceValue] = field( + space: SpaceValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1058,7 +1057,7 @@ class Meta: "required": True, } ) - tuning_alter: Optional[Decimal] = field( + tuning_alter: Decimal | None = field( default=None, metadata={ "name": "tuning-alter", @@ -1074,7 +1073,7 @@ class Meta: "max_inclusive": 9, } ) - string: Optional[int] = field( + string: int | None = field( default=None, metadata={ "type": "Attribute", @@ -1087,14 +1086,14 @@ class Meta: name = "accordion-registration" model_config = ConfigDict(defer_build=True) - accordion_high: Optional[Empty] = field( + accordion_high: Empty | None = field( default=None, metadata={ "name": "accordion-high", "type": "Element", }, ) - accordion_middle: Optional[int] = field( + accordion_middle: int | None = field( default=None, metadata={ "name": "accordion-middle", @@ -1103,42 +1102,42 @@ class Meta: "max_inclusive": 3, }, ) - accordion_low: Optional[Empty] = field( + accordion_low: Empty | None = field( default=None, metadata={ "name": "accordion-low", "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -1146,47 +1145,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1199,7 +1198,7 @@ class Meta: name = "arpeggiate" model_config = ConfigDict(defer_build=True) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -1207,60 +1206,60 @@ class Meta: "max_inclusive": 16, }, ) - direction: Optional[UpDown] = field( + direction: UpDown | None = field( default=None, metadata={ "type": "Attribute", }, ) - unbroken: Optional[YesNo] = field( + unbroken: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1273,62 +1272,62 @@ class Meta: name = "arrow" model_config = ConfigDict(defer_build=True) - arrow_direction: Optional[ArrowDirection] = field( + arrow_direction: ArrowDirection | None = field( default=None, metadata={ "name": "arrow-direction", "type": "Element", }, ) - arrow_style: Optional[ArrowStyle] = field( + arrow_style: ArrowStyle | None = field( default=None, metadata={ "name": "arrow-style", "type": "Element", }, ) - arrowhead: Optional[Empty] = field( + arrowhead: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - circular_arrow: Optional[CircularArrow] = field( + circular_arrow: CircularArrow | None = field( default=None, metadata={ "name": "circular-arrow", "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -1336,41 +1335,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1390,13 +1389,13 @@ class Meta: "required": True, } ) - player: Optional[str] = field( + player: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -1416,7 +1415,7 @@ class Meta: "required": True, } ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1437,7 +1436,7 @@ class Meta: "required": True, } ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1456,41 +1455,41 @@ class Meta: "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -1498,28 +1497,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1546,26 +1545,26 @@ class Meta: "max_inclusive": 8, }, ) - repeater: Optional[YesNo] = field( + repeater: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - fan: Optional[Fan] = field( + fan: Fan | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1578,7 +1577,7 @@ class Meta: name = "beat-repeat" model_config = ConfigDict(defer_build=True) - slash_type: Optional[NoteTypeValue] = field( + slash_type: NoteTypeValue | None = field( default=None, metadata={ "name": "slash-type", @@ -1606,13 +1605,13 @@ class Meta: "required": True, } ) - slashes: Optional[int] = field( + slashes: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - use_dots: Optional[YesNo] = field( + use_dots: YesNo | None = field( default=None, metadata={ "name": "use-dots", @@ -1652,7 +1651,7 @@ class Meta: "required": True, } ) - tip: Optional[TipDirection] = field( + tip: TipDirection | None = field( default=None, metadata={ "type": "Attribute", @@ -1672,7 +1671,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -1687,70 +1686,70 @@ class Meta: "required": True, } ) - end_length: Optional[Decimal] = field( + end_length: Decimal | None = field( default=None, metadata={ "name": "end-length", "type": "Attribute", }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -1768,35 +1767,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -1804,35 +1803,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -1850,35 +1849,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -1886,35 +1885,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -1932,7 +1931,7 @@ class Meta: "required": True, } ) - location: Optional[CancelLocation] = field( + location: CancelLocation | None = field( default=None, metadata={ "type": "Attribute", @@ -1951,73 +1950,73 @@ class Meta: "required": True, } ) - line: Optional[int] = field( + line: int | None = field( default=None, metadata={ "type": "Element", }, ) - clef_octave_change: Optional[int] = field( + clef_octave_change: int | None = field( default=None, metadata={ "name": "clef-octave-change", "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - additional: Optional[YesNo] = field( + additional: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - size: Optional[SymbolSize] = field( + size: SymbolSize | None = field( default=None, metadata={ "type": "Attribute", }, ) - after_barline: Optional[YesNo] = field( + after_barline: YesNo | None = field( default=None, metadata={ "name": "after-barline", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2025,42 +2024,42 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2073,35 +2072,35 @@ class Meta: name = "coda" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2109,53 +2108,53 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2176,7 +2175,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -2184,56 +2183,56 @@ class Meta: "max_inclusive": 16, }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2251,35 +2250,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2287,35 +2286,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - plus_minus: Optional[YesNo] = field( + plus_minus: YesNo | None = field( default=None, metadata={ "name": "plus-minus", @@ -2334,41 +2333,41 @@ class Meta: "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2376,28 +2375,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2416,47 +2415,47 @@ class Meta: "required": True, } ) - symbol: Optional[DegreeSymbolValue] = field( + symbol: DegreeSymbolValue | None = field( default=None, metadata={ "type": "Attribute", }, ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2464,28 +2463,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2499,7 +2498,7 @@ class Meta: name = "double" model_config = ConfigDict(defer_build=True) - above: Optional[YesNo] = field( + above: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -2675,35 +2674,35 @@ class Meta: "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2711,53 +2710,53 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -2765,7 +2764,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -2773,7 +2772,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -2782,13 +2781,13 @@ class Meta: "max_inclusive": 3, }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2806,7 +2805,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2826,7 +2825,7 @@ class Meta: "required": True, }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2834,35 +2833,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -2876,7 +2875,7 @@ class Meta: name = "empty-font" model_config = ConfigDict(defer_build=True) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2884,21 +2883,21 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", @@ -2912,70 +2911,70 @@ class Meta: name = "empty-line" model_config = ConfigDict(defer_build=True) - line_shape: Optional[LineShape] = field( + line_shape: LineShape | None = field( default=None, metadata={ "name": "line-shape", "type": "Attribute", }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - line_length: Optional[LineLength] = field( + line_length: LineLength | None = field( default=None, metadata={ "name": "line-length", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -2983,35 +2982,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -3024,35 +3023,35 @@ class Meta: name = "empty-placement" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3060,35 +3059,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -3101,35 +3100,35 @@ class Meta: name = "empty-placement-smufl" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3137,41 +3136,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -3184,42 +3183,42 @@ class Meta: name = "empty-print-object-style-align" model_config = ConfigDict(defer_build=True) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3227,41 +3226,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", @@ -3274,35 +3273,35 @@ class Meta: name = "empty-print-style" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3310,28 +3309,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -3345,35 +3344,35 @@ class Meta: name = "empty-print-style-align" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3381,41 +3380,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", @@ -3428,35 +3427,35 @@ class Meta: name = "empty-print-style-align-id" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3464,47 +3463,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -3517,35 +3516,35 @@ class Meta: name = "empty-trill-sound" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3553,75 +3552,75 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - start_note: Optional[StartNote] = field( + start_note: StartNote | None = field( default=None, metadata={ "name": "start-note", "type": "Attribute", }, ) - trill_step: Optional[TrillStep] = field( + trill_step: TrillStep | None = field( default=None, metadata={ "name": "trill-step", "type": "Attribute", }, ) - two_note_turn: Optional[TwoNoteTurn] = field( + two_note_turn: TwoNoteTurn | None = field( default=None, metadata={ "name": "two-note-turn", "type": "Attribute", }, ) - accelerate: Optional[YesNo] = field( + accelerate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - beats: Optional[Decimal] = field( + beats: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("2"), }, ) - second_beat: Optional[Decimal] = field( + second_beat: Decimal | None = field( default=None, metadata={ "name": "second-beat", @@ -3630,7 +3629,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - last_beat: Optional[Decimal] = field( + last_beat: Decimal | None = field( default=None, metadata={ "name": "last-beat", @@ -3666,42 +3665,42 @@ class Meta: "required": True, } ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3709,55 +3708,55 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - system: Optional[SystemRelation] = field( + system: SystemRelation | None = field( default=None, metadata={ "type": "Attribute", }, ) - end_length: Optional[Decimal] = field( + end_length: Decimal | None = field( default=None, metadata={ "name": "end-length", "type": "Attribute", }, ) - text_x: Optional[Decimal] = field( + text_x: Decimal | None = field( default=None, metadata={ "name": "text-x", "type": "Attribute", }, ) - text_y: Optional[Decimal] = field( + text_y: Decimal | None = field( default=None, metadata={ "name": "text-y", @@ -3771,42 +3770,42 @@ class Meta: name = "extend" model_config = ConfigDict(defer_build=True) - type_value: Optional[StartStopContinue] = field( + type_value: StartStopContinue | None = field( default=None, metadata={ "name": "type", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -3825,42 +3824,42 @@ class Meta: "required": True, } ) - type_value: Optional[UprightInverted] = field( + type_value: UprightInverted | None = field( default=None, metadata={ "name": "type", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3868,35 +3867,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -3915,47 +3914,47 @@ class Meta: "required": True, }, ) - substitution: Optional[YesNo] = field( + substitution: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - alternate: Optional[YesNo] = field( + alternate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -3963,35 +3962,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -4009,13 +4008,13 @@ class Meta: "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - location: Optional[LeftRight] = field( + location: LeftRight | None = field( default=None, metadata={ "type": "Attribute", @@ -4034,41 +4033,41 @@ class Meta: "required": True, }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4076,47 +4075,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4124,7 +4123,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4132,7 +4131,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -4141,7 +4140,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -4149,27 +4148,27 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - line_height: Optional[Union[Decimal, NumberOrNormalValue]] = field( + line_height: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "line-height", "type": "Attribute", }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", @@ -4188,41 +4187,41 @@ class Meta: "required": True, }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4230,47 +4229,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4278,7 +4277,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4286,7 +4285,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -4295,7 +4294,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -4303,33 +4302,33 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - line_height: Optional[Union[Decimal, NumberOrNormalValue]] = field( + line_height: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "line-height", "type": "Attribute", }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4348,41 +4347,41 @@ class Meta: "required": True, }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4390,47 +4389,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4438,7 +4437,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4446,7 +4445,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -4455,7 +4454,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -4463,41 +4462,41 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - line_height: Optional[Union[Decimal, NumberOrNormalValue]] = field( + line_height: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "line-height", "type": "Attribute", }, ) - lang: Optional[Union[str, LangValue]] = field( + lang: str | LangValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - space: Optional[SpaceValue] = field( + space: SpaceValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", @@ -4516,41 +4515,41 @@ class Meta: "required": True, }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4558,47 +4557,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4606,7 +4605,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -4614,7 +4613,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -4623,7 +4622,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -4631,47 +4630,47 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - line_height: Optional[Union[Decimal, NumberOrNormalValue]] = field( + line_height: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "line-height", "type": "Attribute", }, ) - lang: Optional[Union[str, LangValue]] = field( + lang: str | LangValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - space: Optional[SpaceValue] = field( + space: SpaceValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4689,7 +4688,7 @@ class Meta: "required": True, } ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4697,28 +4696,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4737,7 +4736,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4772,56 +4771,56 @@ class Meta: "max_inclusive": 16, }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4829,35 +4828,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4870,7 +4869,7 @@ class Meta: name = "grace" model_config = ConfigDict(defer_build=True) - steal_time_previous: Optional[Decimal] = field( + steal_time_previous: Decimal | None = field( default=None, metadata={ "name": "steal-time-previous", @@ -4879,7 +4878,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - steal_time_following: Optional[Decimal] = field( + steal_time_following: Decimal | None = field( default=None, metadata={ "name": "steal-time-following", @@ -4888,14 +4887,14 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - make_time: Optional[Decimal] = field( + make_time: Decimal | None = field( default=None, metadata={ "name": "make-time", "type": "Attribute", }, ) - slash: Optional[YesNo] = field( + slash: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -4913,7 +4912,7 @@ class Meta: "required": True, } ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -4933,35 +4932,35 @@ class Meta: "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -4969,35 +4968,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", @@ -5015,35 +5014,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -5076,14 +5075,14 @@ class Meta: "type": "Attribute", }, ) - member_of: Optional[str] = field( + member_of: str | None = field( default=None, metadata={ "name": "member-of", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -5117,35 +5116,35 @@ class Meta: "max_inclusive": 16, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5153,35 +5152,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -5199,35 +5198,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5235,35 +5234,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -5281,7 +5280,7 @@ class Meta: "required": True, } ) - location: Optional[HarmonClosedLocation] = field( + location: HarmonClosedLocation | None = field( default=None, metadata={ "type": "Attribute", @@ -5294,75 +5293,75 @@ class Meta: name = "harmonic" model_config = ConfigDict(defer_build=True) - natural: Optional[Empty] = field( + natural: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - artificial: Optional[Empty] = field( + artificial: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - base_pitch: Optional[Empty] = field( + base_pitch: Empty | None = field( default=None, metadata={ "name": "base-pitch", "type": "Element", }, ) - touching_pitch: Optional[Empty] = field( + touching_pitch: Empty | None = field( default=None, metadata={ "name": "touching-pitch", "type": "Element", }, ) - sounding_pitch: Optional[Empty] = field( + sounding_pitch: Empty | None = field( default=None, metadata={ "name": "sounding-pitch", "type": "Element", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5370,35 +5369,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -5416,42 +5415,42 @@ class Meta: "required": True, } ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5459,35 +5458,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - location: Optional[LeftRight] = field( + location: LeftRight | None = field( default=None, metadata={ "type": "Attribute", @@ -5505,7 +5504,7 @@ class Meta: "required": True, } ) - location: Optional[HoleClosedLocation] = field( + location: HoleClosedLocation | None = field( default=None, metadata={ "type": "Attribute", @@ -5518,35 +5517,35 @@ class Meta: name = "horizontal-turn" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5554,75 +5553,75 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - start_note: Optional[StartNote] = field( + start_note: StartNote | None = field( default=None, metadata={ "name": "start-note", "type": "Attribute", }, ) - trill_step: Optional[TrillStep] = field( + trill_step: TrillStep | None = field( default=None, metadata={ "name": "trill-step", "type": "Attribute", }, ) - two_note_turn: Optional[TwoNoteTurn] = field( + two_note_turn: TwoNoteTurn | None = field( default=None, metadata={ "name": "two-note-turn", "type": "Attribute", }, ) - accelerate: Optional[YesNo] = field( + accelerate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - beats: Optional[Decimal] = field( + beats: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("2"), }, ) - second_beat: Optional[Decimal] = field( + second_beat: Decimal | None = field( default=None, metadata={ "name": "second-beat", @@ -5631,7 +5630,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - last_beat: Optional[Decimal] = field( + last_beat: Decimal | None = field( default=None, metadata={ "name": "last-beat", @@ -5640,7 +5639,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - slash: Optional[YesNo] = field( + slash: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -5666,59 +5665,59 @@ class Meta: "required": True, } ) - height: Optional[Decimal] = field( + height: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - width: Optional[Decimal] = field( + width: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[ValignImage] = field( + valign: ValignImage | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -5731,26 +5730,26 @@ class Meta: name = "instrument-change" model_config = ConfigDict(defer_build=True) - instrument_sound: Optional[str] = field( + instrument_sound: str | None = field( default=None, metadata={ "name": "instrument-sound", "type": "Element", }, ) - solo: Optional[Empty] = field( + solo: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - ensemble: Optional[Union[int, PositiveIntegerOrEmptyValue]] = field( + ensemble: int | PositiveIntegerOrEmptyValue | None = field( default=None, metadata={ "type": "Element", }, ) - virtual_instrument: Optional[VirtualInstrument] = field( + virtual_instrument: VirtualInstrument | None = field( default=None, metadata={ "name": "virtual-instrument", @@ -5770,7 +5769,7 @@ class Meta: name = "interchangeable" model_config = ConfigDict(defer_build=True) - time_relation: Optional[TimeRelation] = field( + time_relation: TimeRelation | None = field( default=None, metadata={ "name": "time-relation", @@ -5792,13 +5791,13 @@ class Meta: "min_occurs": 1, }, ) - symbol: Optional[TimeSymbol] = field( + symbol: TimeSymbol | None = field( default=None, metadata={ "type": "Attribute", }, ) - separator: Optional[TimeSeparator] = field( + separator: TimeSeparator | None = field( default=None, metadata={ "type": "Attribute", @@ -5816,41 +5815,41 @@ class Meta: "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -5858,28 +5857,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -5898,7 +5897,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -5925,7 +5924,7 @@ class Meta: "required": True, } ) - cancel: Optional[YesNo] = field( + cancel: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -5943,69 +5942,69 @@ class Meta: "required": True, } ) - use_symbols: Optional[YesNo] = field( + use_symbols: YesNo | None = field( default=None, metadata={ "name": "use-symbols", "type": "Attribute", }, ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - stack_degrees: Optional[YesNo] = field( + stack_degrees: YesNo | None = field( default=None, metadata={ "name": "stack-degrees", "type": "Attribute", }, ) - parentheses_degrees: Optional[YesNo] = field( + parentheses_degrees: YesNo | None = field( default=None, metadata={ "name": "parentheses-degrees", "type": "Attribute", }, ) - bracket_degrees: Optional[YesNo] = field( + bracket_degrees: YesNo | None = field( default=None, metadata={ "name": "bracket-degrees", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6013,41 +6012,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", @@ -6066,32 +6065,32 @@ class Meta: "required": True, }, ) - reference: Optional[YesNo] = field( + reference: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - type_value: Optional[StartStopSingle] = field( + type_value: StartStopSingle | None = field( default=None, metadata={ "name": "type", "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - bracket: Optional[YesNo] = field( + bracket: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - size: Optional[SymbolSize] = field( + size: SymbolSize | None = field( default=None, metadata={ "type": "Attribute", @@ -6110,27 +6109,27 @@ class Meta: "required": True, } ) - width: Optional[Decimal] = field( + width: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", @@ -6160,14 +6159,14 @@ class Meta: "namespace": XLINK_NS, }, ) - role: Optional[str] = field( + role: str | None = field( default=None, metadata={ "type": "Attribute", "namespace": XLINK_NS, }, ) - title: Optional[str] = field( + title: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6188,46 +6187,46 @@ class Meta: "namespace": XLINK_NS, }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - element: Optional[str] = field( + element: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - position: Optional[int] = field( + position: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", @@ -6241,19 +6240,19 @@ class Meta: name = "lyric-font" model_config = ConfigDict(defer_build=True) - number: Optional[str] = field( + number: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6261,21 +6260,21 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", @@ -6289,19 +6288,19 @@ class Meta: name = "lyric-language" model_config = ConfigDict(defer_build=True) - number: Optional[str] = field( + number: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - lang: Union[str, LangValue] = field( + lang: str | LangValue = field( metadata={ "type": "Attribute", "namespace": XML_NS, @@ -6320,61 +6319,61 @@ class Meta: "required": True, } ) - system: Optional[SystemRelationNumber] = field( + system: SystemRelationNumber | None = field( default=None, metadata={ "type": "Attribute", }, ) - staff: Optional[int] = field( + staff: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - multiple_rest_always: Optional[YesNo] = field( + multiple_rest_always: YesNo | None = field( default=None, metadata={ "name": "multiple-rest-always", "type": "Attribute", }, ) - multiple_rest_range: Optional[YesNo] = field( + multiple_rest_range: YesNo | None = field( default=None, metadata={ "name": "multiple-rest-range", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6382,41 +6381,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", @@ -6429,7 +6428,7 @@ class Meta: name = "measure-repeat" model_config = ConfigDict(defer_build=True) - value: Union[int, PositiveIntegerOrEmptyValue] = field() + value: int | PositiveIntegerOrEmptyValue = field() type_value: StartStop = field( metadata={ "name": "type", @@ -6437,7 +6436,7 @@ class Meta: "required": True, } ) - slashes: Optional[int] = field( + slashes: int | None = field( default=None, metadata={ "type": "Attribute", @@ -6455,7 +6454,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6474,7 +6473,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6541,7 +6540,7 @@ class Meta: "required": True, } ) - use_symbols: Optional[YesNo] = field( + use_symbols: YesNo | None = field( default=None, metadata={ "name": "use-symbols", @@ -6562,7 +6561,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -6570,48 +6569,48 @@ class Meta: "max_inclusive": 16, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6649,7 +6648,7 @@ class Meta: "required": True, } ) - size: Optional[SymbolSize] = field( + size: SymbolSize | None = field( default=None, metadata={ "type": "Attribute", @@ -6667,19 +6666,19 @@ class Meta: "required": True, } ) - filled: Optional[YesNo] = field( + filled: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6687,35 +6686,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6742,7 +6741,7 @@ class Meta: "required": True, } ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", @@ -6763,41 +6762,41 @@ class Meta: "max_inclusive": 7, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6805,28 +6804,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6847,7 +6846,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -6861,49 +6860,49 @@ class Meta: "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -6911,35 +6910,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6957,7 +6956,7 @@ class Meta: "required": True, } ) - sound: Optional[YesNo] = field( + sound: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -6986,14 +6985,14 @@ class Meta: "namespace": XLINK_NS, }, ) - role: Optional[str] = field( + role: str | None = field( default=None, metadata={ "type": "Attribute", "namespace": XLINK_NS, }, ) - title: Optional[str] = field( + title: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7027,42 +7026,42 @@ class Meta: "required": True, }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7070,53 +7069,53 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7150,42 +7149,42 @@ class Meta: "max_inclusive": 16, }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7193,47 +7192,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7252,35 +7251,35 @@ class Meta: "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7288,41 +7287,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7363,7 +7362,7 @@ class Meta: "required": True, } ) - type_value: Optional[MarginType] = field( + type_value: MarginType | None = field( default=None, metadata={ "name": "type", @@ -7383,13 +7382,13 @@ class Meta: "required": True, } ) - line: Optional[int] = field( + line: int | None = field( default=None, metadata={ "type": "Element", }, ) - clef_octave_change: Optional[int] = field( + clef_octave_change: int | None = field( default=None, metadata={ "name": "clef-octave-change", @@ -7433,14 +7432,14 @@ class Meta: "namespace": XLINK_NS, }, ) - role: Optional[str] = field( + role: str | None = field( default=None, metadata={ "type": "Attribute", "namespace": XLINK_NS, }, ) - title: Optional[str] = field( + title: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7474,35 +7473,35 @@ class Meta: "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7510,42 +7509,42 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", @@ -7563,49 +7562,49 @@ class Meta: "required": True, } ) - top_staff: Optional[int] = field( + top_staff: int | None = field( default=None, metadata={ "name": "top-staff", "type": "Attribute", }, ) - bottom_staff: Optional[int] = field( + bottom_staff: int | None = field( default=None, metadata={ "name": "bottom-staff", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7626,7 +7625,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -7634,53 +7633,53 @@ class Meta: "max_inclusive": 16, }, ) - line: Optional[YesNo] = field( + line: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - sign: Optional[YesNo] = field( + sign: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - abbreviated: Optional[YesNo] = field( + abbreviated: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7688,47 +7687,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7768,7 +7767,7 @@ class Meta: "required": True, }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7776,21 +7775,21 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", @@ -7810,7 +7809,7 @@ class Meta: "required": True, } ) - alter: Optional[Decimal] = field( + alter: Decimal | None = field( default=None, metadata={ "type": "Element", @@ -7836,7 +7835,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7856,35 +7855,35 @@ class Meta: "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -7892,35 +7891,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -7959,7 +7958,7 @@ class Meta: "type": "Element", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -7991,35 +7990,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8027,47 +8026,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8080,7 +8079,7 @@ class Meta: name = "release" model_config = ConfigDict(defer_build=True) - offset: Optional[Decimal] = field( + offset: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -8099,20 +8098,20 @@ class Meta: "required": True, } ) - times: Optional[int] = field( + times: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - after_jump: Optional[YesNo] = field( + after_jump: YesNo | None = field( default=None, metadata={ "name": "after-jump", "type": "Attribute", }, ) - winged: Optional[Winged] = field( + winged: Winged | None = field( default=None, metadata={ "type": "Attribute", @@ -8125,14 +8124,14 @@ class Meta: name = "rest" model_config = ConfigDict(defer_build=True) - display_step: Optional[Step] = field( + display_step: Step | None = field( default=None, metadata={ "name": "display-step", "type": "Element", }, ) - display_octave: Optional[int] = field( + display_octave: int | None = field( default=None, metadata={ "name": "display-octave", @@ -8141,7 +8140,7 @@ class Meta: "max_inclusive": 9, }, ) - measure: Optional[YesNo] = field( + measure: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -8159,41 +8158,41 @@ class Meta: "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8201,28 +8200,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8243,33 +8242,33 @@ class Meta: "required": True, } ) - instrument_abbreviation: Optional[str] = field( + instrument_abbreviation: str | None = field( default=None, metadata={ "name": "instrument-abbreviation", "type": "Element", }, ) - instrument_sound: Optional[str] = field( + instrument_sound: str | None = field( default=None, metadata={ "name": "instrument-sound", "type": "Element", }, ) - solo: Optional[Empty] = field( + solo: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - ensemble: Optional[Union[int, PositiveIntegerOrEmptyValue]] = field( + ensemble: int | PositiveIntegerOrEmptyValue | None = field( default=None, metadata={ "type": "Element", }, ) - virtual_instrument: Optional[VirtualInstrument] = field( + virtual_instrument: VirtualInstrument | None = field( default=None, metadata={ "name": "virtual-instrument", @@ -8289,35 +8288,35 @@ class Meta: name = "segno" model_config = ConfigDict(defer_build=True) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8325,53 +8324,53 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8385,7 +8384,7 @@ class Meta: name = "slash" model_config = ConfigDict(defer_build=True) - slash_type: Optional[NoteTypeValue] = field( + slash_type: NoteTypeValue | None = field( default=None, metadata={ "name": "slash-type", @@ -8413,14 +8412,14 @@ class Meta: "required": True, } ) - use_dots: Optional[YesNo] = field( + use_dots: YesNo | None = field( default=None, metadata={ "name": "use-dots", "type": "Attribute", }, ) - use_stems: Optional[YesNo] = field( + use_stems: YesNo | None = field( default=None, metadata={ "name": "use-stems", @@ -8455,56 +8454,56 @@ class Meta: "max_inclusive": 16, }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8512,48 +8511,48 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - accelerate: Optional[YesNo] = field( + accelerate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - beats: Optional[Decimal] = field( + beats: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("2"), }, ) - first_beat: Optional[Decimal] = field( + first_beat: Decimal | None = field( default=None, metadata={ "name": "first-beat", @@ -8562,7 +8561,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - last_beat: Optional[Decimal] = field( + last_beat: Decimal | None = field( default=None, metadata={ "name": "last-beat", @@ -8571,7 +8570,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8599,117 +8598,117 @@ class Meta: "max_inclusive": 16, }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - orientation: Optional[OverUnder] = field( + orientation: OverUnder | None = field( default=None, metadata={ "type": "Attribute", }, ) - bezier_x: Optional[Decimal] = field( + bezier_x: Decimal | None = field( default=None, metadata={ "name": "bezier-x", "type": "Attribute", }, ) - bezier_y: Optional[Decimal] = field( + bezier_y: Decimal | None = field( default=None, metadata={ "name": "bezier-y", "type": "Attribute", }, ) - bezier_x2: Optional[Decimal] = field( + bezier_x2: Decimal | None = field( default=None, metadata={ "name": "bezier-x2", "type": "Attribute", }, ) - bezier_y2: Optional[Decimal] = field( + bezier_y2: Decimal | None = field( default=None, metadata={ "name": "bezier-y2", "type": "Attribute", }, ) - bezier_offset: Optional[Decimal] = field( + bezier_offset: Decimal | None = field( default=None, metadata={ "name": "bezier-offset", "type": "Attribute", }, ) - bezier_offset2: Optional[Decimal] = field( + bezier_offset2: Decimal | None = field( default=None, metadata={ "name": "bezier-offset2", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8729,35 +8728,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8765,47 +8764,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8825,7 +8824,7 @@ class Meta: "required": True, } ) - tuning_alter: Optional[Decimal] = field( + tuning_alter: Decimal | None = field( default=None, metadata={ "name": "tuning-alter", @@ -8859,35 +8858,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -8915,19 +8914,19 @@ class Meta: "required": True, } ) - tip: Optional[TipDirection] = field( + tip: TipDirection | None = field( default=None, metadata={ "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - dashed_circle: Optional[YesNo] = field( + dashed_circle: YesNo | None = field( default=None, metadata={ "name": "dashed-circle", @@ -8946,35 +8945,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -8982,35 +8981,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -9030,35 +9029,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9066,47 +9065,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9125,35 +9124,35 @@ class Meta: "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9161,28 +9160,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9209,13 +9208,13 @@ class Meta: "required": True, } ) - attribute: Optional[str] = field( + attribute: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - value: Optional[str] = field( + value: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9228,32 +9227,32 @@ class Meta: name = "swing" model_config = ConfigDict(defer_build=True) - straight: Optional[Empty] = field( + straight: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - first: Optional[int] = field( + first: int | None = field( default=None, metadata={ "type": "Element", }, ) - second: Optional[int] = field( + second: int | None = field( default=None, metadata={ "type": "Element", }, ) - swing_type: Optional[SwingTypeValue] = field( + swing_type: SwingTypeValue | None = field( default=None, metadata={ "name": "swing-type", "type": "Element", }, ) - swing_style: Optional[str] = field( + swing_style: str | None = field( default=None, metadata={ "name": "swing-style", @@ -9274,19 +9273,19 @@ class Meta: "required": True, } ) - latency: Optional[int] = field( + latency: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - player: Optional[str] = field( + player: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -9307,41 +9306,41 @@ class Meta: "required": True, }, ) - hand: Optional[TapHand] = field( + hand: TapHand | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9349,35 +9348,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -9396,7 +9395,7 @@ class Meta: "required": True, }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9404,35 +9403,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - underline: Optional[int] = field( + underline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -9440,7 +9439,7 @@ class Meta: "max_inclusive": 3, }, ) - overline: Optional[int] = field( + overline: int | None = field( default=None, metadata={ "type": "Attribute", @@ -9448,7 +9447,7 @@ class Meta: "max_inclusive": 3, }, ) - line_through: Optional[int] = field( + line_through: int | None = field( default=None, metadata={ "name": "line-through", @@ -9457,7 +9456,7 @@ class Meta: "max_inclusive": 3, }, ) - rotation: Optional[Decimal] = field( + rotation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -9465,21 +9464,21 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - letter_spacing: Optional[Union[Decimal, NumberOrNormalValue]] = field( + letter_spacing: Decimal | NumberOrNormalValue | None = field( default=None, metadata={ "name": "letter-spacing", "type": "Attribute", }, ) - lang: Optional[Union[str, LangValue]] = field( + lang: str | LangValue | None = field( default=None, metadata={ "type": "Attribute", "namespace": XML_NS, }, ) - dir: Optional[TextDirection] = field( + dir: TextDirection | None = field( default=None, metadata={ "type": "Attribute", @@ -9499,7 +9498,7 @@ class Meta: "required": True, } ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -9521,7 +9520,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -9529,117 +9528,117 @@ class Meta: "max_inclusive": 16, }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - orientation: Optional[OverUnder] = field( + orientation: OverUnder | None = field( default=None, metadata={ "type": "Attribute", }, ) - bezier_x: Optional[Decimal] = field( + bezier_x: Decimal | None = field( default=None, metadata={ "name": "bezier-x", "type": "Attribute", }, ) - bezier_y: Optional[Decimal] = field( + bezier_y: Decimal | None = field( default=None, metadata={ "name": "bezier-y", "type": "Attribute", }, ) - bezier_x2: Optional[Decimal] = field( + bezier_x2: Decimal | None = field( default=None, metadata={ "name": "bezier-x2", "type": "Attribute", }, ) - bezier_y2: Optional[Decimal] = field( + bezier_y2: Decimal | None = field( default=None, metadata={ "name": "bezier-y2", "type": "Attribute", }, ) - bezier_offset: Optional[Decimal] = field( + bezier_offset: Decimal | None = field( default=None, metadata={ "name": "bezier-offset", "type": "Attribute", }, ) - bezier_offset2: Optional[Decimal] = field( + bezier_offset2: Decimal | None = field( default=None, metadata={ "name": "bezier-offset2", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9666,7 +9665,7 @@ class Meta: "required": True, } ) - normal_type: Optional[NoteTypeValue] = field( + normal_type: NoteTypeValue | None = field( default=None, metadata={ "name": "normal-type", @@ -9701,35 +9700,35 @@ class Meta: "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9737,41 +9736,41 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9784,7 +9783,7 @@ class Meta: name = "tuplet-dot" model_config = ConfigDict(defer_build=True) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9792,28 +9791,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9832,7 +9831,7 @@ class Meta: "required": True, } ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9840,28 +9839,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9880,7 +9879,7 @@ class Meta: "required": True, } ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -9888,28 +9887,28 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", @@ -9923,14 +9922,14 @@ class Meta: name = "unpitched" model_config = ConfigDict(defer_build=True) - display_step: Optional[Step] = field( + display_step: Step | None = field( default=None, metadata={ "name": "display-step", "type": "Element", }, ) - display_octave: Optional[int] = field( + display_octave: int | None = field( default=None, metadata={ "name": "display-octave", @@ -9953,7 +9952,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -9961,89 +9960,89 @@ class Meta: "max_inclusive": 16, }, ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"(wiggle\c+)|(guitar\c*VibratoStroke)", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - start_note: Optional[StartNote] = field( + start_note: StartNote | None = field( default=None, metadata={ "name": "start-note", "type": "Attribute", }, ) - trill_step: Optional[TrillStep] = field( + trill_step: TrillStep | None = field( default=None, metadata={ "name": "trill-step", "type": "Attribute", }, ) - two_note_turn: Optional[TwoNoteTurn] = field( + two_note_turn: TwoNoteTurn | None = field( default=None, metadata={ "name": "two-note-turn", "type": "Attribute", }, ) - accelerate: Optional[YesNo] = field( + accelerate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - beats: Optional[Decimal] = field( + beats: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("2"), }, ) - second_beat: Optional[Decimal] = field( + second_beat: Decimal | None = field( default=None, metadata={ "name": "second-beat", @@ -10052,7 +10051,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - last_beat: Optional[Decimal] = field( + last_beat: Decimal | None = field( default=None, metadata={ "name": "last-beat", @@ -10075,7 +10074,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -10083,75 +10082,75 @@ class Meta: "max_inclusive": 16, }, ) - spread: Optional[Decimal] = field( + spread: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - niente: Optional[YesNo] = field( + niente: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - line_type: Optional[LineType] = field( + line_type: LineType | None = field( default=None, metadata={ "name": "line-type", "type": "Attribute", }, ) - dash_length: Optional[Decimal] = field( + dash_length: Decimal | None = field( default=None, metadata={ "name": "dash-length", "type": "Attribute", }, ) - space_length: Optional[Decimal] = field( + space_length: Decimal | None = field( default=None, metadata={ "name": "space-length", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -10169,7 +10168,7 @@ class Meta: "required": True, } ) - smufl: Optional[str] = field( + smufl: str | None = field( default=None, metadata={ "type": "Attribute", @@ -10249,13 +10248,13 @@ class Meta: "min_exclusive": Decimal("0"), } ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", @@ -10268,39 +10267,39 @@ class Meta: name = "barline" model_config = ConfigDict(defer_build=True) - bar_style: Optional[BarStyleColor] = field( + bar_style: BarStyleColor | None = field( default=None, metadata={ "name": "bar-style", "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - wavy_line: Optional[WavyLine] = field( + wavy_line: WavyLine | None = field( default=None, metadata={ "name": "wavy-line", "type": "Element", }, ) - segno: Optional[Segno] = field( + segno: Segno | None = field( default=None, metadata={ "type": "Element", }, ) - coda: Optional[Coda] = field( + coda: Coda | None = field( default=None, metadata={ "type": "Element", @@ -10313,13 +10312,13 @@ class Meta: "max_occurs": 2, }, ) - ending: Optional[Ending] = field( + ending: Ending | None = field( default=None, metadata={ "type": "Element", }, ) - repeat: Optional[Repeat] = field( + repeat: Repeat | None = field( default=None, metadata={ "type": "Element", @@ -10331,27 +10330,27 @@ class Meta: "type": "Attribute", }, ) - segno_attribute: Optional[str] = field( + segno_attribute: str | None = field( default=None, metadata={ "name": "segno", "type": "Attribute", }, ) - coda_attribute: Optional[str] = field( + coda_attribute: str | None = field( default=None, metadata={ "name": "coda", "type": "Attribute", }, ) - divisions: Optional[Decimal] = field( + divisions: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -10364,7 +10363,7 @@ class Meta: name = "bass" model_config = ConfigDict(defer_build=True) - bass_separator: Optional[StyleText] = field( + bass_separator: StyleText | None = field( default=None, metadata={ "name": "bass-separator", @@ -10378,14 +10377,14 @@ class Meta: "required": True, } ) - bass_alter: Optional[HarmonyAlter] = field( + bass_alter: HarmonyAlter | None = field( default=None, metadata={ "name": "bass-alter", "type": "Element", }, ) - arrangement: Optional[HarmonyArrangement] = field( + arrangement: HarmonyArrangement | None = field( default=None, metadata={ "type": "Attribute", @@ -10405,61 +10404,61 @@ class Meta: "required": True, } ) - pre_bend: Optional[Empty] = field( + pre_bend: Empty | None = field( default=None, metadata={ "name": "pre-bend", "type": "Element", }, ) - release: Optional[Release] = field( + release: Release | None = field( default=None, metadata={ "type": "Element", }, ) - with_bar: Optional[PlacementText] = field( + with_bar: PlacementText | None = field( default=None, metadata={ "name": "with-bar", "type": "Element", }, ) - shape: Optional[BendShape] = field( + shape: BendShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -10467,48 +10466,48 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - accelerate: Optional[YesNo] = field( + accelerate: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - beats: Optional[Decimal] = field( + beats: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("2"), }, ) - first_beat: Optional[Decimal] = field( + first_beat: Decimal | None = field( default=None, metadata={ "name": "first-beat", @@ -10517,7 +10516,7 @@ class Meta: "max_inclusive": Decimal("100"), }, ) - last_beat: Optional[Decimal] = field( + last_beat: Decimal | None = field( default=None, metadata={ "name": "last-beat", @@ -10552,7 +10551,7 @@ class Meta: "type": "Element", }, ) - credit_image: Optional[Image] = field( + credit_image: Image | None = field( default=None, metadata={ "name": "credit-image", @@ -10573,13 +10572,13 @@ class Meta: "type": "Element", }, ) - page: Optional[int] = field( + page: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -10613,7 +10612,7 @@ class Meta: "required": True, } ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", @@ -10667,38 +10666,38 @@ class Meta: name = "figure" model_config = ConfigDict(defer_build=True) - prefix: Optional[StyleText] = field( + prefix: StyleText | None = field( default=None, metadata={ "type": "Element", }, ) - figure_number: Optional[StyleText] = field( + figure_number: StyleText | None = field( default=None, metadata={ "name": "figure-number", "type": "Element", }, ) - suffix: Optional[StyleText] = field( + suffix: StyleText | None = field( default=None, metadata={ "type": "Element", }, ) - extend: Optional[Extend] = field( + extend: Extend | None = field( default=None, metadata={ "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", @@ -10718,25 +10717,25 @@ class Meta: "min_exclusive": Decimal("0"), } ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - voice: Optional[str] = field( + voice: str | None = field( default=None, metadata={ "type": "Element", }, ) - staff: Optional[int] = field( + staff: int | None = field( default=None, metadata={ "type": "Element", @@ -10761,13 +10760,13 @@ class Meta: "required": True, } ) - fingering: Optional[Fingering] = field( + fingering: Fingering | None = field( default=None, metadata={ "type": "Element", }, ) - barre: Optional[Barre] = field( + barre: Barre | None = field( default=None, metadata={ "type": "Element", @@ -10787,35 +10786,35 @@ class Meta: "required": True, } ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -10823,35 +10822,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -10872,35 +10871,35 @@ class Meta: "min_occurs": 1, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -10908,47 +10907,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -10961,7 +10960,7 @@ class Meta: name = "heel-toe" model_config = ConfigDict(defer_build=True) - substitution: Optional[YesNo] = field( + substitution: YesNo | None = field( default=None, metadata={ "type": "Attribute", @@ -10974,7 +10973,7 @@ class Meta: name = "hole" model_config = ConfigDict(defer_build=True) - hole_type: Optional[str] = field( + hole_type: str | None = field( default=None, metadata={ "name": "hole-type", @@ -10988,42 +10987,42 @@ class Meta: "required": True, } ) - hole_shape: Optional[str] = field( + hole_shape: str | None = field( default=None, metadata={ "name": "hole-shape", "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -11031,35 +11030,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -11072,19 +11071,19 @@ class Meta: name = "key" model_config = ConfigDict(defer_build=True) - cancel: Optional[Cancel] = field( + cancel: Cancel | None = field( default=None, metadata={ "type": "Element", }, ) - fifths: Optional[int] = field( + fifths: int | None = field( default=None, metadata={ "type": "Element", }, ) - mode: Optional[str] = field( + mode: str | None = field( default=None, metadata={ "type": "Element", @@ -11118,41 +11117,41 @@ class Meta: "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -11160,42 +11159,42 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -11247,7 +11246,7 @@ class Meta: "type": "Element", }, ) - offset: Optional[Offset] = field( + offset: Offset | None = field( default=None, metadata={ "type": "Element", @@ -11287,111 +11286,111 @@ class Meta: "sequence": 1, }, ) - laughing: Optional[Empty] = field( + laughing: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - humming: Optional[Empty] = field( + humming: Empty | None = field( default=None, metadata={ "type": "Element", }, ) - end_line: Optional[Empty] = field( + end_line: Empty | None = field( default=None, metadata={ "name": "end-line", "type": "Element", }, ) - end_paragraph: Optional[Empty] = field( + end_paragraph: Empty | None = field( default=None, metadata={ "name": "end-paragraph", "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - number: Optional[str] = field( + number: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -11399,7 +11398,7 @@ class Meta: "pattern": r"[1-9][0-9]*(, ?[1-9][0-9]*)*", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -11412,40 +11411,40 @@ class Meta: name = "measure-style" model_config = ConfigDict(defer_build=True) - multiple_rest: Optional[MultipleRest] = field( + multiple_rest: MultipleRest | None = field( default=None, metadata={ "name": "multiple-rest", "type": "Element", }, ) - measure_repeat: Optional[MeasureRepeat] = field( + measure_repeat: MeasureRepeat | None = field( default=None, metadata={ "name": "measure-repeat", "type": "Element", }, ) - beat_repeat: Optional[BeatRepeat] = field( + beat_repeat: BeatRepeat | None = field( default=None, metadata={ "name": "beat-repeat", "type": "Element", }, ) - slash: Optional[Slash] = field( + slash: Slash | None = field( default=None, metadata={ "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -11453,35 +11452,35 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -11501,13 +11500,13 @@ class Meta: "required": True, } ) - bracket: Optional[YesNo] = field( + bracket: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - show_number: Optional[ShowTuplet] = field( + show_number: ShowTuplet | None = field( default=None, metadata={ "name": "show-number", @@ -11521,19 +11520,19 @@ class Meta: name = "mordent" model_config = ConfigDict(defer_build=True) - long: Optional[YesNo] = field( + long: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - approach: Optional[AboveBelow] = field( + approach: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - departure: Optional[AboveBelow] = field( + departure: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", @@ -11560,7 +11559,7 @@ class Meta: "type": "Element", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", @@ -11602,14 +11601,14 @@ class Meta: "required": True, } ) - numeral_alter: Optional[HarmonyAlter] = field( + numeral_alter: HarmonyAlter | None = field( default=None, metadata={ "name": "numeral-alter", "type": "Element", }, ) - numeral_key: Optional[NumeralKey] = field( + numeral_key: NumeralKey | None = field( default=None, metadata={ "name": "numeral-key", @@ -11623,14 +11622,14 @@ class Meta: name = "page-layout" model_config = ConfigDict(defer_build=True) - page_height: Optional[Decimal] = field( + page_height: Decimal | None = field( default=None, metadata={ "name": "page-height", "type": "Element", }, ) - page_width: Optional[Decimal] = field( + page_width: Decimal | None = field( default=None, metadata={ "name": "page-width", @@ -11652,7 +11651,7 @@ class Meta: name = "part-transpose" model_config = ConfigDict(defer_build=True) - diatonic: Optional[int] = field( + diatonic: int | None = field( default=None, metadata={ "type": "Element", @@ -11664,14 +11663,14 @@ class Meta: "required": True, } ) - octave_change: Optional[int] = field( + octave_change: int | None = field( default=None, metadata={ "name": "octave-change", "type": "Element", }, ) - double: Optional[Double] = field( + double: Double | None = field( default=None, metadata={ "type": "Element", @@ -11684,103 +11683,103 @@ class Meta: name = "percussion" model_config = ConfigDict(defer_build=True) - glass: Optional[Glass] = field( + glass: Glass | None = field( default=None, metadata={ "type": "Element", }, ) - metal: Optional[Metal] = field( + metal: Metal | None = field( default=None, metadata={ "type": "Element", }, ) - wood: Optional[Wood] = field( + wood: Wood | None = field( default=None, metadata={ "type": "Element", }, ) - pitched: Optional[Pitched] = field( + pitched: Pitched | None = field( default=None, metadata={ "type": "Element", }, ) - membrane: Optional[Membrane] = field( + membrane: Membrane | None = field( default=None, metadata={ "type": "Element", }, ) - effect: Optional[Effect] = field( + effect: Effect | None = field( default=None, metadata={ "type": "Element", }, ) - timpani: Optional[Timpani] = field( + timpani: Timpani | None = field( default=None, metadata={ "type": "Element", }, ) - beater: Optional[Beater] = field( + beater: Beater | None = field( default=None, metadata={ "type": "Element", }, ) - stick: Optional[Stick] = field( + stick: Stick | None = field( default=None, metadata={ "type": "Element", }, ) - stick_location: Optional[StickLocation] = field( + stick_location: StickLocation | None = field( default=None, metadata={ "name": "stick-location", "type": "Element", }, ) - other_percussion: Optional[OtherText] = field( + other_percussion: OtherText | None = field( default=None, metadata={ "name": "other-percussion", "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -11788,53 +11787,53 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - enclosure: Optional[EnclosureShape] = field( + enclosure: EnclosureShape | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -11854,7 +11853,7 @@ class Meta: "required": True, } ) - root_alter: Optional[HarmonyAlter] = field( + root_alter: HarmonyAlter | None = field( default=None, metadata={ "name": "root-alter", @@ -11875,7 +11874,7 @@ class Meta: "min_occurs": 1, }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -11915,82 +11914,82 @@ class Meta: "type": "Element", }, ) - swing: Optional[Swing] = field( + swing: Swing | None = field( default=None, metadata={ "type": "Element", }, ) - offset: Optional[Offset] = field( + offset: Offset | None = field( default=None, metadata={ "type": "Element", }, ) - tempo: Optional[Decimal] = field( + tempo: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("0"), }, ) - dynamics: Optional[Decimal] = field( + dynamics: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("0"), }, ) - dacapo: Optional[YesNo] = field( + dacapo: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - segno: Optional[str] = field( + segno: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - dalsegno: Optional[str] = field( + dalsegno: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - coda: Optional[str] = field( + coda: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - tocoda: Optional[str] = field( + tocoda: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - divisions: Optional[Decimal] = field( + divisions: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - forward_repeat: Optional[YesNo] = field( + forward_repeat: YesNo | None = field( default=None, metadata={ "name": "forward-repeat", "type": "Attribute", }, ) - fine: Optional[str] = field( + fine: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -11998,13 +11997,13 @@ class Meta: "pattern": r"[1-9][0-9]*(, ?[1-9][0-9]*)*", }, ) - pizzicato: Optional[YesNo] = field( + pizzicato: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - pan: Optional[Decimal] = field( + pan: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -12012,7 +12011,7 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - elevation: Optional[Decimal] = field( + elevation: Decimal | None = field( default=None, metadata={ "type": "Attribute", @@ -12020,28 +12019,28 @@ class Meta: "max_inclusive": Decimal("180"), }, ) - damper_pedal: Optional[Union[YesNo, Decimal]] = field( + damper_pedal: YesNo | Decimal | None = field( default=None, metadata={ "name": "damper-pedal", "type": "Attribute", }, ) - soft_pedal: Optional[Union[YesNo, Decimal]] = field( + soft_pedal: YesNo | Decimal | None = field( default=None, metadata={ "name": "soft-pedal", "type": "Attribute", }, ) - sostenuto_pedal: Optional[Union[YesNo, Decimal]] = field( + sostenuto_pedal: YesNo | Decimal | None = field( default=None, metadata={ "name": "sostenuto-pedal", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12054,14 +12053,14 @@ class Meta: name = "staff-details" model_config = ConfigDict(defer_build=True) - staff_type: Optional[StaffType] = field( + staff_type: StaffType | None = field( default=None, metadata={ "name": "staff-type", "type": "Element", }, ) - staff_lines: Optional[int] = field( + staff_lines: int | None = field( default=None, metadata={ "name": "staff-lines", @@ -12082,40 +12081,40 @@ class Meta: "type": "Element", }, ) - capo: Optional[int] = field( + capo: int | None = field( default=None, metadata={ "type": "Element", }, ) - staff_size: Optional[StaffSize] = field( + staff_size: StaffSize | None = field( default=None, metadata={ "name": "staff-size", "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - show_frets: Optional[ShowFrets] = field( + show_frets: ShowFrets | None = field( default=None, metadata={ "name": "show-frets", "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - print_spacing: Optional[YesNo] = field( + print_spacing: YesNo | None = field( default=None, metadata={ "name": "print-spacing", @@ -12177,66 +12176,66 @@ class Meta: "type": "Element", }, ) - interchangeable: Optional[Interchangeable] = field( + interchangeable: Interchangeable | None = field( default=None, metadata={ "type": "Element", }, ) - senza_misura: Optional[str] = field( + senza_misura: str | None = field( default=None, metadata={ "name": "senza-misura", "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - symbol: Optional[TimeSymbol] = field( + symbol: TimeSymbol | None = field( default=None, metadata={ "type": "Attribute", }, ) - separator: Optional[TimeSeparator] = field( + separator: TimeSeparator | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -12244,54 +12243,54 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12304,7 +12303,7 @@ class Meta: name = "transpose" model_config = ConfigDict(defer_build=True) - diatonic: Optional[int] = field( + diatonic: int | None = field( default=None, metadata={ "type": "Element", @@ -12316,26 +12315,26 @@ class Meta: "required": True, } ) - octave_change: Optional[int] = field( + octave_change: int | None = field( default=None, metadata={ "name": "octave-change", "type": "Element", }, ) - double: Optional[Double] = field( + double: Double | None = field( default=None, metadata={ "type": "Element", }, ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12348,14 +12347,14 @@ class Meta: name = "tuplet-portion" model_config = ConfigDict(defer_build=True) - tuplet_number: Optional[TupletNumber] = field( + tuplet_number: TupletNumber | None = field( default=None, metadata={ "name": "tuplet-number", "type": "Element", }, ) - tuplet_type: Optional[TupletType] = field( + tuplet_type: TupletType | None = field( default=None, metadata={ "name": "tuplet-type", @@ -12376,21 +12375,21 @@ class Meta: name = "work" model_config = ConfigDict(defer_build=True) - work_number: Optional[str] = field( + work_number: str | None = field( default=None, metadata={ "name": "work-number", "type": "Element", }, ) - work_title: Optional[str] = field( + work_title: str | None = field( default=None, metadata={ "name": "work-title", "type": "Element", }, ) - opus: Optional[Opus] = field( + opus: Opus | None = field( default=None, metadata={ "type": "Element", @@ -12510,7 +12509,7 @@ class Meta: "type": "Element", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12530,54 +12529,54 @@ class Meta: "min_occurs": 1, }, ) - duration: Optional[Decimal] = field( + duration: Decimal | None = field( default=None, metadata={ "type": "Element", "min_exclusive": Decimal("0"), }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -12585,87 +12584,87 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - print_dot: Optional[YesNo] = field( + print_dot: YesNo | None = field( default=None, metadata={ "name": "print-dot", "type": "Attribute", }, ) - print_spacing: Optional[YesNo] = field( + print_spacing: YesNo | None = field( default=None, metadata={ "name": "print-spacing", "type": "Attribute", }, ) - print_lyric: Optional[YesNo] = field( + print_lyric: YesNo | None = field( default=None, metadata={ "name": "print-lyric", "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12678,7 +12677,7 @@ class Meta: name = "for-part" model_config = ConfigDict(defer_build=True) - part_clef: Optional[PartClef] = field( + part_clef: PartClef | None = field( default=None, metadata={ "name": "part-clef", @@ -12692,13 +12691,13 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12725,7 +12724,7 @@ class Meta: "required": True, } ) - first_fret: Optional[FirstFret] = field( + first_fret: FirstFret | None = field( default=None, metadata={ "name": "first-fret", @@ -12740,72 +12739,72 @@ class Meta: "min_occurs": 1, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[ValignImage] = field( + valign: ValignImage | None = field( default=None, metadata={ "type": "Attribute", }, ) - height: Optional[Decimal] = field( + height: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - width: Optional[Decimal] = field( + width: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - unplayed: Optional[str] = field( + unplayed: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -12830,13 +12829,13 @@ class Meta: "type": "Element", }, ) - encoding: Optional[Encoding] = field( + encoding: Encoding | None = field( default=None, metadata={ "type": "Element", }, ) - source: Optional[str] = field( + source: str | None = field( default=None, metadata={ "type": "Element", @@ -12848,7 +12847,7 @@ class Meta: "type": "Element", }, ) - miscellaneous: Optional[Miscellaneous] = field( + miscellaneous: Miscellaneous | None = field( default=None, metadata={ "type": "Element", @@ -12882,14 +12881,14 @@ class Meta: "type": "Element", }, ) - metronome_tied: Optional[MetronomeTied] = field( + metronome_tied: MetronomeTied | None = field( default=None, metadata={ "name": "metronome-tied", "type": "Element", }, ) - metronome_tuplet: Optional[MetronomeTuplet] = field( + metronome_tuplet: MetronomeTuplet | None = field( default=None, metadata={ "name": "metronome-tuplet", @@ -13025,7 +13024,7 @@ class Meta: "sequence": 1, }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -13038,62 +13037,62 @@ class Meta: name = "part-group" model_config = ConfigDict(defer_build=True) - group_name: Optional[GroupName] = field( + group_name: GroupName | None = field( default=None, metadata={ "name": "group-name", "type": "Element", }, ) - group_name_display: Optional[NameDisplay] = field( + group_name_display: NameDisplay | None = field( default=None, metadata={ "name": "group-name-display", "type": "Element", }, ) - group_abbreviation: Optional[GroupName] = field( + group_abbreviation: GroupName | None = field( default=None, metadata={ "name": "group-abbreviation", "type": "Element", }, ) - group_abbreviation_display: Optional[NameDisplay] = field( + group_abbreviation_display: NameDisplay | None = field( default=None, metadata={ "name": "group-abbreviation-display", "type": "Element", }, ) - group_symbol: Optional[GroupSymbol] = field( + group_symbol: GroupSymbol | None = field( default=None, metadata={ "name": "group-symbol", "type": "Element", }, ) - group_barline: Optional[GroupBarline] = field( + group_barline: GroupBarline | None = field( default=None, metadata={ "name": "group-barline", "type": "Element", }, ) - group_time: Optional[Empty] = field( + group_time: Empty | None = field( default=None, metadata={ "name": "group-time", "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", @@ -13119,28 +13118,28 @@ class Meta: name = "system-layout" model_config = ConfigDict(defer_build=True) - system_margins: Optional[SystemMargins] = field( + system_margins: SystemMargins | None = field( default=None, metadata={ "name": "system-margins", "type": "Element", }, ) - system_distance: Optional[Decimal] = field( + system_distance: Decimal | None = field( default=None, metadata={ "name": "system-distance", "type": "Element", }, ) - top_system_distance: Optional[Decimal] = field( + top_system_distance: Decimal | None = field( default=None, metadata={ "name": "top-system-distance", "type": "Element", }, ) - system_dividers: Optional[SystemDividers] = field( + system_dividers: SystemDividers | None = field( default=None, metadata={ "name": "system-dividers", @@ -13353,7 +13352,7 @@ class Meta: "type": "Element", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -13366,14 +13365,14 @@ class Meta: name = "tuplet" model_config = ConfigDict(defer_build=True) - tuplet_actual: Optional[TupletPortion] = field( + tuplet_actual: TupletPortion | None = field( default=None, metadata={ "name": "tuplet-actual", "type": "Element", }, ) - tuplet_normal: Optional[TupletPortion] = field( + tuplet_normal: TupletPortion | None = field( default=None, metadata={ "name": "tuplet-normal", @@ -13387,7 +13386,7 @@ class Meta: "required": True, } ) - number: Optional[int] = field( + number: int | None = field( default=None, metadata={ "type": "Attribute", @@ -13395,68 +13394,68 @@ class Meta: "max_inclusive": 16, }, ) - bracket: Optional[YesNo] = field( + bracket: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - show_number: Optional[ShowTuplet] = field( + show_number: ShowTuplet | None = field( default=None, metadata={ "name": "show-number", "type": "Attribute", }, ) - show_type: Optional[ShowTuplet] = field( + show_type: ShowTuplet | None = field( default=None, metadata={ "name": "show-type", "type": "Attribute", }, ) - line_shape: Optional[LineShape] = field( + line_shape: LineShape | None = field( default=None, metadata={ "name": "line-shape", "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -13469,19 +13468,19 @@ class Meta: name = "attributes" model_config = ConfigDict(defer_build=True) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - divisions: Optional[Decimal] = field( + divisions: Decimal | None = field( default=None, metadata={ "type": "Element", @@ -13500,20 +13499,20 @@ class Meta: "type": "Element", }, ) - staves: Optional[int] = field( + staves: int | None = field( default=None, metadata={ "type": "Element", }, ) - part_symbol: Optional[PartSymbol] = field( + part_symbol: PartSymbol | None = field( default=None, metadata={ "name": "part-symbol", "type": "Element", }, ) - instruments: Optional[int] = field( + instruments: int | None = field( default=None, metadata={ "type": "Element", @@ -13567,35 +13566,35 @@ class Directive(BaseModel): "required": True, }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -13603,35 +13602,35 @@ class Directive(BaseModel): "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - lang: Optional[Union[str, LangValue]] = field( + lang: str | LangValue | None = field( default=None, metadata={ "type": "Attribute", @@ -13645,27 +13644,27 @@ class Meta: name = "defaults" model_config = ConfigDict(defer_build=True) - scaling: Optional[Scaling] = field( + scaling: Scaling | None = field( default=None, metadata={ "type": "Element", }, ) - concert_score: Optional[Empty] = field( + concert_score: Empty | None = field( default=None, metadata={ "name": "concert-score", "type": "Element", }, ) - page_layout: Optional[PageLayout] = field( + page_layout: PageLayout | None = field( default=None, metadata={ "name": "page-layout", "type": "Element", }, ) - system_layout: Optional[SystemLayout] = field( + system_layout: SystemLayout | None = field( default=None, metadata={ "name": "system-layout", @@ -13679,20 +13678,20 @@ class Meta: "type": "Element", }, ) - appearance: Optional[Appearance] = field( + appearance: Appearance | None = field( default=None, metadata={ "type": "Element", }, ) - music_font: Optional[EmptyFont] = field( + music_font: EmptyFont | None = field( default=None, metadata={ "name": "music-font", "type": "Element", }, ) - word_font: Optional[EmptyFont] = field( + word_font: EmptyFont | None = field( default=None, metadata={ "name": "word-font", @@ -13763,92 +13762,92 @@ class Meta: "type": "Element", }, ) - frame: Optional[Frame] = field( + frame: Frame | None = field( default=None, metadata={ "type": "Element", }, ) - offset: Optional[Offset] = field( + offset: Offset | None = field( default=None, metadata={ "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - staff: Optional[int] = field( + staff: int | None = field( default=None, metadata={ "type": "Element", }, ) - type_value: Optional[HarmonyType] = field( + type_value: HarmonyType | None = field( default=None, metadata={ "name": "type", "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - print_frame: Optional[YesNo] = field( + print_frame: YesNo | None = field( default=None, metadata={ "name": "print-frame", "type": "Attribute", }, ) - arrangement: Optional[HarmonyArrangement] = field( + arrangement: HarmonyArrangement | None = field( default=None, metadata={ "type": "Attribute", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -13856,47 +13855,47 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - system: Optional[SystemRelation] = field( + system: SystemRelation | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -13931,14 +13930,14 @@ class Meta: "type": "Element", }, ) - per_minute: Optional[PerMinute] = field( + per_minute: PerMinute | None = field( default=None, metadata={ "name": "per-minute", "type": "Element", }, ) - metronome_arrows: Optional[Empty] = field( + metronome_arrows: Empty | None = field( default=None, metadata={ "name": "metronome-arrows", @@ -13952,42 +13951,42 @@ class Meta: "type": "Element", }, ) - metronome_relation: Optional[str] = field( + metronome_relation: str | None = field( default=None, metadata={ "name": "metronome-relation", "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -13995,66 +13994,66 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - halign: Optional[LeftCenterRight] = field( + halign: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - valign: Optional[Valign] = field( + valign: Valign | None = field( default=None, metadata={ "type": "Attribute", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - justify: Optional[LeftCenterRight] = field( + justify: LeftCenterRight | None = field( default=None, metadata={ "type": "Attribute", }, ) - parentheses: Optional[YesNo] = field( + parentheses: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14067,13 +14066,13 @@ class Meta: name = "notations" model_config = ConfigDict(defer_build=True) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", @@ -14166,14 +14165,14 @@ class Meta: "type": "Element", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14186,14 +14185,14 @@ class Meta: name = "print" model_config = ConfigDict(defer_build=True) - page_layout: Optional[PageLayout] = field( + page_layout: PageLayout | None = field( default=None, metadata={ "name": "page-layout", "type": "Element", }, ) - system_layout: Optional[SystemLayout] = field( + system_layout: SystemLayout | None = field( default=None, metadata={ "name": "system-layout", @@ -14207,70 +14206,70 @@ class Meta: "type": "Element", }, ) - measure_layout: Optional[MeasureLayout] = field( + measure_layout: MeasureLayout | None = field( default=None, metadata={ "name": "measure-layout", "type": "Element", }, ) - measure_numbering: Optional[MeasureNumbering] = field( + measure_numbering: MeasureNumbering | None = field( default=None, metadata={ "name": "measure-numbering", "type": "Element", }, ) - part_name_display: Optional[NameDisplay] = field( + part_name_display: NameDisplay | None = field( default=None, metadata={ "name": "part-name-display", "type": "Element", }, ) - part_abbreviation_display: Optional[NameDisplay] = field( + part_abbreviation_display: NameDisplay | None = field( default=None, metadata={ "name": "part-abbreviation-display", "type": "Element", }, ) - staff_spacing: Optional[Decimal] = field( + staff_spacing: Decimal | None = field( default=None, metadata={ "name": "staff-spacing", "type": "Attribute", }, ) - new_system: Optional[YesNo] = field( + new_system: YesNo | None = field( default=None, metadata={ "name": "new-system", "type": "Attribute", }, ) - new_page: Optional[YesNo] = field( + new_page: YesNo | None = field( default=None, metadata={ "name": "new-page", "type": "Attribute", }, ) - blank_page: Optional[int] = field( + blank_page: int | None = field( default=None, metadata={ "name": "blank-page", "type": "Attribute", }, ) - page_number: Optional[str] = field( + page_number: str | None = field( default=None, metadata={ "name": "page-number", "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14283,7 +14282,7 @@ class Meta: name = "score-part" model_config = ConfigDict(defer_build=True) - identification: Optional[Identification] = field( + identification: Identification | None = field( default=None, metadata={ "type": "Element", @@ -14304,21 +14303,21 @@ class Meta: "required": True, }, ) - part_name_display: Optional[NameDisplay] = field( + part_name_display: NameDisplay | None = field( default=None, metadata={ "name": "part-name-display", "type": "Element", }, ) - part_abbreviation: Optional[PartName] = field( + part_abbreviation: PartName | None = field( default=None, metadata={ "name": "part-abbreviation", "type": "Element", }, ) - part_abbreviation_display: Optional[NameDisplay] = field( + part_abbreviation_display: NameDisplay | None = field( default=None, metadata={ "name": "part-abbreviation-display", @@ -14401,7 +14400,7 @@ class Meta: "type": "Element", }, ) - wedge: Optional[Wedge] = field( + wedge: Wedge | None = field( default=None, metadata={ "type": "Element", @@ -14413,83 +14412,83 @@ class Meta: "type": "Element", }, ) - dashes: Optional[Dashes] = field( + dashes: Dashes | None = field( default=None, metadata={ "type": "Element", }, ) - bracket: Optional[Bracket] = field( + bracket: Bracket | None = field( default=None, metadata={ "type": "Element", }, ) - pedal: Optional[Pedal] = field( + pedal: Pedal | None = field( default=None, metadata={ "type": "Element", }, ) - metronome: Optional[Metronome] = field( + metronome: Metronome | None = field( default=None, metadata={ "type": "Element", }, ) - octave_shift: Optional[OctaveShift] = field( + octave_shift: OctaveShift | None = field( default=None, metadata={ "name": "octave-shift", "type": "Element", }, ) - harp_pedals: Optional[HarpPedals] = field( + harp_pedals: HarpPedals | None = field( default=None, metadata={ "name": "harp-pedals", "type": "Element", }, ) - damp: Optional[EmptyPrintStyleAlignId] = field( + damp: EmptyPrintStyleAlignId | None = field( default=None, metadata={ "type": "Element", }, ) - damp_all: Optional[EmptyPrintStyleAlignId] = field( + damp_all: EmptyPrintStyleAlignId | None = field( default=None, metadata={ "name": "damp-all", "type": "Element", }, ) - eyeglasses: Optional[EmptyPrintStyleAlignId] = field( + eyeglasses: EmptyPrintStyleAlignId | None = field( default=None, metadata={ "type": "Element", }, ) - string_mute: Optional[StringMute] = field( + string_mute: StringMute | None = field( default=None, metadata={ "name": "string-mute", "type": "Element", }, ) - scordatura: Optional[Scordatura] = field( + scordatura: Scordatura | None = field( default=None, metadata={ "type": "Element", }, ) - image: Optional[Image] = field( + image: Image | None = field( default=None, metadata={ "type": "Element", }, ) - principal_voice: Optional[PrincipalVoice] = field( + principal_voice: PrincipalVoice | None = field( default=None, metadata={ "name": "principal-voice", @@ -14502,28 +14501,28 @@ class Meta: "type": "Element", }, ) - accordion_registration: Optional[AccordionRegistration] = field( + accordion_registration: AccordionRegistration | None = field( default=None, metadata={ "name": "accordion-registration", "type": "Element", }, ) - staff_divide: Optional[StaffDivide] = field( + staff_divide: StaffDivide | None = field( default=None, metadata={ "name": "staff-divide", "type": "Element", }, ) - other_direction: Optional[OtherDirection] = field( + other_direction: OtherDirection | None = field( default=None, metadata={ "name": "other-direction", "type": "Element", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14536,7 +14535,7 @@ class Meta: name = "note" model_config = ConfigDict(defer_build=True) - grace: Optional[Grace] = field( + grace: Grace | None = field( default=None, metadata={ "type": "Element", @@ -14598,25 +14597,25 @@ class Meta: "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - voice: Optional[str] = field( + voice: str | None = field( default=None, metadata={ "type": "Element", }, ) - type_value: Optional[NoteType] = field( + type_value: NoteType | None = field( default=None, metadata={ "name": "type", @@ -14629,39 +14628,39 @@ class Meta: "type": "Element", }, ) - accidental: Optional[Accidental] = field( + accidental: Accidental | None = field( default=None, metadata={ "type": "Element", }, ) - time_modification: Optional[TimeModification] = field( + time_modification: TimeModification | None = field( default=None, metadata={ "name": "time-modification", "type": "Element", }, ) - stem: Optional[Stem] = field( + stem: Stem | None = field( default=None, metadata={ "type": "Element", }, ) - notehead: Optional[Notehead] = field( + notehead: Notehead | None = field( default=None, metadata={ "type": "Element", }, ) - notehead_text: Optional[NoteheadText] = field( + notehead_text: NoteheadText | None = field( default=None, metadata={ "name": "notehead-text", "type": "Element", }, ) - staff: Optional[int] = field( + staff: int | None = field( default=None, metadata={ "type": "Element", @@ -14686,47 +14685,47 @@ class Meta: "type": "Element", }, ) - play: Optional[Play] = field( + play: Play | None = field( default=None, metadata={ "type": "Element", }, ) - listen: Optional[Listen] = field( + listen: Listen | None = field( default=None, metadata={ "type": "Element", }, ) - default_x: Optional[Decimal] = field( + default_x: Decimal | None = field( default=None, metadata={ "name": "default-x", "type": "Attribute", }, ) - default_y: Optional[Decimal] = field( + default_y: Decimal | None = field( default=None, metadata={ "name": "default-y", "type": "Attribute", }, ) - relative_x: Optional[Decimal] = field( + relative_x: Decimal | None = field( default=None, metadata={ "name": "relative-x", "type": "Attribute", }, ) - relative_y: Optional[Decimal] = field( + relative_y: Decimal | None = field( default=None, metadata={ "name": "relative-y", "type": "Attribute", }, ) - font_family: Optional[str] = field( + font_family: str | None = field( default=None, metadata={ "name": "font-family", @@ -14734,77 +14733,77 @@ class Meta: "pattern": r"[^,]+(, ?[^,]+)*", }, ) - font_style: Optional[FontStyle] = field( + font_style: FontStyle | None = field( default=None, metadata={ "name": "font-style", "type": "Attribute", }, ) - font_size: Optional[Union[Decimal, CssFontSize]] = field( + font_size: Decimal | CssFontSize | None = field( default=None, metadata={ "name": "font-size", "type": "Attribute", }, ) - font_weight: Optional[FontWeight] = field( + font_weight: FontWeight | None = field( default=None, metadata={ "name": "font-weight", "type": "Attribute", }, ) - color: Optional[str] = field( + color: str | None = field( default=None, metadata={ "type": "Attribute", "pattern": r"#[\dA-F]{6}([\dA-F][\dA-F])?", }, ) - print_object: Optional[YesNo] = field( + print_object: YesNo | None = field( default=None, metadata={ "name": "print-object", "type": "Attribute", }, ) - print_dot: Optional[YesNo] = field( + print_dot: YesNo | None = field( default=None, metadata={ "name": "print-dot", "type": "Attribute", }, ) - print_spacing: Optional[YesNo] = field( + print_spacing: YesNo | None = field( default=None, metadata={ "name": "print-spacing", "type": "Attribute", }, ) - print_lyric: Optional[YesNo] = field( + print_lyric: YesNo | None = field( default=None, metadata={ "name": "print-lyric", "type": "Attribute", }, ) - print_leger: Optional[YesNo] = field( + print_leger: YesNo | None = field( default=None, metadata={ "name": "print-leger", "type": "Attribute", }, ) - dynamics: Optional[Decimal] = field( + dynamics: Decimal | None = field( default=None, metadata={ "type": "Attribute", "min_inclusive": Decimal("0"), }, ) - end_dynamics: Optional[Decimal] = field( + end_dynamics: Decimal | None = field( default=None, metadata={ "name": "end-dynamics", @@ -14812,19 +14811,19 @@ class Meta: "min_inclusive": Decimal("0"), }, ) - attack: Optional[Decimal] = field( + attack: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - release: Optional[Decimal] = field( + release: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - time_only: Optional[str] = field( + time_only: str | None = field( default=None, metadata={ "name": "time-only", @@ -14832,13 +14831,13 @@ class Meta: "pattern": r"[1-9][0-9]*(, ?[1-9][0-9]*)*", }, ) - pizzicato: Optional[YesNo] = field( + pizzicato: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14881,67 +14880,67 @@ class Meta: "min_occurs": 1, }, ) - offset: Optional[Offset] = field( + offset: Offset | None = field( default=None, metadata={ "type": "Element", }, ) - footnote: Optional[FormattedText] = field( + footnote: FormattedText | None = field( default=None, metadata={ "type": "Element", }, ) - level: Optional[Level] = field( + level: Level | None = field( default=None, metadata={ "type": "Element", }, ) - voice: Optional[str] = field( + voice: str | None = field( default=None, metadata={ "type": "Element", }, ) - staff: Optional[int] = field( + staff: int | None = field( default=None, metadata={ "type": "Element", }, ) - sound: Optional[Sound] = field( + sound: Sound | None = field( default=None, metadata={ "type": "Element", }, ) - listening: Optional[Listening] = field( + listening: Listening | None = field( default=None, metadata={ "type": "Element", }, ) - placement: Optional[AboveBelow] = field( + placement: AboveBelow | None = field( default=None, metadata={ "type": "Attribute", }, ) - directive: Optional[YesNo] = field( + directive: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - system: Optional[SystemRelation] = field( + system: SystemRelation | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -14954,33 +14953,33 @@ class Meta: name = "score-partwise" model_config = ConfigDict(defer_build=True) - work: Optional[Work] = field( + work: Work | None = field( default=None, metadata={ "type": "Element", }, ) - movement_number: Optional[str] = field( + movement_number: str | None = field( default=None, metadata={ "name": "movement-number", "type": "Element", }, ) - movement_title: Optional[str] = field( + movement_title: str | None = field( default=None, metadata={ "name": "movement-title", "type": "Element", }, ) - identification: Optional[Identification] = field( + identification: Identification | None = field( default=None, metadata={ "type": "Element", }, ) - defaults: Optional[Defaults] = field( + defaults: Defaults | None = field( default=None, metadata={ "type": "Element", @@ -15123,33 +15122,33 @@ class Measure(BaseModel): "required": True, } ) - text: Optional[str] = field( + text: str | None = field( default=None, metadata={ "type": "Attribute", "min_length": 1, }, ) - implicit: Optional[YesNo] = field( + implicit: YesNo | None = field( default=None, metadata={ "type": "Attribute", }, ) - non_controlling: Optional[YesNo] = field( + non_controlling: YesNo | None = field( default=None, metadata={ "name": "non-controlling", "type": "Attribute", }, ) - width: Optional[Decimal] = field( + width: Decimal | None = field( default=None, metadata={ "type": "Attribute", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", diff --git a/libresvip/plugins/musicxml/musicxml_generator.py b/libresvip/plugins/musicxml/musicxml_generator.py index adbbfa5fe..959378ba2 100644 --- a/libresvip/plugins/musicxml/musicxml_generator.py +++ b/libresvip/plugins/musicxml/musicxml_generator.py @@ -1,9 +1,10 @@ import dataclasses +import itertools import operator import re from collections import defaultdict from decimal import Decimal -from typing import Optional, cast +from typing import cast from libresvip.core.constants import TICKS_IN_BEAT from libresvip.model.base import Project, SingingTrack, TimeSignature @@ -72,7 +73,7 @@ def generate_part( self, measures: list[MXmlMeasure], track_index: int, - track_title: Optional[str], + track_title: str | None, ) -> tuple[ScorePartwise.Part, ScorePart]: part_id = f"P{track_index + 1}" part_node = ScorePartwise.Part(id=part_id) @@ -190,7 +191,7 @@ def generate_nodes_for_tempo(self, tempo: MXmlMeasureContent) -> tuple[Sound, Di def generate_rest_node(self, rest: MXmlMeasureContent) -> MusicXMLNote: return MusicXMLNote(rest=[Rest()], duration=[Decimal(rest.duration)]) - def generate_note_node(self, note: MXmlMeasureContent) -> Optional[MusicXMLNote]: + def generate_note_node(self, note: MXmlMeasureContent) -> MusicXMLNote | None: if note.note is None or note.note_type is None: return None note_node = MusicXMLNote( @@ -320,7 +321,7 @@ def get_measures( ) ], ) - for border_pair in zip(measure_border_ticks, measure_border_ticks[1:]) + for border_pair in itertools.pairwise(measure_border_ticks) ] content_group_border_pair_map = {} diff --git a/libresvip/plugins/musicxml/musicxml_parser.py b/libresvip/plugins/musicxml/musicxml_parser.py index 6c06a3068..642409a31 100644 --- a/libresvip/plugins/musicxml/musicxml_parser.py +++ b/libresvip/plugins/musicxml/musicxml_parser.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.constants import DEFAULT_PHONEME, TICKS_IN_BEAT from libresvip.model.base import ( @@ -89,7 +88,7 @@ def parse_track( self, track_index: int, part_node: ScorePartwise.Part, - score_part: Optional[ScorePart], + score_part: ScorePart | None, import_tick_rate: float, ) -> SingingTrack: track_name = ( diff --git a/libresvip/plugins/ppsf/model.py b/libresvip/plugins/ppsf/model.py index 5ba223aa8..63d31452f 100644 --- a/libresvip/plugins/ppsf/model.py +++ b/libresvip/plugins/ppsf/model.py @@ -1,6 +1,6 @@ # mypy: disable-error-code="misc" import enum -from typing import Annotated, Any, Optional +from typing import Annotated, Any from pydantic import Field @@ -20,16 +20,16 @@ class PpsfCurveType(enum.IntEnum): class PpsfCurvePointSeq(BaseModel): - border_type: Optional[int] = Field(None, alias="border-type") - note_index: Optional[int] = Field(None, alias="note-index") + border_type: int | None = Field(None, alias="border-type") + note_index: int | None = Field(None, alias="note-index") region_index: int = Field(alias="region-index") - edited_by_user: Optional[bool] = Field(False, alias="edited-by-user") - seg_array_id: Optional[int] = Field(None, alias="seg-array-id") - abs_value: Optional[int] = Field(None, alias="abs-value") + edited_by_user: bool | None = Field(False, alias="edited-by-user") + seg_array_id: int | None = Field(None, alias="seg-array-id") + abs_value: int | None = Field(None, alias="abs-value") class PpsfCurvePoint(BaseModel): - plugin_descriptor: Optional[str] = Field(None, alias="plugin-descriptor") + plugin_descriptor: str | None = Field(None, alias="plugin-descriptor") sequence: list[PpsfCurvePointSeq] = Field(default_factory=list) sub_track_category: int = Field(alias="sub-track-category") sub_track_id: int = Field(alias="sub-track-id") @@ -50,44 +50,44 @@ class PpsfNote(BaseModel): language: PpsfLanguage = PpsfLanguage.JAPANESE region_index: int = Field(alias="region-index") syllables: list[PpsfSyllable] = Field(default_factory=list) - event_index: Optional[int] = None - length: Optional[int] = None - muted: Optional[bool] = False - vibrato_preset_id: Optional[int] = 0 - voice_color_id: Optional[int] = 0 - voice_release_id: Optional[int] = 0 - note_env_preset_id: Optional[int] = 2 - note_gain_value: Optional[int] = 0 - note_param_edited_stats: Optional[int] = 0 - portamento_length: Optional[int] = 180 - portamento_offset: Optional[int] = -120 - vibrato_depth: Optional[int] = 0 - vibrato_rate: Optional[int] = 0 - auto_ai_consonant_length_enabled: Optional[bool] = False - auto_ai_f0_enabled: Optional[bool] = True - auto_ai_vibrato_blend_amount: Optional[int] = None - auto_ai_vibrato_blend_type: Optional[int] = None - auto_ai_vibrato_default_type: Optional[int] = None - auto_ai_vibrato_depth: Optional[int] = 0 - auto_ai_vibrato_enabled: Optional[bool] = False - auto_ai_vibrato_offset: Optional[float] = None - auto_ai_vibrato_offset_by_user: Optional[bool] = False + event_index: int | None = None + length: int | None = None + muted: bool | None = False + vibrato_preset_id: int | None = 0 + voice_color_id: int | None = 0 + voice_release_id: int | None = 0 + note_env_preset_id: int | None = 2 + note_gain_value: int | None = 0 + note_param_edited_stats: int | None = 0 + portamento_length: int | None = 180 + portamento_offset: int | None = -120 + vibrato_depth: int | None = 0 + vibrato_rate: int | None = 0 + auto_ai_consonant_length_enabled: bool | None = False + auto_ai_f0_enabled: bool | None = True + auto_ai_vibrato_blend_amount: int | None = None + auto_ai_vibrato_blend_type: int | None = None + auto_ai_vibrato_default_type: int | None = None + auto_ai_vibrato_depth: int | None = 0 + auto_ai_vibrato_enabled: bool | None = False + auto_ai_vibrato_offset: float | None = None + auto_ai_vibrato_offset_by_user: bool | None = False class PpsfRegion(BaseModel): - auto_expand_left: Optional[bool] = Field(None, alias="auto-expand-left") - auto_expand_right: Optional[bool] = Field(None, alias="auto-expand-right") + auto_expand_left: bool | None = Field(None, alias="auto-expand-left") + auto_expand_right: bool | None = Field(None, alias="auto-expand-right") length: int muted: bool = False name: str = "" position: int z_order: int = Field(0, alias="z-order") - audio_event_index: Optional[int] = Field(None, alias="audio-event-index") + audio_event_index: int | None = Field(None, alias="audio-event-index") class PpsfSubTrack(BaseModel): height: int - plugin_descriptor: Optional[str] = Field(None, alias="plugin-descriptor") + plugin_descriptor: str | None = Field(None, alias="plugin-descriptor") sub_track_category: int = Field(alias="sub-track-category") sub_track_id: int = Field(alias="sub-track-id") @@ -96,11 +96,11 @@ class PpsfParamPoint(BaseModel): curve_type: PpsfCurveType = PpsfCurveType.NORMAL pos: int value: int - region_index: Optional[int] = Field(None, alias="region-index") - border_type: Optional[int] = Field(None, alias="border-type") - note_index: Optional[int] = Field(None, alias="note-index") - edited_by_user: Optional[bool] = Field(None, alias="edited-by-user") - seg_array_id: Optional[int] = Field(None, alias="seg-array-id") + region_index: int | None = Field(None, alias="region-index") + border_type: int | None = Field(None, alias="border-type") + note_index: int | None = Field(None, alias="note-index") + edited_by_user: bool | None = Field(None, alias="edited-by-user") + seg_array_id: int | None = Field(None, alias="seg-array-id") class PpsfBaseSequence(BaseModel): @@ -111,14 +111,14 @@ class PpsfBaseSequence(BaseModel): class PpsfSeqParam(BaseModel): - base_sequence: Optional[PpsfBaseSequence] = Field(None, alias="base-sequence") - layers: Optional[list[Any]] = Field(default_factory=list) + base_sequence: PpsfBaseSequence | None = Field(None, alias="base-sequence") + layers: list[Any] | None = Field(default_factory=list) class PpsfParameter(PpsfBaseSequence): - default: Optional[int] = None - max_value: Optional[int] = Field(None, alias="max") - min_value: Optional[int] = Field(None, alias="min") + default: int | None = None + max_value: int | None = Field(None, alias="max") + min_value: int | None = Field(None, alias="min") class PpsfFsmEffect(BaseModel): @@ -133,12 +133,12 @@ class PpsfFsmEffect(BaseModel): class PpsfEventTrack(BaseModel): curve_points: list[PpsfCurvePoint] = Field(default_factory=list, alias="curve-points") - fsm_effects: Optional[list[PpsfFsmEffect]] = Field(default_factory=list, alias="fsm-effects") + fsm_effects: list[PpsfFsmEffect] | None = Field(default_factory=list, alias="fsm-effects") height: int = 64 index: int mute_solo: int = Field(0, alias="mute-solo") notes: list[PpsfNote] = Field(default_factory=list) - nt_envelope_preset_id: Optional[int] = Field(None, alias="nt-envelope-preset-id") + nt_envelope_preset_id: int | None = Field(None, alias="nt-envelope-preset-id") regions: list[PpsfRegion] = Field(default_factory=list) sub_tracks: list[PpsfSubTrack] = Field(default_factory=list, alias="sub-tracks") total_height: int = Field(64, alias="total-height") @@ -160,7 +160,7 @@ class PpsfTrackEditor(BaseModel): horizontal_scale: float = Field(0.08, alias="horizontal-scale") horizontal_scroll: int = Field(0, alias="horizontal-scroll") tempo_track: PpsfTempoTrack = Field(default_factory=PpsfTempoTrack, alias="tempo-track") - user_markers: Optional[list[Any]] = Field(default_factory=list, alias="user-markers") + user_markers: list[Any] | None = Field(default_factory=list, alias="user-markers") width: int = 1024 x: int = 100 y: int = 100 @@ -168,25 +168,25 @@ class PpsfTrackEditor(BaseModel): class PpsfLoopPoint(BaseModel): begin: int = 0 - enabled: Optional[bool] = Field(False, validation_alias="enable") + enabled: bool | None = Field(False, validation_alias="enable") end: int = 7680 class PpsfMetronome(BaseModel): - enabled: Optional[bool] = Field(False, validation_alias="enable") + enabled: bool | None = Field(False, validation_alias="enable") wav: str = "null" class PpsfGuiSettings(BaseModel): - loop_point: Optional[PpsfLoopPoint] = Field(default_factory=PpsfLoopPoint) - metronome: Optional[PpsfMetronome] = Field(default_factory=PpsfMetronome) - ambient_enabled: Optional[bool] = Field(None, alias="ambient-enabled") + loop_point: PpsfLoopPoint | None = Field(default_factory=PpsfLoopPoint) + metronome: PpsfMetronome | None = Field(default_factory=PpsfMetronome) + ambient_enabled: bool | None = Field(None, alias="ambient-enabled") file_fullpath: str = Field("", alias="file-fullpath") playback_position: int = Field(0, alias="playback-position") project_length: int = Field(0, alias="project-length") track_editor: PpsfTrackEditor = Field(default_factory=PpsfTrackEditor, alias="track-editor") - auto_connect_interval_msec: Optional[int] = Field(None, alias="auto-connect-interval-msec") - is_saved_by_nt2: Optional[bool] = Field(None, alias="is-saved-by-nt2") + auto_connect_interval_msec: int | None = Field(None, alias="auto-connect-interval-msec") + is_saved_by_nt2: bool | None = Field(None, alias="is-saved-by-nt2") class PpsfFileAudioData(BaseModel): @@ -199,7 +199,7 @@ class PpsfAudioTrackEvent(BaseModel): playback_offset_sample: int = 0 tick_length: int = 0 tick_pos: int - enabled: Optional[bool] = Field(True, validation_alias="enable") + enabled: bool | None = Field(True, validation_alias="enable") def default_gain() -> PpsfSeqParam: @@ -228,7 +228,7 @@ class PpsfMixer(BaseModel): class PpsfAudioTrackItem(BaseModel): block_size: int = 279 - enabled: Optional[bool] = Field(True, validation_alias="enable") + enabled: bool | None = Field(True, validation_alias="enable") events: list[PpsfAudioTrackEvent] = Field(default_factory=list) input_channel: int = 0 mixer: PpsfMixer = Field(default_factory=PpsfMixer) @@ -283,8 +283,8 @@ class PpsfVocaloidTrackEvent(BaseModel): velocity: int vib_category: int vib_offset: int - vib_depth: Optional[list[PpsfParamPoint]] = None - vib_rate: Optional[list[PpsfParamPoint]] = None + vib_depth: list[PpsfParamPoint] | None = None + vib_rate: list[PpsfParamPoint] | None = None class PpsfVocaloidTrackItem(BaseModel): @@ -322,27 +322,27 @@ def default_portamento_envelope() -> PpsfEnvelope: class PpsfDvlTrackEvent(BaseModel): - adjust_speed: Optional[bool] = False + adjust_speed: bool | None = False attack_speed_rate: int = 800000 consonant_rate: int = 950000 consonant_speed_rate: int = 1000000 - enabled: Optional[bool] = Field(True, validation_alias="enable") + enabled: bool | None = Field(True, validation_alias="enable") length: int lyric: str note_number: int - note_off_pit_envelope: Optional[PpsfEnvelope] = Field(default_factory=PpsfEnvelope) - note_on_pit_envelope: Optional[PpsfEnvelope] = Field(default_factory=PpsfEnvelope) - portamento_envelope: Optional[PpsfEnvelope] = Field(default_factory=default_portamento_envelope) - vib_depth: Optional[PpsfEnvelope] = None - vib_rate: Optional[PpsfEnvelope] = None - vib_setting_id: Optional[int] = None + note_off_pit_envelope: PpsfEnvelope | None = Field(default_factory=PpsfEnvelope) + note_on_pit_envelope: PpsfEnvelope | None = Field(default_factory=PpsfEnvelope) + portamento_envelope: PpsfEnvelope | None = Field(default_factory=default_portamento_envelope) + vib_depth: PpsfEnvelope | None = None + vib_rate: PpsfEnvelope | None = None + vib_setting_id: int | None = None portamento_type: int = 5 pos: int protected: bool = False release_speed_rate: int = 1400000 symbols: str = "" - vcl_like_note_off: Optional[bool] = False - is_consonant_length_by_user: Optional[bool] = False + vcl_like_note_off: bool | None = False + is_consonant_length_by_user: bool | None = False @property def end_pos(self) -> int: @@ -350,7 +350,7 @@ def end_pos(self) -> int: class PpsfDvlTrackItem(BaseModel): - enabled: Optional[bool] = Field(True, validation_alias="enable") + enabled: bool | None = Field(True, validation_alias="enable") events: list[PpsfDvlTrackEvent] = Field(default_factory=list) mixer: PpsfMixer = Field(default_factory=PpsfMixer) name: str = "HATSUNE MIKU NT Original" @@ -374,15 +374,15 @@ class PpsfTempos(BaseModel): class PpsfInnerProject(BaseModel): audio_track: list[PpsfAudioTrackItem] = Field(default_factory=list) block_size: int = 279 - loop_point: Optional[PpsfLoopPoint] = None + loop_point: PpsfLoopPoint | None = None meter: PpsfMeters = Field(default_factory=PpsfMeters) - metronome: Optional[PpsfMetronome] = None + metronome: PpsfMetronome | None = None name: str = "" sampling_rate: int = 48000 singer_table: list[PpsfSingerTableItem] = Field(default_factory=list) tempo: PpsfTempos = Field(default_factory=PpsfTempos) vocaloid_track: list[PpsfVocaloidTrackItem] = Field(default_factory=list) - dvl_track: Optional[list[PpsfDvlTrackItem]] = None + dvl_track: list[PpsfDvlTrackItem] | None = None class PpsfRoot(BaseModel): diff --git a/libresvip/plugins/ppsf/piapro_studio_legacy_parser.py b/libresvip/plugins/ppsf/piapro_studio_legacy_parser.py index c8a2f3fbc..9c29cef97 100644 --- a/libresvip/plugins/ppsf/piapro_studio_legacy_parser.py +++ b/libresvip/plugins/ppsf/piapro_studio_legacy_parser.py @@ -1,7 +1,6 @@ import dataclasses import struct from collections import defaultdict -from typing import Optional from construct import ( Byte, @@ -34,34 +33,35 @@ class PiaproStudioLegacyParser: clips2track_indexes: dict[int, int] = dataclasses.field(default_factory=dict) def parse_project(self, ppsf_project: PpsfLegacyProject) -> Project: - events_chunk: Optional[PpsfChunk] = None + events_chunk: PpsfChunk | None = None for chunk in ppsf_project.body.chunks: - if chunk.magic == "Clips": - for clip_group in chunk.data.clips: - for clip in clip_group: - if clip.magic == "Vocaloid3NoteClip": - (clip_offset,) = struct.unpack_from( - " Project: ) def parse_tempos_and_time_signatures( - self, events_chunk: Optional[Container] = None + self, events_chunk: Container | None = None ) -> tuple[list[SongTempo], list[TimeSignature]]: tempos = [] time_signatures: list[TimeSignature] = [] @@ -121,7 +121,7 @@ def parse_tempos_and_time_signatures( time_signatures.append(TimeSignature()) return tempos, time_signatures - def parse_tracks(self, events_chunk: Optional[Container] = None) -> list[SingingTrack]: + def parse_tracks(self, events_chunk: Container | None = None) -> list[SingingTrack]: tracks: list[SingingTrack] = [] if events_chunk is not None: lyric_info_struct = Struct( diff --git a/libresvip/plugins/ppsf/piapro_studio_nt_parser.py b/libresvip/plugins/ppsf/piapro_studio_nt_parser.py index 3cb23a9f8..b9aed1177 100644 --- a/libresvip/plugins/ppsf/piapro_studio_nt_parser.py +++ b/libresvip/plugins/ppsf/piapro_studio_nt_parser.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.lyric_phoneme.japanese.vocaloid_xsampa import legato_chars from libresvip.model.base import ( @@ -94,7 +93,7 @@ def parse_instrumental_tracks( def parse_singing_tracks( self, - ppsf_dvl_tracks: Optional[list[PpsfDvlTrackItem]], + ppsf_dvl_tracks: list[PpsfDvlTrackItem] | None, event_tracks: list[PpsfEventTrack], ) -> list[SingingTrack]: tracks = [] diff --git a/libresvip/plugins/ps_project/model.py b/libresvip/plugins/ps_project/model.py index 47570fd79..386e2b9c8 100644 --- a/libresvip/plugins/ps_project/model.py +++ b/libresvip/plugins/ps_project/model.py @@ -1,4 +1,4 @@ -from typing import Literal, Optional +from typing import Literal from pydantic import Field, ValidationInfo, model_validator from typing_extensions import Self @@ -38,8 +38,8 @@ def extract_audio(self, info: ValidationInfo) -> Self: class PocketSingerMetadata(BaseModel): ace_file_name: str = Field(alias="aceFileName") - background_image_name: Optional[str] = Field(None, alias="backgroundImageName") - bgm_info: Optional[PocketSingerBgmMetadata] = Field(None, alias="bgmInfo") + background_image_name: str | None = Field(None, alias="backgroundImageName") + bgm_info: PocketSingerBgmMetadata | None = Field(None, alias="bgmInfo") class PocketSingerPitchBend(BaseModel): @@ -65,11 +65,11 @@ class PocketSingerSinWave(BaseModel): class PocketSingerNoteBase(BaseModel): start_time: float end_time: float - identifier: Optional[int] = None - energy_envolope: Optional[list[PocketSingerEnvolopeItem]] = None - air_envolope: Optional[list[PocketSingerEnvolopeItem]] = None - tension_envolope: Optional[list[PocketSingerEnvolopeItem]] = None - falsetto_envolope: Optional[list[PocketSingerEnvolopeItem]] = None + identifier: int | None = None + energy_envolope: list[PocketSingerEnvolopeItem] | None = None + air_envolope: list[PocketSingerEnvolopeItem] | None = None + tension_envolope: list[PocketSingerEnvolopeItem] | None = None + falsetto_envolope: list[PocketSingerEnvolopeItem] | None = None class PocketSingerBrNote(PocketSingerNoteBase): @@ -78,7 +78,7 @@ class PocketSingerBrNote(PocketSingerNoteBase): class PocketSingerNote(PocketSingerNoteBase): pitch_bends: list[PocketSingerPitchBend] = Field(default_factory=list, alias="pitchBends") - consonant_time_head: Optional[list[float]] = None + consonant_time_head: list[float] | None = None phone: list[str] = Field(default_factory=list) grapheme_count: int = 1 grapheme_index: int = 0 @@ -87,16 +87,16 @@ class PocketSingerNote(PocketSingerNoteBase): pitch: int type: Literal["phone"] = "phone" br: bool = False - sin_wave: Optional[PocketSingerSinWave] = None - user_pitch: Optional[list[PocketSingerPitchBend]] = None - consonant_time_tail: Optional[list[float]] = None - br_note: Optional[PocketSingerBrNote] = Field(None, alias="brNote") - user_phone: Optional[list[str]] = Field(None, alias="userPhone") - valid: Optional[bool] = None - key: Optional[str] = None - scale: Optional[list[int]] = None - config: Optional[str] = None - is_edit_phone: Optional[bool] = Field(None, alias="isEditPhone") + sin_wave: PocketSingerSinWave | None = None + user_pitch: list[PocketSingerPitchBend] | None = None + consonant_time_tail: list[float] | None = None + br_note: PocketSingerBrNote | None = Field(None, alias="brNote") + user_phone: list[str] | None = Field(None, alias="userPhone") + valid: bool | None = None + key: str | None = None + scale: list[int] | None = None + config: str | None = None + is_edit_phone: bool | None = Field(None, alias="isEditPhone") class PocketSingerRoleInfo(BaseModel): @@ -112,7 +112,7 @@ class PocketSingerTrack(BaseModel): solo: bool = False notes: list[PocketSingerNote] = Field(default_factory=list) language: PocketSingerLyricsLanguage = PocketSingerLyricsLanguage.CHINESE - mix_info: Optional[str] = None + mix_info: str | None = None br_notes: list[PocketSingerBrNote] = Field(default_factory=list) role_info: PocketSingerRoleInfo = Field(default_factory=PocketSingerRoleInfo) mute: bool = False @@ -141,9 +141,9 @@ class PocketSingerDebugInfo(BaseModel): record_type: str = Field("create", alias="recordType") os: str = "16" device: str = "iPad8,3" - build_version: Optional[str] = Field(None, alias="buildVersion") + build_version: str | None = Field(None, alias="buildVersion") platform: str = "iOS" - user_language: Optional[PocketSingerLyricsLanguage] = Field(None, alias="userLanguage") + user_language: PocketSingerLyricsLanguage | None = Field(None, alias="userLanguage") class PocketSingerSongInfo(BaseModel): @@ -157,22 +157,22 @@ class PocketSingerSongInfo(BaseModel): duration: float beat_of_bar: int name: str - origin_duration: Optional[float] = None - origin_start: Optional[int] = None - author: Optional[str] = None - tuner: Optional[str] = None - song_id: Optional[int] = None - user_id: Optional[int] = None + origin_duration: float | None = None + origin_start: int | None = None + author: str | None = None + tuner: str | None = None + song_id: int | None = None + user_id: int | None = None class PocketSingerProject(BaseModel): - notes: Optional[list[PocketSingerNote]] = None + notes: list[PocketSingerNote] | None = None tracks: list[PocketSingerTrack] = Field(default_factory=list) - bpm: Optional[float] = None + bpm: float | None = None bgm_info: PocketSingerBgmInfo = Field(default_factory=PocketSingerBgmInfo) debug_info: PocketSingerDebugInfo = Field(default_factory=PocketSingerDebugInfo) version: int = 3 - timestamp: Optional[int] = None + timestamp: int | None = None song_info: PocketSingerSongInfo @model_validator(mode="after") diff --git a/libresvip/plugins/ps_project/pocket_singer_generator.py b/libresvip/plugins/ps_project/pocket_singer_generator.py index 18e433518..26c1ee908 100644 --- a/libresvip/plugins/ps_project/pocket_singer_generator.py +++ b/libresvip/plugins/ps_project/pocket_singer_generator.py @@ -2,7 +2,6 @@ import hashlib import io import pathlib -from typing import Optional import more_itertools @@ -103,7 +102,7 @@ def generate_song_info(self, tempo: SongTempo) -> PocketSingerSongInfo: def generate_bgm_info( self, instrumental_track: InstrumentalTrack - ) -> Optional[PocketSingerBgmInfo]: + ) -> PocketSingerBgmInfo | None: audio_path = pathlib.Path(instrumental_track.audio_file_path) file_type = audio_path.suffix[1:].lower() if file_type not in ("wav", "mp3", "flac", "aac", "m4a"): @@ -128,7 +127,7 @@ def generate_bgm_info( ], ) - def generate_track(self, track: SingingTrack) -> Optional[PocketSingerTrack]: + def generate_track(self, track: SingingTrack) -> PocketSingerTrack | None: ps_track = PocketSingerTrack( language=self.options.lyric_language, mute=track.mute, diff --git a/libresvip/plugins/s5p/model.py b/libresvip/plugins/s5p/model.py index 02beac698..02f1b217d 100644 --- a/libresvip/plugins/s5p/model.py +++ b/libresvip/plugins/s5p/model.py @@ -1,5 +1,5 @@ from itertools import chain -from typing import NamedTuple, Optional +from typing import NamedTuple from more_itertools import batched from pydantic import ( @@ -38,10 +38,10 @@ class S5pTempoItem(BaseModel): class S5pDbDefaults(BaseModel): - lyric: Optional[str] = DEFAULT_PHONEME - breathiness: Optional[float] = 0.0 - gender: Optional[float] = 0.0 - tension: Optional[float] = 0.0 + lyric: str | None = DEFAULT_PHONEME + breathiness: float | None = 0.0 + gender: float | None = 0.0 + tension: float | None = 0.0 d_f0_vbr: float = Field(0.025, alias="dF0Vbr") p_f0_vbr: float = Field(0.0, alias="pF0Vbr") t_f0_vbr_left: float = Field(0.15, alias="tF0VbrLeft") @@ -61,23 +61,23 @@ class S5pNote(BaseModel): duration: int comment: str = "" pitch: int - d_f0_vbr: Optional[float] = Field(None, alias="dF0Vbr") - p_f0_vbr: Optional[float] = Field(None, alias="pF0Vbr") - t_f0_vbr_left: Optional[float] = Field(None, alias="tF0VbrLeft") - t_f0_vbr_right: Optional[float] = Field(None, alias="tF0VbrRight") - t_f0_vbr_start: Optional[float] = Field(None, alias="tF0VbrStart") - f_f0_vbr: Optional[float] = Field(None, alias="fF0Vbr") - t_f0_left: Optional[float] = Field(None, alias="tF0Left") - t_f0_right: Optional[float] = Field(None, alias="tF0Right") - d_f0_left: Optional[float] = Field(None, alias="dF0Left") - d_f0_right: Optional[float] = Field(None, alias="dF0Right") - d_f0_jitter: Optional[float] = Field(None, alias="dF0Jitter") - t_f0_offset: Optional[float] = Field(None, alias="tF0Offset") - t_note_offset: Optional[float] = Field(None, alias="tNoteOffset") - t_syl_onset: Optional[float] = Field(None, alias="tSylOnset") - t_syl_coda: Optional[float] = Field(None, alias="tSylCoda") - w_syl_nucleus: Optional[float] = Field(None, alias="wSylNucleus") - sublib: Optional[str] = None + d_f0_vbr: float | None = Field(None, alias="dF0Vbr") + p_f0_vbr: float | None = Field(None, alias="pF0Vbr") + t_f0_vbr_left: float | None = Field(None, alias="tF0VbrLeft") + t_f0_vbr_right: float | None = Field(None, alias="tF0VbrRight") + t_f0_vbr_start: float | None = Field(None, alias="tF0VbrStart") + f_f0_vbr: float | None = Field(None, alias="fF0Vbr") + t_f0_left: float | None = Field(None, alias="tF0Left") + t_f0_right: float | None = Field(None, alias="tF0Right") + d_f0_left: float | None = Field(None, alias="dF0Left") + d_f0_right: float | None = Field(None, alias="dF0Right") + d_f0_jitter: float | None = Field(None, alias="dF0Jitter") + t_f0_offset: float | None = Field(None, alias="tF0Offset") + t_note_offset: float | None = Field(None, alias="tNoteOffset") + t_syl_onset: float | None = Field(None, alias="tSylOnset") + t_syl_coda: float | None = Field(None, alias="tSylCoda") + w_syl_nucleus: float | None = Field(None, alias="wSylNucleus") + sublib: str | None = None class S5pTrackMixer(BaseModel): @@ -135,7 +135,7 @@ class S5pTrack(BaseModel): color: str = "15e879" display_order: int = Field(0, alias="displayOrder") db_defaults: S5pDbDefaults = Field(default_factory=S5pDbDefaults, alias="dbDefaults") - notes: list[Optional[S5pNote]] = Field(default_factory=list) + notes: list[S5pNote | None] = Field(default_factory=list) gs_events: None = Field(None, alias="gsEvents") mixer: S5pTrackMixer = Field(default_factory=S5pTrackMixer) parameters: S5pParameters = Field(default_factory=S5pParameters) diff --git a/libresvip/plugins/s5p/synthv_editor_parser.py b/libresvip/plugins/s5p/synthv_editor_parser.py index 9e32b5f98..8f8a2e82d 100644 --- a/libresvip/plugins/s5p/synthv_editor_parser.py +++ b/libresvip/plugins/s5p/synthv_editor_parser.py @@ -3,7 +3,7 @@ import math import operator import pathlib -from typing import Optional, cast +from typing import cast import more_itertools import portion @@ -136,7 +136,7 @@ def parse_instrumental_track( ) def parse_notes( - self, s5p_notes: list[Optional[S5pNote]], db_defaults: S5pDbDefaults + self, s5p_notes: list[S5pNote | None], db_defaults: S5pDbDefaults ) -> list[Note]: self.vibrato_value_interval_dict = PiecewiseIntervalDict() self.vibrato_coef_interval_dict = PiecewiseIntervalDict() diff --git a/libresvip/plugins/svg/svg_factory.py b/libresvip/plugins/svg/svg_factory.py index d32c1032e..d4a4efe95 100644 --- a/libresvip/plugins/svg/svg_factory.py +++ b/libresvip/plugins/svg/svg_factory.py @@ -1,6 +1,5 @@ import dataclasses import itertools -from typing import Optional import more_itertools from drawsvg import Line, Lines, Rectangle, Text @@ -112,7 +111,7 @@ def draw_grid(self, time_signature_list: list[TimeSignature]) -> None: def draw_text( self, position: TextPositionOption, - text: Optional[str], + text: str | None, parameters: NotePositionParameters, is_phoneme: bool, ) -> None: diff --git a/libresvip/plugins/svip/binsvip_generator.py b/libresvip/plugins/svip/binsvip_generator.py index 9934a0a31..7e3e2bdcc 100644 --- a/libresvip/plugins/svip/binsvip_generator.py +++ b/libresvip/plugins/svip/binsvip_generator.py @@ -1,7 +1,6 @@ import dataclasses import re from collections.abc import Callable -from typing import Optional from libresvip.core.constants import DEFAULT_CHINESE_LYRIC from libresvip.core.lyric_phoneme.chinese import CHINESE_RE @@ -128,8 +127,8 @@ def generate_time_signature(signature: TimeSignature) -> XSSongBeat: beat_size=XSBeatSize(x=signature.numerator, y=signature.denominator), ) - def generate_track(self, track: Track) -> Optional[XSITrack]: - s_track: Optional[XSITrack] = None + def generate_track(self, track: Track) -> XSITrack | None: + s_track: XSITrack | None = None if isinstance(track, SingingTrack): singer_id = opensvip_singers.get_id(track.ai_singer_name) if singer_id == "": @@ -170,7 +169,7 @@ def generate_track(self, track: Track) -> Optional[XSITrack]: s_track.pan = track.pan return s_track - def generate_note(self, note: Note) -> Optional[XSNote]: + def generate_note(self, note: Note) -> XSNote | None: if not note.lyric and not note.pronunciation: return None xs_note = XSNote( @@ -240,7 +239,7 @@ def generate_params(self, edited_params: Params) -> dict[str, XSLineParam]: def generate_param_curve( self, param_curve: ParamCurve, - op: Optional[Callable[[float], float]] = None, + op: Callable[[float], float] | None = None, left: int = -192000, right: int = 1073741823, termination: int = 0, diff --git a/libresvip/plugins/svip/binsvip_parser.py b/libresvip/plugins/svip/binsvip_parser.py index e1d685feb..84d471b89 100644 --- a/libresvip/plugins/svip/binsvip_parser.py +++ b/libresvip/plugins/svip/binsvip_parser.py @@ -1,6 +1,5 @@ import dataclasses from collections.abc import Callable -from typing import Optional from libresvip.model.base import ( InstrumentalTrack, @@ -68,7 +67,7 @@ def parse_time_signature(beat: XSSongBeat) -> TimeSignature: denominator=frac.y, ) - def parse_track(self, track: XSITrack) -> Optional[Track]: + def parse_track(self, track: XSITrack) -> Track | None: if isinstance(track, XSSingingTrack): result_track = SingingTrack() result_track.ai_singer_name = opensvip_singers.get_name(track.ai_singer_id) @@ -146,7 +145,7 @@ def parse_phones(phone: XSNotePhoneInfo) -> Phones: @staticmethod def parse_param_curve( - line: XSLineParam, op: Optional[Callable[[float], float]] = None + line: XSLineParam, op: Callable[[float], float] | None = None ) -> ParamCurve: if op is None: diff --git a/libresvip/plugins/svip/models.py b/libresvip/plugins/svip/models.py index 2dcbdd59f..291849a96 100644 --- a/libresvip/plugins/svip/models.py +++ b/libresvip/plugins/svip/models.py @@ -1,9 +1,10 @@ import dataclasses import re +from importlib.resources import files from bidict import bidict -from libresvip.core.compat import files, json +from libresvip.core.compat import json from .msnrbf.xstudio_models import ( XSNoteHeadTagEnum, diff --git a/libresvip/plugins/svip/msnrbf/binary_models.py b/libresvip/plugins/svip/msnrbf/binary_models.py index 0afba6ec1..0f48a2d6e 100644 --- a/libresvip/plugins/svip/msnrbf/binary_models.py +++ b/libresvip/plugins/svip/msnrbf/binary_models.py @@ -6,7 +6,7 @@ from collections import defaultdict from datetime import datetime, timedelta, timezone from functools import partial -from typing import Any, BinaryIO, Union +from typing import Any, BinaryIO from construct import ( Adapter, @@ -124,7 +124,7 @@ def _parse(self, stream: BinaryIO, context: Context, path: CSPath) -> str: def _build( self, - obj: Union[str, bytes], + obj: str | bytes, stream: BinaryIO, context: Context, path: CSPath, @@ -160,7 +160,7 @@ def _parse(self, stream: BinaryIO, context: Context, path: CSPath) -> str: def _build( self, - obj: Union[str, bytes], + obj: str | bytes, stream: BinaryIO, context: Context, path: CSPath, diff --git a/libresvip/plugins/svip/msnrbf/nrbf_iobase.py b/libresvip/plugins/svip/msnrbf/nrbf_iobase.py index 1fc19719e..4bdb6c7e9 100644 --- a/libresvip/plugins/svip/msnrbf/nrbf_iobase.py +++ b/libresvip/plugins/svip/msnrbf/nrbf_iobase.py @@ -5,7 +5,6 @@ from collections.abc import MutableMapping from functools import cached_property from types import TracebackType -from typing import Optional from construct import Container from typing_extensions import Self @@ -37,9 +36,9 @@ def __enter__(self) -> Self: def __exit__( self, - exc_type: Optional[type[BaseException]], - exc_value: Optional[BaseException], - traceback: Optional[TracebackType], + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + traceback: TracebackType | None, ) -> None: classes_by_id.pop(self.cur_thread_id, None) objects_by_id.pop(self.cur_thread_id, None) diff --git a/libresvip/plugins/svip/msnrbf/svip_reader.py b/libresvip/plugins/svip/msnrbf/svip_reader.py index a2f9298c9..c74e4e8b3 100644 --- a/libresvip/plugins/svip/msnrbf/svip_reader.py +++ b/libresvip/plugins/svip/msnrbf/svip_reader.py @@ -1,7 +1,7 @@ # Ported from QNrbf by SineStriker import dataclasses import pathlib -from typing import Any, Optional +from typing import Any from construct import Container from loguru import logger @@ -25,8 +25,8 @@ class SvipReader(NrbfIOBase): xstudio_model: XSAppModel = dataclasses.field(init=False) header: SerializedStreamHeader = dataclasses.field(init=False) - def build_binary_array(self, obj: Container) -> list[Optional[Any]]: - results: list[Optional[Any]] = [] + def build_binary_array(self, obj: Container) -> list[Any | None]: + results: list[Any | None] = [] if "Class" in str(obj.binary_type_enum): if obj.member_values is not None: for member in obj.member_values: @@ -68,7 +68,7 @@ def build_class(self, obj: Container) -> Any: class_kwargs["items"] = class_kwargs["items"][: class_kwargs["size"]] return model_class(**class_kwargs) # type: ignore[arg-type] - def build_object(self, obj: Container) -> Optional[Any]: + def build_object(self, obj: Container) -> Any | None: if "obj" in obj: obj = obj.obj if "real_obj" in obj: diff --git a/libresvip/plugins/svip/msnrbf/svip_writer.py b/libresvip/plugins/svip/msnrbf/svip_writer.py index c7a7270df..726d888ec 100644 --- a/libresvip/plugins/svip/msnrbf/svip_writer.py +++ b/libresvip/plugins/svip/msnrbf/svip_writer.py @@ -7,7 +7,7 @@ import pathlib from collections import defaultdict from queue import Queue -from typing import Any, Optional, Union, cast, get_args, get_origin +from typing import Any, Union, cast, get_args, get_origin from construct import Container, ListContainer @@ -125,7 +125,7 @@ def create_reference( self, value: Container, object_id: int, - subcon_class_name: Optional[str], + subcon_class_name: str | None, ) -> dict[str, Any]: result = { "record_type_enum": RecordTypeEnum.MemberReference, @@ -229,7 +229,7 @@ def write_dataclass( self, obj: Container, object_id: int, - subcon_class_name: Optional[str] = None, + subcon_class_name: str | None = None, ) -> dict[str, Any]: fields = sorted( dataclasses.fields(obj), @@ -291,7 +291,7 @@ def write_dataclass( BinaryTypeEnum.String ) result["obj"]["member_type_info"]["additional_infos"].append({"info": None}) # type: ignore[index] - elif issubclass(field_type, (int, float, bool, enum.IntEnum)): + elif issubclass(field_type, int | float | bool | enum.IntEnum): result["obj"]["member_type_info"]["binary_type_enums"].append( # type: ignore[index] BinaryTypeEnum.Primitive ) @@ -372,7 +372,7 @@ def write_dataclass( result["obj"]["member_values"].append( {"value": self.create_string(value or "")} ) - elif issubclass(field_type, (int, float, bool, enum.IntEnum)): + elif issubclass(field_type, int | float | bool | enum.IntEnum): result["obj"]["member_values"].append({"value": value}) elif issubclass(field_type, list): if len(value) > 0: @@ -470,7 +470,7 @@ def write_dataclass( result["obj"]["member_values"].append( {"value": self.create_string(value or "")} ) - elif issubclass(field_type, (int, float, bool, enum.IntEnum)): + elif issubclass(field_type, int | float | bool | enum.IntEnum): result["obj"]["member_values"].append({"value": value}) elif issubclass(field_type, list): if len(value) > 0: diff --git a/libresvip/plugins/svip/msnrbf/xstudio_models.py b/libresvip/plugins/svip/msnrbf/xstudio_models.py index a5137229c..225c2eec9 100644 --- a/libresvip/plugins/svip/msnrbf/xstudio_models.py +++ b/libresvip/plugins/svip/msnrbf/xstudio_models.py @@ -6,7 +6,7 @@ import math import struct from itertools import chain -from typing import Generic, Literal, NamedTuple, Optional, TypeVar +from typing import Generic, Literal, NamedTuple, TypeVar from more_itertools import batched @@ -256,7 +256,7 @@ class XSNote(XSIOverlappable): default_factory=XSNoteHeadTag, metadata={"alias": "_headTag", "order": 5}, ) - note_phone_info: Optional[XSNotePhoneInfo] = dataclasses.field( + note_phone_info: XSNotePhoneInfo | None = dataclasses.field( default=None, metadata={"alias": to_backing_field("NotePhoneInfo"), "order": 7}, ) @@ -264,11 +264,11 @@ class XSNote(XSIOverlappable): default=0, metadata={"alias": to_backing_field("VibratoPercent"), "order": 8}, ) - vibrato: Optional[XSVibratoStyle] = dataclasses.field( + vibrato: XSVibratoStyle | None = dataclasses.field( default=None, metadata={"alias": to_backing_field("Vibrato"), "order": 9}, ) - vibrato_percent_info: Optional[XSVibratoPercentInfo] = dataclasses.field( + vibrato_percent_info: XSVibratoPercentInfo | None = dataclasses.field( default=None, metadata={ "alias": to_backing_field("VibratoPercentInfo"), @@ -418,7 +418,7 @@ class XSSingingTrack(XSITrack): # type: ignore[override] "order": 5, }, ) - edited_power_line: Optional[XSLineParam] = dataclasses.field( + edited_power_line: XSLineParam | None = dataclasses.field( default=None, metadata={ "alias": "_editedPowerLine", @@ -550,7 +550,7 @@ class XSAppModel: "order": 7, }, ) - actual_project_file_path: Optional[str] = dataclasses.field( + actual_project_file_path: str | None = dataclasses.field( default=None, metadata={ "alias": to_backing_field("ActualProjectFilePath"), diff --git a/libresvip/plugins/svip3/singers.py b/libresvip/plugins/svip3/singers.py index 0247df363..d84b854b4 100644 --- a/libresvip/plugins/svip3/singers.py +++ b/libresvip/plugins/svip3/singers.py @@ -1,6 +1,8 @@ +from importlib.resources import files + from bidict import bidict -from libresvip.core.compat import files, json +from libresvip.core.compat import json singer_data_path = files("libresvip.plugins.svip3") / "singers.json" singers_data = bidict(json.loads(singer_data_path.read_text(encoding="utf-8"))) diff --git a/libresvip/plugins/svip3/svip3_parser.py b/libresvip/plugins/svip3/svip3_parser.py index a19badcbd..d95c074d4 100644 --- a/libresvip/plugins/svip3/svip3_parser.py +++ b/libresvip/plugins/svip3/svip3_parser.py @@ -2,7 +2,6 @@ import itertools import operator from collections.abc import MutableSequence -from typing import Optional from urllib.parse import urljoin from google.protobuf import any_pb2 @@ -94,7 +93,7 @@ def parse_tracks(self, track_list: MutableSequence[any_pb2.Any]) -> list[Track]: tracks.append(xstudio_audio_track) return tracks - def parse_audio_track(self, audio_track: Svip3AudioTrack) -> Optional[InstrumentalTrack]: + def parse_audio_track(self, audio_track: Svip3AudioTrack) -> InstrumentalTrack | None: audio_file_path = None offset = 0 if len(audio_track.pattern_list): @@ -177,14 +176,14 @@ def parse_pronunciation(svip3_note: Svip3Note) -> str: return svip3_note.pronouncing @staticmethod - def parse_head_tag(svip3_note: Svip3Note) -> Optional[str]: + def parse_head_tag(svip3_note: Svip3Note) -> str | None: if svip3_note.sil_len > 0: return "0" elif svip3_note.sp_len > 0: return "V" return None - def parse_edited_phones(self, svip3_note: Svip3Note) -> Optional[Phones]: + def parse_edited_phones(self, svip3_note: Svip3Note) -> Phones | None: if svip3_note.consonant_len > 0: return Phones( head_length_in_secs=( diff --git a/libresvip/plugins/svp/model.py b/libresvip/plugins/svp/model.py index 7bc55f049..c2fa8e6d3 100644 --- a/libresvip/plugins/svp/model.py +++ b/libresvip/plugins/svp/model.py @@ -3,7 +3,7 @@ import re import sys from itertools import chain -from typing import Any, Literal, NamedTuple, Optional, Union +from typing import Any, Literal, NamedTuple import zhon from more_itertools import batched @@ -93,23 +93,23 @@ class SVPoints(PointList[SVPoint], RootModel[list[SVPoint]]): class SVBaseAttributes(BaseModel): - t_f0_left: Optional[float] = Field(None, alias="tF0Left") - t_f0_right: Optional[float] = Field(None, alias="tF0Right") - d_f0_left: Optional[float] = Field(None, alias="dF0Left") - d_f0_right: Optional[float] = Field(None, alias="dF0Right") - t_f0_vbr_start: Optional[float] = Field(None, alias="tF0VbrStart") - t_f0_vbr_left: Optional[float] = Field(None, alias="tF0VbrLeft") - t_f0_vbr_right: Optional[float] = Field(None, alias="tF0VbrRight") - d_f0_vbr: Optional[float] = Field(None, alias="dF0Vbr") - f_f0_vbr: Optional[float] = Field(None, alias="fF0Vbr") - param_loudness: Optional[float] = Field(None, alias="paramLoudness") - param_tension: Optional[float] = Field(None, alias="paramTension") - param_breathiness: Optional[float] = Field(None, alias="paramBreathiness") - param_gender: Optional[float] = Field(None, alias="paramGender") - param_tone_shift: Optional[float] = Field(None, alias="paramToneShift") - improvise_attack_release: Optional[bool] = Field(None, alias="improviseAttackRelease") - language_override: Optional[str] = Field(None, alias="languageOverride") - phoneset_override: Optional[str] = Field(None, alias="phonesetOverride") + t_f0_left: float | None = Field(None, alias="tF0Left") + t_f0_right: float | None = Field(None, alias="tF0Right") + d_f0_left: float | None = Field(None, alias="dF0Left") + d_f0_right: float | None = Field(None, alias="dF0Right") + t_f0_vbr_start: float | None = Field(None, alias="tF0VbrStart") + t_f0_vbr_left: float | None = Field(None, alias="tF0VbrLeft") + t_f0_vbr_right: float | None = Field(None, alias="tF0VbrRight") + d_f0_vbr: float | None = Field(None, alias="dF0Vbr") + f_f0_vbr: float | None = Field(None, alias="fF0Vbr") + param_loudness: float | None = Field(None, alias="paramLoudness") + param_tension: float | None = Field(None, alias="paramTension") + param_breathiness: float | None = Field(None, alias="paramBreathiness") + param_gender: float | None = Field(None, alias="paramGender") + param_tone_shift: float | None = Field(None, alias="paramToneShift") + improvise_attack_release: bool | None = Field(None, alias="improviseAttackRelease") + language_override: str | None = Field(None, alias="languageOverride") + phoneset_override: str | None = Field(None, alias="phonesetOverride") class SVMeter(BaseModel): @@ -197,26 +197,26 @@ class SVParamTakes(BaseModel): class SVNoteAttributes(SVBaseAttributes): - t_f0_left: Optional[float] = Field(None, alias="tF0Left") - t_f0_right: Optional[float] = Field(None, alias="tF0Right") - d_f0_left: Optional[float] = Field(None, alias="dF0Left") - d_f0_right: Optional[float] = Field(None, alias="dF0Right") - t_f0_vbr_start: Optional[float] = Field(None, alias="tF0VbrStart") - t_f0_vbr_left: Optional[float] = Field(None, alias="tF0VbrLeft") - t_f0_vbr_right: Optional[float] = Field(None, alias="tF0VbrRight") - d_f0_vbr: Optional[float] = Field(None, alias="dF0Vbr") - f_f0_vbr: Optional[float] = Field(None, alias="fF0Vbr") - t_f0_offset: Optional[float] = Field(None, alias="tF0Offset") - p_f0_vbr: Optional[float] = Field(None, alias="pF0Vbr") - d_f0_jitter: Optional[float] = Field(None, alias="dF0Jitter") - t_note_offset: Optional[float] = Field(None, alias="tNoteOffset") - dur: Optional[list[float]] = None - alt: Optional[list[float]] = None - expr_group: Optional[str] = Field(None, alias="exprGroup") - strength: Optional[list[float]] = None - r_tone: Optional[float] = Field(None, alias="rTone") - r_intonation: Optional[float] = Field(None, alias="rIntonation") - even_syllable_duration: Optional[float] = Field(None, alias="evenSyllableDuration") + t_f0_left: float | None = Field(None, alias="tF0Left") + t_f0_right: float | None = Field(None, alias="tF0Right") + d_f0_left: float | None = Field(None, alias="dF0Left") + d_f0_right: float | None = Field(None, alias="dF0Right") + t_f0_vbr_start: float | None = Field(None, alias="tF0VbrStart") + t_f0_vbr_left: float | None = Field(None, alias="tF0VbrLeft") + t_f0_vbr_right: float | None = Field(None, alias="tF0VbrRight") + d_f0_vbr: float | None = Field(None, alias="dF0Vbr") + f_f0_vbr: float | None = Field(None, alias="fF0Vbr") + t_f0_offset: float | None = Field(None, alias="tF0Offset") + p_f0_vbr: float | None = Field(None, alias="pF0Vbr") + d_f0_jitter: float | None = Field(None, alias="dF0Jitter") + t_note_offset: float | None = Field(None, alias="tNoteOffset") + dur: list[float] | None = None + alt: list[float] | None = None + expr_group: str | None = Field(None, alias="exprGroup") + strength: list[float] | None = None + r_tone: float | None = Field(None, alias="rTone") + r_intonation: float | None = Field(None, alias="rIntonation") + even_syllable_duration: float | None = Field(None, alias="evenSyllableDuration") def _get_transition_offset(self) -> float: return constants.DEFAULT_PITCH_TRANSITION if self.t_f0_offset is None else self.t_f0_offset @@ -377,14 +377,14 @@ class SVNote(BaseModel): lyrics: str = "" phonemes: str = "" pitch: int - detune: Optional[int] = None - accent: Optional[str] = None + detune: int | None = None + accent: str | None = None attributes: SVNoteAttributes = Field(default_factory=SVNoteAttributes) - system_attributes: Optional[SVNoteAttributes] = Field(None, alias="systemAttributes") - pitch_takes: Optional[SVParamTakes] = Field(None, alias="pitchTakes") - timbre_takes: Optional[SVParamTakes] = Field(None, alias="timbreTakes") - musical_type: Optional[Literal["singing", "rap"]] = Field("singing", alias="musicalType") - instant_mode: Optional[bool] = Field(None, alias="instantMode") + system_attributes: SVNoteAttributes | None = Field(None, alias="systemAttributes") + pitch_takes: SVParamTakes | None = Field(None, alias="pitchTakes") + timbre_takes: SVParamTakes | None = Field(None, alias="timbreTakes") + musical_type: Literal["singing", "rap"] | None = Field("singing", alias="musicalType") + instant_mode: bool | None = Field(None, alias="instantMode") def merge_attributes(self, attributes: SVNoteAttributes) -> None: ori_dict = self.attributes.model_dump( @@ -448,7 +448,7 @@ class SVRenderConfig(BaseModel): num_channels: int = Field(1, alias="numChannels") sample_rate: int = Field(44100, alias="sampleRate") export_mix_down: bool = Field(True, alias="exportMixDown") - export_pitch: Optional[bool] = Field(False, alias="exportPitch") + export_pitch: bool | None = Field(False, alias="exportPitch") class SVParameters(BaseModel): @@ -463,7 +463,7 @@ class SVParameters(BaseModel): default_factory=SVParamCurve, alias="vibratoEnv", title="颤音包络" ) voicing: SVParamCurve = Field(default_factory=SVParamCurve, title="发声") - tone_shift: Optional[SVParamCurve] = Field( + tone_shift: SVParamCurve | None = Field( default_factory=SVParamCurve, alias="toneShift", title="音区偏移" ) @@ -476,19 +476,19 @@ def __add__(self, offset: int) -> SVParameters: class SVVoice(SVBaseAttributes): - t_f0_left: Optional[float] = Field(0.07, alias="tF0Left") - t_f0_right: Optional[float] = Field(0.07, alias="tF0Right") - d_f0_left: Optional[float] = Field(0.15, alias="dF0Left") - d_f0_right: Optional[float] = Field(0.15, alias="dF0Right") - t_f0_vbr_start: Optional[float] = Field(0.25, alias="tF0VbrStart") - t_f0_vbr_left: Optional[float] = Field(0.2, alias="tF0VbrLeft") - t_f0_vbr_right: Optional[float] = Field(0.2, alias="tF0VbrRight") - d_f0_vbr: Optional[float] = Field(1.0, alias="dF0Vbr") - f_f0_vbr: Optional[float] = Field(5.5, alias="fF0Vbr") + t_f0_left: float | None = Field(0.07, alias="tF0Left") + t_f0_right: float | None = Field(0.07, alias="tF0Right") + d_f0_left: float | None = Field(0.15, alias="dF0Left") + d_f0_right: float | None = Field(0.15, alias="dF0Right") + t_f0_vbr_start: float | None = Field(0.25, alias="tF0VbrStart") + t_f0_vbr_left: float | None = Field(0.2, alias="tF0VbrLeft") + t_f0_vbr_right: float | None = Field(0.2, alias="tF0VbrRight") + d_f0_vbr: float | None = Field(1.0, alias="dF0Vbr") + f_f0_vbr: float | None = Field(5.5, alias="fF0Vbr") vocal_mode_inherited: bool = Field(True, alias="vocalModeInherited") vocal_mode_preset: str = Field("", alias="vocalModePreset") - vocal_mode_params: Optional[dict[str, float]] = Field(None, alias="vocalModeParams") - render_mode: Optional[str] = Field(None, alias="renderMode") + vocal_mode_params: dict[str, float] | None = Field(None, alias="vocalModeParams") + render_mode: str | None = Field(None, alias="renderMode") def to_attributes(self) -> SVNoteAttributes: voice_dict = self.model_dump( @@ -517,20 +517,20 @@ class SVDatabase(BaseModel): name: str = "" language: str = "mandarin" phoneset: str = "xsampa" - version: Optional[Union[str, int]] = None - language_override: Optional[str] = Field(None, alias="languageOverride") - phoneset_override: Optional[str] = Field(None, alias="phonesetOverride") + version: str | int | None = None + language_override: str | None = Field(None, alias="languageOverride") + phoneset_override: str | None = Field(None, alias="phonesetOverride") backend_type: str = Field("", alias="backendType") class SVRef(BaseModel): - audio: Optional[SVAudio] = None - blick_absolute_begin: Optional[int] = Field(0, alias="blickAbsoluteBegin") - blick_absolute_end: Optional[int] = Field(-1, alias="blickAbsoluteEnd") + audio: SVAudio | None = None + blick_absolute_begin: int | None = Field(0, alias="blickAbsoluteBegin") + blick_absolute_end: int | None = Field(-1, alias="blickAbsoluteEnd") blick_offset: int = Field(default=0, alias="blickOffset") pitch_offset: int = Field(default=0, alias="pitchOffset") - pitch_takes: Optional[SVParamTakes] = Field(None, alias="pitchTakes") - timbre_takes: Optional[SVParamTakes] = Field(None, alias="timbreTakes") + pitch_takes: SVParamTakes | None = Field(None, alias="pitchTakes") + timbre_takes: SVParamTakes | None = Field(None, alias="timbreTakes") database: SVDatabase = Field(default_factory=SVDatabase) dictionary: str = "" voice: SVVoice = Field(default_factory=SVVoice) @@ -604,7 +604,7 @@ class SVTrack(BaseModel): class SVProject(BaseModel): library: list[SVGroup] = Field(default_factory=list) render_config: SVRenderConfig = Field(default_factory=SVRenderConfig, alias="renderConfig") - instant_mode_enabled: Optional[bool] = Field(None, alias="instantModeEnabled") + instant_mode_enabled: bool | None = Field(None, alias="instantModeEnabled") time_sig: SVTime = Field(default_factory=SVTime, alias="time") tracks: list[SVTrack] = Field(default_factory=list) version: int = 100 diff --git a/libresvip/plugins/svp/param_expression.py b/libresvip/plugins/svp/param_expression.py index 15520c808..4ad8fc7a7 100644 --- a/libresvip/plugins/svp/param_expression.py +++ b/libresvip/plugins/svp/param_expression.py @@ -4,7 +4,7 @@ import dataclasses import enum import operator -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING from libresvip.model.point import Point from libresvip.utils.search import binary_find_last @@ -39,7 +39,7 @@ class ParamExpression(abc.ABC): def value_at_ticks(self, ticks: int) -> float: pass - def __add__(self, other: Union[int, ParamExpression]) -> ParamExpression: + def __add__(self, other: int | ParamExpression) -> ParamExpression: if isinstance(other, int): return TranslationalParam( self, @@ -52,7 +52,7 @@ def __add__(self, other: Union[int, ParamExpression]) -> ParamExpression: other, ) - def __sub__(self, other: Union[int, ParamExpression]) -> ParamExpression: + def __sub__(self, other: int | ParamExpression) -> ParamExpression: if isinstance(other, int): return self + (-other) else: @@ -62,7 +62,7 @@ def __sub__(self, other: Union[int, ParamExpression]) -> ParamExpression: other, ) - def __mul__(self, other: Union[float, ParamExpression]) -> ParamExpression: + def __mul__(self, other: float | ParamExpression) -> ParamExpression: if isinstance(other, float): return ScaledParam( self, @@ -75,7 +75,7 @@ def __mul__(self, other: Union[float, ParamExpression]) -> ParamExpression: other, ) - def __truediv__(self, other: Union[float, ParamExpression]) -> ParamExpression: + def __truediv__(self, other: float | ParamExpression) -> ParamExpression: if isinstance(other, float): return self * (1 / other) else: @@ -117,7 +117,7 @@ class CurveGenerator(ParamExpression): Callable[[float, tuple[float, float], tuple[float, float]], float] ] _base_value: dataclasses.InitVar[int] - interval: Optional[portion.Interval] = None + interval: portion.Interval | None = None def __post_init__( self, diff --git a/libresvip/plugins/svp/phoneme_utils.py b/libresvip/plugins/svp/phoneme_utils.py index f601735f0..d3ac2ef48 100644 --- a/libresvip/plugins/svp/phoneme_utils.py +++ b/libresvip/plugins/svp/phoneme_utils.py @@ -1,9 +1,10 @@ import re from collections.abc import Iterable +from importlib.resources import files from bidict import bidict -from libresvip.core.compat import files, json +from libresvip.core.compat import json from libresvip.core.constants import DEFAULT_PHONEME from libresvip.core.lyric_phoneme.chinese import get_pinyin_series from libresvip.core.lyric_phoneme.japanese import to_romaji diff --git a/libresvip/plugins/svp/synthv_generator.py b/libresvip/plugins/svp/synthv_generator.py index 16cb78b89..8d33c4cca 100644 --- a/libresvip/plugins/svp/synthv_generator.py +++ b/libresvip/plugins/svp/synthv_generator.py @@ -1,7 +1,7 @@ import dataclasses import sys from collections.abc import Callable -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING from libresvip.core.tick_counter import skip_beat_list from libresvip.core.time_sync import TimeSynchronizer @@ -101,7 +101,7 @@ def generate_meter(signature: TimeSignature) -> SVMeter: denominator=signature.denominator, ) - def generate_track(self, track: Track) -> Optional[SVTrack]: + def generate_track(self, track: Track) -> SVTrack | None: sv_track = SVTrack( name=track.title, mixer=SVMixer( diff --git a/libresvip/plugins/svp/synthv_parser.py b/libresvip/plugins/svp/synthv_parser.py index 1b4fbae59..e38ddaa1d 100644 --- a/libresvip/plugins/svp/synthv_parser.py +++ b/libresvip/plugins/svp/synthv_parser.py @@ -3,7 +3,7 @@ import re from collections.abc import Callable from functools import partial, reduce -from typing import Optional, cast +from typing import cast from libresvip.core.constants import DEFAULT_BPM from libresvip.core.tick_counter import shift_beat_list, shift_tempo_list @@ -113,8 +113,8 @@ def parse_param_curve( self, sv_curve: SVParamCurve, mapping_func: Callable[[float], int], - base_value: Optional[float] = None, - master_curve: Optional[SVParamCurve] = None, + base_value: float | None = None, + master_curve: SVParamCurve | None = None, ) -> ParamCurve: if base_value is None: base_value = 0.0 @@ -250,8 +250,8 @@ def parse_pitch_curve( vibrato_env: SVParamCurve, sv_notes: list[SVNote], step: int = 5, - master_pitch_diff: Optional[SVParamCurve] = None, - master_vibrato_env: Optional[SVParamCurve] = None, + master_pitch_diff: SVParamCurve | None = None, + master_vibrato_env: SVParamCurve | None = None, ) -> ParamCurve: curve = ParamCurve() if not sv_notes: @@ -409,7 +409,7 @@ def parse_params( self, sv_params: SVParameters, sv_notes: list[SVNote], - master_params: Optional[SVParameters] = None, + master_params: SVParameters | None = None, ) -> Params: params = Params() if self.options.import_pitch: @@ -615,7 +615,7 @@ def parse_note_list(self, sv_note_list: list[SVNote], database: SVDatabase) -> l ) return note_list - def parse_track(self, sv_track: SVTrack) -> Optional[Track]: + def parse_track(self, sv_track: SVTrack) -> Track | None: if sv_track.main_ref.is_instrumental: if self.options.import_instrumental_track and sv_track.main_ref.audio is not None: svip_track = InstrumentalTrack( diff --git a/libresvip/plugins/tlp/model.py b/libresvip/plugins/tlp/model.py index 59076f82e..ac77fe57e 100644 --- a/libresvip/plugins/tlp/model.py +++ b/libresvip/plugins/tlp/model.py @@ -1,7 +1,7 @@ from __future__ import annotations from itertools import chain -from typing import Annotated, Any, Literal, NamedTuple, Optional, Union, cast +from typing import Annotated, Any, Literal, NamedTuple, cast from more_itertools import batched from pydantic import ( @@ -52,7 +52,7 @@ class TuneLabAutomation(BaseModel): @field_validator("values", mode="before") @classmethod def validate_values( - cls, values: list[Union[float, TuneLabPoint]], _info: ValidationInfo + cls, values: list[float | TuneLabPoint], _info: ValidationInfo ) -> TuneLabPoints: if _info.mode == "json": return TuneLabPoints(root=[TuneLabPoint._make(each) for each in batched(values, 2)]) @@ -70,7 +70,7 @@ class TuneLabNote(BaseModel): dur: float pitch: int lyric: str - pronunciation: Optional[str] = None + pronunciation: str | None = None phonemes: list[TuneLabPhoneme] = Field(default_factory=list) properties: dict[str, Any] = Field(default_factory=dict) @@ -96,7 +96,7 @@ class TuneLabBasePart(BaseModel): class TuneLabMidiPart(TuneLabBasePart): type_: Literal["midi"] = Field("midi", alias="type") - gain: Optional[float] = 0.0 + gain: float | None = 0.0 voice: TuneLabVoice = Field(default_factory=TuneLabVoice) properties: dict[str, Any] = Field(default_factory=dict) notes: list[TuneLabNote] = Field(default_factory=list) @@ -108,7 +108,7 @@ class TuneLabMidiPart(TuneLabBasePart): @classmethod def validate_pitch( cls, - pitch: Union[list[list[float]], list[TuneLabPoints]], + pitch: list[list[float]] | list[TuneLabPoints], _info: ValidationInfo, ) -> list[TuneLabPoints]: if _info.mode == "json": @@ -124,7 +124,7 @@ class TuneLabAudioPart(TuneLabBasePart): path: str -TuneLabPart = Annotated[Union[TuneLabMidiPart, TuneLabAudioPart], Field(discriminator="type_")] +TuneLabPart = Annotated[TuneLabMidiPart | TuneLabAudioPart, Field(discriminator="type_")] class TuneLabTrack(BaseModel): @@ -134,7 +134,7 @@ class TuneLabTrack(BaseModel): mute: bool solo: bool color: str = "" - as_refer: Optional[bool] = Field(False, alias="asRefer") + as_refer: bool | None = Field(False, alias="asRefer") parts: list[TuneLabPart] = Field(default_factory=list) diff --git a/libresvip/plugins/tsmsln/model.py b/libresvip/plugins/tsmsln/model.py index 4db880505..0ec400984 100644 --- a/libresvip/plugins/tsmsln/model.py +++ b/libresvip/plugins/tsmsln/model.py @@ -3,7 +3,7 @@ import enum from types import GenericAlias -from typing import Any, Literal, Optional, get_args +from typing import Any, Literal, get_args from pydantic import AliasChoices, Field @@ -26,7 +26,7 @@ class VoiSonaMobileSongEditorItem(BaseModel): class VoiSonaMobileControlPanelStatus(BaseModel): quantization: int = Field(alias="Quantization") - edit_tool: Optional[int] = Field(None, alias="EditTool") + edit_tool: int | None = Field(None, alias="EditTool") record_note: bool = Field(True, alias="RecordNote") record_tempo: bool = Field(True, alias="RecordTempo") @@ -37,33 +37,33 @@ class VoiSonaMobileAdjustToolBarStatus(BaseModel): class VoiSonaMobilePanelControllerStatus(BaseModel): - tempo_panel: Optional[bool] = Field(None, alias="TempoPanel") - beat_panel: Optional[bool] = Field(None, alias="BeatPanel") - key_panel: Optional[bool] = Field(None, alias="KeyPanel") - dynamics_panel: Optional[bool] = Field(None, alias="DynamicsPanel") - global_param_panel: Optional[bool] = Field(None, alias="GlobalParamPanel") - lyric_panel: Optional[bool] = Field(None, alias="LyricPanel") - property_panel: Optional[bool] = Field(None, alias="PropertyPanel") + tempo_panel: bool | None = Field(None, alias="TempoPanel") + beat_panel: bool | None = Field(None, alias="BeatPanel") + key_panel: bool | None = Field(None, alias="KeyPanel") + dynamics_panel: bool | None = Field(None, alias="DynamicsPanel") + global_param_panel: bool | None = Field(None, alias="GlobalParamPanel") + lyric_panel: bool | None = Field(None, alias="LyricPanel") + property_panel: bool | None = Field(None, alias="PropertyPanel") class VoiSonaMobileMainPanelStatus(VoiSonaMobilePanelControllerStatus): scale_x: float = Field(alias="ScaleX_V2", validation_alias=AliasChoices("ScaleX_V2", "ScaleX")) scale_y: float = Field(alias="ScaleY_V2", validation_alias=AliasChoices("ScaleY_V2", "ScaleY")) - scroll_x: Optional[float] = Field(None, alias="ScrollX") - scroll_y: Optional[float] = Field(None, alias="ScrollY") + scroll_x: float | None = Field(None, alias="ScrollX") + scroll_y: float | None = Field(None, alias="ScrollY") class VoiSonaMobileNeuralVocoderInformation(BaseModel): nv_file_name: str = Field(alias="NVFileName") - nv_lib_file_name: Optional[str] = Field(None, alias="NVLibFileName") + nv_lib_file_name: str | None = Field(None, alias="NVLibFileName") nv_version: str = Field(alias="NVVersion") - nv_hash: Optional[str] = Field(None, alias="NVHash") - nv_lib_hash: Optional[str] = Field(None, alias="NVLibHash") + nv_hash: str | None = Field(None, alias="NVHash") + nv_lib_hash: str | None = Field(None, alias="NVLibHash") nv_label: str = Field(alias="NVLabel") class VoiSonaMobileNeuralVocoderListItem(BaseModel): - neural_vocoder_information: Optional[list[VoiSonaMobileNeuralVocoderInformation]] = Field( + neural_vocoder_information: list[VoiSonaMobileNeuralVocoderInformation] | None = Field( None, alias="NeuralVocoderInformation" ) @@ -91,12 +91,12 @@ class VoiSonaMobileVoiceInformation(BaseModel): ) character_name: str = Field(alias="CharacterName") language: str = Field("ja_JP", alias="Language") - active_after_this_version: Optional[str] = Field(None, alias="ActiveAfterThisVersion") + active_after_this_version: str | None = Field(None, alias="ActiveAfterThisVersion") voice_file_name: str = Field(alias="VoiceFileName") - voice_lib_file_name: Optional[str] = Field(None, alias="VoiceLibFileName") + voice_lib_file_name: str | None = Field(None, alias="VoiceLibFileName") voice_version: str = Field(alias="VoiceVersion") - voice_hash: Optional[str] = Field(None, alias="VoiceHash") - voice_lib_hash: Optional[str] = Field(None, alias="VoiceLibHash") + voice_hash: str | None = Field(None, alias="VoiceHash") + voice_lib_hash: str | None = Field(None, alias="VoiceLibHash") special_symbol: list[VoiSonaMobileSpecialSymbol] = Field( default_factory=list, alias="SpecialSymbol" ) @@ -107,7 +107,7 @@ class VoiSonaMobileGlobalParameter(BaseModel): global_vib_frq: float = Field(0, alias="GlobalVibFrq") global_alpha: float = Field(0, alias="GlobalAlpha") global_husky: float = Field(0, alias="GlobalHusky") - global_tune: Optional[float] = Field(None, alias="GlobalTune") + global_tune: float | None = Field(None, alias="GlobalTune") class VoiSonaMobileSoundItem(BaseModel): @@ -148,16 +148,16 @@ class VoiSonaMobileNoteItem(BaseModel): lyric: str = Field(alias="Lyric") syllabic: int = Field(alias="Syllabic") phoneme: str = Field(alias="Phoneme") - do_re_mi: Optional[bool] = Field(None, alias="DoReMi") - accent: Optional[bool] = Field(None, alias="Accent") - breath: Optional[bool] = Field(None, alias="Breath") - staccato: Optional[bool] = Field(None, alias="Staccato") - slur_start: Optional[bool] = Field(None, alias="SlurStart") - slur_stop: Optional[bool] = Field(None, alias="SlurStop") - default_phoneme: Optional[str] = Field(None, alias="DefaultPhoneme") - past_analyzed_phoneme: Optional[str] = Field(None, alias="PastAnalyzedPhoneme") - special_symbol_raspy: Optional[bool] = Field(None, alias="SpecialSymbolRaspy") - special_symbol_falsetto: Optional[bool] = Field(None, alias="SpecialSymbolFalsetto") + do_re_mi: bool | None = Field(None, alias="DoReMi") + accent: bool | None = Field(None, alias="Accent") + breath: bool | None = Field(None, alias="Breath") + staccato: bool | None = Field(None, alias="Staccato") + slur_start: bool | None = Field(None, alias="SlurStart") + slur_stop: bool | None = Field(None, alias="SlurStop") + default_phoneme: str | None = Field(None, alias="DefaultPhoneme") + past_analyzed_phoneme: str | None = Field(None, alias="PastAnalyzedPhoneme") + special_symbol_raspy: bool | None = Field(None, alias="SpecialSymbolRaspy") + special_symbol_falsetto: bool | None = Field(None, alias="SpecialSymbolFalsetto") class VoiSonaMobileScoreItem(BaseModel): @@ -173,8 +173,8 @@ class VoiSonaMobileSongItem(BaseModel): class VoiSonaMobilePointData(BaseModel): - index: Optional[int] = Field(None, alias="Index") - repeat: Optional[int] = Field(None, alias="Repeat") + index: int | None = Field(None, alias="Index") + repeat: int | None = Field(None, alias="Repeat") value: float = Field(alias="Value") @@ -184,24 +184,24 @@ class VoiSonaMobileParameterItem(BaseModel): class VoiSonaMobileParametersItem(BaseModel): - timing: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="Timing") - c0: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="C0") - c0_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="C0CTick") - log_f0: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="LogF0") - log_f0_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="LogF0CTick") - vocoder_log_f0: Optional[float] = Field(None, alias="VocoderLogF0") - vib_amp: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="VibAmp") - vib_amp_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="VibAmpCTick") - vib_frq: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="VibFrq") - vib_frq_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="VibFrqCTick") - alpha: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="Alpha") - alpha_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="AlphaCTick") - husky: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="Husky") - husky_c_tick: Optional[list[VoiSonaMobileParameterItem]] = Field(None, alias="HuskyCTick") + timing: list[VoiSonaMobileParameterItem] | None = Field(None, alias="Timing") + c0: list[VoiSonaMobileParameterItem] | None = Field(None, alias="C0") + c0_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="C0CTick") + log_f0: list[VoiSonaMobileParameterItem] | None = Field(None, alias="LogF0") + log_f0_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="LogF0CTick") + vocoder_log_f0: float | None = Field(None, alias="VocoderLogF0") + vib_amp: list[VoiSonaMobileParameterItem] | None = Field(None, alias="VibAmp") + vib_amp_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="VibAmpCTick") + vib_frq: list[VoiSonaMobileParameterItem] | None = Field(None, alias="VibFrq") + vib_frq_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="VibFrqCTick") + alpha: list[VoiSonaMobileParameterItem] | None = Field(None, alias="Alpha") + alpha_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="AlphaCTick") + husky: list[VoiSonaMobileParameterItem] | None = Field(None, alias="Husky") + husky_c_tick: list[VoiSonaMobileParameterItem] | None = Field(None, alias="HuskyCTick") class VoiSonaMobileSignerConfig(BaseModel): - snap_shot: Optional[str] = Field(None, alias="SnapShot") + snap_shot: str | None = Field(None, alias="SnapShot") class VoiSonaMobileStateInformation(BaseModel): @@ -215,20 +215,20 @@ class VoiSonaMobileStateInformation(BaseModel): main_panel_status: list[VoiSonaMobileMainPanelStatus] = Field( default_factory=list, alias="MainPanelStatus" ) - panel_controller_status: Optional[list[VoiSonaMobilePanelControllerStatus]] = Field( + panel_controller_status: list[VoiSonaMobilePanelControllerStatus] | None = Field( None, alias="PanelControllerStatus" ) - voice_information: Optional[list[VoiSonaMobileVoiceInformation]] = Field( + voice_information: list[VoiSonaMobileVoiceInformation] | None = Field( None, alias="VoiceInformation" ) - global_parameters: Optional[list[VoiSonaMobileGlobalParameter]] = Field( + global_parameters: list[VoiSonaMobileGlobalParameter] | None = Field( None, alias="GlobalParameters" ) - song: Optional[list[VoiSonaMobileSongItem]] = Field(None, alias="Song") - parameter: Optional[list[VoiSonaMobileParametersItem]] = Field(None, alias="Parameter") - tempo_sync: Optional[bool] = Field(False, alias="TempoSync") - signer_config: Optional[list[VoiSonaMobileSignerConfig]] = Field(None, alias="SignerConfig") - version_of_app_file_saved: Optional[str] = Field("1.12.1.0", alias="VersionOfAppFileSaved") + song: list[VoiSonaMobileSongItem] | None = Field(None, alias="Song") + parameter: list[VoiSonaMobileParametersItem] | None = Field(None, alias="Parameter") + tempo_sync: bool | None = Field(False, alias="TempoSync") + signer_config: list[VoiSonaMobileSignerConfig] | None = Field(None, alias="SignerConfig") + version_of_app_file_saved: str | None = Field("1.12.1.0", alias="VersionOfAppFileSaved") class VoiSonaPluginData(BaseModel): @@ -279,7 +279,7 @@ class VoiSonaMobileAudio(BaseModel): class VoiSonaMobileProject(BaseModel): tracks: list[VoiSonaMobileTrack] = Field(default_factory=list, alias="Tracks") - version_of_app_file_saved: Optional[str] = Field("1.12.1.0", alias="VersionOfAppFileSaved") + version_of_app_file_saved: str | None = Field("1.12.1.0", alias="VersionOfAppFileSaved") mobile_singer: list[VoiSonaMobileSinger] = Field(default_factory=list, alias="MobileSinger") mobile_audio: list[VoiSonaMobileAudio] = Field(default_factory=list, alias="MobileAudio") @@ -287,7 +287,7 @@ class VoiSonaMobileProject(BaseModel): def value_to_dict(field_value: Any, field_type: type) -> dict[str, Any]: if issubclass(field_type, bool): variant_type = JUCEVarTypes.BOOL_TRUE if field_value is True else JUCEVarTypes.BOOL_FALSE - elif issubclass(field_type, (enum.IntEnum, int)): + elif issubclass(field_type, enum.IntEnum | int): variant_type = JUCEVarTypes.INT elif issubclass(field_type, float): variant_type = JUCEVarTypes.DOUBLE @@ -323,7 +323,7 @@ def model_to_value_tree(model: BaseModel, name: str = "MobileSongEditor") -> dic field_type = field_info.annotation elif field_info.default is None or field_info.default_factory is list: field_type = field_info.annotation - while not isinstance(field_type, (type, GenericAlias)): + while not isinstance(field_type, type | GenericAlias): field_type = get_args(field_type)[0] else: field_type = type(field_info.default) diff --git a/libresvip/plugins/tsmsln/value_tree.py b/libresvip/plugins/tsmsln/value_tree.py index e5fc51d24..6b1af69df 100644 --- a/libresvip/plugins/tsmsln/value_tree.py +++ b/libresvip/plugins/tsmsln/value_tree.py @@ -27,7 +27,7 @@ from typing_extensions import Never Int32sl = BytesInteger(4, swapped=True, signed=True) -Variant = Union[bool, int, float, str, bytes, list["Variant"]] +Variant = bool | int | float | str | bytes | list["Variant"] Node = dict[str, Union[Variant, "Node", list["Node"]]] JUCEVarTypes = CSEnum( diff --git a/libresvip/plugins/tsmsln/voisona_mobile_generator.py b/libresvip/plugins/tsmsln/voisona_mobile_generator.py index 6bba68ec6..3f73ef6b8 100644 --- a/libresvip/plugins/tsmsln/voisona_mobile_generator.py +++ b/libresvip/plugins/tsmsln/voisona_mobile_generator.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.constants import KEY_IN_OCTAVE from libresvip.core.lyric_phoneme.japanese import is_kana, is_romaji @@ -139,7 +138,7 @@ def generate_notes(self, notes: list[Note]) -> list[VoiSonaMobileNoteItem]: def generate_pitch( self, pitch: ParamCurve, tempo_list: list[SongTempo] - ) -> Optional[VoiSonaMobileParameterItem]: + ) -> VoiSonaMobileParameterItem | None: if (data := generate_for_voisona(pitch, tempo_list, self.first_bar_length)) is not None: return VoiSonaMobileParameterItem( length=data.length, diff --git a/libresvip/plugins/tsmsln/voisona_mobile_parser.py b/libresvip/plugins/tsmsln/voisona_mobile_parser.py index c6dad2772..f4075e46b 100644 --- a/libresvip/plugins/tsmsln/voisona_mobile_parser.py +++ b/libresvip/plugins/tsmsln/voisona_mobile_parser.py @@ -1,7 +1,6 @@ import dataclasses import itertools import operator -from typing import Optional import more_itertools from wanakana import PROLONGED_SOUND_MARK @@ -69,7 +68,7 @@ def merge_time_signatures(self, time_signatures: list[TimeSignature]) -> list[Ti def parse_singing_track( self, state_information: VoiSonaMobileStateInformation - ) -> Optional[tuple[SingingTrack, list[SongTempo], list[TimeSignature]]]: + ) -> tuple[SingingTrack, list[SongTempo], list[TimeSignature]] | None: if state_information.song is None: return None time_signatures = [ @@ -171,7 +170,7 @@ def parse_singing_track( @staticmethod def parse_param_data( data_element: VoiSonaMobilePointData, - ) -> Optional[VoiSonaMobileParamEvent]: + ) -> VoiSonaMobileParamEvent | None: value = float(data_element.value) index = data_element.index or None repeat = data_element.repeat or None diff --git a/libresvip/plugins/tsmsln/voisona_mobile_pitch.py b/libresvip/plugins/tsmsln/voisona_mobile_pitch.py index e796515c2..3f45447b8 100644 --- a/libresvip/plugins/tsmsln/voisona_mobile_pitch.py +++ b/libresvip/plugins/tsmsln/voisona_mobile_pitch.py @@ -5,7 +5,7 @@ import functools import itertools import math -from typing import NamedTuple, Optional, cast +from typing import NamedTuple, cast import more_itertools import portion @@ -28,15 +28,15 @@ class VoiSonaMobileParamEvent(NamedTuple): - idx: Optional[int] - repeat: Optional[int] + idx: int | None + repeat: int | None value: float class VoiSonaMobileParamEventFloat(NamedTuple): - idx: Optional[float] - repeat: Optional[float] - value: Optional[float] + idx: float | None + repeat: float | None + value: float | None @classmethod def from_event(cls, event: VoiSonaMobileParamEvent) -> VoiSonaMobileParamEventFloat: @@ -70,7 +70,7 @@ def length(self) -> int: def pitch_from_voisona_track( data: VoiSonaMobileTrackPitchData, -) -> Optional[ParamCurve]: +) -> ParamCurve | None: converted_points = [Point.start_point()] current_value = -100 @@ -320,7 +320,7 @@ def build_voisona_wave_interval_dict( def generate_for_voisona( pitch: ParamCurve, tempos: list[SongTempo], tick_prefix: int -) -> Optional[VoiSonaMobileTrackPitchData]: +) -> VoiSonaMobileTrackPitchData | None: events_with_full_params = [] for i, this_point in enumerate(pitch.points.root): next_point = pitch.points[i + 1] if i + 1 < len(pitch.points) else None diff --git a/libresvip/plugins/tssln/model.py b/libresvip/plugins/tssln/model.py index 5c6c9af0b..318790b7c 100644 --- a/libresvip/plugins/tssln/model.py +++ b/libresvip/plugins/tssln/model.py @@ -3,7 +3,7 @@ import enum from types import GenericAlias -from typing import Annotated, Any, Literal, Optional, Union, get_args +from typing import Annotated, Any, Literal, get_args from packaging.version import Version from pydantic import AliasChoices, Field, ValidationInfo, field_validator @@ -29,7 +29,7 @@ class VoiSonaSongEditorItem(BaseModel): class VoiSonaControlPanelStatus(BaseModel): quantization: int = Field(alias="Quantization") - edit_tool: Optional[int] = Field(None, alias="EditTool") + edit_tool: int | None = Field(None, alias="EditTool") record_note: bool = Field(True, alias="RecordNote") record_tempo: bool = Field(True, alias="RecordTempo") @@ -40,33 +40,33 @@ class VoiSonaAdjustToolBarStatus(BaseModel): class VoiSonaPanelControllerStatus(BaseModel): - tempo_panel: Optional[bool] = Field(None, alias="TempoPanel") - beat_panel: Optional[bool] = Field(None, alias="BeatPanel") - key_panel: Optional[bool] = Field(None, alias="KeyPanel") - dynamics_panel: Optional[bool] = Field(None, alias="DynamicsPanel") - global_param_panel: Optional[bool] = Field(None, alias="GlobalParamPanel") - lyric_panel: Optional[bool] = Field(None, alias="LyricPanel") - property_panel: Optional[bool] = Field(None, alias="PropertyPanel") + tempo_panel: bool | None = Field(None, alias="TempoPanel") + beat_panel: bool | None = Field(None, alias="BeatPanel") + key_panel: bool | None = Field(None, alias="KeyPanel") + dynamics_panel: bool | None = Field(None, alias="DynamicsPanel") + global_param_panel: bool | None = Field(None, alias="GlobalParamPanel") + lyric_panel: bool | None = Field(None, alias="LyricPanel") + property_panel: bool | None = Field(None, alias="PropertyPanel") class VoiSonaMainPanelStatus(VoiSonaPanelControllerStatus): scale_x: float = Field(alias="ScaleX_V2", validation_alias=AliasChoices("ScaleX_V2", "ScaleX")) scale_y: float = Field(alias="ScaleY_V2", validation_alias=AliasChoices("ScaleY_V2", "ScaleY")) - scroll_x: Optional[float] = Field(None, alias="ScrollX") - scroll_y: Optional[float] = Field(None, alias="ScrollY") + scroll_x: float | None = Field(None, alias="ScrollX") + scroll_y: float | None = Field(None, alias="ScrollY") class VoiSonaNeuralVocoderInformation(BaseModel): nv_file_name: str = Field(alias="NVFileName") - nv_lib_file_name: Optional[str] = Field(None, alias="NVLibFileName") + nv_lib_file_name: str | None = Field(None, alias="NVLibFileName") nv_version: str = Field(alias="NVVersion") - nv_hash: Optional[str] = Field(None, alias="NVHash") - nv_lib_hash: Optional[str] = Field(None, alias="NVLibHash") + nv_hash: str | None = Field(None, alias="NVHash") + nv_lib_hash: str | None = Field(None, alias="NVLibHash") nv_label: str = Field(alias="NVLabel") class VoiSonaNeuralVocoderListItem(BaseModel): - neural_vocoder_information: Optional[list[VoiSonaNeuralVocoderInformation]] = Field( + neural_vocoder_information: list[VoiSonaNeuralVocoderInformation] | None = Field( None, alias="NeuralVocoderInformation" ) @@ -92,12 +92,12 @@ class VoiSonaVoiceInformation(BaseModel): emotion_list: list[VoiSonaEmotionListItem] = Field(default_factory=list, alias="EmotionList") character_name: str = Field(alias="CharacterName") language: str = Field("ja_JP", alias="Language") - active_after_this_version: Optional[str] = Field(None, alias="ActiveAfterThisVersion") + active_after_this_version: str | None = Field(None, alias="ActiveAfterThisVersion") voice_file_name: str = Field(alias="VoiceFileName") - voice_lib_file_name: Optional[str] = Field(None, alias="VoiceLibFileName") + voice_lib_file_name: str | None = Field(None, alias="VoiceLibFileName") voice_version: str = Field(alias="VoiceVersion") - voice_hash: Optional[str] = Field(None, alias="VoiceHash") - voice_lib_hash: Optional[str] = Field(None, alias="VoiceLibHash") + voice_hash: str | None = Field(None, alias="VoiceHash") + voice_lib_hash: str | None = Field(None, alias="VoiceLibHash") special_symbol: list[VoiSonaSpecialSymbol] = Field(default_factory=list, alias="SpecialSymbol") @@ -106,7 +106,7 @@ class VoiSonaGlobalParameter(BaseModel): global_vib_frq: float = Field(0, alias="GlobalVibFrq") global_alpha: float = Field(0, alias="GlobalAlpha") global_husky: float = Field(0, alias="GlobalHusky") - global_tune: Optional[float] = Field(None, alias="GlobalTune") + global_tune: float | None = Field(None, alias="GlobalTune") class VoiSonaSoundItem(BaseModel): @@ -147,16 +147,16 @@ class VoiSonaNoteItem(BaseModel): lyric: str = Field(alias="Lyric") syllabic: int = Field(alias="Syllabic") phoneme: str = Field(alias="Phoneme") - do_re_mi: Optional[bool] = Field(None, alias="DoReMi") - accent: Optional[bool] = Field(None, alias="Accent") - breath: Optional[bool] = Field(None, alias="Breath") - staccato: Optional[bool] = Field(None, alias="Staccato") - slur_start: Optional[bool] = Field(None, alias="SlurStart") - slur_stop: Optional[bool] = Field(None, alias="SlurStop") - default_phoneme: Optional[str] = Field(None, alias="DefaultPhoneme") - past_analyzed_phoneme: Optional[str] = Field(None, alias="PastAnalyzedPhoneme") - special_symbol_raspy: Optional[bool] = Field(None, alias="SpecialSymbolRaspy") - special_symbol_falsetto: Optional[bool] = Field(None, alias="SpecialSymbolFalsetto") + do_re_mi: bool | None = Field(None, alias="DoReMi") + accent: bool | None = Field(None, alias="Accent") + breath: bool | None = Field(None, alias="Breath") + staccato: bool | None = Field(None, alias="Staccato") + slur_start: bool | None = Field(None, alias="SlurStart") + slur_stop: bool | None = Field(None, alias="SlurStop") + default_phoneme: str | None = Field(None, alias="DefaultPhoneme") + past_analyzed_phoneme: str | None = Field(None, alias="PastAnalyzedPhoneme") + special_symbol_raspy: bool | None = Field(None, alias="SpecialSymbolRaspy") + special_symbol_falsetto: bool | None = Field(None, alias="SpecialSymbolFalsetto") class VoiSonaScoreItem(BaseModel): @@ -172,8 +172,8 @@ class VoiSonaSongItem(BaseModel): class VoiSonaPointData(BaseModel): - index: Optional[int] = Field(None, alias="Index") - repeat: Optional[int] = Field(None, alias="Repeat") + index: int | None = Field(None, alias="Index") + repeat: int | None = Field(None, alias="Repeat") value: float = Field(alias="Value") @@ -183,24 +183,24 @@ class VoiSonaParameterItem(BaseModel): class VoiSonaParametersItem(BaseModel): - timing: Optional[list[VoiSonaParameterItem]] = Field(None, alias="Timing") - c0: Optional[list[VoiSonaParameterItem]] = Field(None, alias="C0") - c0_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="C0CTick") - log_f0: Optional[list[VoiSonaParameterItem]] = Field(None, alias="LogF0") - log_f0_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="LogF0CTick") - vocoder_log_f0: Optional[float] = Field(None, alias="VocoderLogF0") - vib_amp: Optional[list[VoiSonaParameterItem]] = Field(None, alias="VibAmp") - vib_amp_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="VibAmpCTick") - vib_frq: Optional[list[VoiSonaParameterItem]] = Field(None, alias="VibFrq") - vib_frq_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="VibFrqCTick") - alpha: Optional[list[VoiSonaParameterItem]] = Field(None, alias="Alpha") - alpha_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="AlphaCTick") - husky: Optional[list[VoiSonaParameterItem]] = Field(None, alias="Husky") - husky_c_tick: Optional[list[VoiSonaParameterItem]] = Field(None, alias="HuskyCTick") + timing: list[VoiSonaParameterItem] | None = Field(None, alias="Timing") + c0: list[VoiSonaParameterItem] | None = Field(None, alias="C0") + c0_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="C0CTick") + log_f0: list[VoiSonaParameterItem] | None = Field(None, alias="LogF0") + log_f0_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="LogF0CTick") + vocoder_log_f0: float | None = Field(None, alias="VocoderLogF0") + vib_amp: list[VoiSonaParameterItem] | None = Field(None, alias="VibAmp") + vib_amp_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="VibAmpCTick") + vib_frq: list[VoiSonaParameterItem] | None = Field(None, alias="VibFrq") + vib_frq_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="VibFrqCTick") + alpha: list[VoiSonaParameterItem] | None = Field(None, alias="Alpha") + alpha_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="AlphaCTick") + husky: list[VoiSonaParameterItem] | None = Field(None, alias="Husky") + husky_c_tick: list[VoiSonaParameterItem] | None = Field(None, alias="HuskyCTick") class VoiSonaSignerConfig(BaseModel): - snap_shot: Optional[str] = Field(None, alias="SnapShot") + snap_shot: str | None = Field(None, alias="SnapShot") class VoiSonaStateInformation(BaseModel): @@ -214,20 +214,16 @@ class VoiSonaStateInformation(BaseModel): main_panel_status: list[VoiSonaMainPanelStatus] = Field( default_factory=list, alias="MainPanelStatus" ) - panel_controller_status: Optional[list[VoiSonaPanelControllerStatus]] = Field( + panel_controller_status: list[VoiSonaPanelControllerStatus] | None = Field( None, alias="PanelControllerStatus" ) - voice_information: Optional[list[VoiSonaVoiceInformation]] = Field( - None, alias="VoiceInformation" - ) - global_parameters: Optional[list[VoiSonaGlobalParameter]] = Field( - None, alias="GlobalParameters" - ) - song: Optional[list[VoiSonaSongItem]] = Field(None, alias="Song") - parameter: Optional[list[VoiSonaParametersItem]] = Field(None, alias="Parameter") - tempo_sync: Optional[bool] = Field(False, alias="TempoSync") - signer_config: Optional[list[VoiSonaSignerConfig]] = Field(None, alias="SignerConfig") - version_of_app_file_saved: Optional[str] = Field("1.8.0.17", alias="VersionOfAppFileSaved") + voice_information: list[VoiSonaVoiceInformation] | None = Field(None, alias="VoiceInformation") + global_parameters: list[VoiSonaGlobalParameter] | None = Field(None, alias="GlobalParameters") + song: list[VoiSonaSongItem] | None = Field(None, alias="Song") + parameter: list[VoiSonaParametersItem] | None = Field(None, alias="Parameter") + tempo_sync: bool | None = Field(False, alias="TempoSync") + signer_config: list[VoiSonaSignerConfig] | None = Field(None, alias="SignerConfig") + version_of_app_file_saved: str | None = Field("1.8.0.17", alias="VersionOfAppFileSaved") class VoiSonaPluginData(BaseModel): @@ -255,7 +251,7 @@ class VoiSonaBaseTrackItem(BaseModel): class VoiSonaAudioTrackItem(VoiSonaBaseTrackItem): track_type: Literal[VoiSonaTrackType.AUDIO] = Field(VoiSonaTrackType.AUDIO, alias="Type") - audio_event: Optional[list[VoiSonaAudioEventItem]] = Field(None, alias="AudioEvent") + audio_event: list[VoiSonaAudioEventItem] | None = Field(None, alias="AudioEvent") class VoiSonaSingingTrackItem(VoiSonaBaseTrackItem): @@ -264,7 +260,7 @@ class VoiSonaSingingTrackItem(VoiSonaBaseTrackItem): VoiSonaTrackItem = Annotated[ - Union[VoiSonaAudioTrackItem, VoiSonaSingingTrackItem], + VoiSonaAudioTrackItem | VoiSonaSingingTrackItem, Field(discriminator="track_type"), ] @@ -276,15 +272,15 @@ class VoiSonaTrack(BaseModel): class VoiSonaGuiStatus(BaseModel): scale_x: float = Field(100, alias="ScaleX") scale_y: float = Field(100, alias="ScaleY") - grid_mode: Optional[int] = Field(None, alias="GridMode") - grid_index: Optional[int] = Field(None, alias="GridIndex") + grid_mode: int | None = Field(None, alias="GridMode") + grid_index: int | None = Field(None, alias="GridIndex") class VoiSonaProject(BaseModel): play_control: list[VoiSonaPlayControlItem] = Field(default_factory=list, alias="PlayControl") tracks: list[VoiSonaTrack] = Field(default_factory=list, alias="Tracks") gui_status: list[VoiSonaGuiStatus] = Field(default_factory=list, alias="GUIStatus") - version_of_app_file_saved: Optional[str] = Field("1.8.0.17", alias="VersionOfAppFileSaved") + version_of_app_file_saved: str | None = Field("1.8.0.17", alias="VersionOfAppFileSaved") @field_validator("version_of_app_file_saved") @classmethod @@ -298,7 +294,7 @@ def version_validator(cls, value: str, _info: ValidationInfo) -> str: def value_to_dict(field_value: Any, field_type: type) -> dict[str, Any]: if issubclass(field_type, bool): variant_type = JUCEVarTypes.BOOL_TRUE if field_value is True else JUCEVarTypes.BOOL_FALSE - elif issubclass(field_type, (enum.IntEnum, int)): + elif issubclass(field_type, enum.IntEnum | int): variant_type = JUCEVarTypes.INT elif issubclass(field_type, float): variant_type = JUCEVarTypes.DOUBLE @@ -334,7 +330,7 @@ def model_to_value_tree(model: BaseModel, name: str = "TSSolution") -> dict[str, field_type = field_info.annotation elif field_info.default is None or field_info.default_factory is list: field_type = field_info.annotation - while not isinstance(field_type, (type, GenericAlias)): + while not isinstance(field_type, type | GenericAlias): field_type = get_args(field_type)[0] else: field_type = type(field_info.default) diff --git a/libresvip/plugins/tssln/value_tree.py b/libresvip/plugins/tssln/value_tree.py index 6988ac609..b4318575f 100644 --- a/libresvip/plugins/tssln/value_tree.py +++ b/libresvip/plugins/tssln/value_tree.py @@ -29,7 +29,7 @@ from typing_extensions import Never Int32sl = BytesInteger(4, swapped=True, signed=True) -Variant = Union[bool, int, float, str, bytes, list["Variant"]] +Variant = bool | int | float | str | bytes | list["Variant"] Node = dict[str, Union[Variant, "Node", list["Node"]]] JUCEVarTypes = CSEnum( diff --git a/libresvip/plugins/tssln/voisona_generator.py b/libresvip/plugins/tssln/voisona_generator.py index bf05ec34d..6cf39f54d 100644 --- a/libresvip/plugins/tssln/voisona_generator.py +++ b/libresvip/plugins/tssln/voisona_generator.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.constants import KEY_IN_OCTAVE from libresvip.core.lyric_phoneme.japanese import is_kana, is_romaji @@ -145,7 +144,7 @@ def generate_notes(self, notes: list[Note]) -> list[VoiSonaNoteItem]: def generate_pitch( self, pitch: ParamCurve, tempo_list: list[SongTempo] - ) -> Optional[VoiSonaParameterItem]: + ) -> VoiSonaParameterItem | None: if (data := generate_for_voisona(pitch, tempo_list, self.first_bar_length)) is not None: return VoiSonaParameterItem( length=data.length, diff --git a/libresvip/plugins/tssln/voisona_parser.py b/libresvip/plugins/tssln/voisona_parser.py index 7b22956a8..f7ceae3bd 100644 --- a/libresvip/plugins/tssln/voisona_parser.py +++ b/libresvip/plugins/tssln/voisona_parser.py @@ -1,7 +1,6 @@ import dataclasses import itertools import operator -from typing import Optional import more_itertools from wanakana import PROLONGED_SOUND_MARK @@ -88,7 +87,7 @@ def merge_time_signatures(self, time_signatures: list[TimeSignature]) -> list[Ti def parse_singing_track( self, track: VoiSonaSingingTrackItem - ) -> Optional[tuple[SingingTrack, list[SongTempo], list[TimeSignature]]]: + ) -> tuple[SingingTrack, list[SongTempo], list[TimeSignature]] | None: if track.plugin_data.state_information.song is None: return None time_signatures = [ @@ -190,7 +189,7 @@ def parse_singing_track( @staticmethod def parse_param_data( data_element: VoiSonaPointData, - ) -> Optional[VoiSonaParamEvent]: + ) -> VoiSonaParamEvent | None: value = float(data_element.value) index = data_element.index or None repeat = data_element.repeat or None diff --git a/libresvip/plugins/tssln/voisona_pitch.py b/libresvip/plugins/tssln/voisona_pitch.py index 84ec45f1a..a34d1721d 100644 --- a/libresvip/plugins/tssln/voisona_pitch.py +++ b/libresvip/plugins/tssln/voisona_pitch.py @@ -5,7 +5,7 @@ import functools import itertools import math -from typing import NamedTuple, Optional, cast +from typing import NamedTuple, cast import more_itertools import portion @@ -28,15 +28,15 @@ class VoiSonaParamEvent(NamedTuple): - idx: Optional[int] - repeat: Optional[int] + idx: int | None + repeat: int | None value: float class VoiSonaParamEventFloat(NamedTuple): - idx: Optional[float] - repeat: Optional[float] - value: Optional[float] + idx: float | None + repeat: float | None + value: float | None @classmethod def from_event(cls, event: VoiSonaParamEvent) -> VoiSonaParamEventFloat: @@ -66,7 +66,7 @@ def length(self) -> int: def pitch_from_voisona_track( data: VoiSonaTrackPitchData, -) -> Optional[ParamCurve]: +) -> ParamCurve | None: converted_points = [Point.start_point()] current_value = -100 @@ -314,7 +314,7 @@ def build_voisona_wave_interval_dict( def generate_for_voisona( pitch: ParamCurve, tempos: list[SongTempo], tick_prefix: int -) -> Optional[VoiSonaTrackPitchData]: +) -> VoiSonaTrackPitchData | None: events_with_full_params = [] for i, this_point in enumerate(pitch.points.root): next_point = pitch.points[i + 1] if i + 1 < len(pitch.points) else None diff --git a/libresvip/plugins/ufdata/model.py b/libresvip/plugins/ufdata/model.py index b2f0dc6ab..190f2964e 100644 --- a/libresvip/plugins/ufdata/model.py +++ b/libresvip/plugins/ufdata/model.py @@ -1,5 +1,3 @@ -from typing import Optional - from pydantic import Field from libresvip.model.base import BaseModel @@ -14,7 +12,7 @@ class UFNotes(BaseModel): class UFPitch(BaseModel): ticks: list[int] = Field(default_factory=list) - values: list[Optional[float]] = Field(default_factory=list) + values: list[float | None] = Field(default_factory=list) is_absolute: bool = Field(alias="isAbsolute") @@ -32,7 +30,7 @@ class UFTimeSignatures(BaseModel): class UFTracks(BaseModel): name: str notes: list[UFNotes] = Field(default_factory=list) - pitch: Optional[UFPitch] = None + pitch: UFPitch | None = None class UFProject(BaseModel): diff --git a/libresvip/plugins/ust/model.py b/libresvip/plugins/ust/model.py index 89cf4a5c9..2a2dca4c5 100644 --- a/libresvip/plugins/ust/model.py +++ b/libresvip/plugins/ust/model.py @@ -1,5 +1,5 @@ import ast -from typing import Any, Literal, Optional, Union +from typing import Any, Literal from parsimonious import Grammar, NodeVisitor from parsimonious.nodes import Node @@ -123,7 +123,7 @@ UTAUPitchBendType = Literal["OldData", "5"] -OptionalFloat = Union[float, Literal[""]] +OptionalFloat = float | Literal[""] class UtauNoteVibrato(BaseModel): @@ -144,10 +144,10 @@ class UTAUEnvelope(BaseModel): v2: float v3: float v4: float - p4: Optional[float] = None - p5: Optional[float] = None - v5: Optional[float] = None - other_points: Optional[list[float]] = None + p4: float | None = None + p5: float | None = None + v5: float | None = None + other_points: list[float] | None = None class UTAUNote(BaseModel): @@ -155,34 +155,34 @@ class UTAUNote(BaseModel): length: int lyric: str note_num: int - duration: Optional[int] = None - delta: Optional[int] = None - pre_utterance: Optional[str] = None - label: Optional[str] = None - flags: Optional[str] = None - envelope: Optional[UTAUEnvelope] = None - voice_overlap: Optional[float] = None - intensity: Optional[float] = None - modulation: Optional[float] = None - start_point: Optional[float] = None - tempo: Optional[float] = None - velocity: Optional[float] = None - pitchbend_start: Optional[float] = None - pitchbend_type: Optional[UTAUPitchBendType] = None + duration: int | None = None + delta: int | None = None + pre_utterance: str | None = None + label: str | None = None + flags: str | None = None + envelope: UTAUEnvelope | None = None + voice_overlap: float | None = None + intensity: float | None = None + modulation: float | None = None + start_point: float | None = None + tempo: float | None = None + velocity: float | None = None + pitchbend_start: float | None = None + pitchbend_type: UTAUPitchBendType | None = None pitch_bend_points: list[int] = Field(default_factory=list) pbs: list[OptionalFloat] = Field(default_factory=list) pbw: list[OptionalFloat] = Field(default_factory=list) pby: list[OptionalFloat] = Field(default_factory=list) pbm: list[UTAUPitchBendMode] = Field(default_factory=list) - vbr: Optional[UtauNoteVibrato] = None - stp_trim: Optional[float] = None - layer: Optional[int] = None - at_preutterance: Optional[float] = None - at_overlap: Optional[float] = None - at_start_point: Optional[float] = None - sample_filename: Optional[str] = None - alias: Optional[str] = None - cache_location: Optional[str] = None + vbr: UtauNoteVibrato | None = None + stp_trim: float | None = None + layer: int | None = None + at_preutterance: float | None = None + at_overlap: float | None = None + at_start_point: float | None = None + sample_filename: str | None = None + alias: str | None = None + cache_location: str | None = None class UTAUTrack(BaseModel): @@ -196,20 +196,20 @@ class UTAUTimeSignature(BaseModel): class UTAUProject(BaseModel): - ust_version: Optional[float] = 1.2 + ust_version: float | None = 1.2 project_name: str = "New Project" track_count: int = 1 pitch_mode2: bool = False - charset: Optional[str] = None - tempo: Optional[float] = None - voice_dir: Optional[str] = None - out_file: Optional[str] = None - cache_dir: Optional[str] = None - tool1: Optional[str] = None - tool2: Optional[str] = None - flags: Optional[str] = None - autoren: Optional[bool] = None - map_first: Optional[bool] = None + charset: str | None = None + tempo: float | None = None + voice_dir: str | None = None + out_file: str | None = None + cache_dir: str | None = None + tool1: str | None = None + tool2: str | None = None + flags: str | None = None + autoren: bool | None = None + map_first: bool | None = None time_signatures: list[UTAUTimeSignature] = Field(default_factory=list) track: list[UTAUTrack] = Field(default_factory=list) @@ -238,51 +238,52 @@ def visit_ust_header(self, node: Node, visited_children: list[Any]) -> None: def visit_ust_setting_line(self, node: Node, visited_children: list[Any]) -> None: key = visited_children[0][0].text - if key == "Tempo": - if (tempo_value := self.tempo2bpm(visited_children[0][2])) < MAX_ACCEPTED_BPM: - self.pending_metadata["tempo"] = tempo_value - elif key == "UstVersion": - self.pending_metadata["ust_version"] = visited_children[0][2] - elif key == "Tracks": - self.pending_metadata["track_count"] = visited_children[0][2] - elif key in ("Project", "ProjectName"): - self.pending_metadata["project_name"] = visited_children[0][2] - elif key == "Mode2": - self.pending_metadata["pitch_mode2"] = visited_children[0][2] - elif key == "VoiceDir": - self.pending_metadata["voice_dir"] = visited_children[0][2] - elif key == "OutFile": - self.pending_metadata["out_file"] = visited_children[0][2] - elif key == "CacheDir": - self.pending_metadata["cache_dir"] = visited_children[0][2] - elif key == "Tool1": - self.pending_metadata["tool1"] = visited_children[0][2] - elif key == "Tool2": - self.pending_metadata["tool2"] = visited_children[0][2] - elif key == "Autoren": - self.pending_metadata["autoren"] = visited_children[0][2] - elif key == "MapFirst": - self.pending_metadata["map_first"] = visited_children[0][2] - elif key == "Flags": - self.pending_metadata["flags"] = visited_children[0][2] - elif key == "TimeSignatures": - numerator, denominator, bar_index = visited_children[0][2][1::2] - self.pending_metadata["time_signatures"] = [ - UTAUTimeSignature( - numerator=numerator, - denominator=denominator, - bar_index=bar_index, - ) - ] - for pair in visited_children[0][3]: - numerator, denominator, bar_index = pair[1][1::2] - self.pending_metadata["time_signatures"].append( + match key: + case "Tempo": + if (tempo_value := self.tempo2bpm(visited_children[0][2])) < MAX_ACCEPTED_BPM: + self.pending_metadata["tempo"] = tempo_value + case "UstVersion": + self.pending_metadata["ust_version"] = visited_children[0][2] + case "Tracks": + self.pending_metadata["track_count"] = visited_children[0][2] + case "Project" | "ProjectName": + self.pending_metadata["project_name"] = visited_children[0][2] + case "Mode2": + self.pending_metadata["pitch_mode2"] = visited_children[0][2] + case "VoiceDir": + self.pending_metadata["voice_dir"] = visited_children[0][2] + case "OutFile": + self.pending_metadata["out_file"] = visited_children[0][2] + case "CacheDir": + self.pending_metadata["cache_dir"] = visited_children[0][2] + case "Tool1": + self.pending_metadata["tool1"] = visited_children[0][2] + case "Tool2": + self.pending_metadata["tool2"] = visited_children[0][2] + case "Autoren": + self.pending_metadata["autoren"] = visited_children[0][2] + case "MapFirst": + self.pending_metadata["map_first"] = visited_children[0][2] + case "Flags": + self.pending_metadata["flags"] = visited_children[0][2] + case "TimeSignatures": + numerator, denominator, bar_index = visited_children[0][2][1::2] + self.pending_metadata["time_signatures"] = [ UTAUTimeSignature( numerator=numerator, denominator=denominator, bar_index=bar_index, ) - ) + ] + for pair in visited_children[0][3]: + numerator, denominator, bar_index = pair[1][1::2] + self.pending_metadata["time_signatures"].append( + UTAUTimeSignature( + numerator=numerator, + denominator=denominator, + bar_index=bar_index, + ) + ) def visit_ust_envelope(self, node: Node, visited_children: list[Any]) -> UTAUEnvelope: kwargs = {"p1": visited_children[0]} @@ -322,86 +323,87 @@ def visit_ust_pitch_bend_type(self, node: Node, visited_children: list[Any]) -> def visit_ust_note_attr(self, node: Node, visited_children: list[Any]) -> None: key = visited_children[0][0].text - if key == "Length": - self.pending_note_attrs["length"] = visited_children[0][2] - elif key == "Lyric": - self.pending_note_attrs["lyric"] = visited_children[0][2] - elif key == "NoteNum": - self.pending_note_attrs["note_num"] = visited_children[0][2] - elif key == "Tempo": - self.pending_note_attrs["tempo"] = self.tempo2bpm(visited_children[0][2]) - elif key == "PBType": - self.pending_note_attrs["pitchbend_type"] = visited_children[0][2] - elif key == "PBStart": - self.pending_note_attrs["pitchbend_start"] = visited_children[0][2] - elif key in ("Modulation", "Moduration"): - self.pending_note_attrs["modulation"] = visited_children[0][2] - elif key == "Envelope": - self.pending_note_attrs["envelope"] = visited_children[0][2] - elif key == "Flags": - self.pending_note_attrs["flags"] = visited_children[0][2] - elif key == "Intensity": - self.pending_note_attrs["intensity"] = visited_children[0][2] - elif key == "Velocity": - self.pending_note_attrs["velocity"] = visited_children[0][2] - elif key == "PreUtterance": - self.pending_note_attrs["pre_utterance"] = visited_children[0][2] - elif key == "StartPoint": - self.pending_note_attrs["start_point"] = visited_children[0][2] - elif key == "Delta": - self.pending_note_attrs["delta"] = visited_children[0][2] - elif key == "Duration": - self.pending_note_attrs["duration"] = visited_children[0][2] - elif key == "VoiceOverlap": - self.pending_note_attrs["voice_overlap"] = visited_children[0][2] - elif key == "Label": - self.pending_note_attrs["label"] = visited_children[0][2] - elif key in ("Piches", "Pitches", "PitchBend"): - self.pending_note_attrs["pitch_bend_points"] = [visited_children[0][2]] - if isinstance(visited_children[0][3], list): - self.pending_note_attrs["pitch_bend_points"].extend( - [pair[1] for pair in visited_children[0][3]] - ) - elif key in ("PBS", "PBM", "PBW", "PBY"): - self.pending_note_attrs[key.lower()] = [visited_children[0][2]] - if isinstance(visited_children[0][3], list): - self.pending_note_attrs[key.lower()].extend( - [pair[1] for pair in visited_children[0][3]] - ) - elif key == "VBR": - vibrato_kwargs = {"length": visited_children[0][2]} - for i, pair in enumerate(visited_children[0][3]): - if isinstance(pair[1], float): - if i == 0: - vibrato_kwargs["period"] = pair[1] - elif i == 1: - vibrato_kwargs["depth"] = pair[1] - elif i == 2: - vibrato_kwargs["fade_in"] = pair[1] - elif i == 3: - vibrato_kwargs["fade_out"] = pair[1] - elif i == 4: - vibrato_kwargs["phase_shift"] = pair[1] - elif i == 5: - vibrato_kwargs["shift"] = pair[1] - self.pending_note_attrs["vbr"] = UtauNoteVibrato(**vibrato_kwargs) - elif key == "stptrim": - self.pending_note_attrs["stp_trim"] = visited_children[0][2] - elif key == "layer": - self.pending_note_attrs["layer"] = visited_children[0][2] - elif key == "@preuttr": - self.pending_note_attrs["at_preutterance"] = visited_children[0][2] - elif key == "@overlap": - self.pending_note_attrs["at_overlap"] = visited_children[0][2] - elif key == "@stpoint": - self.pending_note_attrs["at_start_point"] = visited_children[0][2] - elif key == "@filename": - self.pending_note_attrs["sample_filename"] = visited_children[0][2] - elif key == "@alias": - self.pending_note_attrs["alias"] = visited_children[0][2] - elif key == "@cache": - self.pending_note_attrs["cache_location"] = visited_children[0][2] - # else: # ignored + match key: + case "Length": + self.pending_note_attrs["length"] = visited_children[0][2] + case "Lyric": + self.pending_note_attrs["lyric"] = visited_children[0][2] + case "NoteNum": + self.pending_note_attrs["note_num"] = visited_children[0][2] + case "Tempo": + self.pending_note_attrs["tempo"] = self.tempo2bpm(visited_children[0][2]) + case "PBType": + self.pending_note_attrs["pitchbend_type"] = visited_children[0][2] + case "PBStart": + self.pending_note_attrs["pitchbend_start"] = visited_children[0][2] + case "Modulation" | "Moduration": + self.pending_note_attrs["modulation"] = visited_children[0][2] + case "Envelope": + self.pending_note_attrs["envelope"] = visited_children[0][2] + case "Flags": + self.pending_note_attrs["flags"] = visited_children[0][2] + case "Intensity": + self.pending_note_attrs["intensity"] = visited_children[0][2] + case "Velocity": + self.pending_note_attrs["velocity"] = visited_children[0][2] + case "PreUtterance": + self.pending_note_attrs["pre_utterance"] = visited_children[0][2] + case "StartPoint": + self.pending_note_attrs["start_point"] = visited_children[0][2] + case "Delta": + self.pending_note_attrs["delta"] = visited_children[0][2] + case "Duration": + self.pending_note_attrs["duration"] = visited_children[0][2] + case "VoiceOverlap": + self.pending_note_attrs["voice_overlap"] = visited_children[0][2] + case "Label": + self.pending_note_attrs["label"] = visited_children[0][2] + case "Piches" | "Pitches" | "PitchBend": + self.pending_note_attrs["pitch_bend_points"] = [visited_children[0][2]] + if isinstance(visited_children[0][3], list): + self.pending_note_attrs["pitch_bend_points"].extend( + [pair[1] for pair in visited_children[0][3]] + ) + case "PBS" | "PBM" | "PBW" | "PBY": + self.pending_note_attrs[key.lower()] = [visited_children[0][2]] + if isinstance(visited_children[0][3], list): + self.pending_note_attrs[key.lower()].extend( + [pair[1] for pair in visited_children[0][3]] + ) + case "VBR": + vibrato_kwargs = {"length": visited_children[0][2]} + for i, pair in enumerate(visited_children[0][3]): + if isinstance(pair[1], float): + if i == 0: + vibrato_kwargs["period"] = pair[1] + elif i == 1: + vibrato_kwargs["depth"] = pair[1] + elif i == 2: + vibrato_kwargs["fade_in"] = pair[1] + elif i == 3: + vibrato_kwargs["fade_out"] = pair[1] + elif i == 4: + vibrato_kwargs["phase_shift"] = pair[1] + elif i == 5: + vibrato_kwargs["shift"] = pair[1] + self.pending_note_attrs["vbr"] = UtauNoteVibrato(**vibrato_kwargs) + case "stptrim": + self.pending_note_attrs["stp_trim"] = visited_children[0][2] + case "layer": + self.pending_note_attrs["layer"] = visited_children[0][2] + case "@preuttr": + self.pending_note_attrs["at_preutterance"] = visited_children[0][2] + case "@overlap": + self.pending_note_attrs["at_overlap"] = visited_children[0][2] + case "@stpoint": + self.pending_note_attrs["at_start_point"] = visited_children[0][2] + case "@filename": + self.pending_note_attrs["sample_filename"] = visited_children[0][2] + case "@alias": + self.pending_note_attrs["alias"] = visited_children[0][2] + case "@cache": + self.pending_note_attrs["cache_location"] = visited_children[0][2] + # case _: # ignored def visit_ust_note_head(self, node: Node, visited_children: list[Any]) -> None: if len(self.pending_note_attrs): @@ -409,7 +411,7 @@ def visit_ust_note_head(self, node: Node, visited_children: list[Any]) -> None: self.pending_note_attrs = {} self.pending_note_attrs["note_type"] = visited_children[1].text - def visit_ust_track(self, node: Node, visited_children: list[Any]) -> Optional[UTAUTrack]: + def visit_ust_track(self, node: Node, visited_children: list[Any]) -> UTAUTrack | None: if len(self.pending_note_attrs): self.pending_notes.append(UTAUNote(**self.pending_note_attrs)) self.pending_note_attrs = {} diff --git a/libresvip/plugins/ust/pitch_mode1.py b/libresvip/plugins/ust/pitch_mode1.py index e95cc7173..a4c4f5b01 100644 --- a/libresvip/plugins/ust/pitch_mode1.py +++ b/libresvip/plugins/ust/pitch_mode1.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional from libresvip.core.time_sync import TimeSynchronizer from libresvip.model.base import Note, ParamCurve @@ -21,7 +20,7 @@ class UtauMode1NotePitchData: @dataclasses.dataclass class UtauMode1TrackPitchData: - notes: list[Optional[UtauMode1NotePitchData]] = dataclasses.field(default_factory=list) + notes: list[UtauMode1NotePitchData | None] = dataclasses.field(default_factory=list) def pitch_from_utau_mode1_track( @@ -51,7 +50,7 @@ def pitch_from_utau_mode1_track( def pitch_to_utau_mode1_track(pitch: ParamCurve, notes: list[Note]) -> UtauMode1TrackPitchData: - note_pitch_data: list[Optional[UtauMode1NotePitchData]] = [] + note_pitch_data: list[UtauMode1NotePitchData | None] = [] for note in notes: data = [ point diff --git a/libresvip/plugins/ust/pitch_mode2.py b/libresvip/plugins/ust/pitch_mode2.py index c9267ed4d..52a13b64c 100644 --- a/libresvip/plugins/ust/pitch_mode2.py +++ b/libresvip/plugins/ust/pitch_mode2.py @@ -1,7 +1,6 @@ import dataclasses import itertools import operator -from typing import Optional from libresvip.core.constants import TICKS_IN_BEAT from libresvip.core.time_sync import TimeSynchronizer @@ -29,17 +28,17 @@ def milli_sec_from_tick(tick: int, bpm: float) -> float: @dataclasses.dataclass class UtauMode2NotePitchData: bpm: float - start: Optional[float] # milliSec, None only if the note is not applied with pitch - start_shift: Optional[float] # 10 cents + start: float | None # milliSec, None only if the note is not applied with pitch + start_shift: float | None # 10 cents widths: list[float] = dataclasses.field(default_factory=list) # milliSec shifts: list[float] = dataclasses.field(default_factory=list) # 10 cents curve_types: list[UTAUPitchBendMode] = dataclasses.field(default_factory=list) - vibrato_params: Optional[UtauNoteVibrato] = None + vibrato_params: UtauNoteVibrato | None = None @dataclasses.dataclass class UtauMode2TrackPitchData: - notes: list[Optional[UtauMode2NotePitchData]] = dataclasses.field(default_factory=list) + notes: list[UtauMode2NotePitchData | None] = dataclasses.field(default_factory=list) @dataclasses.dataclass @@ -130,7 +129,7 @@ def pitch_from_utau_mode2_track( if pitch_data is None: return ParamCurve() pitch_points: list[Point] = [] - last_note: Optional[Note] = None + last_note: Note | None = None pending_pitch_points: list[Point] = [] for note, note_pitch in zip(notes, pitch_data.notes): if note_pitch is not None: @@ -214,7 +213,7 @@ def pitch_from_utau_mode2_track( def fix_points_at_last_note( - pitch_data: list[Point], this_note: Note, last_note: Optional[Note] + pitch_data: list[Point], this_note: Note, last_note: Note | None ) -> list[Point]: if last_note is None or last_note.end_pos != this_note.start_pos: return pitch_data diff --git a/libresvip/plugins/ust/ust_parser.py b/libresvip/plugins/ust/ust_parser.py index b16cd7ef3..85c8442a4 100644 --- a/libresvip/plugins/ust/ust_parser.py +++ b/libresvip/plugins/ust/ust_parser.py @@ -2,7 +2,6 @@ import functools import operator from collections.abc import Iterator -from typing import Optional from sortedcontainers import SortedKeyList @@ -90,7 +89,7 @@ def parse_time_signatures( ] def parse_notes( - self, initial_tempo: Optional[float], notes: list[UTAUNote] + self, initial_tempo: float | None, notes: list[UTAUNote] ) -> Iterator[tuple[list[Note], UtauMode1TrackPitchData, UtauMode2TrackPitchData]]: note_list = [] mode1_track_pitch_data = UtauMode1TrackPitchData() diff --git a/libresvip/plugins/ust/vibrato_param.py b/libresvip/plugins/ust/vibrato_param.py index 61ab7a9ef..d7ab0aab2 100644 --- a/libresvip/plugins/ust/vibrato_param.py +++ b/libresvip/plugins/ust/vibrato_param.py @@ -1,5 +1,4 @@ import math -from typing import Optional from libresvip.core.time_sync import TimeSynchronizer from libresvip.model.base import Note @@ -11,7 +10,7 @@ def append_utau_note_vibrato( note_values: list[Point], - vibrato_params: Optional[UtauNoteVibrato], + vibrato_params: UtauNoteVibrato | None, note_start: Note, tick_time_transformer: TimeSynchronizer, sample_interval_tick: int, diff --git a/libresvip/plugins/ustx/model.py b/libresvip/plugins/ustx/model.py index d024478d5..0eb655ec6 100644 --- a/libresvip/plugins/ustx/model.py +++ b/libresvip/plugins/ustx/model.py @@ -4,7 +4,7 @@ import functools import math from types import SimpleNamespace -from typing import Annotated, Literal, Optional, Union +from typing import Annotated, Literal from pydantic import Field, computed_field, field_validator @@ -45,7 +45,7 @@ class OptionsExpression(BaseExpression): UExpressionDescriptor = Annotated[ - Union[CurveExpression, NumericalExpression, OptionsExpression], + CurveExpression | NumericalExpression | OptionsExpression, Field(discriminator="type_"), ] @@ -53,7 +53,7 @@ class OptionsExpression(BaseExpression): class UCurve(BaseModel): xs: list[int] = Field(default_factory=list) ys: list[int] = Field(default_factory=list) - abbr: Optional[str] = None + abbr: str | None = None @property def is_empty(self) -> bool: @@ -77,7 +77,7 @@ def sample(self, x: int) -> int: class PitchPoint(BaseModel): x: float y: float - shape: Optional[Literal["io", "l", "i", "o"]] = "io" + shape: Literal["io", "l", "i", "o"] | None = "io" class UTempo(BaseModel): @@ -92,28 +92,28 @@ class UTimeSignature(BaseModel): class URendererSettings(BaseModel): - renderer: Optional[str] = None - resampler: Optional[str] = None - wavtool: Optional[str] = None + renderer: str | None = None + resampler: str | None = None + wavtool: str | None = None class UTrack(BaseModel): - track_name: Optional[str] = None - track_color: Optional[str] = None - track_expressions: Optional[list[UExpression]] = Field(default_factory=list) - voice_color_names: Optional[list[str]] = None - singer: Optional[str] = None - phonemizer: Optional[str] = None - renderer_settings: Optional[URendererSettings] = None + track_name: str | None = None + track_color: str | None = None + track_expressions: list[UExpression] | None = Field(default_factory=list) + voice_color_names: list[str] | None = None + singer: str | None = None + phonemizer: str | None = None + renderer_settings: URendererSettings | None = None mute: bool = False solo: bool = False volume: float = 0.0 - pan: Optional[float] = None + pan: float | None = None class UPitch(BaseModel): data: list[PitchPoint] = Field(default_factory=list) - snap_first: Optional[bool] = None + snap_first: bool | None = None class UVibrato(BaseModel): @@ -148,17 +148,17 @@ def evaluate(self, n_pos: float, n_period: float, note: UNote) -> tuple[float, f class UExpression(BaseModel): - index: Optional[int] = None + index: int | None = None abbr: str value: float class UPhonemeOverride(BaseModel): index: int - phoneme: Optional[str] = None - offset: Optional[int] = None - preutter_delta: Optional[float] = None - overlap_delta: Optional[float] = None + phoneme: str | None = None + offset: int | None = None + preutter_delta: float | None = None + overlap_delta: float | None = None class UNote(BaseModel): @@ -168,9 +168,9 @@ class UNote(BaseModel): lyric: str pitch: UPitch = Field(default_factory=UPitch) vibrato: UVibrato = Field(default_factory=UVibrato) - note_expressions: Optional[list[UExpression]] = Field(default_factory=list) # deprecated - phoneme_expressions: Optional[list[UExpression]] = Field(default_factory=list) - phoneme_overrides: Optional[list[UPhonemeOverride]] = Field(default_factory=list) + note_expressions: list[UExpression] | None = Field(default_factory=list) # deprecated + phoneme_expressions: list[UExpression] | None = Field(default_factory=list) + phoneme_overrides: list[UPhonemeOverride] | None = Field(default_factory=list) @functools.cached_property def end(self) -> int: @@ -181,7 +181,7 @@ class UPart(BaseModel): name: str position: int = 0 track_no: int - comment: Optional[str] = "" + comment: str | None = "" class UVoicePart(UPart): @@ -207,18 +207,18 @@ class USTXProject(BaseModel): comment: str = "" output_dir: str = "Vocal" cache_dir: str = "UCache" - ustx_version: Union[str, float] = "0.6" + ustx_version: str | float = "0.6" bpm: float = DEFAULT_BPM beat_per_bar: int = 4 beat_unit: int = 4 resolution: int = TICKS_IN_BEAT time_signatures: list[UTimeSignature] = Field(default_factory=list) tempos: list[UTempo] = Field(default_factory=list) - expressions: Optional[dict[str, UExpressionDescriptor]] = None + expressions: dict[str, UExpressionDescriptor] | None = None tracks: list[UTrack] = Field(default_factory=list) voice_parts: list[UVoicePart] = Field(default_factory=list) wave_parts: list[UWavePart] = Field(default_factory=list) - exp_selectors: Optional[list[str]] = None - exp_primary: Optional[int] = 0 - exp_secondary: Optional[int] = 1 - key: Optional[int] = 0 + exp_selectors: list[str] | None = None + exp_primary: int | None = 0 + exp_secondary: int | None = 1 + key: int | None = 0 diff --git a/libresvip/plugins/ustx/ustx_generator.py b/libresvip/plugins/ustx/ustx_generator.py index 2d1bddda9..e6400e2fd 100644 --- a/libresvip/plugins/ustx/ustx_generator.py +++ b/libresvip/plugins/ustx/ustx_generator.py @@ -1,7 +1,7 @@ import dataclasses import math from collections.abc import MutableSequence -from typing import Optional, cast +from typing import cast from libresvip.model.base import ( InstrumentalTrack, @@ -129,7 +129,7 @@ def generate_voice_part( return ustx_voice_part @staticmethod - def generate_wave_part(os_track: InstrumentalTrack, track_no: int) -> Optional[UWavePart]: + def generate_wave_part(os_track: InstrumentalTrack, track_no: int) -> UWavePart | None: if track_info := audio_track_info(os_track.audio_file_path): return UWavePart( name=os_track.title, diff --git a/libresvip/plugins/vfp/model.py b/libresvip/plugins/vfp/model.py index 22c0349f4..8f9079c2d 100644 --- a/libresvip/plugins/vfp/model.py +++ b/libresvip/plugins/vfp/model.py @@ -1,5 +1,5 @@ import pathlib -from typing import Annotated, Any, Literal, Optional, Union +from typing import Annotated, Any, Literal from pydantic import Field, ValidationInfo, model_validator from typing_extensions import Self @@ -16,11 +16,11 @@ class VOXFactoryNote(BaseModel): duration_ticks: float = Field(alias="durationTicks") duration: float = 0.25 velocity: int = 1 - note_type: Optional[str] = Field(None, alias="noteType") - vibrato_depth: Optional[float] = Field(None, alias="vibratoDepth") - pre_bend: Optional[float] = Field(None, alias="preBend") - post_bend: Optional[float] = Field(None, alias="postBend") - harmonic_ratio: Optional[float] = Field(None, alias="harmonicRatio") + note_type: str | None = Field(None, alias="noteType") + vibrato_depth: float | None = Field(None, alias="vibratoDepth") + pre_bend: float | None = Field(None, alias="preBend") + post_bend: float | None = Field(None, alias="postBend") + harmonic_ratio: float | None = Field(None, alias="harmonicRatio") pitch_bends: list[float] = Field(default_factory=list, alias="pitchBends") @@ -29,8 +29,8 @@ class VOXFactoryMetadata(BaseModel): accent: str transpose: int harmonic_ratio: float = Field(alias="harmonicRatio") - pitch_detection: Optional[str] = Field(None, alias="pitchDetection") - instrument: Optional[str] = None + pitch_detection: str | None = Field(None, alias="pitchDetection") + instrument: str | None = None class VOXFactoryClipBase(BaseModel): @@ -39,14 +39,14 @@ class VOXFactoryClipBase(BaseModel): offset_quarter: float = Field(0, alias="offsetQuarter") length: float use_source: bool = Field(True, alias="useSource") - audio_data_key: Optional[str] = Field(None, alias="audioDataKey") + audio_data_key: str | None = Field(None, alias="audioDataKey") audio_data_order: list[str] = Field(default_factory=list, alias="audioDataOrder") audio_data_quarter: float = Field(0, alias="audioDataQuarter") note_bank: dict[str, VOXFactoryNote] = Field(default_factory=dict, alias="noteBank") note_order: list[str] = Field(default_factory=list, alias="noteOrder") next_note_index: int = Field(0, alias="nextNoteIndex") pinned_audio_data_order: list[str] = Field(default_factory=list, alias="pinnedAudioDataOrder") - metadata: Optional[VOXFactoryMetadata] = None + metadata: VOXFactoryMetadata | None = None class VOXFactoryVocalClip(VOXFactoryClipBase): @@ -83,9 +83,9 @@ class VOXFactoryAudioViewProperty(BaseModel): window_size: int = Field(1024, alias="windowSize") hop_size: int = Field(256, alias="hopSize") f_min: float = Field(27.5, alias="fMin") - f_max: Optional[float] = Field(None, alias="fMax") - level_min: Optional[float] = Field(None, alias="levelMin") - level_max: Optional[float] = Field(None, alias="levelMax") + f_max: float | None = Field(None, alias="fMax") + level_min: float | None = Field(None, alias="levelMin") + level_max: float | None = Field(None, alias="levelMax") level_scale: str = Field("dB", alias="levelScale") num_bins: int = Field(230, alias="numBins") bins_per_octave: int = Field(24, alias="binsPerOctave") @@ -101,7 +101,7 @@ class VOXFactoryDevice(BaseModel): class VOXFactoryTrackBase(BaseModel): name: str = "" - instrument: Optional[str] = None + instrument: str | None = None h: int = 3 color: str = "#7878f1" volume: float = 1.0 @@ -128,7 +128,7 @@ class VOXFactoryAudioTrack(VOXFactoryTrackBase): VOXFactoryTrack = Annotated[ - Union[VOXFactoryVocalTrack, VOXFactoryAudioTrack], + VOXFactoryVocalTrack | VOXFactoryAudioTrack, Field(discriminator="type"), ] @@ -148,7 +148,7 @@ class VOXFactoryAudioData(BaseModel): sample_rate: int = Field(alias="sampleRate") number_of_channels: int = Field(alias="numberOfChannels") sample_length: int = Field(alias="sampleLength") - metadata: Optional[VOXFactoryMetadata] = None + metadata: VOXFactoryMetadata | None = None class VOXFactoryProject(BaseModel): diff --git a/libresvip/plugins/vog/model.py b/libresvip/plugins/vog/model.py index 34b7e82d3..64fff1780 100644 --- a/libresvip/plugins/vog/model.py +++ b/libresvip/plugins/vog/model.py @@ -1,27 +1,25 @@ -from typing import Optional - from pydantic import Field from libresvip.model.base import BaseModel class VogenNote(BaseModel): - pitch: Optional[int] = None - lyric: Optional[str] = None - rom: Optional[str] = None - on: Optional[int] = None - dur: Optional[int] = None + pitch: int | None = None + lyric: str | None = None + rom: str | None = None + on: int | None = None + dur: int | None = None class VogenTrack(BaseModel): - name: Optional[str] = None - singer_id: Optional[str] = Field(None, alias="singerId") - rom_scheme: Optional[str] = Field("", alias="romScheme") + name: str | None = None + singer_id: str | None = Field(None, alias="singerId") + rom_scheme: str | None = Field("", alias="romScheme") notes: list[VogenNote] = Field(default_factory=list) class VogenProject(BaseModel): time_sig0: str = Field(alias="timeSig0") bpm0: float - accom_offset: Optional[int] = Field(0, alias="accomOffset") + accom_offset: int | None = Field(0, alias="accomOffset") utts: list[VogenTrack] = Field(default_factory=list) diff --git a/libresvip/plugins/vpr/model.py b/libresvip/plugins/vpr/model.py index b73cc755e..12539da08 100644 --- a/libresvip/plugins/vpr/model.py +++ b/libresvip/plugins/vpr/model.py @@ -1,7 +1,7 @@ # mypy: disable-error-code="misc" import enum from dataclasses import dataclass -from typing import Annotated, Literal, Optional, Union +from typing import Annotated, Literal from pydantic import ConfigDict, Field, ValidationInfo, model_validator from typing_extensions import Self @@ -42,11 +42,11 @@ class VocaloidBasePos(BaseModel): class VocaloidWithDur(VocaloidBasePos): - duration: Optional[int] = None + duration: int | None = None class VocaloidPoint(VocaloidBasePos): - value: Optional[Union[int, float, Literal["ZeroPitch"]]] = None + value: int | float | Literal["ZeroPitch"] | None = None class VocaloidTimeSig(BaseModel): @@ -56,47 +56,47 @@ class VocaloidTimeSig(BaseModel): class VocaloidExp(BaseModel): - opening: Optional[int] = 127 - accent: Optional[int] = None - decay: Optional[int] = None - bend_depth: Optional[int] = Field(None, alias="bendDepth") - bend_length: Optional[int] = Field(None, alias="bendLength") + opening: int | None = 127 + accent: int | None = None + decay: int | None = None + bend_depth: int | None = Field(None, alias="bendDepth") + bend_length: int | None = Field(None, alias="bendLength") class VocaloidAIExp(BaseModel): - pitch_fine: Optional[float] = Field(None, alias="pitchFine") - pitch_drift_start: Optional[float] = Field(None, alias="pitchDriftStart") - pitch_drift_end: Optional[float] = Field(None, alias="pitchDriftEnd") - pitch_scaling_center: Optional[float] = Field(None, alias="pitchScalingCenter") - pitch_scaling_origin: Optional[float] = Field(None, alias="pitchScalingOrigin") - pitch_transition_start: Optional[float] = Field(None, alias="pitchTransitionStart") - pitch_transition_end: Optional[float] = Field(None, alias="pitchTransitionEnd") - amplitude_whole: Optional[float] = Field(None, alias="amplitudeWhole") - amplitude_start: Optional[float] = Field(None, alias="amplitudeStart") - amplitude_end: Optional[float] = Field(None, alias="amplitudeEnd") - formant_whole: Optional[float] = Field(None, alias="formantWhole") - formant_start: Optional[float] = Field(None, alias="formantStart") - formant_end: Optional[float] = Field(None, alias="formantEnd") - vibrato_leading_depth: Optional[float] = Field(None, alias="vibratoLeadingDepth") - vibrato_following_depth: Optional[float] = Field(None, alias="vibratoFollowingDepth") + pitch_fine: float | None = Field(None, alias="pitchFine") + pitch_drift_start: float | None = Field(None, alias="pitchDriftStart") + pitch_drift_end: float | None = Field(None, alias="pitchDriftEnd") + pitch_scaling_center: float | None = Field(None, alias="pitchScalingCenter") + pitch_scaling_origin: float | None = Field(None, alias="pitchScalingOrigin") + pitch_transition_start: float | None = Field(None, alias="pitchTransitionStart") + pitch_transition_end: float | None = Field(None, alias="pitchTransitionEnd") + amplitude_whole: float | None = Field(None, alias="amplitudeWhole") + amplitude_start: float | None = Field(None, alias="amplitudeStart") + amplitude_end: float | None = Field(None, alias="amplitudeEnd") + formant_whole: float | None = Field(None, alias="formantWhole") + formant_start: float | None = Field(None, alias="formantStart") + formant_end: float | None = Field(None, alias="formantEnd") + vibrato_leading_depth: float | None = Field(None, alias="vibratoLeadingDepth") + vibrato_following_depth: float | None = Field(None, alias="vibratoFollowingDepth") class VocaloidEnabled(BaseModel): - is_enabled: Optional[bool] = Field(True, alias="isEnabled") + is_enabled: bool | None = Field(True, alias="isEnabled") class VocaloidGlobal(VocaloidEnabled): - value: Optional[int] = 12000 + value: int | None = 12000 class VocaloidRegion(VocaloidEnabled): - begin: Optional[float] = 0 - end: Optional[float] = 7680 + begin: float | None = 0 + end: float | None = 7680 class VocaloidParameters(BaseModel): - name: Optional[str] = None - value: Optional[Union[int, float, str]] = None + name: str | None = None + value: int | float | str | None = None class VocaloidVersion(BaseModel): @@ -106,18 +106,18 @@ class VocaloidVersion(BaseModel): class VocaloidVibrato(BaseModel): - type_value: Optional[int] = Field(0, alias="type") - duration: Optional[int] = 0 - depths: Optional[list[VocaloidPoint]] = Field(default_factory=list) - rates: Optional[list[VocaloidPoint]] = Field(default_factory=list) + type_value: int | None = Field(0, alias="type") + duration: int | None = 0 + depths: list[VocaloidPoint] | None = Field(default_factory=list) + rates: list[VocaloidPoint] | None = Field(default_factory=list) class VocaloidCompID(BaseModel): - comp_id: Optional[str] = Field(None, alias="compID") + comp_id: str | None = Field(None, alias="compID") class VocaloidLangID(BaseModel): - lang_id: Optional[VocaloidLanguage] = Field(VocaloidLanguage.SIMPLIFIED_CHINESE, alias="langID") + lang_id: VocaloidLanguage | None = Field(VocaloidLanguage.SIMPLIFIED_CHINESE, alias="langID") class VocaloidVoice(VocaloidCompID, VocaloidLangID): @@ -129,39 +129,39 @@ class VocaloidAIVoice(VocaloidCompID): class VocaloidVoices(VocaloidCompID): - name: Optional[str] = None + name: str | None = None class VocaloidWeight(BaseModel): - pre: Optional[int] = 64 - post: Optional[int] = 64 + pre: int | None = 64 + post: int | None = 64 class VocaloidControllers(BaseModel): - name: Optional[str] = None + name: str | None = None events: list[VocaloidPoint] = Field(default_factory=list) class VocaloidFolded(BaseModel): - is_folded: Optional[bool] = Field(True, alias="isFolded") + is_folded: bool | None = Field(True, alias="isFolded") class VocaloidEffects(VocaloidFolded): - id_value: Optional[str] = Field(None, alias="id") - is_bypassed: Optional[bool] = Field(None, alias="isBypassed") + id_value: str | None = Field(None, alias="id") + is_bypassed: bool | None = Field(None, alias="isBypassed") parameters: list[VocaloidParameters] = Field(default_factory=list) class VocaloidSingingSkill(BaseModel): - duration: Optional[int] = 158 - weight: Optional[VocaloidWeight] = Field(default_factory=VocaloidWeight) + duration: int | None = 158 + weight: VocaloidWeight | None = Field(default_factory=VocaloidWeight) class VocaloidTempo(VocaloidFolded): events: list[VocaloidPoint] = Field(default_factory=list) - global_value: Optional[VocaloidGlobal] = Field(alias="global", default_factory=VocaloidGlobal) - height: Optional[int] = 0 - ara: Optional[VocaloidEnabled] = None + global_value: VocaloidGlobal | None = Field(alias="global", default_factory=VocaloidGlobal) + height: int | None = 0 + ara: VocaloidEnabled | None = None class VocaloidTimeSigs(VocaloidFolded): @@ -183,38 +183,38 @@ class VocaloidMasterTrack(BaseModel): class VocaloidDVQMRelease(VocaloidCompID): - speed: Optional[int] = None - level_names: Optional[list[str]] = Field(None, alias="levelNames") - top_factor: Optional[float] = Field(None, alias="topFactor") - is_protected: Optional[bool] = Field(None, alias="isProtected") + speed: int | None = None + level_names: list[str] | None = Field(None, alias="levelNames") + top_factor: float | None = Field(None, alias="topFactor") + is_protected: bool | None = Field(None, alias="isProtected") class VocaloidDVQM(BaseModel): - release: Optional[VocaloidDVQMRelease] = None - attack: Optional[VocaloidDVQMRelease] = None + release: VocaloidDVQMRelease | None = None + attack: VocaloidDVQMRelease | None = None class VocaloidNotes(VocaloidLangID, VocaloidWithDur): - exp: Optional[VocaloidExp] = Field(default_factory=VocaloidExp) - ai_exp: Optional[VocaloidAIExp] = Field(None, alias="aiExp") - direct_pitches: Optional[list[VocaloidPoint]] = Field(None, alias="directPitches") - is_protected: Optional[bool] = Field(False, alias="isProtected") - is_ai_vibrato_enabled: Optional[bool] = Field(False, alias="isAiVibratoEnabled") + exp: VocaloidExp | None = Field(default_factory=VocaloidExp) + ai_exp: VocaloidAIExp | None = Field(None, alias="aiExp") + direct_pitches: list[VocaloidPoint] | None = Field(None, alias="directPitches") + is_protected: bool | None = Field(False, alias="isProtected") + is_ai_vibrato_enabled: bool | None = Field(False, alias="isAiVibratoEnabled") lyric: str number: int - phoneme: Optional[str] = None - phoneme_positions: Optional[list[VocaloidBasePos]] = Field(None, alias="phonemePositions") - singing_skill: Optional[VocaloidSingingSkill] = Field( + phoneme: str | None = None + phoneme_positions: list[VocaloidBasePos] | None = Field(None, alias="phonemePositions") + singing_skill: VocaloidSingingSkill | None = Field( alias="singingSkill", default_factory=VocaloidSingingSkill ) velocity: int = 64 - vibrato: Optional[VocaloidVibrato] = Field(default_factory=VocaloidVibrato) - dvqm: Optional[VocaloidDVQM] = None + vibrato: VocaloidVibrato | None = Field(default_factory=VocaloidVibrato) + dvqm: VocaloidDVQM | None = None class VocaloidWav(BaseModel): name: str - original_name: Optional[str] = Field(None, alias="originalName") + original_name: str | None = Field(None, alias="originalName") @model_validator(mode="after") def extract_audio(self, info: ValidationInfo) -> Self: @@ -232,15 +232,15 @@ def extract_audio(self, info: ValidationInfo) -> Self: class VocaloidVoicePart(VocaloidWithDur): - name: Optional[str] = "" + name: str | None = "" midi_effects: list[VocaloidEffects] = Field(default_factory=list, alias="midiEffects") audio_effects: list[VocaloidEffects] = Field(default_factory=list, alias="audioEffects") notes: list[VocaloidNotes] = Field(default_factory=list) - style_preset_id: Optional[str] = Field(None, alias="stylePresetID") - style_name: Optional[str] = Field("No Effect", alias="styleName") - voice: Optional[VocaloidVoice] = None - ai_voice: Optional[VocaloidAIVoice] = Field(None, alias="aiVoice") - controllers: Optional[list[VocaloidControllers]] = None + style_preset_id: str | None = Field(None, alias="stylePresetID") + style_name: str | None = Field("No Effect", alias="styleName") + voice: VocaloidVoice | None = None + ai_voice: VocaloidAIVoice | None = Field(None, alias="aiVoice") + controllers: list[VocaloidControllers] | None = None def get_controller_events(self, name: str) -> list[ControllerEvent]: if self.controllers is None: @@ -262,23 +262,21 @@ class VocaloidWavPart(VocaloidBasePos): populate_by_name=True, extra="forbid", ) - region: Optional[VocaloidRegion] = None - name: Optional[str] = "" - wav: Optional[VocaloidWav] = None + region: VocaloidRegion | None = None + name: str | None = "" + wav: VocaloidWav | None = None class VocaloidBaseTracks(VocaloidFolded): - bus_no: Optional[int] = Field(0, alias="busNo") - color: Optional[int] = 0 - height: Optional[float] = 0 + bus_no: int | None = Field(0, alias="busNo") + color: int | None = 0 + height: float | None = 0 is_muted: bool = Field(False, alias="isMuted") is_solo_mode: bool = Field(False, alias="isSoloMode") - name: Optional[str] = "" + name: str | None = "" panpot: VocaloidAutomation = Field(default_factory=VocaloidAutomation) volume: VocaloidAutomation = Field(default_factory=VocaloidAutomation) - last_scroll_position_note_number: Optional[int] = Field( - None, alias="lastScrollPositionNoteNumber" - ) + last_scroll_position_note_number: int | None = Field(None, alias="lastScrollPositionNoteNumber") class VocaloidStandardTrack(VocaloidBaseTracks): @@ -299,7 +297,7 @@ class VocaloidAudioTrack(VocaloidBaseTracks): VocaloidTracks = Annotated[ - Union[VocaloidStandardTrack, VocaloidAITrack, VocaloidAudioTrack], + VocaloidStandardTrack | VocaloidAITrack | VocaloidAudioTrack, Field(discriminator="type_value"), ] @@ -308,8 +306,8 @@ class VocaloidProject(BaseModel): master_track: VocaloidMasterTrack = Field( alias="masterTrack", default_factory=VocaloidMasterTrack ) - title: Optional[str] = "" + title: str | None = "" tracks: list[VocaloidTracks] = Field(default_factory=list) vender: str = "Yamaha Corporation" - version: Optional[VocaloidVersion] = Field(default_factory=VocaloidVersion) + version: VocaloidVersion | None = Field(default_factory=VocaloidVersion) voices: list[VocaloidVoices] = Field(default_factory=list) diff --git a/libresvip/plugins/vpr/vocaloid_pitch.py b/libresvip/plugins/vpr/vocaloid_pitch.py index d93b24411..b96a01e4c 100644 --- a/libresvip/plugins/vpr/vocaloid_pitch.py +++ b/libresvip/plugins/vpr/vocaloid_pitch.py @@ -1,5 +1,4 @@ import math -from typing import Optional from libresvip.core.constants import ( DEFAULT_PITCH_BEND_SENSITIVITY, @@ -23,7 +22,7 @@ def pitch_from_vocaloid_parts( synchronizer: TimeSynchronizer, note_list: list[Note], first_bar_length: int, -) -> Optional[ParamCurve]: +) -> ParamCurve | None: pitch_raw_data_by_part = [] for part in data_by_parts: pit = part.pit @@ -89,7 +88,7 @@ def generate_for_vocaloid( notes: list[Note], first_bar_length: int, synchronizer: TimeSynchronizer, -) -> Optional[VocaloidPartPitchData]: +) -> VocaloidPartPitchData | None: pitch_simulator = PitchSimulator( synchronizer=synchronizer, portamento=PortamentoPitch.vocaloid_portamento(), diff --git a/libresvip/plugins/vpr/vpr_generator.py b/libresvip/plugins/vpr/vpr_generator.py index 8cbbffdb1..799a8bd35 100644 --- a/libresvip/plugins/vpr/vpr_generator.py +++ b/libresvip/plugins/vpr/vpr_generator.py @@ -1,6 +1,5 @@ import dataclasses import pathlib -from typing import Optional from libresvip.core.constants import TICKS_IN_BEAT from libresvip.core.lyric_phoneme.chinese import get_pinyin_series @@ -225,7 +224,7 @@ def generate_tracks(self, track_list: list[Track]) -> list[VocaloidTracks]: ) return tracks - def generate_pitch_data(self, track: SingingTrack) -> Optional[list[VocaloidControllers]]: + def generate_pitch_data(self, track: SingingTrack) -> list[VocaloidControllers] | None: raw_pitch_data = generate_for_vocaloid( track.edited_params.pitch, track.note_list, diff --git a/libresvip/plugins/vpr/vpr_parser.py b/libresvip/plugins/vpr/vpr_parser.py index 4a95e8fc4..5aa82365b 100644 --- a/libresvip/plugins/vpr/vpr_parser.py +++ b/libresvip/plugins/vpr/vpr_parser.py @@ -85,7 +85,7 @@ def parse_tempos(self, tempos: list[VocaloidPoint]) -> list[SongTempo]: bpm=tempo.value / BPM_RATE, ) for tempo in tempos - if isinstance(tempo.value, (int, float)) + if isinstance(tempo.value, int | float) ] def parse_tracks(self, tracks: list[VocaloidTracks]) -> list[Track]: @@ -175,7 +175,7 @@ def parse_notes( for pitch in note.direct_pitches: if pitch.pos < 0 or (note.duration and pitch.pos > note.duration): continue - if isinstance(pitch.value, (int, float)): + if isinstance(pitch.value, int | float): if not note_pitch_points or note_pitch_points[-1].y == -100: note_pitch_points.append( Point( diff --git a/libresvip/plugins/vspx/model.py b/libresvip/plugins/vspx/model.py index 4dfe3fabc..972f6345b 100644 --- a/libresvip/plugins/vspx/model.py +++ b/libresvip/plugins/vspx/model.py @@ -1,5 +1,4 @@ import abc -from typing import Optional from xsdata_pydantic.fields import field @@ -71,21 +70,21 @@ class VocalSharpBeat(BaseModel): class Meta: name = "Beat" - bar_index: Optional[int] = field( + bar_index: int | None = field( default=0, metadata={ "name": "barIndex", "type": "Element", }, ) - beat_per_bar: Optional[int] = field( + beat_per_bar: int | None = field( default=4, metadata={ "name": "beatPerBar", "type": "Element", }, ) - bar_divide: Optional[int] = field( + bar_divide: int | None = field( default=4, metadata={ "name": "barDivide", @@ -98,50 +97,50 @@ class VocalSharpDefaultParameter(BaseModel): class Meta: name = "DefaultParameter" - dyn: Optional[int] = field( + dyn: int | None = field( default=128, metadata={ "type": "Element", }, ) - strength: Optional[int] = field( + strength: int | None = field( default=128, metadata={ "name": "str", "type": "Element", }, ) - bri: Optional[int] = field( + bri: int | None = field( default=128, metadata={ "type": "Element", }, ) - voc: Optional[int] = field( + voc: int | None = field( default=255, metadata={ "type": "Element", }, ) - bre: Optional[int] = field( + bre: int | None = field( default=128, metadata={ "type": "Element", }, ) - gen: Optional[int] = field( + gen: int | None = field( default=128, metadata={ "type": "Element", }, ) - gwl: Optional[int] = field( + gwl: int | None = field( default=0, metadata={ "type": "Element", }, ) - xsy: Optional[int] = field( + xsy: int | None = field( default=0, metadata={ "type": "Element", @@ -190,19 +189,19 @@ class VocalSharpSequence(BaseModel): class Meta: name = "Sequence" - pos: Optional[int] = field( + pos: int | None = field( default=None, metadata={ "type": "Element", }, ) - name: Optional[str] = field( + name: str | None = field( default=None, metadata={ "type": "Element", }, ) - path: Optional[str] = field( + path: str | None = field( default=None, metadata={ "type": "Element", @@ -211,35 +210,35 @@ class Meta: class VocalSharpTrackBase(abc.ABC, BaseModel): - name: Optional[str] = field( + name: str | None = field( default="神秘轨道_0", metadata={ "name": "Name", "type": "Element", }, ) - pan: Optional[float] = field( + pan: float | None = field( default=0, metadata={ "name": "Pan", "type": "Element", }, ) - gain: Optional[float] = field( + gain: float | None = field( default=0, metadata={ "name": "Gain", "type": "Element", }, ) - is_mute: Optional[str] = field( + is_mute: str | None = field( default="False", metadata={ "name": "IsMute", "type": "Element", }, ) - is_solo: Optional[str] = field( + is_solo: str | None = field( default="False", metadata={ "name": "IsSolo", @@ -272,13 +271,13 @@ class VocalSharpTempo(BaseModel): class Meta: name = "Tempo" - pos: Optional[int] = field( + pos: int | None = field( default=0, metadata={ "type": "Element", }, ) - bpm: Optional[float] = field( + bpm: float | None = field( default=120, metadata={ "type": "Element", @@ -290,13 +289,13 @@ class VocalSharpPoint(BaseModel): class Meta: name = "p" - x: Optional[float] = field( + x: float | None = field( default=None, metadata={ "type": "Element", }, ) - y: Optional[float] = field( + y: float | None = field( default=None, metadata={ "type": "Element", @@ -335,13 +334,13 @@ class VocalSharpSyllablePartBase(abc.ABC, BaseModel): "type": "Element", }, ) - sample: Optional[str] = field( + sample: str | None = field( default=None, metadata={ "type": "Element", }, ) - symbol: Optional[str] = field( + symbol: str | None = field( default=None, metadata={ "type": "Element", @@ -368,19 +367,19 @@ class VocalSharpSyllable(BaseModel): class Meta: name = "Syllable" - head: Optional[VocalSharpSyllableHead] = field( + head: VocalSharpSyllableHead | None = field( default=None, metadata={ "type": "Element", }, ) - cur: Optional[VocalSharpSyllableCur] = field( + cur: VocalSharpSyllableCur | None = field( default=None, metadata={ "type": "Element", }, ) - tail: Optional[VocalSharpSyllableTail] = field( + tail: VocalSharpSyllableTail | None = field( default=None, metadata={ "type": "Element", @@ -407,13 +406,13 @@ class Meta: "type": "Element", }, ) - lyric: Optional[str] = field( + lyric: str | None = field( default=None, metadata={ "type": "Element", }, ) - trill: Optional[VocalSharpTrill] = field( + trill: VocalSharpTrill | None = field( default=None, metadata={ "name": "trill", @@ -437,21 +436,21 @@ class VocalSharpNoteTrack(VocalSharpTrackBase): class Meta: name = "NoteTrack" - singer: Optional[str] = field( + singer: str | None = field( default="神秘歌手", metadata={ "name": "Singer", "type": "Element", }, ) - lsd: Optional[str] = field( + lsd: str | None = field( default="神秘字典", metadata={ "name": "LSD", "type": "Element", }, ) - default_parameter: Optional[VocalSharpDefaultParameter] = field( + default_parameter: VocalSharpDefaultParameter | None = field( default_factory=VocalSharpDefaultParameter, metadata={ "name": "DefaultParameter", @@ -484,28 +483,28 @@ class VocalSharpInnerProject(BaseModel): class Meta: name = "Project" - samples_per_sec: Optional[int] = field( + samples_per_sec: int | None = field( default=44100, metadata={ "name": "SamplesPerSec", "type": "Element", }, ) - resolution: Optional[int] = field( + resolution: int | None = field( default=1920, metadata={ "name": "Resolution", "type": "Element", }, ) - duration: Optional[int] = field( + duration: int | None = field( default=None, metadata={ "name": "Duration", "type": "Element", }, ) - default_trill: Optional[VocalSharpDefaultTrill] = field( + default_trill: VocalSharpDefaultTrill | None = field( default_factory=VocalSharpDefaultTrill, metadata={ "name": "DefaultTrill", @@ -543,7 +542,7 @@ class VocalSharpProject(BaseModel): class Meta: name = "VSPX" - version: Optional[str] = field( + version: str | None = field( default="Beta0.0.0", metadata={ "name": "Version", diff --git a/libresvip/plugins/vspx/vspx_generator.py b/libresvip/plugins/vspx/vspx_generator.py index 480624f05..ea6ea40e1 100644 --- a/libresvip/plugins/vspx/vspx_generator.py +++ b/libresvip/plugins/vspx/vspx_generator.py @@ -1,6 +1,5 @@ import dataclasses import math -from typing import Optional, Union from libresvip.core.tick_counter import skip_tempo_list from libresvip.core.time_sync import TimeSynchronizer @@ -86,8 +85,8 @@ def generate_tempos(self, tempos: list[SongTempo]) -> list[VocalSharpTempo]: def generate_instrumental_tracks( self, instrumental_tracks: list[InstrumentalTrack] - ) -> list[Union[VocalSharpMonoTrack, VocalSharpStereoTrack]]: - track_list: list[Union[VocalSharpMonoTrack, VocalSharpStereoTrack]] = [] + ) -> list[VocalSharpMonoTrack | VocalSharpStereoTrack]: + track_list: list[VocalSharpMonoTrack | VocalSharpStereoTrack] = [] for track in instrumental_tracks: if (track_info := audio_track_info(track.audio_file_path, only_wav=True)) is not None: sequence = VocalSharpSequence( @@ -147,7 +146,7 @@ def generate_notes(self, notes: list[Note]) -> list[VocalSharpNote]: def generate_pitch(self, pitch: ParamCurve, note_track: VocalSharpNoteTrack) -> list[PIT]: base_pitch_curve = BasePitchCurve(note_track, None, self.synchronizer) pitch_points: list[PIT] = [] - prev_point: Optional[PIT] = None + prev_point: PIT | None = None for point in pitch.points.root: cur_tick = point.x - self.first_bar_length cur_secs = self.synchronizer.get_actual_secs_from_ticks(cur_tick) diff --git a/libresvip/plugins/vspx/vspx_interval_dict.py b/libresvip/plugins/vspx/vspx_interval_dict.py index 3df02c9ea..dea8557d3 100644 --- a/libresvip/plugins/vspx/vspx_interval_dict.py +++ b/libresvip/plugins/vspx/vspx_interval_dict.py @@ -1,7 +1,6 @@ import dataclasses import functools import math -from typing import Optional, Union import more_itertools import portion @@ -16,7 +15,7 @@ def vspx_sine_vibrato_interpolation( seconds: float, vibrato_start: float, - trill: Union[VocalSharpTrill, VocalSharpDefaultTrill], + trill: VocalSharpTrill | VocalSharpDefaultTrill, ) -> float: return ( math.sin(math.pi * (2 * (seconds - vibrato_start) * trill.frequency + trill.phase)) @@ -39,7 +38,7 @@ def vspx_cosine_vibrato_coef_release_interpolation( @dataclasses.dataclass class BasePitchCurve: note_track: dataclasses.InitVar[VocalSharpNoteTrack] - default_trill: dataclasses.InitVar[Optional[VocalSharpDefaultTrill]] + default_trill: dataclasses.InitVar[VocalSharpDefaultTrill | None] synchronizer: TimeSynchronizer key_interval_dict: PiecewiseIntervalDict = dataclasses.field( default_factory=PiecewiseIntervalDict @@ -54,7 +53,7 @@ class BasePitchCurve: def __post_init__( self, note_track: VocalSharpNoteTrack, - default_trill: Optional[VocalSharpDefaultTrill], + default_trill: VocalSharpDefaultTrill | None, ) -> None: if not len(note_track.note): pass @@ -141,8 +140,8 @@ def set_vspx_vibrato_curve( self, start: float, end: float, - trill: Union[VocalSharpTrill, VocalSharpDefaultTrill], - por: Optional[float] = None, + trill: VocalSharpTrill | VocalSharpDefaultTrill, + por: float | None = None, ) -> None: self.vibrato_value_interval_dict[portion.closed(start, end)] = functools.partial( vspx_sine_vibrato_interpolation, @@ -179,7 +178,7 @@ def set_vspx_vibrato_curve( else: self.vibrato_coef_interval_dict[portion.closed(start, end)] = 0 - def semitone_value_at(self, seconds: float) -> Optional[float]: + def semitone_value_at(self, seconds: float) -> float | None: if (pitch_value := self.key_interval_dict.get(seconds)) is not None and ( vibrato_value := self.vibrato_value_interval_dict.get(seconds) ) is not None: diff --git a/libresvip/plugins/vspx/vspx_parser.py b/libresvip/plugins/vspx/vspx_parser.py index 2f30db84d..4ef332245 100644 --- a/libresvip/plugins/vspx/vspx_parser.py +++ b/libresvip/plugins/vspx/vspx_parser.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Optional, Union from libresvip.core.tick_counter import shift_tempo_list from libresvip.core.time_sync import TimeSynchronizer @@ -33,7 +32,7 @@ @dataclasses.dataclass class VocalSharpParser: options: InputOptions - default_trill: Optional[VocalSharpDefaultTrill] = None + default_trill: VocalSharpDefaultTrill | None = None synchronizer: TimeSynchronizer = dataclasses.field(init=False) first_bar_length: int = dataclasses.field(init=False) @@ -54,7 +53,7 @@ def parse_project(self, vspx_project: VocalSharpProject) -> Project: [ track for track in vspx_project.project.tracks - if isinstance(track, (VocalSharpMonoTrack, VocalSharpStereoTrack)) + if isinstance(track, VocalSharpMonoTrack | VocalSharpStereoTrack) ] ) return Project( @@ -142,7 +141,7 @@ def parse_pitch(self, note_track: VocalSharpNoteTrack) -> ParamCurve: def parse_instrumental_tracks( self, - track_list: list[Union[VocalSharpMonoTrack, VocalSharpStereoTrack]], + track_list: list[VocalSharpMonoTrack | VocalSharpStereoTrack], ) -> list[InstrumentalTrack]: tracks = [] if self.options.import_instrumental_track: diff --git a/libresvip/plugins/vsq/vocaloid_pitch.py b/libresvip/plugins/vsq/vocaloid_pitch.py index 67df93449..14c73ed93 100644 --- a/libresvip/plugins/vsq/vocaloid_pitch.py +++ b/libresvip/plugins/vsq/vocaloid_pitch.py @@ -1,6 +1,5 @@ import math from dataclasses import dataclass -from typing import Optional from libresvip.core.constants import ( DEFAULT_PITCH_BEND_SENSITIVITY, @@ -35,7 +34,7 @@ def pitch_from_vocaloid_parts( synchronizer: TimeSynchronizer, note_list: list[Note], first_bar_length: int, -) -> Optional[ParamCurve]: +) -> ParamCurve | None: pitch_raw_data_by_part = [] for part in data_by_parts: pit = part.pit @@ -102,7 +101,7 @@ def generate_for_vocaloid( notes: list[Note], first_bar_length: int, synchronizer: TimeSynchronizer, -) -> Optional[VocaloidPartPitchData]: +) -> VocaloidPartPitchData | None: pitch_simulator = PitchSimulator( synchronizer=synchronizer, portamento=PortamentoPitch.vocaloid_portamento(), diff --git a/libresvip/plugins/vsq/vsq_generator.py b/libresvip/plugins/vsq/vsq_generator.py index fac6e967f..9370b7a6a 100644 --- a/libresvip/plugins/vsq/vsq_generator.py +++ b/libresvip/plugins/vsq/vsq_generator.py @@ -1,6 +1,5 @@ import dataclasses import operator -from typing import Optional import mido_fix as mido @@ -111,7 +110,7 @@ def generate_tracks(self, tracks: list[Track]) -> list[mido.MidiTrack]: def generate_track( self, track: SingingTrack, track_index: int, tracks_count: int - ) -> Optional[mido.MidiTrack]: + ) -> mido.MidiTrack | None: track_text = self.generate_track_text(track, track_index, tracks_count) mido_track = mido.MidiTrack() while len(track_text) != 0: diff --git a/libresvip/plugins/vsq/vsq_parser.py b/libresvip/plugins/vsq/vsq_parser.py index 37ff99565..5fd47dbe5 100644 --- a/libresvip/plugins/vsq/vsq_parser.py +++ b/libresvip/plugins/vsq/vsq_parser.py @@ -2,7 +2,6 @@ import dataclasses import math import re -from typing import Optional import mido_fix as mido @@ -171,7 +170,7 @@ def parse_pitch( vsq_track: configparser.ConfigParser, note_list: list[Note], tick_prefix: int, - ) -> Optional[ParamCurve]: + ) -> ParamCurve | None: pit: list[ControllerEvent] = [] pbs: list[ControllerEvent] = [] if vsq_track.has_section("PitchBendBPList"): diff --git a/libresvip/plugins/vsqx/model.py b/libresvip/plugins/vsqx/model.py index 94b79a4f5..8ff79602b 100644 --- a/libresvip/plugins/vsqx/model.py +++ b/libresvip/plugins/vsqx/model.py @@ -1,5 +1,3 @@ -from typing import Optional, Union - from pydantic import Field from libresvip.model.base import BaseModel @@ -51,30 +49,30 @@ from .models.vsqx4 import VVoiceTable as Vsq4VVoiceTable from .models.vsqx4 import WavPart as Vsq4WavPart -Vsqx = Union[Vsq3, Vsq4] -VsqxMasterTrack = Union[Vsq3MasterTrack, Vsq4MasterTrack] -VsqxMCtrl = Union[Vsq3MCtrl, Vsq4MCtrl] -VsqxMixer = Union[Vsq3Mixer, Vsq4Mixer] -VsqxMonoTrack = Union[Vsq3MonoTrack, Vsq4MonoTrack] -VsqxMusicalPart = Union[Vsq3MusicalPart, Vsq4MusicalPart] -VsqxNote = Union[Vsq3Note, Vsq4Note] -VsqxNoteStyle = Union[Vsq3NoteStyle, Vsq4NoteStyle] -VsqxParameterNames = Union[Vsq3ParameterNames, Vsq4ParameterNames] -VsqxPartStyle = Union[Vsq3PartStyle, Vsq4PartStyle] -VsqxTypePhonemes = Union[Vsq3TypePhonemes, Vsq4TypePhonemes] -VsqxSinger = Union[Vsq3Singer, Vsq4Singer] -VsqxStereoTrack = Union[Vsq3StereoTrack, Vsq4StereoTrack] -VsqxStereoUnitList = Union[list[Vsq3StereoUnit], list[Vsq4StereoUnit]] -VsqxMonoUnitList = Union[list[Vsq3MonoUnit], list[Vsq4MonoUnit]] -VsqxWavUnitList = Union[VsqxStereoUnitList, VsqxMonoUnitList] -VsqxTempoList = Union[list[Vsq3Tempo], list[Vsq4Tempo]] -VsqxTimeSigList = Union[list[Vsq3TimeSig], list[Vsq4TimeSig]] -VsqxTypeParamAttr = Union[Vsq3TypeParamAttr, Vsq4TypeParamAttr] -VsqxVsTrackList = Union[list[Vsq3VsTrack], list[Vsq4VsTrack]] -VsqxVsUnitList = Union[list[Vsq3VsUnit], list[Vsq4VsUnit]] -VsqxVVoice = Union[Vsq3VVoice, Vsq4VVoice] -VsqxVVoiceTable = Union[Vsq3VVoiceTable, Vsq4VVoiceTable] -VsqxWavPartList = Union[list[Vsq3WavPart], list[Vsq4WavPart]] +Vsqx = Vsq3 | Vsq4 +VsqxMasterTrack = Vsq3MasterTrack | Vsq4MasterTrack +VsqxMCtrl = Vsq3MCtrl | Vsq4MCtrl +VsqxMixer = Vsq3Mixer | Vsq4Mixer +VsqxMonoTrack = Vsq3MonoTrack | Vsq4MonoTrack +VsqxMusicalPart = Vsq3MusicalPart | Vsq4MusicalPart +VsqxNote = Vsq3Note | Vsq4Note +VsqxNoteStyle = Vsq3NoteStyle | Vsq4NoteStyle +VsqxParameterNames = Vsq3ParameterNames | Vsq4ParameterNames +VsqxPartStyle = Vsq3PartStyle | Vsq4PartStyle +VsqxTypePhonemes = Vsq3TypePhonemes | Vsq4TypePhonemes +VsqxSinger = Vsq3Singer | Vsq4Singer +VsqxStereoTrack = Vsq3StereoTrack | Vsq4StereoTrack +VsqxStereoUnitList = list[Vsq3StereoUnit] | list[Vsq4StereoUnit] +VsqxMonoUnitList = list[Vsq3MonoUnit] | list[Vsq4MonoUnit] +VsqxWavUnitList = VsqxStereoUnitList | VsqxMonoUnitList +VsqxTempoList = list[Vsq3Tempo] | list[Vsq4Tempo] +VsqxTimeSigList = list[Vsq3TimeSig] | list[Vsq4TimeSig] +VsqxTypeParamAttr = Vsq3TypeParamAttr | Vsq4TypeParamAttr +VsqxVsTrackList = list[Vsq3VsTrack] | list[Vsq4VsTrack] +VsqxVsUnitList = list[Vsq3VsUnit] | list[Vsq4VsUnit] +VsqxVVoice = Vsq3VVoice | Vsq4VVoice +VsqxVVoiceTable = Vsq3VVoiceTable | Vsq4VVoiceTable +VsqxWavPartList = list[Vsq3WavPart] | list[Vsq4WavPart] class VocaloidStyleTypes(BaseModel): @@ -87,8 +85,8 @@ class VocaloidStyleTypes(BaseModel): rise_portamento: int = Field(0, alias="risePort") vibrato_length: int = Field(0, alias="vibLen") vibrato_type: int = Field(0, alias="vibType") - vibrato_depth: Optional[list[int]] = Field(None, alias="vibDep") - vibrato_rate: Optional[list[int]] = Field(None, alias="vibRate") + vibrato_depth: list[int] | None = Field(None, alias="vibDep") + vibrato_rate: list[int] | None = Field(None, alias="vibRate") __all__ = [ diff --git a/libresvip/plugins/vsqx/models/vsqx3.py b/libresvip/plugins/vsqx/models/vsqx3.py index 48d87e4d2..dedead26b 100644 --- a/libresvip/plugins/vsqx/models/vsqx3.py +++ b/libresvip/plugins/vsqx/models/vsqx3.py @@ -26,7 +26,7 @@ class Meta: name = "aux" namespace = VSQ3_NS - aux_id: Optional[str] = field( + aux_id: str | None = field( default=None, metadata={ "name": "auxID", @@ -34,7 +34,7 @@ class Meta: "required": True, }, ) - content: Optional[str] = field( + content: str | None = field( default=None, metadata={ "type": "Element", @@ -48,7 +48,7 @@ class Meta: name = "dyn" namespace = VSQ3_NS - pos_sec: Optional[int] = field( + pos_sec: int | None = field( default=None, metadata={ "name": "posSec", @@ -56,7 +56,7 @@ class Meta: "required": True, }, ) - dyn_val: Optional[int] = field( + dyn_val: int | None = field( default=None, metadata={ "name": "dynVal", @@ -71,7 +71,7 @@ class Meta: name = "pch" namespace = VSQ3_NS - pos_sec: Optional[int] = field( + pos_sec: int | None = field( default=None, metadata={ "name": "posSec", @@ -79,7 +79,7 @@ class Meta: "required": True, }, ) - pch_val: Optional[int] = field( + pch_val: int | None = field( default=None, metadata={ "name": "pchVal", @@ -94,7 +94,7 @@ class Meta: name = "phnm" namespace = VSQ3_NS - pos_sec: Optional[int] = field( + pos_sec: int | None = field( default=None, metadata={ "name": "posSec", @@ -102,7 +102,7 @@ class Meta: "required": True, }, ) - dur_sec: Optional[int] = field( + dur_sec: int | None = field( default=None, metadata={ "name": "durSec", @@ -110,7 +110,7 @@ class Meta: "required": True, }, ) - phnm_str: Optional[str] = field( + phnm_str: str | None = field( default=None, metadata={ "name": "phnmStr", @@ -132,7 +132,7 @@ class Meta: "min_occurs": 1, }, ) - seq_id: Optional[str] = field( + seq_id: str | None = field( default=None, metadata={ "name": "id", @@ -142,7 +142,7 @@ class Meta: ) class Elem(BaseModel): - pos_nrm: Optional[int] = field( + pos_nrm: int | None = field( default=None, metadata={ "name": "posNrm", @@ -150,7 +150,7 @@ class Elem(BaseModel): "required": True, }, ) - elv: Optional[int] = field( + elv: int | None = field( default=None, metadata={ "type": "Element", @@ -164,7 +164,7 @@ class Meta: name = "singer" namespace = VSQ3_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=0, metadata={ "name": "posTick", @@ -172,7 +172,7 @@ class Meta: "required": True, }, ) - v_bs: Optional[VocaloidLanguage] = field( + v_bs: VocaloidLanguage | None = field( default=VocaloidLanguage.SIMPLIFIED_CHINESE, metadata={ "name": "vBS", @@ -182,7 +182,7 @@ class Meta: "max_inclusive": 127, }, ) - v_pc: Optional[int] = field( + v_pc: int | None = field( default=0, metadata={ "name": "vPC", @@ -199,7 +199,7 @@ class Meta: name = "stylePlugin" namespace = VSQ3_NS - style_plugin_id: Optional[str] = field( + style_plugin_id: str | None = field( default="ACA9C502-A04B-42b5-B2EB-5CEA36D16FCE", metadata={ "name": "stylePluginID", @@ -208,7 +208,7 @@ class Meta: "length": 36, }, ) - style_plugin_name: Optional[str] = field( + style_plugin_name: str | None = field( default="VOCALOID2 Compatible Style", metadata={ "name": "stylePluginName", @@ -216,7 +216,7 @@ class Meta: "required": True, }, ) - version: Optional[str] = field( + version: str | None = field( default="3.0.0.1", metadata={ "type": "Element", @@ -250,7 +250,7 @@ class Meta: name = "timeSig" namespace = VSQ3_NS - pos_mes: Optional[int] = field( + pos_mes: int | None = field( default=None, metadata={ "name": "posMes", @@ -258,14 +258,14 @@ class Meta: "required": True, }, ) - nume: Optional[int] = field( + nume: int | None = field( default=None, metadata={ "type": "Element", "required": True, }, ) - denomi: Optional[int] = field( + denomi: int | None = field( default=None, metadata={ "type": "Element", @@ -278,13 +278,13 @@ class TypeParamAttr(BaseModel): class Meta: name = "typeParamAttr" - value: Optional[int] = field( + value: int | None = field( default=None, metadata={ "required": True, }, ) - type_param_attr_id: Optional[str] = field( + type_param_attr_id: str | None = field( default=None, metadata={ "name": "id", @@ -304,7 +304,7 @@ class Meta: "required": True, }, ) - lock: Optional[int] = field( + lock: int | None = field( default=None, metadata={ "type": "Attribute", @@ -337,7 +337,7 @@ class Meta: name = "vVoiceParam" namespace = VSQ3_NS - bre: Optional[int] = field( + bre: int | None = field( default=0, metadata={ "type": "Element", @@ -346,7 +346,7 @@ class Meta: "max_inclusive": 127, }, ) - bri: Optional[int] = field( + bri: int | None = field( default=0, metadata={ "type": "Element", @@ -355,7 +355,7 @@ class Meta: "max_inclusive": 127, }, ) - cle: Optional[int] = field( + cle: int | None = field( default=0, metadata={ "type": "Element", @@ -364,7 +364,7 @@ class Meta: "max_inclusive": 127, }, ) - gen: Optional[int] = field( + gen: int | None = field( default=0, metadata={ "type": "Element", @@ -373,7 +373,7 @@ class Meta: "max_inclusive": 127, }, ) - ope: Optional[int] = field( + ope: int | None = field( default=0, metadata={ "type": "Element", @@ -389,7 +389,7 @@ class Meta: name = "voice" namespace = VSQ3_NS - pos_sec: Optional[int] = field( + pos_sec: int | None = field( default=None, metadata={ "name": "posSec", @@ -397,7 +397,7 @@ class Meta: "required": True, }, ) - v_bs: Optional[VocaloidLanguage] = field( + v_bs: VocaloidLanguage | None = field( default=VocaloidLanguage.SIMPLIFIED_CHINESE, metadata={ "name": "vBS", @@ -407,7 +407,7 @@ class Meta: "max_inclusive": 127, }, ) - v_pc: Optional[int] = field( + v_pc: int | None = field( default=0, metadata={ "name": "vPC", @@ -445,7 +445,7 @@ class Meta: name = "masterTrack" namespace = VSQ3_NS - seq_name: Optional[str] = field( + seq_name: str | None = field( default="Untitled0", metadata={ "name": "seqName", @@ -453,14 +453,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="New VSQ File", metadata={ "type": "Element", "required": True, }, ) - resolution: Optional[int] = field( + resolution: int | None = field( default=480, metadata={ "type": "Element", @@ -519,7 +519,7 @@ class Meta: name = "pCtrl" namespace = VSQ3_NS - pos_sec: Optional[int] = field( + pos_sec: int | None = field( default=None, metadata={ "name": "posSec", @@ -527,7 +527,7 @@ class Meta: "required": True, }, ) - attr: Optional[TypeParamAttr] = field( + attr: TypeParamAttr | None = field( default=None, metadata={ "type": "Element", @@ -555,7 +555,7 @@ class Meta: name = "phraseStyle" namespace = VSQ3_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=None, metadata={ "name": "posTick", @@ -577,7 +577,7 @@ class Meta: name = "sCtrl" namespace = VSQ3_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=None, metadata={ "name": "posTick", @@ -585,7 +585,7 @@ class Meta: "required": True, }, ) - attr: Optional[TypeParamAttr] = field( + attr: TypeParamAttr | None = field( default=None, metadata={ "type": "Element", @@ -599,7 +599,7 @@ class Meta: name = "vVoice" namespace = VSQ3_NS - v_bs: Optional[VocaloidLanguage] = field( + v_bs: VocaloidLanguage | None = field( default=VocaloidLanguage.SIMPLIFIED_CHINESE, metadata={ "name": "vBS", @@ -609,7 +609,7 @@ class Meta: "max_inclusive": 127, }, ) - v_pc: Optional[int] = field( + v_pc: int | None = field( default=0, metadata={ "name": "vPC", @@ -619,7 +619,7 @@ class Meta: "max_inclusive": 127, }, ) - comp_id: Optional[str] = field( + comp_id: str | None = field( default=None, metadata={ "name": "compID", @@ -628,7 +628,7 @@ class Meta: "length": 16, }, ) - v_voice_name: Optional[str] = field( + v_voice_name: str | None = field( default=None, metadata={ "name": "vVoiceName", @@ -636,7 +636,7 @@ class Meta: "required": True, }, ) - v_voice_param: Optional[VVoiceParam] = field( + v_voice_param: VVoiceParam | None = field( default_factory=VVoiceParam, metadata={ "name": "vVoiceParam", @@ -651,7 +651,7 @@ class Meta: name = "vstPlugin" namespace = VSQ3_NS - vst_plugin_id: Optional[str] = field( + vst_plugin_id: str | None = field( default=None, metadata={ "name": "vstPluginID", @@ -659,7 +659,7 @@ class Meta: "required": True, }, ) - vst_plugin_name: Optional[str] = field( + vst_plugin_name: str | None = field( default=None, metadata={ "name": "vstPluginName", @@ -667,7 +667,7 @@ class Meta: "required": True, }, ) - vst_sdkversion: Optional[TypeVstSdkversion] = field( + vst_sdkversion: TypeVstSdkversion | None = field( default=None, metadata={ "name": "vstSDKVersion", @@ -675,7 +675,7 @@ class Meta: "required": True, }, ) - vst_param_num: Optional[int] = field( + vst_param_num: int | None = field( default=None, metadata={ "name": "vstParamNum", @@ -690,14 +690,14 @@ class Meta: "type": "Element", }, ) - vst_preset_no: Optional[int] = field( + vst_preset_no: int | None = field( default=None, metadata={ "name": "vstPresetNo", "type": "Element", }, ) - enable: Optional[int] = field( + enable: int | None = field( default=None, metadata={ "type": "Element", @@ -706,7 +706,7 @@ class Meta: "max_inclusive": 1, }, ) - bypass: Optional[int] = field( + bypass: int | None = field( default=None, metadata={ "type": "Element", @@ -730,7 +730,7 @@ class Meta: name = "vstPluginSR" namespace = VSQ3_NS - vst_plugin_id: Optional[str] = field( + vst_plugin_id: str | None = field( default=None, metadata={ "name": "vstPluginID", @@ -738,7 +738,7 @@ class Meta: "required": True, }, ) - vst_plugin_name: Optional[str] = field( + vst_plugin_name: str | None = field( default=None, metadata={ "name": "vstPluginName", @@ -746,7 +746,7 @@ class Meta: "required": True, }, ) - vst_sdkversion: Optional[TypeVstSdkversion] = field( + vst_sdkversion: TypeVstSdkversion | None = field( default=None, metadata={ "name": "vstSDKVersion", @@ -754,7 +754,7 @@ class Meta: "required": True, }, ) - vst_param_num: Optional[int] = field( + vst_param_num: int | None = field( default=None, metadata={ "name": "vstParamNum", @@ -769,14 +769,14 @@ class Meta: "type": "Element", }, ) - vst_preset_no: Optional[int] = field( + vst_preset_no: int | None = field( default=None, metadata={ "name": "vstPresetNo", "type": "Element", }, ) - enable: Optional[int] = field( + enable: int | None = field( default=None, metadata={ "type": "Element", @@ -785,7 +785,7 @@ class Meta: "max_inclusive": 1, }, ) - bypass: Optional[int] = field( + bypass: int | None = field( default=None, metadata={ "type": "Element", @@ -809,7 +809,7 @@ class Meta: name = "wavPart" namespace = VSQ3_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=None, metadata={ "name": "posTick", @@ -817,7 +817,7 @@ class Meta: "required": True, }, ) - play_time: Optional[int] = field( + play_time: int | None = field( default=None, metadata={ "name": "playTime", @@ -825,7 +825,7 @@ class Meta: "required": True, }, ) - part_name: Optional[str] = field( + part_name: str | None = field( default=None, metadata={ "name": "partName", @@ -833,14 +833,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default=None, metadata={ "type": "Element", "required": True, }, ) - sample_rate: Optional[TypeSamplerate] = field( + sample_rate: TypeSamplerate | None = field( default=None, metadata={ "name": "sampleRate", @@ -848,7 +848,7 @@ class Meta: "required": True, }, ) - sample_reso: Optional[TypeResolution] = field( + sample_reso: TypeResolution | None = field( default=None, metadata={ "name": "sampleReso", @@ -856,7 +856,7 @@ class Meta: "required": True, }, ) - channels: Optional[int] = field( + channels: int | None = field( default=None, metadata={ "type": "Element", @@ -865,7 +865,7 @@ class Meta: "max_inclusive": 2, }, ) - file_path: Optional[str] = field( + file_path: str | None = field( default=None, metadata={ "name": "filePath", @@ -894,7 +894,7 @@ class Meta: name = "karaokeUnit" namespace = VSQ3_NS - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "inGain", @@ -910,7 +910,7 @@ class Meta: "max_occurs": 2, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "type": "Element", @@ -919,7 +919,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "type": "Element", @@ -928,7 +928,7 @@ class Meta: "max_inclusive": 1, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -942,7 +942,7 @@ class Meta: name = "masterUnit" namespace = VSQ3_NS - out_dev: Optional[int] = field( + out_dev: int | None = field( default=0, metadata={ "name": "outDev", @@ -958,14 +958,14 @@ class Meta: "max_occurs": 2, }, ) - vst_plugin_sr: Optional[VstPluginSr] = field( + vst_plugin_sr: VstPluginSr | None = field( default=None, metadata={ "name": "vstPluginSR", "type": "Element", }, ) - ret_level: Optional[int] = field( + ret_level: int | None = field( default=0, metadata={ "name": "retLevel", @@ -973,7 +973,7 @@ class Meta: "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -1001,7 +1001,7 @@ class Meta: "required": True, }, ) - note_num: Optional[int] = field( + note_num: int | None = field( default=None, metadata={ "name": "noteNum", @@ -1011,7 +1011,7 @@ class Meta: "max_inclusive": 127, }, ) - velocity: Optional[int] = field( + velocity: int | None = field( default=64, metadata={ "type": "Element", @@ -1026,7 +1026,7 @@ class Meta: "required": True, }, ) - phnms: Optional[TypePhonemes] = field( + phnms: TypePhonemes | None = field( default=None, metadata={ "type": "Element", @@ -1047,7 +1047,7 @@ class Meta: name = "prosodyPart" namespace = VSQ3_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=None, metadata={ "name": "posTick", @@ -1055,7 +1055,7 @@ class Meta: "required": True, }, ) - play_time: Optional[int] = field( + play_time: int | None = field( default=None, metadata={ "name": "playTime", @@ -1063,7 +1063,7 @@ class Meta: "required": True, }, ) - part_name: Optional[str] = field( + part_name: str | None = field( default=None, metadata={ "name": "partName", @@ -1071,7 +1071,7 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default=None, metadata={ "type": "Element", @@ -1133,7 +1133,7 @@ class Meta: name = "seUnit" namespace = VSQ3_NS - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "inGain", @@ -1149,7 +1149,7 @@ class Meta: "max_occurs": 2, }, ) - send_level: Optional[int] = field( + send_level: int | None = field( default=-898, metadata={ "name": "sendLevel", @@ -1157,7 +1157,7 @@ class Meta: "required": True, }, ) - send_enable: Optional[int] = field( + send_enable: int | None = field( default=0, metadata={ "name": "sendEnable", @@ -1167,7 +1167,7 @@ class Meta: "max_inclusive": 1, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "type": "Element", @@ -1176,7 +1176,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "type": "Element", @@ -1185,14 +1185,14 @@ class Meta: "max_inclusive": 1, }, ) - pan: Optional[int] = field( + pan: int | None = field( default=64, metadata={ "type": "Element", "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -1221,7 +1221,7 @@ class Meta: name = "vsUnit" namespace = VSQ3_NS - vs_track_no: Optional[int] = field( + vs_track_no: int | None = field( default=None, metadata={ "name": "vsTrackNo", @@ -1231,7 +1231,7 @@ class Meta: "max_inclusive": 127, }, ) - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "inGain", @@ -1247,7 +1247,7 @@ class Meta: "max_occurs": 2, }, ) - send_level: Optional[int] = field( + send_level: int | None = field( default=-898, metadata={ "name": "sendLevel", @@ -1255,7 +1255,7 @@ class Meta: "required": True, }, ) - send_enable: Optional[int] = field( + send_enable: int | None = field( default=0, metadata={ "name": "sendEnable", @@ -1265,7 +1265,7 @@ class Meta: "max_inclusive": 1, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "type": "Element", @@ -1274,7 +1274,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "type": "Element", @@ -1283,14 +1283,14 @@ class Meta: "max_inclusive": 1, }, ) - pan: Optional[int] = field( + pan: int | None = field( default=64, metadata={ "type": "Element", "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -1304,7 +1304,7 @@ class Meta: name = "mixer" namespace = VSQ3_NS - master_unit: Optional[MasterUnit] = field( + master_unit: MasterUnit | None = field( default_factory=MasterUnit, metadata={ "name": "masterUnit", @@ -1358,7 +1358,7 @@ class Meta: "required": True, }, ) - part_name: Optional[str] = field( + part_name: str | None = field( default="New Part", metadata={ "name": "partName", @@ -1366,14 +1366,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="New Musical Part", metadata={ "type": "Element", "required": True, }, ) - style_plugin: Optional[StylePlugin] = field( + style_plugin: StylePlugin | None = field( default_factory=StylePlugin, metadata={ "name": "stylePlugin", @@ -1429,7 +1429,7 @@ class Meta: name = "vsTrack" namespace = VSQ3_NS - vs_track_no: Optional[int] = field( + vs_track_no: int | None = field( default=None, metadata={ "name": "vsTrackNo", @@ -1439,7 +1439,7 @@ class Meta: "max_inclusive": 127, }, ) - track_name: Optional[str] = field( + track_name: str | None = field( default=None, metadata={ "name": "trackName", @@ -1447,7 +1447,7 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="Track", metadata={ "type": "Element", @@ -1477,14 +1477,14 @@ class Meta: name = "vsq3" namespace = VSQ3_NS - vender: Optional[str] = field( + vender: str | None = field( default="Yamaha Corporation", metadata={ "type": "Element", "required": True, }, ) - version: Optional[str] = field( + version: str | None = field( default="3.0.0.0", metadata={ "type": "Element", @@ -1523,7 +1523,7 @@ class Meta: "max_occurs": 16, }, ) - mono_track: Optional[MonoTrack] = field( + mono_track: MonoTrack | None = field( default_factory=MonoTrack, metadata={ "name": "seTrack", @@ -1531,7 +1531,7 @@ class Meta: "required": True, }, ) - stereo_track: Optional[StereoTrack] = field( + stereo_track: StereoTrack | None = field( default_factory=StereoTrack, metadata={ "name": "karaokeTrack", diff --git a/libresvip/plugins/vsqx/models/vsqx4.py b/libresvip/plugins/vsqx/models/vsqx4.py index 811fd049a..e3fc8e1d9 100644 --- a/libresvip/plugins/vsqx/models/vsqx4.py +++ b/libresvip/plugins/vsqx/models/vsqx4.py @@ -28,7 +28,7 @@ class Meta: name = "aux" namespace = VSQ4_NS - aux_id: Optional[str] = field( + aux_id: str | None = field( default=None, metadata={ "name": "id", @@ -36,7 +36,7 @@ class Meta: "required": True, }, ) - content: Optional[str] = field( + content: str | None = field( default=None, metadata={ "type": "Element", @@ -50,7 +50,7 @@ class Meta: name = "sPlug" namespace = VSQ4_NS - style_plugin_id: Optional[str] = field( + style_plugin_id: str | None = field( default="ACA9C502-A04B-42b5-B2EB-5CEA36D16FCE", metadata={ "name": "id", @@ -59,7 +59,7 @@ class Meta: "length": 36, }, ) - style_plugin_name: Optional[str] = field( + style_plugin_name: str | None = field( default="VOCALOID2 Compatible Style", metadata={ "name": "name", @@ -67,7 +67,7 @@ class Meta: "required": True, }, ) - version: Optional[str] = field( + version: str | None = field( default="3.0.0.1", metadata={ "type": "Element", @@ -89,7 +89,7 @@ class Meta: "min_occurs": 1, }, ) - seq_id: Optional[str] = field( + seq_id: str | None = field( default=None, metadata={ "name": "id", @@ -99,7 +99,7 @@ class Meta: ) class Elem(BaseModel): - pos_nrm: Optional[int] = field( + pos_nrm: int | None = field( default=None, metadata={ "name": "p", @@ -107,7 +107,7 @@ class Elem(BaseModel): "required": True, }, ) - elv: Optional[int] = field( + elv: int | None = field( default=None, metadata={ "name": "v", @@ -122,7 +122,7 @@ class Meta: name = "singer" namespace = VSQ4_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=0, metadata={ "name": "t", @@ -130,7 +130,7 @@ class Meta: "required": True, }, ) - v_bs: Optional[VocaloidLanguage] = field( + v_bs: VocaloidLanguage | None = field( default=VocaloidLanguage.SIMPLIFIED_CHINESE, metadata={ "name": "bs", @@ -140,7 +140,7 @@ class Meta: "max_inclusive": 127, }, ) - v_pc: Optional[int] = field( + v_pc: int | None = field( default=0, metadata={ "name": "pc", @@ -178,7 +178,7 @@ class Meta: name = "timeSig" namespace = VSQ4_NS - pos_mes: Optional[int] = field( + pos_mes: int | None = field( default=None, metadata={ "name": "m", @@ -186,7 +186,7 @@ class Meta: "required": True, }, ) - nume: Optional[int] = field( + nume: int | None = field( default=None, metadata={ "name": "nu", @@ -194,7 +194,7 @@ class Meta: "required": True, }, ) - denomi: Optional[int] = field( + denomi: int | None = field( default=None, metadata={ "name": "de", @@ -208,13 +208,13 @@ class TypeParamAttr(BaseModel): class Meta: name = "typeParamAttr" - value: Optional[int] = field( + value: int | None = field( default=None, metadata={ "required": True, }, ) - type_param_attr_id: Optional[str] = field( + type_param_attr_id: str | None = field( default=None, metadata={ "name": "id", @@ -234,7 +234,7 @@ class Meta: "required": True, }, ) - lock: Optional[int] = field( + lock: int | None = field( default=None, metadata={ "type": "Attribute", @@ -267,7 +267,7 @@ class Meta: name = "vPrm" namespace = VSQ4_NS - bre: Optional[int] = field( + bre: int | None = field( default=0, metadata={ "type": "Element", @@ -276,7 +276,7 @@ class Meta: "max_inclusive": 127, }, ) - bri: Optional[int] = field( + bri: int | None = field( default=0, metadata={ "type": "Element", @@ -285,7 +285,7 @@ class Meta: "max_inclusive": 127, }, ) - cle: Optional[int] = field( + cle: int | None = field( default=0, metadata={ "type": "Element", @@ -294,7 +294,7 @@ class Meta: "max_inclusive": 127, }, ) - gen: Optional[int] = field( + gen: int | None = field( default=0, metadata={ "type": "Element", @@ -303,7 +303,7 @@ class Meta: "max_inclusive": 127, }, ) - ope: Optional[int] = field( + ope: int | None = field( default=0, metadata={ "type": "Element", @@ -319,7 +319,7 @@ class Meta: name = "vPrm2" namespace = VSQ4_NS - bre: Optional[int] = field( + bre: int | None = field( default=None, metadata={ "type": "Element", @@ -328,7 +328,7 @@ class Meta: "max_inclusive": 127, }, ) - bri: Optional[int] = field( + bri: int | None = field( default=None, metadata={ "type": "Element", @@ -337,7 +337,7 @@ class Meta: "max_inclusive": 127, }, ) - cle: Optional[int] = field( + cle: int | None = field( default=None, metadata={ "type": "Element", @@ -346,7 +346,7 @@ class Meta: "max_inclusive": 127, }, ) - gen: Optional[int] = field( + gen: int | None = field( default=None, metadata={ "type": "Element", @@ -355,7 +355,7 @@ class Meta: "max_inclusive": 127, }, ) - ope: Optional[int] = field( + ope: int | None = field( default=None, metadata={ "type": "Element", @@ -364,7 +364,7 @@ class Meta: "max_inclusive": 127, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=None, metadata={ "type": "Element", @@ -402,7 +402,7 @@ class Meta: name = "masterTrack" namespace = VSQ4_NS - seq_name: Optional[str] = field( + seq_name: str | None = field( default="Untitled0", metadata={ "name": "seqName", @@ -410,14 +410,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="New VSQ File", metadata={ "type": "Element", "required": True, }, ) - resolution: Optional[int] = field( + resolution: int | None = field( default=480, metadata={ "type": "Element", @@ -492,7 +492,7 @@ class Meta: name = "plug" namespace = VSQ4_NS - vst_plugin_id: Optional[str] = field( + vst_plugin_id: str | None = field( default=None, metadata={ "name": "id", @@ -500,7 +500,7 @@ class Meta: "required": True, }, ) - vst_plugin_name: Optional[str] = field( + vst_plugin_name: str | None = field( default=None, metadata={ "name": "name", @@ -508,7 +508,7 @@ class Meta: "required": True, }, ) - vst_sdkversion: Optional[TypeVstSdkversion] = field( + vst_sdkversion: TypeVstSdkversion | None = field( default=None, metadata={ "name": "sdkVer", @@ -516,7 +516,7 @@ class Meta: "required": True, }, ) - vst_param_num: Optional[int] = field( + vst_param_num: int | None = field( default=None, metadata={ "name": "nPrm", @@ -531,14 +531,14 @@ class Meta: "type": "Element", }, ) - vst_preset_no: Optional[int] = field( + vst_preset_no: int | None = field( default=None, metadata={ "name": "presetNo", "type": "Element", }, ) - enable: Optional[int] = field( + enable: int | None = field( default=None, metadata={ "type": "Element", @@ -547,7 +547,7 @@ class Meta: "max_inclusive": 1, }, ) - bypass: Optional[int] = field( + bypass: int | None = field( default=None, metadata={ "type": "Element", @@ -572,7 +572,7 @@ class Meta: name = "plugSR" namespace = VSQ4_NS - vst_plugin_id: Optional[str] = field( + vst_plugin_id: str | None = field( default=None, metadata={ "name": "id", @@ -580,7 +580,7 @@ class Meta: "required": True, }, ) - vst_plugin_name: Optional[str] = field( + vst_plugin_name: str | None = field( default=None, metadata={ "name": "name", @@ -588,7 +588,7 @@ class Meta: "required": True, }, ) - vst_sdkversion: Optional[TypeVstSdkversion] = field( + vst_sdkversion: TypeVstSdkversion | None = field( default=None, metadata={ "name": "sdkVer", @@ -596,7 +596,7 @@ class Meta: "required": True, }, ) - vst_param_num: Optional[int] = field( + vst_param_num: int | None = field( default=None, metadata={ "name": "nPrm", @@ -611,14 +611,14 @@ class Meta: "type": "Element", }, ) - vst_preset_no: Optional[int] = field( + vst_preset_no: int | None = field( default=None, metadata={ "name": "presetNo", "type": "Element", }, ) - enable: Optional[int] = field( + enable: int | None = field( default=None, metadata={ "type": "Element", @@ -627,7 +627,7 @@ class Meta: "max_inclusive": 1, }, ) - bypass: Optional[int] = field( + bypass: int | None = field( default=None, metadata={ "type": "Element", @@ -652,7 +652,7 @@ class Meta: name = "vVoice" namespace = VSQ4_NS - v_bs: Optional[VocaloidLanguage] = field( + v_bs: VocaloidLanguage | None = field( default=VocaloidLanguage.SIMPLIFIED_CHINESE, metadata={ "name": "bs", @@ -662,7 +662,7 @@ class Meta: "max_inclusive": 127, }, ) - v_pc: Optional[int] = field( + v_pc: int | None = field( default=0, metadata={ "name": "pc", @@ -672,7 +672,7 @@ class Meta: "max_inclusive": 127, }, ) - comp_id: Optional[str] = field( + comp_id: str | None = field( default=None, metadata={ "name": "id", @@ -681,7 +681,7 @@ class Meta: "length": 16, }, ) - v_voice_name: Optional[str] = field( + v_voice_name: str | None = field( default=None, metadata={ "name": "name", @@ -689,7 +689,7 @@ class Meta: "required": True, }, ) - v_voice_param: Optional[VVoiceParam] = field( + v_voice_param: VVoiceParam | None = field( default_factory=VVoiceParam, metadata={ "name": "vPrm", @@ -697,14 +697,14 @@ class Meta: "required": True, }, ) - id2: Optional[str] = field( + id2: str | None = field( default=None, metadata={ "type": "Element", "length": 16, }, ) - v_prm2: Optional[VPrm2] = field( + v_prm2: VPrm2 | None = field( default=None, metadata={ "name": "vPrm2", @@ -718,7 +718,7 @@ class Meta: name = "wavPart" namespace = VSQ4_NS - pos_tick: Optional[int] = field( + pos_tick: int | None = field( default=None, metadata={ "name": "t", @@ -726,7 +726,7 @@ class Meta: "required": True, }, ) - play_time: Optional[int] = field( + play_time: int | None = field( default=None, metadata={ "name": "playTime", @@ -734,7 +734,7 @@ class Meta: "required": True, }, ) - part_name: Optional[str] = field( + part_name: str | None = field( default=None, metadata={ "name": "name", @@ -742,14 +742,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="New Wav Part", metadata={ "type": "Element", "required": True, }, ) - sample_rate: Optional[TypeSamplerate] = field( + sample_rate: TypeSamplerate | None = field( default=None, metadata={ "name": "fs", @@ -757,7 +757,7 @@ class Meta: "required": True, }, ) - sample_reso: Optional[TypeResolution] = field( + sample_reso: TypeResolution | None = field( default=None, metadata={ "name": "rs", @@ -765,7 +765,7 @@ class Meta: "required": True, }, ) - channels: Optional[int] = field( + channels: int | None = field( default=None, metadata={ "name": "nCh", @@ -775,7 +775,7 @@ class Meta: "max_inclusive": 2, }, ) - file_path: Optional[str] = field( + file_path: str | None = field( default=None, metadata={ "name": "filePath", @@ -790,7 +790,7 @@ class Meta: name = "masterUnit" namespace = VSQ4_NS - out_dev: Optional[int] = field( + out_dev: int | None = field( default=0, metadata={ "name": "oDev", @@ -806,14 +806,14 @@ class Meta: "max_occurs": 2, }, ) - vst_plugin_sr: Optional[VstPluginSr] = field( + vst_plugin_sr: VstPluginSr | None = field( default=None, metadata={ "name": "plugSR", "type": "Element", }, ) - ret_level: Optional[int] = field( + ret_level: int | None = field( default=0, metadata={ "name": "rLvl", @@ -821,7 +821,7 @@ class Meta: "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -849,7 +849,7 @@ class Meta: name = "monoUnit" namespace = VSQ4_NS - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "iGin", @@ -865,7 +865,7 @@ class Meta: "max_occurs": 2, }, ) - send_level: Optional[int] = field( + send_level: int | None = field( default=-898, metadata={ "name": "sLvl", @@ -873,7 +873,7 @@ class Meta: "required": True, }, ) - send_enable: Optional[int] = field( + send_enable: int | None = field( default=0, metadata={ "name": "sEnable", @@ -883,7 +883,7 @@ class Meta: "max_inclusive": 1, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "name": "m", @@ -893,7 +893,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "name": "s", @@ -903,14 +903,14 @@ class Meta: "max_inclusive": 1, }, ) - pan: Optional[int] = field( + pan: int | None = field( default=64, metadata={ "type": "Element", "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -938,7 +938,7 @@ class Meta: "required": True, }, ) - note_num: Optional[int] = field( + note_num: int | None = field( default=None, metadata={ "name": "n", @@ -948,7 +948,7 @@ class Meta: "max_inclusive": 127, }, ) - velocity: Optional[int] = field( + velocity: int | None = field( default=64, metadata={ "name": "v", @@ -965,7 +965,7 @@ class Meta: "required": True, }, ) - phnms: Optional[TypePhonemes] = field( + phnms: TypePhonemes | None = field( default=None, metadata={ "name": "p", @@ -1001,7 +1001,7 @@ class Meta: name = "stUnit" namespace = VSQ4_NS - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "iGin", @@ -1017,7 +1017,7 @@ class Meta: "max_occurs": 2, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "name": "m", @@ -1027,7 +1027,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "name": "s", @@ -1037,7 +1037,7 @@ class Meta: "max_inclusive": 1, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -1066,7 +1066,7 @@ class Meta: name = "vsUnit" namespace = VSQ4_NS - vs_track_no: Optional[int] = field( + vs_track_no: int | None = field( default=None, metadata={ "name": "tNo", @@ -1076,7 +1076,7 @@ class Meta: "max_inclusive": 127, }, ) - in_gain: Optional[int] = field( + in_gain: int | None = field( default=0, metadata={ "name": "iGin", @@ -1092,7 +1092,7 @@ class Meta: "max_occurs": 2, }, ) - send_level: Optional[int] = field( + send_level: int | None = field( default=-898, metadata={ "name": "sLvl", @@ -1100,7 +1100,7 @@ class Meta: "required": True, }, ) - send_enable: Optional[int] = field( + send_enable: int | None = field( default=0, metadata={ "name": "sEnable", @@ -1110,7 +1110,7 @@ class Meta: "max_inclusive": 1, }, ) - mute: Optional[int] = field( + mute: int | None = field( default=0, metadata={ "name": "m", @@ -1120,7 +1120,7 @@ class Meta: "max_inclusive": 1, }, ) - solo: Optional[int] = field( + solo: int | None = field( default=0, metadata={ "name": "s", @@ -1130,14 +1130,14 @@ class Meta: "max_inclusive": 1, }, ) - pan: Optional[int] = field( + pan: int | None = field( default=64, metadata={ "type": "Element", "required": True, }, ) - vol: Optional[int] = field( + vol: int | None = field( default=0, metadata={ "type": "Element", @@ -1151,7 +1151,7 @@ class Meta: name = "mixer" namespace = VSQ4_NS - master_unit: Optional[MasterUnit] = field( + master_unit: MasterUnit | None = field( default_factory=MasterUnit, metadata={ "name": "masterUnit", @@ -1205,7 +1205,7 @@ class Meta: "required": True, }, ) - part_name: Optional[str] = field( + part_name: str | None = field( default="New Part", metadata={ "name": "name", @@ -1213,14 +1213,14 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="New Musical Part", metadata={ "type": "Element", "required": True, }, ) - style_plugin: Optional[StylePlugin] = field( + style_plugin: StylePlugin | None = field( default_factory=StylePlugin, metadata={ "name": "sPlug", @@ -1255,7 +1255,7 @@ class Meta: "type": "Element", }, ) - plane: Optional[int] = field( + plane: int | None = field( default=None, metadata={ "type": "Element", @@ -1270,7 +1270,7 @@ class Meta: name = "vsTrack" namespace = VSQ4_NS - vs_track_no: Optional[int] = field( + vs_track_no: int | None = field( default=None, metadata={ "name": "tNo", @@ -1280,7 +1280,7 @@ class Meta: "max_inclusive": 127, }, ) - track_name: Optional[str] = field( + track_name: str | None = field( default=None, metadata={ "name": "name", @@ -1288,7 +1288,7 @@ class Meta: "required": True, }, ) - comment: Optional[str] = field( + comment: str | None = field( default="Track", metadata={ "type": "Element", @@ -1309,14 +1309,14 @@ class Meta: name = "vsq4" namespace = VSQ4_NS - vender: Optional[str] = field( + vender: str | None = field( default="Yamaha Corporation", metadata={ "type": "Element", "required": True, }, ) - version: Optional[str] = field( + version: str | None = field( default="4.0.0.3", metadata={ "type": "Element", @@ -1355,7 +1355,7 @@ class Meta: "max_occurs": 16, }, ) - mono_track: Optional[MonoTrack] = field( + mono_track: MonoTrack | None = field( default_factory=MonoTrack, metadata={ "name": "monoTrack", @@ -1363,7 +1363,7 @@ class Meta: "required": True, }, ) - stereo_track: Optional[StereoTrack] = field( + stereo_track: StereoTrack | None = field( default_factory=StereoTrack, metadata={ "name": "stTrack", diff --git a/libresvip/plugins/vsqx/vocaloid_pitch.py b/libresvip/plugins/vsqx/vocaloid_pitch.py index 5f232113f..76092784e 100644 --- a/libresvip/plugins/vsqx/vocaloid_pitch.py +++ b/libresvip/plugins/vsqx/vocaloid_pitch.py @@ -1,6 +1,5 @@ import math from dataclasses import dataclass -from typing import Optional from libresvip.core.constants import ( DEFAULT_PITCH_BEND_SENSITIVITY, @@ -40,7 +39,7 @@ def pitch_from_vocaloid_parts( first_bar_length: int, lower_bound: int, upper_bound: int, -) -> Optional[ParamCurve]: +) -> ParamCurve | None: pitch_raw_data_by_part = [] for part in data_by_parts: pit = part.pit @@ -128,7 +127,7 @@ def generate_for_vocaloid( notes: list[Note], first_bar_length: int, synchronizer: TimeSynchronizer, -) -> Optional[VocaloidPartPitchData]: +) -> VocaloidPartPitchData | None: pitch_simulator = PitchSimulator( synchronizer=synchronizer, portamento=PortamentoPitch.vocaloid_portamento(), diff --git a/libresvip/plugins/vsqx/vsq3_generator.py b/libresvip/plugins/vsqx/vsq3_generator.py index 33182d1b0..39631c56b 100644 --- a/libresvip/plugins/vsqx/vsq3_generator.py +++ b/libresvip/plugins/vsqx/vsq3_generator.py @@ -1,6 +1,6 @@ import dataclasses import operator -from typing import Union, cast +from typing import cast from libresvip.core.lyric_phoneme.chinese import get_pinyin_series from libresvip.core.lyric_phoneme.chinese.vocaloid_xsampa import pinyin2xsampa @@ -59,7 +59,7 @@ class Vsq3Generator: options: OutputOptions first_bar_length: int = dataclasses.field(init=False) - style_params: dict[str, Union[int, list[int]]] = dataclasses.field(init=False) + style_params: dict[str, int | list[int]] = dataclasses.field(init=False) time_synchronizer: TimeSynchronizer = dataclasses.field(init=False) def generate_project(self, project: Project) -> Vsq3: diff --git a/libresvip/plugins/vsqx/vsq4_generator.py b/libresvip/plugins/vsqx/vsq4_generator.py index e65590e57..d9541edc6 100644 --- a/libresvip/plugins/vsqx/vsq4_generator.py +++ b/libresvip/plugins/vsqx/vsq4_generator.py @@ -1,6 +1,6 @@ import dataclasses import operator -from typing import Union, cast +from typing import cast from libresvip.core.lyric_phoneme.chinese import get_pinyin_series from libresvip.core.lyric_phoneme.chinese.vocaloid_xsampa import pinyin2xsampa @@ -59,7 +59,7 @@ class Vsq4Generator: options: OutputOptions first_bar_length: int = dataclasses.field(init=False) - style_params: dict[str, Union[int, list[int]]] = dataclasses.field(init=False) + style_params: dict[str, int | list[int]] = dataclasses.field(init=False) time_synchronizer: TimeSynchronizer = dataclasses.field(init=False) def generate_project(self, project: Project) -> Vsq4: diff --git a/libresvip/plugins/vsqx/vsqx_converter.py b/libresvip/plugins/vsqx/vsqx_converter.py index 657848426..0e47d5fa0 100644 --- a/libresvip/plugins/vsqx/vsqx_converter.py +++ b/libresvip/plugins/vsqx/vsqx_converter.py @@ -1,5 +1,5 @@ import pathlib -from typing import TYPE_CHECKING, Any, Union +from typing import TYPE_CHECKING, Any from xsdata.formats.dataclass.serializers.config import SerializerConfig from xsdata_pydantic.bindings import XmlParser, XmlSerializer @@ -69,7 +69,7 @@ def load(self, path: pathlib.Path, options: InputOptions) -> Project: return VsqxParser(options, path).parse_project(vsqx_proj) def dump(self, path: pathlib.Path, project: Project, options: OutputOptions) -> None: - vsqx_generator_class: type[Union[Vsq3Generator, Vsq4Generator]] + vsqx_generator_class: type[Vsq3Generator | Vsq4Generator] if options.vsqx_version == VsqxVersion.VSQ3: vsqx_generator_class = Vsq3Generator vsqx_namespace = VSQ3_NS diff --git a/libresvip/plugins/vsqx/vsqx_parser.py b/libresvip/plugins/vsqx/vsqx_parser.py index 7152de4b2..21594b208 100644 --- a/libresvip/plugins/vsqx/vsqx_parser.py +++ b/libresvip/plugins/vsqx/vsqx_parser.py @@ -2,7 +2,6 @@ import functools import math import pathlib -from typing import Optional import more_itertools import portion @@ -273,7 +272,7 @@ def parse_pitch( vibrato_rate_interval_dict: PiecewiseIntervalDict, vibrato_depth_interval_dict: PiecewiseIntervalDict, tick_offset: int, - ) -> Optional[ParamCurve]: + ) -> ParamCurve | None: pitch_data = VocaloidPartPitchData( start_pos=musical_part.pos_tick - tick_offset, pit=[ diff --git a/libresvip/plugins/vvproj/model.py b/libresvip/plugins/vvproj/model.py index 818fcbc7a..28a064ca8 100644 --- a/libresvip/plugins/vvproj/model.py +++ b/libresvip/plugins/vvproj/model.py @@ -1,7 +1,5 @@ from __future__ import annotations -from typing import Optional - from pydantic import Field from libresvip.core.constants import TICKS_IN_BEAT @@ -24,14 +22,14 @@ class VoiceVoxMora(BaseModel): vowel: str vowel_length: float = Field(alias="vowelLength") pitch: float - consonant: Optional[str] = None - consonant_length: Optional[float] = Field(None, alias="consonantLength") + consonant: str | None = None + consonant_length: float | None = Field(None, alias="consonantLength") class VoiceVoxAccentPhrase(BaseModel): moras: list[VoiceVoxMora] accent: int - mora: Optional[VoiceVoxMora] = None + mora: VoiceVoxMora | None = None is_interrogative: bool = Field(alias="isInterrogative") @@ -43,11 +41,11 @@ class VoiceVoxQuery(BaseModel): volume_scale: float = Field(alias="volumeScale") pre_phoneme_length: float = Field(alias="prePhonemeLength") post_phoneme_length: float = Field(alias="postPhonemeLength") - pause_length: Optional[float] = Field(None, alias="pauseLength") + pause_length: float | None = Field(None, alias="pauseLength") pause_length_scale: float = Field(1, alias="pauseLengthScale") output_sampling_rate: int = Field(alias="outputSamplingRate") output_stereo: bool = Field(alias="outputStereo") - kana: Optional[str] = None + kana: str | None = None class VoiceVoxAudioItem(BaseModel): diff --git a/libresvip/plugins/vxf/vx_beta_generator.py b/libresvip/plugins/vxf/vx_beta_generator.py index f76214d0b..b7ec83625 100644 --- a/libresvip/plugins/vxf/vx_beta_generator.py +++ b/libresvip/plugins/vxf/vx_beta_generator.py @@ -1,6 +1,6 @@ import dataclasses import operator -from typing import Any, Optional +from typing import Any import more_itertools @@ -90,7 +90,7 @@ def generate_tracks(self, tracks: list[Track]) -> list[Container]: and (mido_track := self.generate_track(track)) is not None ] - def generate_track(self, track: SingingTrack) -> Optional[Container]: + def generate_track(self, track: SingingTrack) -> Container | None: events: list[Container] = [] encoded_title = track.title.encode().decode("latin-1") title_parts = [] diff --git a/libresvip/plugins/y77/model.py b/libresvip/plugins/y77/model.py index 605ce18f2..ac297404d 100644 --- a/libresvip/plugins/y77/model.py +++ b/libresvip/plugins/y77/model.py @@ -1,5 +1,3 @@ -from typing import Union - from pydantic import Field from libresvip.core.constants import DEFAULT_BPM @@ -13,7 +11,7 @@ class Y77Note(BaseModel): lyric: str pitch: int pbs: int = 0 - pit: list[Union[int, float]] = Field(default_factory=list) + pit: list[int | float] = Field(default_factory=list) class Y77Project(BaseModel): diff --git a/libresvip/plugins/y77/y77_generator.py b/libresvip/plugins/y77/y77_generator.py index f516c6f70..5b6efad34 100644 --- a/libresvip/plugins/y77/y77_generator.py +++ b/libresvip/plugins/y77/y77_generator.py @@ -1,5 +1,4 @@ import dataclasses -from typing import Union import pypinyin @@ -67,7 +66,7 @@ def generate_pitch(self, pitch_param_curve: ParamCurve, note: Note) -> list[floa pitch_param_time_in_note = dict(pitch_param_in_note) - y77_pitch_param: list[Union[int, float]] = [] + y77_pitch_param: list[int | float] = [] for sample_time in sample_time_list: if (pitch := pitch_param_time_in_note.get(sample_time)) is None: distance = -1 diff --git a/libresvip/tui/app.py b/libresvip/tui/app.py index ceca4ff27..ecc30f4af 100644 --- a/libresvip/tui/app.py +++ b/libresvip/tui/app.py @@ -4,7 +4,7 @@ import traceback from collections.abc import Coroutine from dataclasses import dataclass -from typing import Any, Optional, Union, cast, get_args, get_type_hints +from typing import Any, cast, get_args, get_type_hints import more_itertools from pydantic import BaseModel @@ -134,11 +134,11 @@ def compose(self) -> ComposeResult: class SelectFormats(Vertical): @dataclass class InputFormatChanged(Message): - value: Optional[str] + value: str | None @dataclass class OutputFormatChanged(Message): - value: Optional[str] + value: str | None @on(Button.Pressed, "#swap_input_output") def on_swap_input_output(self, pressed: Button.Pressed) -> None: @@ -233,7 +233,7 @@ def validate(self, value: str) -> ValidationResult: class OptionsForm(ListView): - def __init__(self, option_class: Optional[type[BaseModel]], *args: Any, **kwargs: Any) -> None: + def __init__(self, option_class: type[BaseModel] | None, *args: Any, **kwargs: Any) -> None: self.option_class = option_class self.option_dict = {} if option_class is None else option_class().model_dump(mode="json") super().__init__(*args, **kwargs) @@ -241,9 +241,7 @@ def __init__(self, option_class: Optional[type[BaseModel]], *args: Any, **kwargs @on(Input.Changed) @on(Switch.Changed) @on(Select.Changed) - def handle_value_changed( - self, event: Union[Input.Changed, Switch.Changed, Select.Changed] - ) -> None: + def handle_value_changed(self, event: Input.Changed | Switch.Changed | Select.Changed) -> None: option_key = event.control.id.removeprefix("value_") self.option_dict[option_key] = event.value @@ -311,7 +309,7 @@ def compose(self) -> ComposeResult: id=f"value_{option_key}", validators=[ColorValidator()], ) - elif issubclass(field_info.annotation, (int, float, str, BaseComplexModel)): + elif issubclass(field_info.annotation, int | float | str | BaseComplexModel): if issubclass(field_info.annotation, BaseComplexModel): default_value = field_info.annotation.default_repr() elif not isinstance(default_value, str): diff --git a/libresvip/utils/audio.py b/libresvip/utils/audio.py index 756be8297..c6aeb4b66 100644 --- a/libresvip/utils/audio.py +++ b/libresvip/utils/audio.py @@ -1,7 +1,6 @@ import contextlib import pathlib import platform -from typing import Optional, Union from pydantic import ValidationInfo @@ -12,7 +11,7 @@ def audio_path_validator(path: str, info: ValidationInfo) -> str: audio_path = pathlib.Path(path) if not audio_path.is_absolute() and info.context is not None: - project_path: Optional[pathlib.Path] + project_path: pathlib.Path | None if (project_path := info.context.get("path")) and not hasattr(project_path, "protocol"): audio_path = (project_path.parent / path).resolve() path = str(audio_path) @@ -24,8 +23,8 @@ def audio_path_validator(path: str, info: ValidationInfo) -> str: from pymediainfo import Track as MediaInfoTrack def audio_track_info( - file_path: Union[str, pathlib.Path], only_wav: bool = False - ) -> Optional[MediaInfoTrack]: + file_path: str | pathlib.Path, only_wav: bool = False + ) -> MediaInfoTrack | None: def filter_func(track: MediaInfoTrack) -> bool: return track.format == "PCM" if only_wav else (track.duration is not None) @@ -64,8 +63,8 @@ def filter_func(track: MediaInfoTrack) -> bool: js.importScripts(f"{MEDIAINFO_JS_DIST_PATH}/umd/index.min.js") def audio_track_info( - file_path: Union[str, pathlib.Path], only_wav: bool = False - ) -> Optional[MediaInfoTrack]: + file_path: str | pathlib.Path, only_wav: bool = False + ) -> MediaInfoTrack | None: if isinstance(file_path, str): file_path = pathlib.Path(file_path) @@ -106,6 +105,6 @@ async def parse_media_info() -> str: except ImportError: def audio_track_info( - file_path: Union[str, pathlib.Path], only_wav: bool = False - ) -> Optional[MediaInfoTrack]: # not implemented yet + file_path: str | pathlib.Path, only_wav: bool = False + ) -> MediaInfoTrack | None: # not implemented yet return None diff --git a/libresvip/utils/mediainfo_wasm.py b/libresvip/utils/mediainfo_wasm.py index dfe841455..9d4afdca3 100644 --- a/libresvip/utils/mediainfo_wasm.py +++ b/libresvip/utils/mediainfo_wasm.py @@ -1,6 +1,5 @@ import itertools from functools import cached_property -from typing import Optional from pydantic import BaseModel from xsdata_pydantic.fields import field @@ -24,25 +23,25 @@ class Meta: "required": True, } ) - url: Optional[str] = field( + url: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - build_date: Optional[str] = field( + build_date: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - build_time: Optional[str] = field( + build_time: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - compiler_ident: Optional[str] = field( + compiler_ident: str | None = field( default=None, metadata={ "type": "Attribute", @@ -54,7 +53,7 @@ class Track(BaseModel): class Meta: name = "track" - accompaniment: Optional[str] = field( + accompaniment: str | None = field( default=None, metadata={ "name": "Accompaniment", @@ -62,7 +61,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_format_description: Optional[str] = field( + active_format_description: str | None = field( default=None, metadata={ "name": "ActiveFormatDescription", @@ -70,7 +69,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - actor: Optional[str] = field( + actor: str | None = field( default=None, metadata={ "name": "Actor", @@ -78,7 +77,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - actor_character: Optional[str] = field( + actor_character: str | None = field( default=None, metadata={ "name": "Actor_Character", @@ -86,7 +85,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - added_date: Optional[str] = field( + added_date: str | None = field( default=None, metadata={ "name": "Added_Date", @@ -94,7 +93,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album: Optional[str] = field( + album: str | None = field( default=None, metadata={ "name": "Album", @@ -102,7 +101,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_more: Optional[str] = field( + album_more: str | None = field( default=None, metadata={ "name": "Album_More", @@ -110,7 +109,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_performer: Optional[str] = field( + album_performer: str | None = field( default=None, metadata={ "name": "Album_Performer", @@ -118,7 +117,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_performer_sort: Optional[str] = field( + album_performer_sort: str | None = field( default=None, metadata={ "name": "Album_Performer_Sort", @@ -126,7 +125,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_replay_gain_gain: Optional[str] = field( + album_replay_gain_gain: str | None = field( default=None, metadata={ "name": "Album_ReplayGain_Gain", @@ -134,7 +133,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_replay_gain_peak: Optional[str] = field( + album_replay_gain_peak: str | None = field( default=None, metadata={ "name": "Album_ReplayGain_Peak", @@ -142,7 +141,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_display_aspect_ratio: Optional[float] = field( + active_display_aspect_ratio: float | None = field( default=None, metadata={ "name": "Active_DisplayAspectRatio", @@ -150,7 +149,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_height: Optional[int] = field( + active_height: int | None = field( default=None, metadata={ "name": "Active_Height", @@ -158,7 +157,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_width: Optional[int] = field( + active_width: int | None = field( default=None, metadata={ "name": "Active_Width", @@ -166,7 +165,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_format_description_muxing_mode: Optional[str] = field( + active_format_description_muxing_mode: str | None = field( default=None, metadata={ "name": "ActiveFormatDescription_MuxingMode", @@ -174,7 +173,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - active_format_description_string: Optional[str] = field( + active_format_description_string: str | None = field( default=None, metadata={ "name": "ActiveFormatDescription_String", @@ -182,7 +181,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_performer_url: Optional[str] = field( + album_performer_url: str | None = field( default=None, metadata={ "name": "Album_Performer_Url", @@ -190,7 +189,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_replay_gain_gain_string: Optional[str] = field( + album_replay_gain_gain_string: str | None = field( default=None, metadata={ "name": "Album_ReplayGain_Gain_String", @@ -198,7 +197,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - album_sort: Optional[str] = field( + album_sort: str | None = field( default=None, metadata={ "name": "Album_Sort", @@ -206,7 +205,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - alignment: Optional[str] = field( + alignment: str | None = field( default=None, metadata={ "name": "Alignment", @@ -214,7 +213,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - alignment_string: Optional[str] = field( + alignment_string: str | None = field( default=None, metadata={ "name": "Alignment_String", @@ -222,7 +221,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - alternate_group: Optional[str] = field( + alternate_group: str | None = field( default=None, metadata={ "name": "AlternateGroup", @@ -230,7 +229,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - alternate_group_string: Optional[str] = field( + alternate_group_string: str | None = field( default=None, metadata={ "name": "AlternateGroup_String", @@ -238,7 +237,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - archival_location: Optional[str] = field( + archival_location: str | None = field( default=None, metadata={ "name": "Archival_Location", @@ -246,7 +245,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - arranger: Optional[str] = field( + arranger: str | None = field( default=None, metadata={ "name": "Arranger", @@ -254,7 +253,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - art_director: Optional[str] = field( + art_director: str | None = field( default=None, metadata={ "name": "ArtDirector", @@ -262,7 +261,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - assistant_director: Optional[str] = field( + assistant_director: str | None = field( default=None, metadata={ "name": "AssistantDirector", @@ -270,7 +269,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_codec_list: Optional[str] = field( + audio_codec_list: str | None = field( default=None, metadata={ "name": "Audio_Codec_List", @@ -278,7 +277,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_count: Optional[int] = field( + audio_count: int | None = field( default=None, metadata={ "name": "AudioCount", @@ -286,7 +285,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_channels_total: Optional[int] = field( + audio_channels_total: int | None = field( default=None, metadata={ "name": "Audio_Channels_Total", @@ -294,7 +293,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_format_list: Optional[str] = field( + audio_format_list: str | None = field( default=None, metadata={ "name": "Audio_Format_List", @@ -302,7 +301,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_format_with_hint_list: Optional[str] = field( + audio_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Audio_Format_WithHint_List", @@ -310,7 +309,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - audio_language_list: Optional[str] = field( + audio_language_list: str | None = field( default=None, metadata={ "name": "Audio_Language_List", @@ -318,7 +317,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bar_code: Optional[str] = field( + bar_code: str | None = field( default=None, metadata={ "name": "BarCode", @@ -326,7 +325,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth_detected: Optional[int] = field( + bit_depth_detected: int | None = field( default=None, metadata={ "name": "BitDepth_Detected", @@ -334,7 +333,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth_detected_string: Optional[str] = field( + bit_depth_detected_string: str | None = field( default=None, metadata={ "name": "BitDepth_Detected_String", @@ -342,7 +341,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth: Optional[int] = field( + bit_depth: int | None = field( default=None, metadata={ "name": "BitDepth", @@ -350,7 +349,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth_stored: Optional[int] = field( + bit_depth_stored: int | None = field( default=None, metadata={ "name": "BitDepth_Stored", @@ -358,7 +357,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth_stored_string: Optional[str] = field( + bit_depth_stored_string: str | None = field( default=None, metadata={ "name": "BitDepth_Stored_String", @@ -366,7 +365,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_depth_string: Optional[str] = field( + bit_depth_string: str | None = field( default=None, metadata={ "name": "BitDepth_String", @@ -374,7 +373,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_encoded: Optional[float] = field( + bit_rate_encoded: float | None = field( default=None, metadata={ "name": "BitRate_Encoded", @@ -382,7 +381,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_encoded_string: Optional[str] = field( + bit_rate_encoded_string: str | None = field( default=None, metadata={ "name": "BitRate_Encoded_String", @@ -390,7 +389,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_maximum: Optional[float] = field( + bit_rate_maximum: float | None = field( default=None, metadata={ "name": "BitRate_Maximum", @@ -398,7 +397,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_maximum_string: Optional[str] = field( + bit_rate_maximum_string: str | None = field( default=None, metadata={ "name": "BitRate_Maximum_String", @@ -406,7 +405,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_minimum: Optional[float] = field( + bit_rate_minimum: float | None = field( default=None, metadata={ "name": "BitRate_Minimum", @@ -414,7 +413,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_minimum_string: Optional[str] = field( + bit_rate_minimum_string: str | None = field( default=None, metadata={ "name": "BitRate_Minimum_String", @@ -422,7 +421,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate: Optional[float] = field( + bit_rate: float | None = field( default=None, metadata={ "name": "BitRate", @@ -430,7 +429,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_mode: Optional[str] = field( + bit_rate_mode: str | None = field( default=None, metadata={ "name": "BitRate_Mode", @@ -438,7 +437,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_mode_string: Optional[str] = field( + bit_rate_mode_string: str | None = field( default=None, metadata={ "name": "BitRate_Mode_String", @@ -446,7 +445,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_nominal: Optional[float] = field( + bit_rate_nominal: float | None = field( default=None, metadata={ "name": "BitRate_Nominal", @@ -454,7 +453,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_nominal_string: Optional[str] = field( + bit_rate_nominal_string: str | None = field( default=None, metadata={ "name": "BitRate_Nominal_String", @@ -462,7 +461,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bit_rate_string: Optional[str] = field( + bit_rate_string: str | None = field( default=None, metadata={ "name": "BitRate_String", @@ -470,7 +469,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bits_pixel_frame: Optional[float] = field( + bits_pixel_frame: float | None = field( default=None, metadata={ "name": "Bits-Pixel_Frame", @@ -478,7 +477,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mediaarea_net_mediainfo_bits_pixel_frame: Optional[float] = field( + mediaarea_net_mediainfo_bits_pixel_frame: float | None = field( default=None, metadata={ "name": "BitsPixel_Frame", @@ -486,7 +485,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - bpm: Optional[str] = field( + bpm: str | None = field( default=None, metadata={ "name": "BPM", @@ -494,7 +493,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - buffer_size: Optional[str] = field( + buffer_size: str | None = field( default=None, metadata={ "name": "BufferSize", @@ -502,7 +501,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - catalog_number: Optional[str] = field( + catalog_number: str | None = field( default=None, metadata={ "name": "CatalogNumber", @@ -510,7 +509,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_layout_id: Optional[str] = field( + channel_layout_id: str | None = field( default=None, metadata={ "name": "ChannelLayoutID", @@ -518,7 +517,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_layout: Optional[str] = field( + channel_layout: str | None = field( default=None, metadata={ "name": "ChannelLayout", @@ -526,7 +525,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_layout_original: Optional[str] = field( + channel_layout_original: str | None = field( default=None, metadata={ "name": "ChannelLayout_Original", @@ -534,7 +533,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_positions: Optional[str] = field( + channel_positions: str | None = field( default=None, metadata={ "name": "ChannelPositions", @@ -542,7 +541,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_positions_original: Optional[str] = field( + channel_positions_original: str | None = field( default=None, metadata={ "name": "ChannelPositions_Original", @@ -550,7 +549,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_positions_original_string2: Optional[str] = field( + channel_positions_original_string2: str | None = field( default=None, metadata={ "name": "ChannelPositions_Original_String2", @@ -558,7 +557,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_positions_string2: Optional[str] = field( + channel_positions_string2: str | None = field( default=None, metadata={ "name": "ChannelPositions_String2", @@ -566,7 +565,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channel_s: Optional[int] = field( + channel_s: int | None = field( default=None, metadata={ "name": "Channels", @@ -574,7 +573,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channels_original: Optional[int] = field( + channels_original: int | None = field( default=None, metadata={ "name": "Channels_Original", @@ -582,7 +581,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channels_original_string: Optional[str] = field( + channels_original_string: str | None = field( default=None, metadata={ "name": "Channels_Original_String", @@ -590,7 +589,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - channels_string: Optional[str] = field( + channels_string: str | None = field( default=None, metadata={ "name": "Channels_String", @@ -598,7 +597,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chapter: Optional[str] = field( + chapter: str | None = field( default=None, metadata={ "name": "Chapter", @@ -606,7 +605,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chapters_pos_begin: Optional[int] = field( + chapters_pos_begin: int | None = field( default=None, metadata={ "name": "Chapters_Pos_Begin", @@ -614,7 +613,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chapters_pos_end: Optional[int] = field( + chapters_pos_end: int | None = field( default=None, metadata={ "name": "Chapters_Pos_End", @@ -622,7 +621,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - choregrapher: Optional[str] = field( + choregrapher: str | None = field( default=None, metadata={ "name": "Choregrapher", @@ -630,7 +629,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chroma_subsampling: Optional[str] = field( + chroma_subsampling: str | None = field( default=None, metadata={ "name": "ChromaSubsampling", @@ -638,7 +637,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chroma_subsampling_position: Optional[str] = field( + chroma_subsampling_position: str | None = field( default=None, metadata={ "name": "ChromaSubsampling_Position", @@ -646,7 +645,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - chroma_subsampling_string: Optional[str] = field( + chroma_subsampling_string: str | None = field( default=None, metadata={ "name": "ChromaSubsampling_String", @@ -654,7 +653,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_cc: Optional[str] = field( + codec_cc: str | None = field( default=None, metadata={ "name": "Codec_CC", @@ -662,7 +661,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_description: Optional[str] = field( + codec_description: str | None = field( default=None, metadata={ "name": "Codec_Description", @@ -670,7 +669,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_extensions: Optional[str] = field( + codec_extensions: str | None = field( default=None, metadata={ "name": "Codec_Extensions", @@ -678,7 +677,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_family: Optional[str] = field( + codec_family: str | None = field( default=None, metadata={ "name": "Codec_Family", @@ -686,7 +685,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_compatible: Optional[str] = field( + codec_id_compatible: str | None = field( default=None, metadata={ "name": "CodecID_Compatible", @@ -694,7 +693,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_description: Optional[str] = field( + codec_id_description: str | None = field( default=None, metadata={ "name": "CodecID_Description", @@ -702,7 +701,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_hint: Optional[str] = field( + codec_id_hint: str | None = field( default=None, metadata={ "name": "CodecID_Hint", @@ -710,7 +709,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_info: Optional[str] = field( + codec_id_info: str | None = field( default=None, metadata={ "name": "CodecID_Info", @@ -718,7 +717,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id: Optional[str] = field( + codec_id: str | None = field( default=None, metadata={ "name": "CodecID", @@ -726,7 +725,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_string: Optional[str] = field( + codec_id_string: str | None = field( default=None, metadata={ "name": "CodecID_String", @@ -734,7 +733,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_url: Optional[str] = field( + codec_id_url: str | None = field( default=None, metadata={ "name": "CodecID_Url", @@ -742,7 +741,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_id_version: Optional[str] = field( + codec_id_version: str | None = field( default=None, metadata={ "name": "CodecID_Version", @@ -750,7 +749,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_info: Optional[str] = field( + codec_info: str | None = field( default=None, metadata={ "name": "Codec_Info", @@ -758,7 +757,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec: Optional[str] = field( + codec: str | None = field( default=None, metadata={ "name": "Codec", @@ -766,7 +765,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_profile: Optional[str] = field( + codec_profile: str | None = field( default=None, metadata={ "name": "Codec_Profile", @@ -774,7 +773,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_automatic: Optional[str] = field( + codec_settings_automatic: str | None = field( default=None, metadata={ "name": "Codec_Settings_Automatic", @@ -782,7 +781,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_bvop: Optional[str] = field( + codec_settings_bvop: str | None = field( default=None, metadata={ "name": "Codec_Settings_BVOP", @@ -790,7 +789,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_cabac: Optional[str] = field( + codec_settings_cabac: str | None = field( default=None, metadata={ "name": "Codec_Settings_CABAC", @@ -798,7 +797,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_endianness: Optional[str] = field( + codec_settings_endianness: str | None = field( default=None, metadata={ "name": "Codec_Settings_Endianness", @@ -806,7 +805,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_firm: Optional[str] = field( + codec_settings_firm: str | None = field( default=None, metadata={ "name": "Codec_Settings_Firm", @@ -814,7 +813,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_floor: Optional[str] = field( + codec_settings_floor: str | None = field( default=None, metadata={ "name": "Codec_Settings_Floor", @@ -822,7 +821,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_gmc: Optional[str] = field( + codec_settings_gmc: str | None = field( default=None, metadata={ "name": "Codec_Settings_GMC", @@ -830,7 +829,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_gmc_string: Optional[str] = field( + codec_settings_gmc_string: str | None = field( default=None, metadata={ "name": "Codec_Settings_GMC_String", @@ -838,7 +837,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_itu: Optional[str] = field( + codec_settings_itu: str | None = field( default=None, metadata={ "name": "Codec_Settings_ITU", @@ -846,7 +845,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_law: Optional[str] = field( + codec_settings_law: str | None = field( default=None, metadata={ "name": "Codec_Settings_Law", @@ -854,7 +853,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_matrix_data: Optional[str] = field( + codec_settings_matrix_data: str | None = field( default=None, metadata={ "name": "Codec_Settings_Matrix_Data", @@ -862,7 +861,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_matrix: Optional[str] = field( + codec_settings_matrix: str | None = field( default=None, metadata={ "name": "Codec_Settings_Matrix", @@ -870,7 +869,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings: Optional[str] = field( + codec_settings: str | None = field( default=None, metadata={ "name": "Codec_Settings", @@ -878,7 +877,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_packet_bit_stream: Optional[str] = field( + codec_settings_packet_bit_stream: str | None = field( default=None, metadata={ "name": "Codec_Settings_PacketBitStream", @@ -886,7 +885,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_qpel: Optional[str] = field( + codec_settings_qpel: str | None = field( default=None, metadata={ "name": "Codec_Settings_QPel", @@ -894,7 +893,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_ref_frames: Optional[str] = field( + codec_settings_ref_frames: str | None = field( default=None, metadata={ "name": "Codec_Settings_RefFrames", @@ -902,7 +901,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_settings_sign: Optional[str] = field( + codec_settings_sign: str | None = field( default=None, metadata={ "name": "Codec_Settings_Sign", @@ -910,7 +909,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_string: Optional[str] = field( + codec_string: str | None = field( default=None, metadata={ "name": "Codec_String", @@ -918,7 +917,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - codec_url: Optional[str] = field( + codec_url: str | None = field( default=None, metadata={ "name": "Codec_Url", @@ -926,7 +925,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - co_director: Optional[str] = field( + co_director: str | None = field( default=None, metadata={ "name": "CoDirector", @@ -934,7 +933,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - collection: Optional[str] = field( + collection: str | None = field( default=None, metadata={ "name": "Collection", @@ -942,7 +941,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colorimetry: Optional[str] = field( + colorimetry: str | None = field( default=None, metadata={ "name": "Colorimetry", @@ -950,7 +949,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - color_space: Optional[str] = field( + color_space: str | None = field( default=None, metadata={ "name": "ColorSpace", @@ -958,14 +957,14 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_description_present: Optional[str] = field( + colour_description_present: str | None = field( default=None, metadata={ "type": "Element", "namespace": __NAMESPACE__, }, ) - colour_description_present_original: Optional[str] = field( + colour_description_present_original: str | None = field( default=None, metadata={ "name": "colour_description_present_Original", @@ -973,7 +972,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_description_present_original_source: Optional[str] = field( + colour_description_present_original_source: str | None = field( default=None, metadata={ "name": "colour_description_present_Original_Source", @@ -981,7 +980,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_description_present_source: Optional[str] = field( + colour_description_present_source: str | None = field( default=None, metadata={ "name": "colour_description_present_Source", @@ -989,14 +988,14 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_primaries: Optional[str] = field( + colour_primaries: str | None = field( default=None, metadata={ "type": "Element", "namespace": __NAMESPACE__, }, ) - colour_primaries_original: Optional[str] = field( + colour_primaries_original: str | None = field( default=None, metadata={ "name": "colour_primaries_Original", @@ -1004,7 +1003,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_primaries_original_source: Optional[str] = field( + colour_primaries_original_source: str | None = field( default=None, metadata={ "name": "colour_primaries_Original_Source", @@ -1012,7 +1011,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_primaries_source: Optional[str] = field( + colour_primaries_source: str | None = field( default=None, metadata={ "name": "colour_primaries_Source", @@ -1020,14 +1019,14 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_range: Optional[str] = field( + colour_range: str | None = field( default=None, metadata={ "type": "Element", "namespace": __NAMESPACE__, }, ) - colour_range_original: Optional[str] = field( + colour_range_original: str | None = field( default=None, metadata={ "name": "colour_range_Original", @@ -1035,7 +1034,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_range_original_source: Optional[str] = field( + colour_range_original_source: str | None = field( default=None, metadata={ "name": "colour_range_Original_Source", @@ -1043,7 +1042,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - colour_range_source: Optional[str] = field( + colour_range_source: str | None = field( default=None, metadata={ "name": "colour_range_Source", @@ -1051,7 +1050,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - comic: Optional[str] = field( + comic: str | None = field( default=None, metadata={ "name": "Comic", @@ -1059,7 +1058,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - comic_more: Optional[str] = field( + comic_more: str | None = field( default=None, metadata={ "name": "Comic_More", @@ -1067,7 +1066,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - comic_position_total: Optional[int] = field( + comic_position_total: int | None = field( default=None, metadata={ "name": "Comic_Position_Total", @@ -1075,7 +1074,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - comment: Optional[str] = field( + comment: str | None = field( default=None, metadata={ "name": "Comment", @@ -1083,7 +1082,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - commissioned_by: Optional[str] = field( + commissioned_by: str | None = field( default=None, metadata={ "name": "CommissionedBy", @@ -1091,7 +1090,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - compilation: Optional[str] = field( + compilation: str | None = field( default=None, metadata={ "name": "Compilation", @@ -1099,7 +1098,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - compilation_string: Optional[str] = field( + compilation_string: str | None = field( default=None, metadata={ "name": "Compilation_String", @@ -1107,7 +1106,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - complete_name_last: Optional[str] = field( + complete_name_last: str | None = field( default=None, metadata={ "name": "CompleteName_Last", @@ -1115,7 +1114,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - complete_name: Optional[str] = field( + complete_name: str | None = field( default=None, metadata={ "name": "CompleteName", @@ -1123,7 +1122,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - composer: Optional[str] = field( + composer: str | None = field( default=None, metadata={ "name": "Composer", @@ -1131,7 +1130,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - composer_nationality: Optional[str] = field( + composer_nationality: str | None = field( default=None, metadata={ "name": "Composer_Nationality", @@ -1139,7 +1138,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - composer_sort: Optional[str] = field( + composer_sort: str | None = field( default=None, metadata={ "name": "Composer_Sort", @@ -1147,7 +1146,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - compression_mode: Optional[str] = field( + compression_mode: str | None = field( default=None, metadata={ "name": "Compression_Mode", @@ -1155,7 +1154,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - compression_mode_string: Optional[str] = field( + compression_mode_string: str | None = field( default=None, metadata={ "name": "Compression_Mode_String", @@ -1163,7 +1162,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - compression_ratio: Optional[float] = field( + compression_ratio: float | None = field( default=None, metadata={ "name": "Compression_Ratio", @@ -1171,7 +1170,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - conductor: Optional[str] = field( + conductor: str | None = field( default=None, metadata={ "name": "Conductor", @@ -1179,7 +1178,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - content_type: Optional[str] = field( + content_type: str | None = field( default=None, metadata={ "name": "ContentType", @@ -1187,7 +1186,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - co_producer: Optional[str] = field( + co_producer: str | None = field( default=None, metadata={ "name": "CoProducer", @@ -1195,7 +1194,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - copyright: Optional[str] = field( + copyright: str | None = field( default=None, metadata={ "name": "Copyright", @@ -1203,7 +1202,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - copyright_url: Optional[str] = field( + copyright_url: str | None = field( default=None, metadata={ "name": "Copyright_Url", @@ -1211,7 +1210,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - costume_designer: Optional[str] = field( + costume_designer: str | None = field( default=None, metadata={ "name": "CostumeDesigner", @@ -1219,7 +1218,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - count: Optional[int] = field( + count: int | None = field( default=None, metadata={ "name": "Count", @@ -1227,7 +1226,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - countries: Optional[str] = field( + countries: str | None = field( default=None, metadata={ "name": "Countries", @@ -1235,7 +1234,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - country: Optional[str] = field( + country: str | None = field( default=None, metadata={ "name": "Country", @@ -1243,7 +1242,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cover_data: Optional[str] = field( + cover_data: str | None = field( default=None, metadata={ "name": "Cover_Data", @@ -1251,7 +1250,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cover_description: Optional[str] = field( + cover_description: str | None = field( default=None, metadata={ "name": "Cover_Description", @@ -1259,7 +1258,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cover_mime: Optional[str] = field( + cover_mime: str | None = field( default=None, metadata={ "name": "Cover_Mime", @@ -1267,7 +1266,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cover: Optional[str] = field( + cover: str | None = field( default=None, metadata={ "name": "Cover", @@ -1275,7 +1274,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cover_type: Optional[str] = field( + cover_type: str | None = field( default=None, metadata={ "name": "Cover_Type", @@ -1283,7 +1282,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - cropped: Optional[str] = field( + cropped: str | None = field( default=None, metadata={ "name": "Cropped", @@ -1291,7 +1290,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - data_size: Optional[int] = field( + data_size: int | None = field( default=None, metadata={ "name": "DataSize", @@ -1299,7 +1298,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - default: Optional[str] = field( + default: str | None = field( default=None, metadata={ "name": "Default", @@ -1307,7 +1306,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - default_string: Optional[str] = field( + default_string: str | None = field( default=None, metadata={ "name": "Default_String", @@ -1315,7 +1314,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_drop_frame: Optional[str] = field( + delay_drop_frame: str | None = field( default=None, metadata={ "name": "Delay_DropFrame", @@ -1323,7 +1322,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay: Optional[float] = field( + delay: float | None = field( default=None, metadata={ "name": "Delay", @@ -1331,7 +1330,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_drop_frame: Optional[str] = field( + delay_original_drop_frame: str | None = field( default=None, metadata={ "name": "Delay_Original_DropFrame", @@ -1339,7 +1338,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original: Optional[float] = field( + delay_original: float | None = field( default=None, metadata={ "name": "Delay_Original", @@ -1347,7 +1346,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_settings: Optional[str] = field( + delay_original_settings: str | None = field( default=None, metadata={ "name": "Delay_Original_Settings", @@ -1355,7 +1354,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_source: Optional[str] = field( + delay_original_source: str | None = field( default=None, metadata={ "name": "Delay_Original_Source", @@ -1363,7 +1362,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string1: Optional[str] = field( + delay_original_string1: str | None = field( default=None, metadata={ "name": "Delay_Original_String1", @@ -1371,7 +1370,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string2: Optional[str] = field( + delay_original_string2: str | None = field( default=None, metadata={ "name": "Delay_Original_String2", @@ -1379,7 +1378,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string3: Optional[str] = field( + delay_original_string3: str | None = field( default=None, metadata={ "name": "Delay_Original_String3", @@ -1387,7 +1386,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string4: Optional[str] = field( + delay_original_string4: str | None = field( default=None, metadata={ "name": "Delay_Original_String4", @@ -1395,7 +1394,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string5: Optional[str] = field( + delay_original_string5: str | None = field( default=None, metadata={ "name": "Delay_Original_String5", @@ -1403,7 +1402,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_original_string: Optional[str] = field( + delay_original_string: str | None = field( default=None, metadata={ "name": "Delay_Original_String", @@ -1411,7 +1410,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_settings: Optional[str] = field( + delay_settings: str | None = field( default=None, metadata={ "name": "Delay_Settings", @@ -1419,7 +1418,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_source: Optional[str] = field( + delay_source: str | None = field( default=None, metadata={ "name": "Delay_Source", @@ -1427,7 +1426,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_source_string: Optional[str] = field( + delay_source_string: str | None = field( default=None, metadata={ "name": "Delay_Source_String", @@ -1435,7 +1434,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string1: Optional[str] = field( + delay_string1: str | None = field( default=None, metadata={ "name": "Delay_String1", @@ -1443,7 +1442,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string2: Optional[str] = field( + delay_string2: str | None = field( default=None, metadata={ "name": "Delay_String2", @@ -1451,7 +1450,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string3: Optional[str] = field( + delay_string3: str | None = field( default=None, metadata={ "name": "Delay_String3", @@ -1459,7 +1458,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string4: Optional[str] = field( + delay_string4: str | None = field( default=None, metadata={ "name": "Delay_String4", @@ -1467,7 +1466,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string5: Optional[str] = field( + delay_string5: str | None = field( default=None, metadata={ "name": "Delay_String5", @@ -1475,7 +1474,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - delay_string: Optional[str] = field( + delay_string: str | None = field( default=None, metadata={ "name": "Delay_String", @@ -1483,7 +1482,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - description: Optional[str] = field( + description: str | None = field( default=None, metadata={ "name": "Description", @@ -1491,7 +1490,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - dimensions: Optional[str] = field( + dimensions: str | None = field( default=None, metadata={ "name": "Dimensions", @@ -1499,7 +1498,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - director: Optional[str] = field( + director: str | None = field( default=None, metadata={ "name": "Director", @@ -1507,7 +1506,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - director_of_photography: Optional[str] = field( + director_of_photography: str | None = field( default=None, metadata={ "name": "DirectorOfPhotography", @@ -1515,7 +1514,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - disabled: Optional[str] = field( + disabled: str | None = field( default=None, metadata={ "name": "Disabled", @@ -1523,7 +1522,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - disabled_string: Optional[str] = field( + disabled_string: str | None = field( default=None, metadata={ "name": "Disabled_String", @@ -1531,7 +1530,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio_clean_aperture: Optional[float] = field( + display_aspect_ratio_clean_aperture: float | None = field( default=None, metadata={ "name": "DisplayAspectRatio_CleanAperture", @@ -1539,7 +1538,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio_clean_aperture_string: Optional[str] = field( + display_aspect_ratio_clean_aperture_string: str | None = field( default=None, metadata={ "name": "DisplayAspectRatio_CleanAperture_String", @@ -1547,7 +1546,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio: Optional[float] = field( + display_aspect_ratio: float | None = field( default=None, metadata={ "name": "DisplayAspectRatio", @@ -1555,7 +1554,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio_original: Optional[float] = field( + display_aspect_ratio_original: float | None = field( default=None, metadata={ "name": "DisplayAspectRatio_Original", @@ -1563,7 +1562,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio_original_string: Optional[str] = field( + display_aspect_ratio_original_string: str | None = field( default=None, metadata={ "name": "DisplayAspectRatio_Original_String", @@ -1571,7 +1570,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - display_aspect_ratio_string: Optional[str] = field( + display_aspect_ratio_string: str | None = field( default=None, metadata={ "name": "DisplayAspectRatio_String", @@ -1579,7 +1578,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - distributed_by: Optional[str] = field( + distributed_by: str | None = field( default=None, metadata={ "name": "DistributedBy", @@ -1587,7 +1586,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - dolby_vision_layers: Optional[str] = field( + dolby_vision_layers: str | None = field( default=None, metadata={ "name": "DolbyVision_Layers", @@ -1595,7 +1594,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - dolby_vision_profile: Optional[str] = field( + dolby_vision_profile: str | None = field( default=None, metadata={ "name": "DolbyVision_Profile", @@ -1603,7 +1602,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - dolby_vision_version: Optional[str] = field( + dolby_vision_version: str | None = field( default=None, metadata={ "name": "DolbyVision_Version", @@ -1611,7 +1610,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - domain: Optional[str] = field( + domain: str | None = field( default=None, metadata={ "name": "Domain", @@ -1619,7 +1618,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - dots_per_inch: Optional[str] = field( + dots_per_inch: str | None = field( default=None, metadata={ "name": "DotsPerInch", @@ -1627,7 +1626,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_base: Optional[str] = field( + duration_base: str | None = field( default=None, metadata={ "name": "Duration_Base", @@ -1635,7 +1634,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command: Optional[float] = field( + duration_end_command: float | None = field( default=None, metadata={ "name": "Duration_End_Command", @@ -1643,7 +1642,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string1: Optional[str] = field( + duration_end_command_string1: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String1", @@ -1651,7 +1650,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string2: Optional[str] = field( + duration_end_command_string2: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String2", @@ -1659,7 +1658,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string3: Optional[str] = field( + duration_end_command_string3: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String3", @@ -1667,7 +1666,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string4: Optional[str] = field( + duration_end_command_string4: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String4", @@ -1675,7 +1674,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string5: Optional[str] = field( + duration_end_command_string5: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String5", @@ -1683,7 +1682,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_command_string: Optional[str] = field( + duration_end_command_string: str | None = field( default=None, metadata={ "name": "Duration_End_Command_String", @@ -1691,7 +1690,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end: Optional[float] = field( + duration_end: float | None = field( default=None, metadata={ "name": "Duration_End", @@ -1699,7 +1698,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string1: Optional[str] = field( + duration_end_string1: str | None = field( default=None, metadata={ "name": "Duration_End_String1", @@ -1707,7 +1706,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string2: Optional[str] = field( + duration_end_string2: str | None = field( default=None, metadata={ "name": "Duration_End_String2", @@ -1715,7 +1714,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string3: Optional[str] = field( + duration_end_string3: str | None = field( default=None, metadata={ "name": "Duration_End_String3", @@ -1723,7 +1722,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string4: Optional[str] = field( + duration_end_string4: str | None = field( default=None, metadata={ "name": "Duration_End_String4", @@ -1731,7 +1730,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string5: Optional[str] = field( + duration_end_string5: str | None = field( default=None, metadata={ "name": "Duration_End_String5", @@ -1739,7 +1738,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_end_string: Optional[str] = field( + duration_end_string: str | None = field( default=None, metadata={ "name": "Duration_End_String", @@ -1747,7 +1746,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame: Optional[float] = field( + duration_first_frame: float | None = field( default=None, metadata={ "name": "Duration_FirstFrame", @@ -1755,7 +1754,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string1: Optional[str] = field( + duration_first_frame_string1: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String1", @@ -1763,7 +1762,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string2: Optional[str] = field( + duration_first_frame_string2: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String2", @@ -1771,7 +1770,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string3: Optional[str] = field( + duration_first_frame_string3: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String3", @@ -1779,7 +1778,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string4: Optional[str] = field( + duration_first_frame_string4: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String4", @@ -1787,7 +1786,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string5: Optional[str] = field( + duration_first_frame_string5: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String5", @@ -1795,7 +1794,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_first_frame_string: Optional[str] = field( + duration_first_frame_string: str | None = field( default=None, metadata={ "name": "Duration_FirstFrame_String", @@ -1803,7 +1802,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame: Optional[float] = field( + duration_last_frame: float | None = field( default=None, metadata={ "name": "Duration_LastFrame", @@ -1811,7 +1810,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string1: Optional[str] = field( + duration_last_frame_string1: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String1", @@ -1819,7 +1818,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string2: Optional[str] = field( + duration_last_frame_string2: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String2", @@ -1827,7 +1826,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string3: Optional[str] = field( + duration_last_frame_string3: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String3", @@ -1835,7 +1834,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string4: Optional[str] = field( + duration_last_frame_string4: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String4", @@ -1843,7 +1842,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string5: Optional[str] = field( + duration_last_frame_string5: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String5", @@ -1851,7 +1850,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_last_frame_string: Optional[str] = field( + duration_last_frame_string: str | None = field( default=None, metadata={ "name": "Duration_LastFrame_String", @@ -1859,7 +1858,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration: Optional[float] = field( + duration: float | None = field( default=None, metadata={ "name": "Duration", @@ -1867,7 +1866,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end: Optional[float] = field( + duration_start2_end: float | None = field( default=None, metadata={ "name": "Duration_Start2End", @@ -1875,7 +1874,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string1: Optional[str] = field( + duration_start2_end_string1: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String1", @@ -1883,7 +1882,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string2: Optional[str] = field( + duration_start2_end_string2: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String2", @@ -1891,7 +1890,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string3: Optional[str] = field( + duration_start2_end_string3: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String3", @@ -1899,7 +1898,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string4: Optional[str] = field( + duration_start2_end_string4: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String4", @@ -1907,7 +1906,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string5: Optional[str] = field( + duration_start2_end_string5: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String5", @@ -1915,7 +1914,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start2_end_string: Optional[str] = field( + duration_start2_end_string: str | None = field( default=None, metadata={ "name": "Duration_Start2End_String", @@ -1923,7 +1922,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command: Optional[float] = field( + duration_start_command: float | None = field( default=None, metadata={ "name": "Duration_Start_Command", @@ -1931,7 +1930,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string1: Optional[str] = field( + duration_start_command_string1: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String1", @@ -1939,7 +1938,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string2: Optional[str] = field( + duration_start_command_string2: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String2", @@ -1947,7 +1946,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string3: Optional[str] = field( + duration_start_command_string3: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String3", @@ -1955,7 +1954,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string4: Optional[str] = field( + duration_start_command_string4: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String4", @@ -1963,7 +1962,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string5: Optional[str] = field( + duration_start_command_string5: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String5", @@ -1971,7 +1970,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_command_string: Optional[str] = field( + duration_start_command_string: str | None = field( default=None, metadata={ "name": "Duration_Start_Command_String", @@ -1979,7 +1978,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start: Optional[float] = field( + duration_start: float | None = field( default=None, metadata={ "name": "Duration_Start", @@ -1987,7 +1986,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string1: Optional[str] = field( + duration_start_string1: str | None = field( default=None, metadata={ "name": "Duration_Start_String1", @@ -1995,7 +1994,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string2: Optional[str] = field( + duration_start_string2: str | None = field( default=None, metadata={ "name": "Duration_Start_String2", @@ -2003,7 +2002,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string3: Optional[str] = field( + duration_start_string3: str | None = field( default=None, metadata={ "name": "Duration_Start_String3", @@ -2011,7 +2010,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string4: Optional[str] = field( + duration_start_string4: str | None = field( default=None, metadata={ "name": "Duration_Start_String4", @@ -2019,7 +2018,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string5: Optional[str] = field( + duration_start_string5: str | None = field( default=None, metadata={ "name": "Duration_Start_String5", @@ -2027,7 +2026,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_start_string: Optional[str] = field( + duration_start_string: str | None = field( default=None, metadata={ "name": "Duration_Start_String", @@ -2035,7 +2034,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string1: Optional[str] = field( + duration_string1: str | None = field( default=None, metadata={ "name": "Duration_String1", @@ -2043,7 +2042,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string2: Optional[str] = field( + duration_string2: str | None = field( default=None, metadata={ "name": "Duration_String2", @@ -2051,7 +2050,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string3: Optional[str] = field( + duration_string3: str | None = field( default=None, metadata={ "name": "Duration_String3", @@ -2059,7 +2058,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string4: Optional[str] = field( + duration_string4: str | None = field( default=None, metadata={ "name": "Duration_String4", @@ -2067,7 +2066,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string5: Optional[str] = field( + duration_string5: str | None = field( default=None, metadata={ "name": "Duration_String5", @@ -2075,7 +2074,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - duration_string: Optional[str] = field( + duration_string: str | None = field( default=None, metadata={ "name": "Duration_String", @@ -2083,7 +2082,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - edited_by: Optional[str] = field( + edited_by: str | None = field( default=None, metadata={ "name": "EditedBy", @@ -2091,7 +2090,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - element_count: Optional[int] = field( + element_count: int | None = field( default=None, metadata={ "name": "ElementCount", @@ -2099,7 +2098,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application_company_name: Optional[str] = field( + encoded_application_company_name: str | None = field( default=None, metadata={ "name": "Encoded_Application_CompanyName", @@ -2107,7 +2106,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application: Optional[str] = field( + encoded_application: str | None = field( default=None, metadata={ "name": "Encoded_Application", @@ -2115,7 +2114,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application_name: Optional[str] = field( + encoded_application_name: str | None = field( default=None, metadata={ "name": "Encoded_Application_Name", @@ -2123,7 +2122,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application_string: Optional[str] = field( + encoded_application_string: str | None = field( default=None, metadata={ "name": "Encoded_Application_String", @@ -2131,7 +2130,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application_url: Optional[str] = field( + encoded_application_url: str | None = field( default=None, metadata={ "name": "Encoded_Application_Url", @@ -2139,7 +2138,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_application_version: Optional[str] = field( + encoded_application_version: str | None = field( default=None, metadata={ "name": "Encoded_Application_Version", @@ -2147,7 +2146,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_by: Optional[str] = field( + encoded_by: str | None = field( default=None, metadata={ "name": "EncodedBy", @@ -2155,7 +2154,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_date: Optional[str] = field( + encoded_date: str | None = field( default=None, metadata={ "name": "Encoded_Date", @@ -2163,7 +2162,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_company_name: Optional[str] = field( + encoded_library_company_name: str | None = field( default=None, metadata={ "name": "Encoded_Library_CompanyName", @@ -2171,7 +2170,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_date: Optional[str] = field( + encoded_library_date: str | None = field( default=None, metadata={ "name": "Encoded_Library_Date", @@ -2179,7 +2178,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library: Optional[str] = field( + encoded_library: str | None = field( default=None, metadata={ "name": "Encoded_Library", @@ -2187,7 +2186,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_name: Optional[str] = field( + encoded_library_name: str | None = field( default=None, metadata={ "name": "Encoded_Library_Name", @@ -2195,7 +2194,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_settings: Optional[str] = field( + encoded_library_settings: str | None = field( default=None, metadata={ "name": "Encoded_Library_Settings", @@ -2203,7 +2202,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_string: Optional[str] = field( + encoded_library_string: str | None = field( default=None, metadata={ "name": "Encoded_Library_String", @@ -2211,7 +2210,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_library_version: Optional[str] = field( + encoded_library_version: str | None = field( default=None, metadata={ "name": "Encoded_Library_Version", @@ -2219,7 +2218,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encoded_operating_system: Optional[str] = field( + encoded_operating_system: str | None = field( default=None, metadata={ "name": "Encoded_OperatingSystem", @@ -2227,7 +2226,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_format: Optional[str] = field( + encryption_format: str | None = field( default=None, metadata={ "name": "Encryption_Format", @@ -2235,7 +2234,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_initialization_vector: Optional[str] = field( + encryption_initialization_vector: str | None = field( default=None, metadata={ "name": "Encryption_InitializationVector", @@ -2243,7 +2242,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_length: Optional[str] = field( + encryption_length: str | None = field( default=None, metadata={ "name": "Encryption_Length", @@ -2251,7 +2250,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_method: Optional[str] = field( + encryption_method: str | None = field( default=None, metadata={ "name": "Encryption_Method", @@ -2259,7 +2258,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption: Optional[str] = field( + encryption: str | None = field( default=None, metadata={ "name": "Encryption", @@ -2267,7 +2266,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_mode: Optional[str] = field( + encryption_mode: str | None = field( default=None, metadata={ "name": "Encryption_Mode", @@ -2275,7 +2274,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - encryption_padding: Optional[str] = field( + encryption_padding: str | None = field( default=None, metadata={ "name": "Encryption_Padding", @@ -2283,7 +2282,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - epg_positions_begin: Optional[int] = field( + epg_positions_begin: int | None = field( default=None, metadata={ "name": "EPG_Positions_Begin", @@ -2291,7 +2290,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - epg_positions_end: Optional[int] = field( + epg_positions_end: int | None = field( default=None, metadata={ "name": "EPG_Positions_End", @@ -2299,7 +2298,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration: Optional[float] = field( + events_min_duration: float | None = field( default=None, metadata={ "name": "Events_MinDuration", @@ -2307,7 +2306,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string1: Optional[str] = field( + events_min_duration_string1: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String1", @@ -2315,7 +2314,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string2: Optional[str] = field( + events_min_duration_string2: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String2", @@ -2323,7 +2322,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string3: Optional[str] = field( + events_min_duration_string3: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String3", @@ -2331,7 +2330,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string4: Optional[str] = field( + events_min_duration_string4: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String4", @@ -2339,7 +2338,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string5: Optional[str] = field( + events_min_duration_string5: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String5", @@ -2347,7 +2346,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_min_duration_string: Optional[str] = field( + events_min_duration_string: str | None = field( default=None, metadata={ "name": "Events_MinDuration_String", @@ -2355,7 +2354,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_paint_on: Optional[str] = field( + events_paint_on: str | None = field( default=None, metadata={ "name": "Events_PaintOn", @@ -2363,7 +2362,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_pop_on: Optional[str] = field( + events_pop_on: str | None = field( default=None, metadata={ "name": "Events_PopOn", @@ -2371,7 +2370,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_roll_up: Optional[str] = field( + events_roll_up: str | None = field( default=None, metadata={ "name": "Events_RollUp", @@ -2379,7 +2378,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - events_total: Optional[str] = field( + events_total: str | None = field( default=None, metadata={ "name": "Events_Total", @@ -2387,7 +2386,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - executive_producer: Optional[str] = field( + executive_producer: str | None = field( default=None, metadata={ "name": "ExecutiveProducer", @@ -2395,7 +2394,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_created_date_local: Optional[str] = field( + file_created_date_local: str | None = field( default=None, metadata={ "name": "File_Created_Date_Local", @@ -2403,7 +2402,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_created_date: Optional[str] = field( + file_created_date: str | None = field( default=None, metadata={ "name": "File_Created_Date", @@ -2411,7 +2410,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_extension_last: Optional[str] = field( + file_extension_last: str | None = field( default=None, metadata={ "name": "FileExtension_Last", @@ -2419,7 +2418,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_extension: Optional[str] = field( + file_extension: str | None = field( default=None, metadata={ "name": "FileExtension", @@ -2427,7 +2426,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_modified_date_local: Optional[str] = field( + file_modified_date_local: str | None = field( default=None, metadata={ "name": "File_Modified_Date_Local", @@ -2435,7 +2434,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_modified_date: Optional[str] = field( + file_modified_date: str | None = field( default=None, metadata={ "name": "File_Modified_Date", @@ -2443,7 +2442,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_name_extension_last: Optional[str] = field( + file_name_extension_last: str | None = field( default=None, metadata={ "name": "FileNameExtension_Last", @@ -2451,7 +2450,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_name_extension: Optional[str] = field( + file_name_extension: str | None = field( default=None, metadata={ "name": "FileNameExtension", @@ -2459,7 +2458,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_name_last: Optional[str] = field( + file_name_last: str | None = field( default=None, metadata={ "name": "FileName_Last", @@ -2467,7 +2466,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_name: Optional[str] = field( + file_name: str | None = field( default=None, metadata={ "name": "FileName", @@ -2475,7 +2474,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size: Optional[str] = field( + file_size: str | None = field( default=None, metadata={ "name": "FileSize", @@ -2483,7 +2482,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size_string1: Optional[str] = field( + file_size_string1: str | None = field( default=None, metadata={ "name": "FileSize_String1", @@ -2491,7 +2490,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size_string2: Optional[str] = field( + file_size_string2: str | None = field( default=None, metadata={ "name": "FileSize_String2", @@ -2499,7 +2498,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size_string3: Optional[str] = field( + file_size_string3: str | None = field( default=None, metadata={ "name": "FileSize_String3", @@ -2507,7 +2506,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size_string4: Optional[str] = field( + file_size_string4: str | None = field( default=None, metadata={ "name": "FileSize_String4", @@ -2515,7 +2514,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - file_size_string: Optional[str] = field( + file_size_string: str | None = field( default=None, metadata={ "name": "FileSize_String", @@ -2523,7 +2522,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - first_display_delay_frames: Optional[str] = field( + first_display_delay_frames: str | None = field( default=None, metadata={ "name": "FirstDisplay_Delay_Frames", @@ -2531,7 +2530,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - first_display_type: Optional[str] = field( + first_display_type: str | None = field( default=None, metadata={ "name": "FirstDisplay_Type", @@ -2539,7 +2538,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - first_packet_order: Optional[int] = field( + first_packet_order: int | None = field( default=None, metadata={ "name": "FirstPacketOrder", @@ -2547,7 +2546,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - folder_name_last: Optional[str] = field( + folder_name_last: str | None = field( default=None, metadata={ "name": "FolderName_Last", @@ -2555,7 +2554,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - folder_name: Optional[str] = field( + folder_name: str | None = field( default=None, metadata={ "name": "FolderName", @@ -2563,7 +2562,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - footer_size: Optional[int] = field( + footer_size: int | None = field( default=None, metadata={ "name": "FooterSize", @@ -2571,7 +2570,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - forced: Optional[str] = field( + forced: str | None = field( default=None, metadata={ "name": "Forced", @@ -2579,7 +2578,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - forced_string: Optional[str] = field( + forced_string: str | None = field( default=None, metadata={ "name": "Forced_String", @@ -2587,7 +2586,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_additional_features: Optional[str] = field( + format_additional_features: str | None = field( default=None, metadata={ "name": "Format_AdditionalFeatures", @@ -2595,7 +2594,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_commercial_if_any: Optional[str] = field( + format_commercial_if_any: str | None = field( default=None, metadata={ "name": "Format_Commercial_IfAny", @@ -2603,7 +2602,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_commercial: Optional[str] = field( + format_commercial: str | None = field( default=None, metadata={ "name": "Format_Commercial", @@ -2611,7 +2610,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_compression: Optional[str] = field( + format_compression: str | None = field( default=None, metadata={ "name": "Format_Compression", @@ -2619,7 +2618,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_extensions: Optional[str] = field( + format_extensions: str | None = field( default=None, metadata={ "name": "Format_Extensions", @@ -2627,7 +2626,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_info: Optional[str] = field( + format_info: str | None = field( default=None, metadata={ "name": "Format_Info", @@ -2635,7 +2634,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_level: Optional[str] = field( + format_level: str | None = field( default=None, metadata={ "name": "Format_Level", @@ -2643,7 +2642,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format: Optional[str] = field( + format: str | None = field( default=None, metadata={ "name": "Format", @@ -2651,7 +2650,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_profile: Optional[str] = field( + format_profile: str | None = field( default=None, metadata={ "name": "Format_Profile", @@ -2659,7 +2658,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_bvop: Optional[str] = field( + format_settings_bvop: str | None = field( default=None, metadata={ "name": "Format_Settings_BVOP", @@ -2667,7 +2666,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_bvop_string: Optional[str] = field( + format_settings_bvop_string: str | None = field( default=None, metadata={ "name": "Format_Settings_BVOP_String", @@ -2675,7 +2674,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_cabac: Optional[str] = field( + format_settings_cabac: str | None = field( default=None, metadata={ "name": "Format_Settings_CABAC", @@ -2683,7 +2682,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_cabac_string: Optional[str] = field( + format_settings_cabac_string: str | None = field( default=None, metadata={ "name": "Format_Settings_CABAC_String", @@ -2691,7 +2690,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_emphasis: Optional[str] = field( + format_settings_emphasis: str | None = field( default=None, metadata={ "name": "Format_Settings_Emphasis", @@ -2699,7 +2698,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_endianness: Optional[str] = field( + format_settings_endianness: str | None = field( default=None, metadata={ "name": "Format_Settings_Endianness", @@ -2707,7 +2706,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_firm: Optional[str] = field( + format_settings_firm: str | None = field( default=None, metadata={ "name": "Format_Settings_Firm", @@ -2715,7 +2714,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_floor: Optional[str] = field( + format_settings_floor: str | None = field( default=None, metadata={ "name": "Format_Settings_Floor", @@ -2723,7 +2722,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_frame_mode: Optional[str] = field( + format_settings_frame_mode: str | None = field( default=None, metadata={ "name": "Format_Settings_FrameMode", @@ -2731,7 +2730,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_gmc: Optional[int] = field( + format_settings_gmc: int | None = field( default=None, metadata={ "name": "Format_Settings_GMC", @@ -2739,7 +2738,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_gmc_string: Optional[str] = field( + format_settings_gmc_string: str | None = field( default=None, metadata={ "name": "Format_Settings_GMC_String", @@ -2747,7 +2746,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_gop: Optional[str] = field( + format_settings_gop: str | None = field( default=None, metadata={ "name": "Format_Settings_GOP", @@ -2755,7 +2754,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_itu: Optional[str] = field( + format_settings_itu: str | None = field( default=None, metadata={ "name": "Format_Settings_ITU", @@ -2763,7 +2762,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_law: Optional[str] = field( + format_settings_law: str | None = field( default=None, metadata={ "name": "Format_Settings_Law", @@ -2771,7 +2770,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_matrix_data: Optional[str] = field( + format_settings_matrix_data: str | None = field( default=None, metadata={ "name": "Format_Settings_Matrix_Data", @@ -2779,7 +2778,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_matrix: Optional[str] = field( + format_settings_matrix: str | None = field( default=None, metadata={ "name": "Format_Settings_Matrix", @@ -2787,7 +2786,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_matrix_string: Optional[str] = field( + format_settings_matrix_string: str | None = field( default=None, metadata={ "name": "Format_Settings_Matrix_String", @@ -2795,7 +2794,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings: Optional[str] = field( + format_settings: str | None = field( default=None, metadata={ "name": "Format_Settings", @@ -2803,7 +2802,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_mode_extension: Optional[str] = field( + format_settings_mode_extension: str | None = field( default=None, metadata={ "name": "Format_Settings_ModeExtension", @@ -2811,7 +2810,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_mode: Optional[str] = field( + format_settings_mode: str | None = field( default=None, metadata={ "name": "Format_Settings_Mode", @@ -2819,7 +2818,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_packing: Optional[str] = field( + format_settings_packing: str | None = field( default=None, metadata={ "name": "Format_Settings_Packing", @@ -2827,7 +2826,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_picture_structure: Optional[str] = field( + format_settings_picture_structure: str | None = field( default=None, metadata={ "name": "Format_Settings_PictureStructure", @@ -2835,7 +2834,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_ps: Optional[str] = field( + format_settings_ps: str | None = field( default=None, metadata={ "name": "Format_Settings_PS", @@ -2843,7 +2842,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_ps_string: Optional[str] = field( + format_settings_ps_string: str | None = field( default=None, metadata={ "name": "Format_Settings_PS_String", @@ -2851,7 +2850,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_pulldown: Optional[str] = field( + format_settings_pulldown: str | None = field( default=None, metadata={ "name": "Format_Settings_Pulldown", @@ -2859,7 +2858,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_qpel: Optional[str] = field( + format_settings_qpel: str | None = field( default=None, metadata={ "name": "Format_Settings_QPel", @@ -2867,7 +2866,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_qpel_string: Optional[str] = field( + format_settings_qpel_string: str | None = field( default=None, metadata={ "name": "Format_Settings_QPel_String", @@ -2875,7 +2874,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_ref_frames: Optional[int] = field( + format_settings_ref_frames: int | None = field( default=None, metadata={ "name": "Format_Settings_RefFrames", @@ -2883,7 +2882,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_ref_frames_string: Optional[str] = field( + format_settings_ref_frames_string: str | None = field( default=None, metadata={ "name": "Format_Settings_RefFrames_String", @@ -2891,7 +2890,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_sbr: Optional[str] = field( + format_settings_sbr: str | None = field( default=None, metadata={ "name": "Format_Settings_SBR", @@ -2899,7 +2898,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_sbr_string: Optional[str] = field( + format_settings_sbr_string: str | None = field( default=None, metadata={ "name": "Format_Settings_SBR_String", @@ -2907,7 +2906,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_sign: Optional[str] = field( + format_settings_sign: str | None = field( default=None, metadata={ "name": "Format_Settings_Sign", @@ -2915,7 +2914,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_slice_count: Optional[int] = field( + format_settings_slice_count: int | None = field( default=None, metadata={ "name": "Format_Settings_SliceCount", @@ -2923,7 +2922,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_slice_count_string: Optional[str] = field( + format_settings_slice_count_string: str | None = field( default=None, metadata={ "name": "Format_Settings_SliceCount_String", @@ -2931,7 +2930,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_settings_wrapping: Optional[str] = field( + format_settings_wrapping: str | None = field( default=None, metadata={ "name": "Format_Settings_Wrapping", @@ -2939,7 +2938,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_string: Optional[str] = field( + format_string: str | None = field( default=None, metadata={ "name": "Format_String", @@ -2947,7 +2946,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_tier: Optional[str] = field( + format_tier: str | None = field( default=None, metadata={ "name": "Format_Tier", @@ -2955,7 +2954,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_url: Optional[str] = field( + format_url: str | None = field( default=None, metadata={ "name": "Format_Url", @@ -2963,7 +2962,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - format_version: Optional[str] = field( + format_version: str | None = field( default=None, metadata={ "name": "Format_Version", @@ -2971,7 +2970,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_count: Optional[int] = field( + frame_count: int | None = field( default=None, metadata={ "name": "FrameCount", @@ -2979,7 +2978,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_den: Optional[int] = field( + frame_rate_den: int | None = field( default=None, metadata={ "name": "FrameRate_Den", @@ -2987,7 +2986,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_maximum: Optional[float] = field( + frame_rate_maximum: float | None = field( default=None, metadata={ "name": "FrameRate_Maximum", @@ -2995,7 +2994,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_maximum_string: Optional[str] = field( + frame_rate_maximum_string: str | None = field( default=None, metadata={ "name": "FrameRate_Maximum_String", @@ -3003,7 +3002,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_minimum: Optional[float] = field( + frame_rate_minimum: float | None = field( default=None, metadata={ "name": "FrameRate_Minimum", @@ -3011,7 +3010,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_minimum_string: Optional[str] = field( + frame_rate_minimum_string: str | None = field( default=None, metadata={ "name": "FrameRate_Minimum_String", @@ -3019,7 +3018,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate: Optional[float] = field( + frame_rate: float | None = field( default=None, metadata={ "name": "FrameRate", @@ -3027,7 +3026,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_mode: Optional[str] = field( + frame_rate_mode: str | None = field( default=None, metadata={ "name": "FrameRate_Mode", @@ -3035,7 +3034,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_mode_original: Optional[str] = field( + frame_rate_mode_original: str | None = field( default=None, metadata={ "name": "FrameRate_Mode_Original", @@ -3043,7 +3042,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_mode_original_string: Optional[str] = field( + frame_rate_mode_original_string: str | None = field( default=None, metadata={ "name": "FrameRate_Mode_Original_String", @@ -3051,7 +3050,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_mode_string: Optional[str] = field( + frame_rate_mode_string: str | None = field( default=None, metadata={ "name": "FrameRate_Mode_String", @@ -3059,7 +3058,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_nominal: Optional[float] = field( + frame_rate_nominal: float | None = field( default=None, metadata={ "name": "FrameRate_Nominal", @@ -3067,7 +3066,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_nominal_string: Optional[str] = field( + frame_rate_nominal_string: str | None = field( default=None, metadata={ "name": "FrameRate_Nominal_String", @@ -3075,7 +3074,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_num: Optional[int] = field( + frame_rate_num: int | None = field( default=None, metadata={ "name": "FrameRate_Num", @@ -3083,7 +3082,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_original_den: Optional[float] = field( + frame_rate_original_den: float | None = field( default=None, metadata={ "name": "FrameRate_Original_Den", @@ -3091,7 +3090,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_original: Optional[float] = field( + frame_rate_original: float | None = field( default=None, metadata={ "name": "FrameRate_Original", @@ -3099,7 +3098,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_original_num: Optional[float] = field( + frame_rate_original_num: float | None = field( default=None, metadata={ "name": "FrameRate_Original_Num", @@ -3107,7 +3106,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_original_string: Optional[str] = field( + frame_rate_original_string: str | None = field( default=None, metadata={ "name": "FrameRate_Original_String", @@ -3115,7 +3114,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_real: Optional[float] = field( + frame_rate_real: float | None = field( default=None, metadata={ "name": "FrameRate_Real", @@ -3123,7 +3122,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_real_string: Optional[str] = field( + frame_rate_real_string: str | None = field( default=None, metadata={ "name": "FrameRate_Real_String", @@ -3131,7 +3130,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - frame_rate_string: Optional[str] = field( + frame_rate_string: str | None = field( default=None, metadata={ "name": "FrameRate_String", @@ -3139,7 +3138,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - general_count: Optional[int] = field( + general_count: int | None = field( default=None, metadata={ "name": "GeneralCount", @@ -3147,7 +3146,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - genre: Optional[str] = field( + genre: str | None = field( default=None, metadata={ "name": "Genre", @@ -3155,7 +3154,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - gop_open_closed_first_frame: Optional[str] = field( + gop_open_closed_first_frame: str | None = field( default=None, metadata={ "name": "Gop_OpenClosed_FirstFrame", @@ -3163,7 +3162,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - gop_open_closed_first_frame_string: Optional[str] = field( + gop_open_closed_first_frame_string: str | None = field( default=None, metadata={ "name": "Gop_OpenClosed_FirstFrame_String", @@ -3171,7 +3170,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - gop_open_closed: Optional[str] = field( + gop_open_closed: str | None = field( default=None, metadata={ "name": "Gop_OpenClosed", @@ -3179,7 +3178,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - gop_open_closed_string: Optional[str] = field( + gop_open_closed_string: str | None = field( default=None, metadata={ "name": "Gop_OpenClosed_String", @@ -3187,7 +3186,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - grouping: Optional[str] = field( + grouping: str | None = field( default=None, metadata={ "name": "Grouping", @@ -3195,7 +3194,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_commercial: Optional[str] = field( + hdr_format_commercial: str | None = field( default=None, metadata={ "name": "HDR_Format_Commercial", @@ -3203,7 +3202,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_compatibility: Optional[str] = field( + hdr_format_compatibility: str | None = field( default=None, metadata={ "name": "HDR_Format_Compatibility", @@ -3211,7 +3210,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_level: Optional[str] = field( + hdr_format_level: str | None = field( default=None, metadata={ "name": "HDR_Format_Level", @@ -3219,7 +3218,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format: Optional[str] = field( + hdr_format: str | None = field( default=None, metadata={ "name": "HDR_Format", @@ -3227,7 +3226,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_profile: Optional[str] = field( + hdr_format_profile: str | None = field( default=None, metadata={ "name": "HDR_Format_Profile", @@ -3235,7 +3234,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_settings: Optional[str] = field( + hdr_format_settings: str | None = field( default=None, metadata={ "name": "HDR_Format_Settings", @@ -3243,7 +3242,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_string: Optional[str] = field( + hdr_format_string: str | None = field( default=None, metadata={ "name": "HDR_Format_String", @@ -3251,7 +3250,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - hdr_format_version: Optional[str] = field( + hdr_format_version: str | None = field( default=None, metadata={ "name": "HDR_Format_Version", @@ -3259,7 +3258,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - header_size: Optional[int] = field( + header_size: int | None = field( default=None, metadata={ "name": "HeaderSize", @@ -3267,7 +3266,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_clean_aperture: Optional[int] = field( + height_clean_aperture: int | None = field( default=None, metadata={ "name": "Height_CleanAperture", @@ -3275,7 +3274,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_clean_aperture_string: Optional[str] = field( + height_clean_aperture_string: str | None = field( default=None, metadata={ "name": "Height_CleanAperture_String", @@ -3283,7 +3282,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height: Optional[int] = field( + height: int | None = field( default=None, metadata={ "name": "Height", @@ -3291,7 +3290,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_offset: Optional[int] = field( + height_offset: int | None = field( default=None, metadata={ "name": "Height_Offset", @@ -3299,7 +3298,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_offset_string: Optional[str] = field( + height_offset_string: str | None = field( default=None, metadata={ "name": "Height_Offset_String", @@ -3307,7 +3306,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_original: Optional[int] = field( + height_original: int | None = field( default=None, metadata={ "name": "Height_Original", @@ -3315,7 +3314,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_original_string: Optional[str] = field( + height_original_string: str | None = field( default=None, metadata={ "name": "Height_Original_String", @@ -3323,7 +3322,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - height_string: Optional[str] = field( + height_string: str | None = field( default=None, metadata={ "name": "Height_String", @@ -3331,7 +3330,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - icra: Optional[str] = field( + icra: str | None = field( default=None, metadata={ "name": "ICRA", @@ -3339,7 +3338,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "name": "ID", @@ -3347,7 +3346,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - id_string: Optional[str] = field( + id_string: str | None = field( default=None, metadata={ "name": "ID_String", @@ -3355,7 +3354,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - image_codec_list: Optional[str] = field( + image_codec_list: str | None = field( default=None, metadata={ "name": "Image_Codec_List", @@ -3363,7 +3362,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - image_count: Optional[int] = field( + image_count: int | None = field( default=None, metadata={ "name": "ImageCount", @@ -3371,7 +3370,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - image_format_list: Optional[str] = field( + image_format_list: str | None = field( default=None, metadata={ "name": "Image_Format_List", @@ -3379,7 +3378,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - image_format_with_hint_list: Optional[str] = field( + image_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Image_Format_WithHint_List", @@ -3387,7 +3386,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - image_language_list: Optional[str] = field( + image_language_list: str | None = field( default=None, metadata={ "name": "Image_Language_List", @@ -3395,7 +3394,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - inform: Optional[str] = field( + inform: str | None = field( default=None, metadata={ "name": "Inform", @@ -3403,7 +3402,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interlacement: Optional[str] = field( + interlacement: str | None = field( default=None, metadata={ "name": "Interlacement", @@ -3411,7 +3410,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interlacement_string: Optional[str] = field( + interlacement_string: str | None = field( default=None, metadata={ "name": "Interlacement_String", @@ -3419,7 +3418,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleaved: Optional[str] = field( + interleaved: str | None = field( default=None, metadata={ "name": "Interleaved", @@ -3427,7 +3426,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleave_duration: Optional[float] = field( + interleave_duration: float | None = field( default=None, metadata={ "name": "Interleave_Duration", @@ -3435,7 +3434,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleave_duration_string: Optional[str] = field( + interleave_duration_string: str | None = field( default=None, metadata={ "name": "Interleave_Duration_String", @@ -3443,7 +3442,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleave_preload: Optional[float] = field( + interleave_preload: float | None = field( default=None, metadata={ "name": "Interleave_Preload", @@ -3451,7 +3450,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleave_preload_string: Optional[str] = field( + interleave_preload_string: str | None = field( default=None, metadata={ "name": "Interleave_Preload_String", @@ -3459,7 +3458,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - interleave_video_frames: Optional[float] = field( + interleave_video_frames: float | None = field( default=None, metadata={ "name": "Interleave_VideoFrames", @@ -3467,7 +3466,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - internet_media_type: Optional[str] = field( + internet_media_type: str | None = field( default=None, metadata={ "name": "InternetMediaType", @@ -3475,7 +3474,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - isbn: Optional[str] = field( + isbn: str | None = field( default=None, metadata={ "name": "ISBN", @@ -3483,7 +3482,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - isrc: Optional[str] = field( + isrc: str | None = field( default=None, metadata={ "name": "ISRC", @@ -3491,7 +3490,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - is_streamable: Optional[str] = field( + is_streamable: str | None = field( default=None, metadata={ "name": "IsStreamable", @@ -3499,7 +3498,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - keywords: Optional[str] = field( + keywords: str | None = field( default=None, metadata={ "name": "Keywords", @@ -3507,7 +3506,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - label_code: Optional[str] = field( + label_code: str | None = field( default=None, metadata={ "name": "LabelCode", @@ -3515,7 +3514,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - label: Optional[str] = field( + label: str | None = field( default=None, metadata={ "name": "Label", @@ -3523,7 +3522,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language: Optional[str] = field( + language: str | None = field( default=None, metadata={ "name": "Language", @@ -3531,7 +3530,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_more: Optional[str] = field( + language_more: str | None = field( default=None, metadata={ "name": "Language_More", @@ -3539,7 +3538,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_string1: Optional[str] = field( + language_string1: str | None = field( default=None, metadata={ "name": "Language_String1", @@ -3547,7 +3546,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_string2: Optional[str] = field( + language_string2: str | None = field( default=None, metadata={ "name": "Language_String2", @@ -3555,7 +3554,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_string3: Optional[str] = field( + language_string3: str | None = field( default=None, metadata={ "name": "Language_String3", @@ -3563,7 +3562,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_string4: Optional[str] = field( + language_string4: str | None = field( default=None, metadata={ "name": "Language_String4", @@ -3571,7 +3570,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - language_string: Optional[str] = field( + language_string: str | None = field( default=None, metadata={ "name": "Language_String", @@ -3579,7 +3578,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - law_rating: Optional[str] = field( + law_rating: str | None = field( default=None, metadata={ "name": "LawRating", @@ -3587,7 +3586,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - law_rating_reason: Optional[str] = field( + law_rating_reason: str | None = field( default=None, metadata={ "name": "LawRating_Reason", @@ -3595,7 +3594,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lccn: Optional[str] = field( + lccn: str | None = field( default=None, metadata={ "name": "LCCN", @@ -3603,7 +3602,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lightness: Optional[str] = field( + lightness: str | None = field( default=None, metadata={ "name": "Lightness", @@ -3611,7 +3610,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lines_count: Optional[str] = field( + lines_count: str | None = field( default=None, metadata={ "name": "Lines_Count", @@ -3619,7 +3618,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lines_max_count_per_event: Optional[str] = field( + lines_max_count_per_event: str | None = field( default=None, metadata={ "name": "Lines_MaxCountPerEvent", @@ -3627,7 +3626,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - list_value: Optional[str] = field( + list_value: str | None = field( default=None, metadata={ "name": "List", @@ -3635,7 +3634,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - list_stream_kind: Optional[str] = field( + list_stream_kind: str | None = field( default=None, metadata={ "name": "List_StreamKind", @@ -3643,7 +3642,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - list_stream_pos: Optional[str] = field( + list_stream_pos: str | None = field( default=None, metadata={ "name": "List_StreamPos", @@ -3651,7 +3650,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - list_string: Optional[str] = field( + list_string: str | None = field( default=None, metadata={ "name": "List_String", @@ -3659,7 +3658,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lyricist: Optional[str] = field( + lyricist: str | None = field( default=None, metadata={ "name": "Lyricist", @@ -3667,7 +3666,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - lyrics: Optional[str] = field( + lyrics: str | None = field( default=None, metadata={ "name": "Lyrics", @@ -3675,7 +3674,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastered_by: Optional[str] = field( + mastered_by: str | None = field( default=None, metadata={ "name": "MasteredBy", @@ -3683,7 +3682,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastered_date: Optional[str] = field( + mastered_date: str | None = field( default=None, metadata={ "name": "Mastered_Date", @@ -3691,7 +3690,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_color_primaries: Optional[str] = field( + mastering_display_color_primaries: str | None = field( default=None, metadata={ "name": "MasteringDisplay_ColorPrimaries", @@ -3699,7 +3698,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_color_primaries_original: Optional[str] = field( + mastering_display_color_primaries_original: str | None = field( default=None, metadata={ "name": "MasteringDisplay_ColorPrimaries_Original", @@ -3707,7 +3706,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_color_primaries_original_source: Optional[str] = field( + mastering_display_color_primaries_original_source: str | None = field( default=None, metadata={ "name": "MasteringDisplay_ColorPrimaries_Original_Source", @@ -3715,7 +3714,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_color_primaries_source: Optional[str] = field( + mastering_display_color_primaries_source: str | None = field( default=None, metadata={ "name": "MasteringDisplay_ColorPrimaries_Source", @@ -3723,7 +3722,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_luminance: Optional[str] = field( + mastering_display_luminance: str | None = field( default=None, metadata={ "name": "MasteringDisplay_Luminance", @@ -3731,7 +3730,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_luminance_original: Optional[str] = field( + mastering_display_luminance_original: str | None = field( default=None, metadata={ "name": "MasteringDisplay_Luminance_Original", @@ -3739,7 +3738,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_luminance_original_source: Optional[str] = field( + mastering_display_luminance_original_source: str | None = field( default=None, metadata={ "name": "MasteringDisplay_Luminance_Original_Source", @@ -3747,7 +3746,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mastering_display_luminance_source: Optional[str] = field( + mastering_display_luminance_source: str | None = field( default=None, metadata={ "name": "MasteringDisplay_Luminance_Source", @@ -3755,7 +3754,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_channel_positions: Optional[str] = field( + matrix_channel_positions: str | None = field( default=None, metadata={ "name": "Matrix_ChannelPositions", @@ -3763,7 +3762,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_channel_positions_string2: Optional[str] = field( + matrix_channel_positions_string2: str | None = field( default=None, metadata={ "name": "Matrix_ChannelPositions_String2", @@ -3771,7 +3770,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_channels: Optional[int] = field( + matrix_channels: int | None = field( default=None, metadata={ "name": "Matrix_Channels", @@ -3779,7 +3778,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_channels_string: Optional[str] = field( + matrix_channels_string: str | None = field( default=None, metadata={ "name": "Matrix_Channels_String", @@ -3787,14 +3786,14 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_coefficients: Optional[str] = field( + matrix_coefficients: str | None = field( default=None, metadata={ "type": "Element", "namespace": __NAMESPACE__, }, ) - matrix_coefficients_original: Optional[str] = field( + matrix_coefficients_original: str | None = field( default=None, metadata={ "name": "matrix_coefficients_Original", @@ -3802,7 +3801,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_coefficients_original_source: Optional[str] = field( + matrix_coefficients_original_source: str | None = field( default=None, metadata={ "name": "matrix_coefficients_Original_Source", @@ -3810,7 +3809,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_coefficients_source: Optional[str] = field( + matrix_coefficients_source: str | None = field( default=None, metadata={ "name": "matrix_coefficients_Source", @@ -3818,7 +3817,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - matrix_format: Optional[str] = field( + matrix_format: str | None = field( default=None, metadata={ "name": "Matrix_Format", @@ -3826,7 +3825,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_cll: Optional[str] = field( + max_cll: str | None = field( default=None, metadata={ "name": "MaxCLL", @@ -3834,7 +3833,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_cll_original: Optional[str] = field( + max_cll_original: str | None = field( default=None, metadata={ "name": "MaxCLL_Original", @@ -3842,7 +3841,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_cll_original_source: Optional[str] = field( + max_cll_original_source: str | None = field( default=None, metadata={ "name": "MaxCLL_Original_Source", @@ -3850,7 +3849,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_cll_source: Optional[str] = field( + max_cll_source: str | None = field( default=None, metadata={ "name": "MaxCLL_Source", @@ -3858,7 +3857,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_fall: Optional[str] = field( + max_fall: str | None = field( default=None, metadata={ "name": "MaxFALL", @@ -3866,7 +3865,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_fall_original: Optional[str] = field( + max_fall_original: str | None = field( default=None, metadata={ "name": "MaxFALL_Original", @@ -3874,7 +3873,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_fall_original_source: Optional[str] = field( + max_fall_original_source: str | None = field( default=None, metadata={ "name": "MaxFALL_Original_Source", @@ -3882,7 +3881,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - max_fall_source: Optional[str] = field( + max_fall_source: str | None = field( default=None, metadata={ "name": "MaxFALL_Source", @@ -3890,7 +3889,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_codec_list: Optional[str] = field( + menu_codec_list: str | None = field( default=None, metadata={ "name": "Menu_Codec_List", @@ -3898,7 +3897,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_count: Optional[int] = field( + menu_count: int | None = field( default=None, metadata={ "name": "MenuCount", @@ -3906,7 +3905,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_format_list: Optional[str] = field( + menu_format_list: str | None = field( default=None, metadata={ "name": "Menu_Format_List", @@ -3914,7 +3913,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_format_with_hint_list: Optional[str] = field( + menu_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Menu_Format_WithHint_List", @@ -3922,7 +3921,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_id: Optional[str] = field( + menu_id: str | None = field( default=None, metadata={ "name": "MenuID", @@ -3930,7 +3929,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_id_string: Optional[str] = field( + menu_id_string: str | None = field( default=None, metadata={ "name": "MenuID_String", @@ -3938,7 +3937,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - menu_language_list: Optional[str] = field( + menu_language_list: str | None = field( default=None, metadata={ "name": "Menu_Language_List", @@ -3946,7 +3945,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mood: Optional[str] = field( + mood: str | None = field( default=None, metadata={ "name": "Mood", @@ -3954,7 +3953,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - movie_country: Optional[str] = field( + movie_country: str | None = field( default=None, metadata={ "name": "Movie_Country", @@ -3962,7 +3961,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - movie: Optional[str] = field( + movie: str | None = field( default=None, metadata={ "name": "Movie", @@ -3970,7 +3969,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - movie_more: Optional[str] = field( + movie_more: str | None = field( default=None, metadata={ "name": "Movie_More", @@ -3978,7 +3977,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - movie_url: Optional[str] = field( + movie_url: str | None = field( default=None, metadata={ "name": "Movie_Url", @@ -3986,7 +3985,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - multi_view_base_profile: Optional[str] = field( + multi_view_base_profile: str | None = field( default=None, metadata={ "name": "MultiView_BaseProfile", @@ -3994,7 +3993,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - multi_view_count: Optional[str] = field( + multi_view_count: str | None = field( default=None, metadata={ "name": "MultiView_Count", @@ -4002,7 +4001,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - multi_view_layout: Optional[str] = field( + multi_view_layout: str | None = field( default=None, metadata={ "name": "MultiView_Layout", @@ -4010,7 +4009,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - music_by: Optional[str] = field( + music_by: str | None = field( default=None, metadata={ "name": "MusicBy", @@ -4018,7 +4017,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - muxing_mode: Optional[str] = field( + muxing_mode: str | None = field( default=None, metadata={ "name": "MuxingMode", @@ -4026,7 +4025,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - muxing_mode_more_info: Optional[str] = field( + muxing_mode_more_info: str | None = field( default=None, metadata={ "name": "MuxingMode_MoreInfo", @@ -4034,7 +4033,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - network_name: Optional[str] = field( + network_name: str | None = field( default=None, metadata={ "name": "NetworkName", @@ -4042,7 +4041,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_album: Optional[str] = field( + original_album: str | None = field( default=None, metadata={ "name": "Original_Album", @@ -4050,7 +4049,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_lyricist: Optional[str] = field( + original_lyricist: str | None = field( default=None, metadata={ "name": "Original_Lyricist", @@ -4058,7 +4057,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_movie: Optional[str] = field( + original_movie: str | None = field( default=None, metadata={ "name": "Original_Movie", @@ -4066,7 +4065,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_network_name: Optional[str] = field( + original_network_name: str | None = field( default=None, metadata={ "name": "Original_NetworkName", @@ -4074,7 +4073,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - mediaarea_net_mediainfo_original_network_name: Optional[str] = field( + mediaarea_net_mediainfo_original_network_name: str | None = field( default=None, metadata={ "name": "OriginalNetworkName", @@ -4082,7 +4081,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_part: Optional[str] = field( + original_part: str | None = field( default=None, metadata={ "name": "Original_Part", @@ -4090,7 +4089,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_performer: Optional[str] = field( + original_performer: str | None = field( default=None, metadata={ "name": "Original_Performer", @@ -4098,7 +4097,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_released_date: Optional[str] = field( + original_released_date: str | None = field( default=None, metadata={ "name": "Original_Released_Date", @@ -4106,7 +4105,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form_cropped: Optional[str] = field( + original_source_form_cropped: str | None = field( default=None, metadata={ "name": "OriginalSourceForm_Cropped", @@ -4114,7 +4113,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form_distributed_by: Optional[str] = field( + original_source_form_distributed_by: str | None = field( default=None, metadata={ "name": "OriginalSourceForm_DistributedBy", @@ -4122,7 +4121,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form: Optional[str] = field( + original_source_form: str | None = field( default=None, metadata={ "name": "OriginalSourceForm", @@ -4130,7 +4129,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form_name: Optional[str] = field( + original_source_form_name: str | None = field( default=None, metadata={ "name": "OriginalSourceForm_Name", @@ -4138,7 +4137,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form_num_colors: Optional[str] = field( + original_source_form_num_colors: str | None = field( default=None, metadata={ "name": "OriginalSourceForm_NumColors", @@ -4146,7 +4145,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_form_sharpness: Optional[str] = field( + original_source_form_sharpness: str | None = field( default=None, metadata={ "name": "OriginalSourceForm_Sharpness", @@ -4154,7 +4153,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_medium_id: Optional[str] = field( + original_source_medium_id: str | None = field( default=None, metadata={ "name": "OriginalSourceMedium_ID", @@ -4162,7 +4161,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_medium_id_string: Optional[str] = field( + original_source_medium_id_string: str | None = field( default=None, metadata={ "name": "OriginalSourceMedium_ID_String", @@ -4170,7 +4169,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_source_medium: Optional[str] = field( + original_source_medium: str | None = field( default=None, metadata={ "name": "OriginalSourceMedium", @@ -4178,7 +4177,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - original_track: Optional[str] = field( + original_track: str | None = field( default=None, metadata={ "name": "Original_Track", @@ -4186,7 +4185,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - other_codec_list: Optional[str] = field( + other_codec_list: str | None = field( default=None, metadata={ "name": "Other_Codec_List", @@ -4194,7 +4193,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - other_count: Optional[int] = field( + other_count: int | None = field( default=None, metadata={ "name": "OtherCount", @@ -4202,7 +4201,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - other_format_list: Optional[str] = field( + other_format_list: str | None = field( default=None, metadata={ "name": "Other_Format_List", @@ -4210,7 +4209,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - other_format_with_hint_list: Optional[str] = field( + other_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Other_Format_WithHint_List", @@ -4218,7 +4217,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - other_language_list: Optional[str] = field( + other_language_list: str | None = field( default=None, metadata={ "name": "Other_Language_List", @@ -4226,7 +4225,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_maximum: Optional[float] = field( + overall_bit_rate_maximum: float | None = field( default=None, metadata={ "name": "OverallBitRate_Maximum", @@ -4234,7 +4233,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_maximum_string: Optional[str] = field( + overall_bit_rate_maximum_string: str | None = field( default=None, metadata={ "name": "OverallBitRate_Maximum_String", @@ -4242,7 +4241,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_minimum: Optional[float] = field( + overall_bit_rate_minimum: float | None = field( default=None, metadata={ "name": "OverallBitRate_Minimum", @@ -4250,7 +4249,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_minimum_string: Optional[str] = field( + overall_bit_rate_minimum_string: str | None = field( default=None, metadata={ "name": "OverallBitRate_Minimum_String", @@ -4258,7 +4257,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate: Optional[float] = field( + overall_bit_rate: float | None = field( default=None, metadata={ "name": "OverallBitRate", @@ -4266,7 +4265,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_mode: Optional[str] = field( + overall_bit_rate_mode: str | None = field( default=None, metadata={ "name": "OverallBitRate_Mode", @@ -4274,7 +4273,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_mode_string: Optional[str] = field( + overall_bit_rate_mode_string: str | None = field( default=None, metadata={ "name": "OverallBitRate_Mode_String", @@ -4282,7 +4281,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_nominal: Optional[float] = field( + overall_bit_rate_nominal: float | None = field( default=None, metadata={ "name": "OverallBitRate_Nominal", @@ -4290,7 +4289,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_nominal_string: Optional[str] = field( + overall_bit_rate_nominal_string: str | None = field( default=None, metadata={ "name": "OverallBitRate_Nominal_String", @@ -4298,7 +4297,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - overall_bit_rate_string: Optional[str] = field( + overall_bit_rate_string: str | None = field( default=None, metadata={ "name": "OverallBitRate_String", @@ -4306,7 +4305,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - owner: Optional[str] = field( + owner: str | None = field( default=None, metadata={ "name": "Owner", @@ -4314,7 +4313,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - package_name: Optional[str] = field( + package_name: str | None = field( default=None, metadata={ "name": "PackageName", @@ -4322,7 +4321,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - part: Optional[str] = field( + part: str | None = field( default=None, metadata={ "name": "Part", @@ -4330,7 +4329,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - part_position: Optional[int] = field( + part_position: int | None = field( default=None, metadata={ "name": "Part_Position", @@ -4338,7 +4337,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - part_position_total: Optional[int] = field( + part_position_total: int | None = field( default=None, metadata={ "name": "Part_Position_Total", @@ -4346,7 +4345,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - performer: Optional[str] = field( + performer: str | None = field( default=None, metadata={ "name": "Performer", @@ -4354,7 +4353,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - performer_sort: Optional[str] = field( + performer_sort: str | None = field( default=None, metadata={ "name": "Performer_Sort", @@ -4362,7 +4361,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - performer_url: Optional[str] = field( + performer_url: str | None = field( default=None, metadata={ "name": "Performer_Url", @@ -4370,7 +4369,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - period: Optional[str] = field( + period: str | None = field( default=None, metadata={ "name": "Period", @@ -4378,7 +4377,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio_clean_aperture: Optional[float] = field( + pixel_aspect_ratio_clean_aperture: float | None = field( default=None, metadata={ "name": "PixelAspectRatio_CleanAperture", @@ -4386,7 +4385,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio_clean_aperture_string: Optional[str] = field( + pixel_aspect_ratio_clean_aperture_string: str | None = field( default=None, metadata={ "name": "PixelAspectRatio_CleanAperture_String", @@ -4394,7 +4393,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio: Optional[float] = field( + pixel_aspect_ratio: float | None = field( default=None, metadata={ "name": "PixelAspectRatio", @@ -4402,7 +4401,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio_original: Optional[float] = field( + pixel_aspect_ratio_original: float | None = field( default=None, metadata={ "name": "PixelAspectRatio_Original", @@ -4410,7 +4409,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio_original_string: Optional[str] = field( + pixel_aspect_ratio_original_string: str | None = field( default=None, metadata={ "name": "PixelAspectRatio_Original_String", @@ -4418,7 +4417,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - pixel_aspect_ratio_string: Optional[str] = field( + pixel_aspect_ratio_string: str | None = field( default=None, metadata={ "name": "PixelAspectRatio_String", @@ -4426,7 +4425,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - played_count: Optional[int] = field( + played_count: int | None = field( default=None, metadata={ "name": "Played_Count", @@ -4434,7 +4433,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - played_first_date: Optional[str] = field( + played_first_date: str | None = field( default=None, metadata={ "name": "Played_First_Date", @@ -4442,7 +4441,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - played_last_date: Optional[str] = field( + played_last_date: str | None = field( default=None, metadata={ "name": "Played_Last_Date", @@ -4450,7 +4449,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - podcast_category: Optional[str] = field( + podcast_category: str | None = field( default=None, metadata={ "name": "PodcastCategory", @@ -4458,7 +4457,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - producer_copyright: Optional[str] = field( + producer_copyright: str | None = field( default=None, metadata={ "name": "Producer_Copyright", @@ -4466,7 +4465,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - producer: Optional[str] = field( + producer: str | None = field( default=None, metadata={ "name": "Producer", @@ -4474,7 +4473,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - production_designer: Optional[str] = field( + production_designer: str | None = field( default=None, metadata={ "name": "ProductionDesigner", @@ -4482,7 +4481,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - production_studio: Optional[str] = field( + production_studio: str | None = field( default=None, metadata={ "name": "ProductionStudio", @@ -4490,7 +4489,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - publisher: Optional[str] = field( + publisher: str | None = field( default=None, metadata={ "name": "Publisher", @@ -4498,7 +4497,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - publisher_url: Optional[str] = field( + publisher_url: str | None = field( default=None, metadata={ "name": "Publisher_URL", @@ -4506,7 +4505,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - rating: Optional[str] = field( + rating: str | None = field( default=None, metadata={ "name": "Rating", @@ -4514,7 +4513,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - recorded_date: Optional[str] = field( + recorded_date: str | None = field( default=None, metadata={ "name": "Recorded_Date", @@ -4522,7 +4521,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - recorded_location: Optional[str] = field( + recorded_location: str | None = field( default=None, metadata={ "name": "Recorded_Location", @@ -4530,7 +4529,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - reel: Optional[str] = field( + reel: str | None = field( default=None, metadata={ "name": "Reel", @@ -4538,7 +4537,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - reel_position: Optional[int] = field( + reel_position: int | None = field( default=None, metadata={ "name": "Reel_Position", @@ -4546,7 +4545,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - reel_position_total: Optional[int] = field( + reel_position_total: int | None = field( default=None, metadata={ "name": "Reel_Position_Total", @@ -4554,7 +4553,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - released_date: Optional[str] = field( + released_date: str | None = field( default=None, metadata={ "name": "Released_Date", @@ -4562,7 +4561,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - remixed_by: Optional[str] = field( + remixed_by: str | None = field( default=None, metadata={ "name": "RemixedBy", @@ -4570,7 +4569,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - replay_gain_gain: Optional[str] = field( + replay_gain_gain: str | None = field( default=None, metadata={ "name": "ReplayGain_Gain", @@ -4578,7 +4577,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - replay_gain_gain_string: Optional[str] = field( + replay_gain_gain_string: str | None = field( default=None, metadata={ "name": "ReplayGain_Gain_String", @@ -4586,7 +4585,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - replay_gain_peak: Optional[str] = field( + replay_gain_peak: str | None = field( default=None, metadata={ "name": "ReplayGain_Peak", @@ -4594,7 +4593,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - resolution: Optional[int] = field( + resolution: int | None = field( default=None, metadata={ "name": "Resolution", @@ -4602,7 +4601,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - resolution_string: Optional[str] = field( + resolution_string: str | None = field( default=None, metadata={ "name": "Resolution_String", @@ -4610,7 +4609,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - rotation: Optional[str] = field( + rotation: str | None = field( default=None, metadata={ "name": "Rotation", @@ -4618,7 +4617,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - rotation_string: Optional[str] = field( + rotation_string: str | None = field( default=None, metadata={ "name": "Rotation_String", @@ -4626,7 +4625,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sampled_height: Optional[int] = field( + sampled_height: int | None = field( default=None, metadata={ "name": "Sampled_Height", @@ -4634,7 +4633,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sampled_width: Optional[int] = field( + sampled_width: int | None = field( default=None, metadata={ "name": "Sampled_Width", @@ -4642,7 +4641,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - samples_per_frame: Optional[float] = field( + samples_per_frame: float | None = field( default=None, metadata={ "name": "SamplesPerFrame", @@ -4650,7 +4649,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sampling_count: Optional[int] = field( + sampling_count: int | None = field( default=None, metadata={ "name": "SamplingCount", @@ -4658,7 +4657,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sampling_rate: Optional[float] = field( + sampling_rate: float | None = field( default=None, metadata={ "name": "SamplingRate", @@ -4666,7 +4665,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sampling_rate_string: Optional[str] = field( + sampling_rate_string: str | None = field( default=None, metadata={ "name": "SamplingRate_String", @@ -4674,7 +4673,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order: Optional[str] = field( + scan_order: str | None = field( default=None, metadata={ "name": "ScanOrder", @@ -4682,7 +4681,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_original: Optional[str] = field( + scan_order_original: str | None = field( default=None, metadata={ "name": "ScanOrder_Original", @@ -4690,7 +4689,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_original_string: Optional[str] = field( + scan_order_original_string: str | None = field( default=None, metadata={ "name": "ScanOrder_Original_String", @@ -4698,7 +4697,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_stored_displayed_inverted: Optional[str] = field( + scan_order_stored_displayed_inverted: str | None = field( default=None, metadata={ "name": "ScanOrder_StoredDisplayedInverted", @@ -4706,7 +4705,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_stored: Optional[str] = field( + scan_order_stored: str | None = field( default=None, metadata={ "name": "ScanOrder_Stored", @@ -4714,7 +4713,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_stored_string: Optional[str] = field( + scan_order_stored_string: str | None = field( default=None, metadata={ "name": "ScanOrder_Stored_String", @@ -4722,7 +4721,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_order_string: Optional[str] = field( + scan_order_string: str | None = field( default=None, metadata={ "name": "ScanOrder_String", @@ -4730,7 +4729,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type: Optional[str] = field( + scan_type: str | None = field( default=None, metadata={ "name": "ScanType", @@ -4738,7 +4737,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_original: Optional[str] = field( + scan_type_original: str | None = field( default=None, metadata={ "name": "ScanType_Original", @@ -4746,7 +4745,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_original_string: Optional[str] = field( + scan_type_original_string: str | None = field( default=None, metadata={ "name": "ScanType_Original_String", @@ -4754,7 +4753,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_store_method_fields_per_block: Optional[str] = field( + scan_type_store_method_fields_per_block: str | None = field( default=None, metadata={ "name": "ScanType_StoreMethod_FieldsPerBlock", @@ -4762,7 +4761,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_store_method: Optional[str] = field( + scan_type_store_method: str | None = field( default=None, metadata={ "name": "ScanType_StoreMethod", @@ -4770,7 +4769,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_store_method_string: Optional[str] = field( + scan_type_store_method_string: str | None = field( default=None, metadata={ "name": "ScanType_StoreMethod_String", @@ -4778,7 +4777,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - scan_type_string: Optional[str] = field( + scan_type_string: str | None = field( default=None, metadata={ "name": "ScanType_String", @@ -4786,7 +4785,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - screenplay_by: Optional[str] = field( + screenplay_by: str | None = field( default=None, metadata={ "name": "ScreenplayBy", @@ -4794,7 +4793,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - season: Optional[str] = field( + season: str | None = field( default=None, metadata={ "name": "Season", @@ -4802,7 +4801,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - season_position: Optional[int] = field( + season_position: int | None = field( default=None, metadata={ "name": "Season_Position", @@ -4810,7 +4809,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - season_position_total: Optional[int] = field( + season_position_total: int | None = field( default=None, metadata={ "name": "Season_Position_Total", @@ -4818,7 +4817,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_channel: Optional[str] = field( + service_channel: str | None = field( default=None, metadata={ "name": "ServiceChannel", @@ -4826,7 +4825,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_kind: Optional[str] = field( + service_kind: str | None = field( default=None, metadata={ "name": "ServiceKind", @@ -4834,7 +4833,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_kind_string: Optional[str] = field( + service_kind_string: str | None = field( default=None, metadata={ "name": "ServiceKind_String", @@ -4842,7 +4841,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_name: Optional[str] = field( + service_name: str | None = field( default=None, metadata={ "name": "ServiceName", @@ -4850,7 +4849,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_provider: Optional[str] = field( + service_provider: str | None = field( default=None, metadata={ "name": "ServiceProvider", @@ -4858,7 +4857,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_provider_url: Optional[str] = field( + service_provider_url: str | None = field( default=None, metadata={ "name": "ServiceProvider_Url", @@ -4866,7 +4865,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_type: Optional[str] = field( + service_type: str | None = field( default=None, metadata={ "name": "ServiceType", @@ -4874,7 +4873,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - service_url: Optional[str] = field( + service_url: str | None = field( default=None, metadata={ "name": "Service_Url", @@ -4882,7 +4881,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sound_engineer: Optional[str] = field( + sound_engineer: str | None = field( default=None, metadata={ "name": "SoundEngineer", @@ -4890,7 +4889,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame: Optional[float] = field( + source_duration_first_frame: float | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame", @@ -4898,7 +4897,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string1: Optional[str] = field( + source_duration_first_frame_string1: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String1", @@ -4906,7 +4905,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string2: Optional[str] = field( + source_duration_first_frame_string2: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String2", @@ -4914,7 +4913,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string3: Optional[str] = field( + source_duration_first_frame_string3: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String3", @@ -4922,7 +4921,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string4: Optional[str] = field( + source_duration_first_frame_string4: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String4", @@ -4930,7 +4929,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string5: Optional[str] = field( + source_duration_first_frame_string5: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String5", @@ -4938,7 +4937,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_first_frame_string: Optional[str] = field( + source_duration_first_frame_string: str | None = field( default=None, metadata={ "name": "Source_Duration_FirstFrame_String", @@ -4946,7 +4945,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame: Optional[float] = field( + source_duration_last_frame: float | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame", @@ -4954,7 +4953,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string1: Optional[str] = field( + source_duration_last_frame_string1: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String1", @@ -4962,7 +4961,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string2: Optional[str] = field( + source_duration_last_frame_string2: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String2", @@ -4970,7 +4969,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string3: Optional[str] = field( + source_duration_last_frame_string3: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String3", @@ -4978,7 +4977,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string4: Optional[str] = field( + source_duration_last_frame_string4: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String4", @@ -4986,7 +4985,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string5: Optional[str] = field( + source_duration_last_frame_string5: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String5", @@ -4994,7 +4993,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_last_frame_string: Optional[str] = field( + source_duration_last_frame_string: str | None = field( default=None, metadata={ "name": "Source_Duration_LastFrame_String", @@ -5002,7 +5001,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration: Optional[float] = field( + source_duration: float | None = field( default=None, metadata={ "name": "Source_Duration", @@ -5010,7 +5009,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string1: Optional[str] = field( + source_duration_string1: str | None = field( default=None, metadata={ "name": "Source_Duration_String1", @@ -5018,7 +5017,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string2: Optional[str] = field( + source_duration_string2: str | None = field( default=None, metadata={ "name": "Source_Duration_String2", @@ -5026,7 +5025,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string3: Optional[str] = field( + source_duration_string3: str | None = field( default=None, metadata={ "name": "Source_Duration_String3", @@ -5034,7 +5033,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string4: Optional[str] = field( + source_duration_string4: str | None = field( default=None, metadata={ "name": "Source_Duration_String4", @@ -5042,7 +5041,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string5: Optional[str] = field( + source_duration_string5: str | None = field( default=None, metadata={ "name": "Source_Duration_String5", @@ -5050,7 +5049,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_duration_string: Optional[str] = field( + source_duration_string: str | None = field( default=None, metadata={ "name": "Source_Duration_String", @@ -5058,7 +5057,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_frame_count: Optional[int] = field( + source_frame_count: int | None = field( default=None, metadata={ "name": "Source_FrameCount", @@ -5066,7 +5065,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_sampling_count: Optional[int] = field( + source_sampling_count: int | None = field( default=None, metadata={ "name": "Source_SamplingCount", @@ -5074,7 +5073,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded: Optional[int] = field( + source_stream_size_encoded: int | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded", @@ -5082,7 +5081,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_proportion: Optional[str] = field( + source_stream_size_encoded_proportion: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_Proportion", @@ -5090,7 +5089,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string1: Optional[str] = field( + source_stream_size_encoded_string1: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String1", @@ -5098,7 +5097,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string2: Optional[str] = field( + source_stream_size_encoded_string2: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String2", @@ -5106,7 +5105,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string3: Optional[str] = field( + source_stream_size_encoded_string3: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String3", @@ -5114,7 +5113,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string4: Optional[str] = field( + source_stream_size_encoded_string4: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String4", @@ -5122,7 +5121,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string5: Optional[str] = field( + source_stream_size_encoded_string5: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String5", @@ -5130,7 +5129,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_encoded_string: Optional[str] = field( + source_stream_size_encoded_string: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Encoded_String", @@ -5138,7 +5137,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size: Optional[int] = field( + source_stream_size: int | None = field( default=None, metadata={ "name": "Source_StreamSize", @@ -5146,7 +5145,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_proportion: Optional[str] = field( + source_stream_size_proportion: str | None = field( default=None, metadata={ "name": "Source_StreamSize_Proportion", @@ -5154,7 +5153,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string1: Optional[str] = field( + source_stream_size_string1: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String1", @@ -5162,7 +5161,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string2: Optional[str] = field( + source_stream_size_string2: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String2", @@ -5170,7 +5169,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string3: Optional[str] = field( + source_stream_size_string3: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String3", @@ -5178,7 +5177,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string4: Optional[str] = field( + source_stream_size_string4: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String4", @@ -5186,7 +5185,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string5: Optional[str] = field( + source_stream_size_string5: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String5", @@ -5194,7 +5193,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - source_stream_size_string: Optional[str] = field( + source_stream_size_string: str | None = field( default=None, metadata={ "name": "Source_StreamSize_String", @@ -5202,7 +5201,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - standard: Optional[str] = field( + standard: str | None = field( default=None, metadata={ "name": "Standard", @@ -5210,7 +5209,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - status: Optional[int] = field( + status: int | None = field( default=None, metadata={ "name": "Status", @@ -5218,7 +5217,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stored_height: Optional[int] = field( + stored_height: int | None = field( default=None, metadata={ "name": "Stored_Height", @@ -5226,7 +5225,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stored_width: Optional[int] = field( + stored_width: int | None = field( default=None, metadata={ "name": "Stored_Width", @@ -5234,7 +5233,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_count: Optional[int] = field( + stream_count: int | None = field( default=None, metadata={ "name": "StreamCount", @@ -5242,7 +5241,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_kind_id: Optional[int] = field( + stream_kind_id: int | None = field( default=None, metadata={ "name": "StreamKindID", @@ -5250,7 +5249,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_kind: Optional[str] = field( + stream_kind: str | None = field( default=None, metadata={ "name": "StreamKind", @@ -5258,7 +5257,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_kind_pos: Optional[int] = field( + stream_kind_pos: int | None = field( default=None, metadata={ "name": "StreamKindPos", @@ -5266,7 +5265,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_kind_string: Optional[str] = field( + stream_kind_string: str | None = field( default=None, metadata={ "name": "StreamKind_String", @@ -5274,7 +5273,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_order: Optional[str] = field( + stream_order: str | None = field( default=None, metadata={ "name": "StreamOrder", @@ -5282,7 +5281,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed: Optional[int] = field( + stream_size_demuxed: int | None = field( default=None, metadata={ "name": "StreamSize_Demuxed", @@ -5290,7 +5289,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string1: Optional[str] = field( + stream_size_demuxed_string1: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String1", @@ -5298,7 +5297,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string2: Optional[str] = field( + stream_size_demuxed_string2: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String2", @@ -5306,7 +5305,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string3: Optional[str] = field( + stream_size_demuxed_string3: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String3", @@ -5314,7 +5313,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string4: Optional[str] = field( + stream_size_demuxed_string4: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String4", @@ -5322,7 +5321,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string5: Optional[str] = field( + stream_size_demuxed_string5: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String5", @@ -5330,7 +5329,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_demuxed_string: Optional[str] = field( + stream_size_demuxed_string: str | None = field( default=None, metadata={ "name": "StreamSize_Demuxed_String", @@ -5338,7 +5337,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded: Optional[int] = field( + stream_size_encoded: int | None = field( default=None, metadata={ "name": "StreamSize_Encoded", @@ -5346,7 +5345,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_proportion: Optional[str] = field( + stream_size_encoded_proportion: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_Proportion", @@ -5354,7 +5353,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string1: Optional[str] = field( + stream_size_encoded_string1: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String1", @@ -5362,7 +5361,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string2: Optional[str] = field( + stream_size_encoded_string2: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String2", @@ -5370,7 +5369,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string3: Optional[str] = field( + stream_size_encoded_string3: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String3", @@ -5378,7 +5377,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string4: Optional[str] = field( + stream_size_encoded_string4: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String4", @@ -5386,7 +5385,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string5: Optional[str] = field( + stream_size_encoded_string5: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String5", @@ -5394,7 +5393,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_encoded_string: Optional[str] = field( + stream_size_encoded_string: str | None = field( default=None, metadata={ "name": "StreamSize_Encoded_String", @@ -5402,7 +5401,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size: Optional[int] = field( + stream_size: int | None = field( default=None, metadata={ "name": "StreamSize", @@ -5410,7 +5409,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_proportion: Optional[str] = field( + stream_size_proportion: str | None = field( default=None, metadata={ "name": "StreamSize_Proportion", @@ -5418,7 +5417,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string1: Optional[str] = field( + stream_size_string1: str | None = field( default=None, metadata={ "name": "StreamSize_String1", @@ -5426,7 +5425,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string2: Optional[str] = field( + stream_size_string2: str | None = field( default=None, metadata={ "name": "StreamSize_String2", @@ -5434,7 +5433,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string3: Optional[str] = field( + stream_size_string3: str | None = field( default=None, metadata={ "name": "StreamSize_String3", @@ -5442,7 +5441,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string4: Optional[str] = field( + stream_size_string4: str | None = field( default=None, metadata={ "name": "StreamSize_String4", @@ -5450,7 +5449,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string5: Optional[str] = field( + stream_size_string5: str | None = field( default=None, metadata={ "name": "StreamSize_String5", @@ -5458,7 +5457,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - stream_size_string: Optional[str] = field( + stream_size_string: str | None = field( default=None, metadata={ "name": "StreamSize_String", @@ -5466,7 +5465,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - subject: Optional[str] = field( + subject: str | None = field( default=None, metadata={ "name": "Subject", @@ -5474,7 +5473,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - sub_track: Optional[str] = field( + sub_track: str | None = field( default=None, metadata={ "name": "SubTrack", @@ -5482,7 +5481,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - summary: Optional[str] = field( + summary: str | None = field( default=None, metadata={ "name": "Summary", @@ -5490,7 +5489,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - synopsis: Optional[str] = field( + synopsis: str | None = field( default=None, metadata={ "name": "Synopsis", @@ -5498,7 +5497,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - tagged_application: Optional[str] = field( + tagged_application: str | None = field( default=None, metadata={ "name": "Tagged_Application", @@ -5506,7 +5505,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - tagged_date: Optional[str] = field( + tagged_date: str | None = field( default=None, metadata={ "name": "Tagged_Date", @@ -5514,7 +5513,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - terms_of_use: Optional[str] = field( + terms_of_use: str | None = field( default=None, metadata={ "name": "TermsOfUse", @@ -5522,7 +5521,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - text_codec_list: Optional[str] = field( + text_codec_list: str | None = field( default=None, metadata={ "name": "Text_Codec_List", @@ -5530,7 +5529,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - text_count: Optional[int] = field( + text_count: int | None = field( default=None, metadata={ "name": "TextCount", @@ -5538,7 +5537,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - text_format_list: Optional[str] = field( + text_format_list: str | None = field( default=None, metadata={ "name": "Text_Format_List", @@ -5546,7 +5545,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - text_format_with_hint_list: Optional[str] = field( + text_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Text_Format_WithHint_List", @@ -5554,7 +5553,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - text_language_list: Optional[str] = field( + text_language_list: str | None = field( default=None, metadata={ "name": "Text_Language_List", @@ -5562,7 +5561,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - thanks_to: Optional[str] = field( + thanks_to: str | None = field( default=None, metadata={ "name": "ThanksTo", @@ -5570,7 +5569,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_drop_frame: Optional[str] = field( + time_code_drop_frame: str | None = field( default=None, metadata={ "name": "TimeCode_DropFrame", @@ -5578,7 +5577,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_first_frame: Optional[str] = field( + time_code_first_frame: str | None = field( default=None, metadata={ "name": "TimeCode_FirstFrame", @@ -5586,7 +5585,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_last_frame: Optional[str] = field( + time_code_last_frame: str | None = field( default=None, metadata={ "name": "TimeCode_LastFrame", @@ -5594,7 +5593,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_max_frame_number: Optional[str] = field( + time_code_max_frame_number: str | None = field( default=None, metadata={ "name": "TimeCode_MaxFrameNumber", @@ -5602,7 +5601,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_max_frame_number_theory: Optional[str] = field( + time_code_max_frame_number_theory: str | None = field( default=None, metadata={ "name": "TimeCode_MaxFrameNumber_Theory", @@ -5610,7 +5609,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_settings: Optional[str] = field( + time_code_settings: str | None = field( default=None, metadata={ "name": "TimeCode_Settings", @@ -5618,7 +5617,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_source: Optional[str] = field( + time_code_source: str | None = field( default=None, metadata={ "name": "TimeCode_Source", @@ -5626,7 +5625,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_striped: Optional[str] = field( + time_code_striped: str | None = field( default=None, metadata={ "name": "TimeCode_Striped", @@ -5634,7 +5633,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_striped_string: Optional[str] = field( + time_code_striped_string: str | None = field( default=None, metadata={ "name": "TimeCode_Striped_String", @@ -5642,7 +5641,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_stripped: Optional[str] = field( + time_code_stripped: str | None = field( default=None, metadata={ "name": "TimeCode_Stripped", @@ -5650,7 +5649,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_code_stripped_string: Optional[str] = field( + time_code_stripped_string: str | None = field( default=None, metadata={ "name": "TimeCode_Stripped_String", @@ -5658,7 +5657,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame: Optional[float] = field( + time_stamp_first_frame: float | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame", @@ -5666,7 +5665,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string1: Optional[str] = field( + time_stamp_first_frame_string1: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String1", @@ -5674,7 +5673,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string2: Optional[str] = field( + time_stamp_first_frame_string2: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String2", @@ -5682,7 +5681,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string3: Optional[str] = field( + time_stamp_first_frame_string3: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String3", @@ -5690,7 +5689,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string4: Optional[str] = field( + time_stamp_first_frame_string4: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String4", @@ -5698,7 +5697,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string5: Optional[str] = field( + time_stamp_first_frame_string5: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String5", @@ -5706,7 +5705,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_stamp_first_frame_string: Optional[str] = field( + time_stamp_first_frame_string: str | None = field( default=None, metadata={ "name": "TimeStamp_FirstFrame_String", @@ -5714,7 +5713,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_zone: Optional[str] = field( + time_zone: str | None = field( default=None, metadata={ "name": "TimeZone", @@ -5722,7 +5721,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - time_zones: Optional[str] = field( + time_zones: str | None = field( default=None, metadata={ "name": "TimeZones", @@ -5730,7 +5729,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - title: Optional[str] = field( + title: str | None = field( default=None, metadata={ "name": "Title", @@ -5738,7 +5737,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - title_more: Optional[str] = field( + title_more: str | None = field( default=None, metadata={ "name": "Title_More", @@ -5746,7 +5745,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - title_url: Optional[str] = field( + title_url: str | None = field( default=None, metadata={ "name": "Title_Url", @@ -5754,7 +5753,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track: Optional[str] = field( + track: str | None = field( default=None, metadata={ "name": "Track", @@ -5762,7 +5761,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track_more: Optional[str] = field( + track_more: str | None = field( default=None, metadata={ "name": "Track_More", @@ -5770,7 +5769,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track_position: Optional[int] = field( + track_position: int | None = field( default=None, metadata={ "name": "Track_Position", @@ -5778,7 +5777,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track_position_total: Optional[int] = field( + track_position_total: int | None = field( default=None, metadata={ "name": "Track_Position_Total", @@ -5786,7 +5785,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track_sort: Optional[str] = field( + track_sort: str | None = field( default=None, metadata={ "name": "Track_Sort", @@ -5794,7 +5793,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - track_url: Optional[str] = field( + track_url: str | None = field( default=None, metadata={ "name": "Track_Url", @@ -5802,14 +5801,14 @@ class Meta: "namespace": __NAMESPACE__, }, ) - transfer_characteristics: Optional[str] = field( + transfer_characteristics: str | None = field( default=None, metadata={ "type": "Element", "namespace": __NAMESPACE__, }, ) - transfer_characteristics_original: Optional[str] = field( + transfer_characteristics_original: str | None = field( default=None, metadata={ "name": "transfer_characteristics_Original", @@ -5817,7 +5816,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - transfer_characteristics_original_source: Optional[str] = field( + transfer_characteristics_original_source: str | None = field( default=None, metadata={ "name": "transfer_characteristics_Original_Source", @@ -5825,7 +5824,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - transfer_characteristics_source: Optional[str] = field( + transfer_characteristics_source: str | None = field( default=None, metadata={ "name": "transfer_characteristics_Source", @@ -5833,7 +5832,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - type_value: Optional[str] = field( + type_value: str | None = field( default=None, metadata={ "name": "Type", @@ -5841,7 +5840,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - umid: Optional[str] = field( + umid: str | None = field( default=None, metadata={ "name": "UMID", @@ -5849,7 +5848,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - unique_id: Optional[str] = field( + unique_id: str | None = field( default=None, metadata={ "name": "UniqueID", @@ -5857,7 +5856,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - unique_id_string: Optional[str] = field( + unique_id_string: str | None = field( default=None, metadata={ "name": "UniqueID_String", @@ -5865,7 +5864,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - universal_ad_id_registry: Optional[str] = field( + universal_ad_id_registry: str | None = field( default=None, metadata={ "name": "UniversalAdID_Registry", @@ -5873,7 +5872,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - universal_ad_id_string: Optional[str] = field( + universal_ad_id_string: str | None = field( default=None, metadata={ "name": "UniversalAdID_String", @@ -5881,7 +5880,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - universal_ad_id_value: Optional[str] = field( + universal_ad_id_value: str | None = field( default=None, metadata={ "name": "UniversalAdID_Value", @@ -5889,7 +5888,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay: Optional[int] = field( + video0_delay: int | None = field( default=None, metadata={ "name": "Video0_Delay", @@ -5897,7 +5896,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string1: Optional[str] = field( + video0_delay_string1: str | None = field( default=None, metadata={ "name": "Video0_Delay_String1", @@ -5905,7 +5904,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string2: Optional[str] = field( + video0_delay_string2: str | None = field( default=None, metadata={ "name": "Video0_Delay_String2", @@ -5913,7 +5912,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string3: Optional[str] = field( + video0_delay_string3: str | None = field( default=None, metadata={ "name": "Video0_Delay_String3", @@ -5921,7 +5920,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string4: Optional[str] = field( + video0_delay_string4: str | None = field( default=None, metadata={ "name": "Video0_Delay_String4", @@ -5929,7 +5928,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string5: Optional[str] = field( + video0_delay_string5: str | None = field( default=None, metadata={ "name": "Video0_Delay_String5", @@ -5937,7 +5936,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video0_delay_string: Optional[str] = field( + video0_delay_string: str | None = field( default=None, metadata={ "name": "Video0_Delay_String", @@ -5945,7 +5944,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_codec_list: Optional[str] = field( + video_codec_list: str | None = field( default=None, metadata={ "name": "Video_Codec_List", @@ -5953,7 +5952,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_count: Optional[int] = field( + video_count: int | None = field( default=None, metadata={ "name": "VideoCount", @@ -5961,7 +5960,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay: Optional[float] = field( + video_delay: float | None = field( default=None, metadata={ "name": "Video_Delay", @@ -5969,7 +5968,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string1: Optional[str] = field( + video_delay_string1: str | None = field( default=None, metadata={ "name": "Video_Delay_String1", @@ -5977,7 +5976,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string2: Optional[str] = field( + video_delay_string2: str | None = field( default=None, metadata={ "name": "Video_Delay_String2", @@ -5985,7 +5984,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string3: Optional[str] = field( + video_delay_string3: str | None = field( default=None, metadata={ "name": "Video_Delay_String3", @@ -5993,7 +5992,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string4: Optional[str] = field( + video_delay_string4: str | None = field( default=None, metadata={ "name": "Video_Delay_String4", @@ -6001,7 +6000,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string5: Optional[str] = field( + video_delay_string5: str | None = field( default=None, metadata={ "name": "Video_Delay_String5", @@ -6009,7 +6008,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_delay_string: Optional[str] = field( + video_delay_string: str | None = field( default=None, metadata={ "name": "Video_Delay_String", @@ -6017,7 +6016,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_format_list: Optional[str] = field( + video_format_list: str | None = field( default=None, metadata={ "name": "Video_Format_List", @@ -6025,7 +6024,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_format_with_hint_list: Optional[str] = field( + video_format_with_hint_list: str | None = field( default=None, metadata={ "name": "Video_Format_WithHint_List", @@ -6033,7 +6032,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - video_language_list: Optional[str] = field( + video_language_list: str | None = field( default=None, metadata={ "name": "Video_Language_List", @@ -6041,7 +6040,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_clean_aperture: Optional[int] = field( + width_clean_aperture: int | None = field( default=None, metadata={ "name": "Width_CleanAperture", @@ -6049,7 +6048,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_clean_aperture_string: Optional[str] = field( + width_clean_aperture_string: str | None = field( default=None, metadata={ "name": "Width_CleanAperture_String", @@ -6057,7 +6056,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width: Optional[int] = field( + width: int | None = field( default=None, metadata={ "name": "Width", @@ -6065,7 +6064,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_offset: Optional[int] = field( + width_offset: int | None = field( default=None, metadata={ "name": "Width_Offset", @@ -6073,7 +6072,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_offset_string: Optional[str] = field( + width_offset_string: str | None = field( default=None, metadata={ "name": "Width_Offset_String", @@ -6081,7 +6080,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_original: Optional[int] = field( + width_original: int | None = field( default=None, metadata={ "name": "Width_Original", @@ -6089,7 +6088,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_original_string: Optional[str] = field( + width_original_string: str | None = field( default=None, metadata={ "name": "Width_Original_String", @@ -6097,7 +6096,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - width_string: Optional[str] = field( + width_string: str | None = field( default=None, metadata={ "name": "Width_String", @@ -6105,7 +6104,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - written_by: Optional[str] = field( + written_by: str | None = field( default=None, metadata={ "name": "WrittenBy", @@ -6113,7 +6112,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - written_date: Optional[str] = field( + written_date: str | None = field( default=None, metadata={ "name": "Written_Date", @@ -6121,7 +6120,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - written_location: Optional[str] = field( + written_location: str | None = field( default=None, metadata={ "name": "Written_Location", @@ -6155,7 +6154,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - ref: Optional[str] = field( + ref: str | None = field( default=None, metadata={ "type": "Attribute", @@ -6168,7 +6167,7 @@ class Meta: name = "MediaInfo" namespace = __NAMESPACE__ - creating_application: Optional[Creation] = field( + creating_application: Creation | None = field( default=None, metadata={ "name": "creatingApplication", @@ -6176,7 +6175,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - creating_library: Optional[Creation] = field( + creating_library: Creation | None = field( default=None, metadata={ "name": "creatingLibrary", @@ -6198,7 +6197,7 @@ class Meta: "namespace": __NAMESPACE__, }, ) - version: Optional[str] = field( + version: str | None = field( default=None, metadata={ "type": "Attribute", diff --git a/libresvip/utils/module_loading.py b/libresvip/utils/module_loading.py index be43b0a18..6e34ae9c5 100644 --- a/libresvip/utils/module_loading.py +++ b/libresvip/utils/module_loading.py @@ -5,7 +5,7 @@ from importlib.machinery import ModuleSpec, SourcelessFileLoader from importlib.util import module_from_spec, spec_from_file_location from types import ModuleType -from typing import Optional, cast +from typing import cast from libresvip.core.compat import Traversable @@ -15,10 +15,10 @@ def __init__(self, zip_file: zipfile.ZipFile, file_path: str) -> None: self.zip_file = zip_file self.file_path = file_path - def create_module(self, spec: ModuleSpec) -> Optional[ModuleType]: + def create_module(self, spec: ModuleSpec) -> ModuleType | None: return sys.modules.get(spec.name) - def get_filename(self, name: Optional[str] = None) -> str: + def get_filename(self, name: str | None = None) -> str: return self.file_path def get_data(self, path: str) -> bytes: diff --git a/libresvip/utils/music_math.py b/libresvip/utils/music_math.py index 61a308697..2973dbdf7 100644 --- a/libresvip/utils/music_math.py +++ b/libresvip/utils/music_math.py @@ -3,10 +3,10 @@ import math import re from collections.abc import Callable -from typing import Optional +from typing import Concatenate from more_itertools import pairwise -from typing_extensions import Concatenate, ParamSpec +from typing_extensions import ParamSpec from libresvip.core.constants import KEY_IN_OCTAVE from libresvip.model.point import Point @@ -77,8 +77,8 @@ def midi2hz(midi: float, a4_midi: int = 69, base_freq: float = 440.0) -> float: def clamp( x: float, - lower: Optional[float] = None, - upper: Optional[float] = None, + lower: float | None = None, + upper: float | None = None, ) -> float: """Limit a value to a given range. @@ -255,7 +255,7 @@ def db_to_float(db: float, using_amplitude: bool = True) -> float: return 10 ** (db / 20) if using_amplitude else 10 ** (db / 10) -def ratio_to_db(ratio: float, val2: Optional[float] = None, using_amplitude: bool = True) -> float: +def ratio_to_db(ratio: float, val2: float | None = None, using_amplitude: bool = True) -> float: """ Converts the input float to db, which represents the equivalent to the ratio in power represented by the multiplier passed in. diff --git a/libresvip/utils/search.py b/libresvip/utils/search.py index 5e4b1e8d3..eee84b3b6 100644 --- a/libresvip/utils/search.py +++ b/libresvip/utils/search.py @@ -1,5 +1,5 @@ from collections.abc import Callable -from typing import Optional, TypeVar +from typing import TypeVar from more_itertools import locate, rlocate @@ -14,7 +14,7 @@ def find_last_index(obj_list: list[T], pred: Callable[[T], bool]) -> int: return next(rlocate(obj_list, pred), -1) -def binary_find_first(n: list[T], pred: Callable[[T], bool]) -> Optional[T]: +def binary_find_first(n: list[T], pred: Callable[[T], bool]) -> T | None: if not len(n): return None left, right = 0, len(n) - 1 @@ -27,7 +27,7 @@ def binary_find_first(n: list[T], pred: Callable[[T], bool]) -> Optional[T]: return n[right] if pred(n[right]) else None -def binary_find_last(n: list[T], pred: Callable[[T], bool]) -> Optional[T]: +def binary_find_last(n: list[T], pred: Callable[[T], bool]) -> T | None: if not len(n): return None left, right = 0, len(n) - 1 diff --git a/libresvip/utils/text.py b/libresvip/utils/text.py index 82bf5bdcc..20ccc581b 100644 --- a/libresvip/utils/text.py +++ b/libresvip/utils/text.py @@ -7,7 +7,7 @@ import textwrap import uuid from collections.abc import Callable -from typing import Any, Optional +from typing import Any import charset_normalizer.constant import zhon @@ -27,8 +27,8 @@ class CustomBoundriesMixin: def __init__( self, *args: Any, - left_boundary: Optional[str] = None, - right_boundary: Optional[str] = None, + left_boundary: str | None = None, + right_boundary: str | None = None, **kwargs: Any, ) -> None: default_word_boundary = "" if kwargs.get("match_substrings") is True else WORD_BOUNDARY @@ -42,7 +42,7 @@ def __init__( def compile( self, - word_boundary: Optional[str] = None, + word_boundary: str | None = None, re_flags: int = -1, ) -> re.Pattern[str]: left_boundary = self.left_boundary if word_boundary is None else word_boundary @@ -90,7 +90,7 @@ def supported_charset_names() -> list[str]: return sorted(encoding_names) -def shorten_error_message(message: Optional[str]) -> str: +def shorten_error_message(message: str | None) -> str: if message is None: return "" error_lines = textwrap.wrap(message, 70) diff --git a/libresvip/utils/translation.py b/libresvip/utils/translation.py index 5fc063cc6..66105ceb1 100644 --- a/libresvip/utils/translation.py +++ b/libresvip/utils/translation.py @@ -2,11 +2,10 @@ import contextvars import gettext import sys -from typing import Optional -singleton_translation: Optional[gettext.NullTranslations] = None -lazy_translation: contextvars.ContextVar[Optional[gettext.NullTranslations]] = ( - contextvars.ContextVar("translator") +singleton_translation: gettext.NullTranslations | None = None +lazy_translation: contextvars.ContextVar[gettext.NullTranslations | None] = contextvars.ContextVar( + "translator" ) @@ -21,7 +20,7 @@ def gettext_lazy(message: str) -> str: return gettext.gettext(message) -def pgettext_lazy(context: Optional[str], message: str) -> str: +def pgettext_lazy(context: str | None, message: str) -> str: if context is None: frame = sys._getframe(1) context = frame.f_globals.get("__package__") diff --git a/libresvip/utils/xmlutils/native.py b/libresvip/utils/xmlutils/native.py index c31fbb9fb..b48be9c49 100644 --- a/libresvip/utils/xmlutils/native.py +++ b/libresvip/utils/xmlutils/native.py @@ -1,5 +1,5 @@ import io -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING from xml.sax import saxutils if TYPE_CHECKING: @@ -11,7 +11,7 @@ class EchoGenerator(saxutils.XMLGenerator): def __init__( self, - out: Optional[io.IOBase] = None, + out: io.IOBase | None = None, encoding: str = "iso-8859-1", short_empty_elements: bool = False, ) -> None: diff --git a/libresvip/utils/yamlutils/common.py b/libresvip/utils/yamlutils/common.py index 29641beb8..73db55752 100644 --- a/libresvip/utils/yamlutils/common.py +++ b/libresvip/utils/yamlutils/common.py @@ -1,7 +1,6 @@ import re from base64 import b64encode from hashlib import sha224 -from typing import Union from yaml.resolver import BaseResolver @@ -57,5 +56,5 @@ def set_yaml_grammar( resolver.yaml_implicit_resolvers[start_char].append((r["tag"], r["regexp"])) -def hash_key(key: Union[str, bytes]) -> str: +def hash_key(key: str | bytes) -> str: return b64encode(sha224(key.encode() if isinstance(key, str) else key).digest()).decode() diff --git a/libresvip/utils/yamlutils/loader.py b/libresvip/utils/yamlutils/loader.py index b6b4e1cb7..85818b332 100644 --- a/libresvip/utils/yamlutils/loader.py +++ b/libresvip/utils/yamlutils/loader.py @@ -71,7 +71,7 @@ def construct_sequence(loader: yaml.SafeLoader, node: yaml.nodes.SequenceNode) - if isinstance(v_node, yaml.nodes.ScalarNode) and v_node.style: annotations.append(f"__yq_style_{i}_{v_node.style}__") elif ( - isinstance(v_node, (yaml.nodes.SequenceNode, yaml.nodes.MappingNode)) + isinstance(v_node, yaml.nodes.SequenceNode | yaml.nodes.MappingNode) and v_node.flow_style is True ): annotations.append("__yq_style_{}_{}__".format(i, "flow")) @@ -84,7 +84,7 @@ def construct_mapping(loader: yaml.SafeLoader, node: yaml.nodes.MappingNode) -> key = loader.construct_object(k_node) value = loader.construct_object(v_node) pairs.append((key, value)) - if not (use_annotations and isinstance(key, (str, bytes))): + if not (use_annotations and isinstance(key, str | bytes)): continue if ( v_node.tag @@ -96,7 +96,7 @@ def construct_mapping(loader: yaml.SafeLoader, node: yaml.nodes.MappingNode) -> if isinstance(v_node, yaml.nodes.ScalarNode) and v_node.style: pairs.append((f"__yq_style_{hash_key(key)}__", v_node.style)) elif ( - isinstance(v_node, (yaml.nodes.SequenceNode, yaml.nodes.MappingNode)) + isinstance(v_node, yaml.nodes.SequenceNode | yaml.nodes.MappingNode) and v_node.flow_style is True ): pairs.append((f"__yq_style_{hash_key(key)}__", "flow")) diff --git a/libresvip/web/elements.py b/libresvip/web/elements.py index 76717d35f..20850394a 100644 --- a/libresvip/web/elements.py +++ b/libresvip/web/elements.py @@ -1,6 +1,6 @@ import asyncio from collections.abc import Callable -from typing import Any, Optional +from typing import Any from nicegui.elements.mixins.color_elements import BackgroundColorElement from nicegui.elements.mixins.disableable_element import DisableableElement @@ -13,9 +13,9 @@ def __init__( self, text: str = "", *, - on_click: Optional[Callable[..., Any]] = None, - color: Optional[str] = "primary", - icon: Optional[str] = None, + on_click: Callable[..., Any] | None = None, + color: str | None = "primary", + icon: str | None = None, ) -> None: super().__init__(tag="q-fab", text=text, background_color=color) @@ -47,9 +47,9 @@ def __init__( self, text: str = "", *, - on_click: Optional[Callable[..., Any]] = None, - color: Optional[str] = "primary", - icon: Optional[str] = None, + on_click: Callable[..., Any] | None = None, + color: str | None = "primary", + icon: str | None = None, ) -> None: super().__init__(tag="q-fab-action", text=text, background_color=color) diff --git a/libresvip/web/pages.py b/libresvip/web/pages.py index 3016181bb..3a0b8b17d 100644 --- a/libresvip/web/pages.py +++ b/libresvip/web/pages.py @@ -15,14 +15,13 @@ import webbrowser from collections.abc import Callable from concurrent.futures import ThreadPoolExecutor +from importlib.resources import as_file from operator import not_ from typing import ( TYPE_CHECKING, BinaryIO, - Optional, SupportsFloat, TypeVar, - Union, get_args, get_type_hints, ) @@ -51,7 +50,7 @@ from upath import UPath import libresvip -from libresvip.core.compat import ZipFile, as_file +from libresvip.core.compat import ZipFile from libresvip.core.config import ( ConversionMode, DarkMode, @@ -100,14 +99,14 @@ def __post_init__(self) -> None: self.language = detected_language -def dark_mode2str(mode: DarkMode) -> Optional[bool]: +def dark_mode2str(mode: DarkMode) -> bool | None: if mode == DarkMode.LIGHT: return False elif mode == DarkMode.DARK: return True -def str2dark_mode(value: Optional[bool]) -> DarkMode: +def str2dark_mode(value: bool | None) -> DarkMode: return { True: DarkMode.DARK, False: DarkMode.LIGHT, @@ -115,7 +114,7 @@ def str2dark_mode(value: Optional[bool]) -> DarkMode: }.get(value, DarkMode.SYSTEM) -def int_validator(value: Optional[SupportsFloat]) -> bool: +def int_validator(value: SupportsFloat | None) -> bool: if isinstance(value, int): return True elif isinstance(value, str): @@ -126,7 +125,7 @@ def int_validator(value: Optional[SupportsFloat]) -> bool: return False -def float_validator(value: Optional[SupportsFloat]) -> bool: +def float_validator(value: SupportsFloat | None) -> bool: if isinstance(value, SupportsFloat): return not math.isnan(float(value)) else: @@ -139,9 +138,9 @@ class ConversionTask: upload_path: pathlib.Path output_path: pathlib.Path running: bool - success: Optional[bool] - error: Optional[str] - warning: Optional[str] + success: bool | None + error: str | None + warning: str | None def reset(self) -> None: self.running = False @@ -210,7 +209,7 @@ def export_one(request: Request) -> Response: @ui.page("/") @ui.page("/?lang={lang}") -def page_layout(lang: Optional[str] = None) -> None: +def page_layout(lang: str | None = None) -> None: settings: LibreSvipBaseUISettings if app.native.main_window is not None: @@ -408,7 +407,7 @@ def options_form(attr_prefix: str, method: str) -> None: label=_(field_info.title), value=default_value, ).bind_value(option_dict, option_key).classes("flex-grow") - elif issubclass(field_info.annotation, (str, BaseComplexModel)): + elif issubclass(field_info.annotation, str | BaseComplexModel): if issubclass(field_info.annotation, BaseComplexModel): default_value = field_info.annotation.default_repr() option_dict[option_key] = default_value @@ -416,7 +415,7 @@ def options_form(attr_prefix: str, method: str) -> None: label=_(field_info.title), value=default_value, ).bind_value(option_dict, option_key).classes("flex-grow") - elif issubclass(field_info.annotation, (int, float)): + elif issubclass(field_info.annotation, int | float): with ( ui.number( label=_(field_info.title), @@ -463,7 +462,7 @@ def middleware_options_form(attr: str, toggler: Switch) -> None: for option_key, field_info in option_class.model_fields.items(): if issubclass( field_info.annotation, - (str, Color, enum.Enum, BaseComplexModel), + str | Color | enum.Enum | BaseComplexModel, ): field_types[option_key] = str else: @@ -526,7 +525,7 @@ def middleware_options_form(attr: str, toggler: Switch) -> None: label=_(field_info.title), value=default_value, ).bind_value(option_dict, option_key).classes("flex-grow") - elif issubclass(field_info.annotation, (str, BaseComplexModel)): + elif issubclass(field_info.annotation, str | BaseComplexModel): if issubclass(field_info.annotation, BaseComplexModel): default_value = field_info.annotation.default_repr() option_dict[option_key] = default_value @@ -534,7 +533,7 @@ def middleware_options_form(attr: str, toggler: Switch) -> None: label=_(field_info.title), value=default_value, ).bind_value(option_dict, option_key).classes("flex-grow") - elif issubclass(field_info.annotation, (int, float)): + elif issubclass(field_info.annotation, int | float): with ( ui.number( label=_(field_info.title), @@ -759,7 +758,7 @@ def output_format(self, value: str) -> None: async def _add_task( self, name: str, - content: Union[BinaryIO, pathlib.Path], + content: BinaryIO | pathlib.Path, ) -> None: if settings.auto_detect_input_format: cur_suffix = name.rpartition(".")[-1].lower() @@ -942,7 +941,7 @@ def export_one(self, request: Request) -> Response: return Response(*result) raise HTTPException(404, "File not found") - def _export_one(self, filename: str) -> Optional[tuple[bytes, int, dict[str, str], str]]: + def _export_one(self, filename: str) -> tuple[bytes, int, dict[str, str], str] | None: if not (task := self.files_to_convert.get(filename)) or not task.success: return None if self._conversion_mode == ConversionMode.SPLIT: @@ -971,7 +970,7 @@ def _export_one(self, filename: str) -> Optional[tuple[bytes, int, dict[str, str def _export_all( self, - ) -> Optional[tuple[bytes, int, dict[str, str], str]]: + ) -> tuple[bytes, int, dict[str, str], str] | None: if len(self.files_to_convert) == 0: return None elif len(self.files_to_convert) == 1: @@ -1010,7 +1009,7 @@ async def add_upload(self) -> None: file_paths = await app.native.main_window.create_file_dialog( allow_multiple=True, file_types=[ - select_input.options[select_input.value], + " " + select_input.options[select_input.value].rpartition(" ")[-1], _("All files (*.*)"), ], ) @@ -1045,7 +1044,7 @@ async def save_file(self, file_name: str = "") -> None: file_types=( _("Compressed Archive (*.zip)") if save_filename.endswith(".zip") - else select_output.options[select_output.value], + else " " + select_output.options[select_output.value].rpartition(" ")[-1], _("All files (*.*)"), ), ) @@ -1790,34 +1789,35 @@ def toggle_maxmized() -> None: async def handle_key(e: KeyEventArguments) -> None: if e.modifiers.alt or e.modifiers.ctrl or e.modifiers.meta or e.modifiers.shift: if e.modifiers.alt and e.action.keyup and not e.action.repeat: - if e.key == "c": - convert_menu.open() - elif e.key == "[": - input_formats_menu.open() - elif e.key == "]": - output_formats_menu.open() - elif e.key == "t": - theme_menu.open() - elif e.key == "h": - help_menu.open() - elif e.key == "o": - await selected_formats.add_upload() - elif e.key == "i": - about_dialog.open() - elif e.key == "\\": - swap_values() - elif e.key == "/": - selected_formats.reset() - elif e.key == "w": - dark_toggler.disable() - elif e.key == "b": - dark_toggler.enable() - elif e.key == "a": - dark_toggler.auto() - elif e.key == "s": - settings_dialog.open() - elif e.key == "Enter": - await selected_formats.batch_convert() + match e.key.name: + case "c": + convert_menu.open() + case "[": + input_formats_menu.open() + case "]": + output_formats_menu.open() + case "t": + theme_menu.open() + case "h": + help_menu.open() + case "o": + await selected_formats.add_upload() + case "i": + about_dialog.open() + case "\\": + swap_values() + case "/": + selected_formats.reset() + case "w": + dark_toggler.disable() + case "b": + dark_toggler.enable() + case "a": + dark_toggler.auto() + case "s": + settings_dialog.open() + case "Enter": + await selected_formats.batch_convert() elif e.key.number is not None and not e.action.repeat and e.action.keyup: key = e.key.number for formats_menu, format_item in [ diff --git a/packaging/bdist_portable.py b/packaging/bdist_portable.py index a87ebaf00..e5254e05a 100644 --- a/packaging/bdist_portable.py +++ b/packaging/bdist_portable.py @@ -3,7 +3,7 @@ import os import pathlib from sysconfig import get_python_version -from typing import ClassVar, Optional +from typing import ClassVar from loguru import logger from setuptools import Command @@ -15,7 +15,7 @@ class BdistPortable(Command): description = 'create a "portable" built distribution' - user_options: ClassVar[list[tuple[str, Optional[str], str]]] = [ + user_options: ClassVar[list[tuple[str, str | None, str]]] = [ ( "bdist-dir=", "d", @@ -68,9 +68,9 @@ class BdistPortable(Command): default_format: ClassVar[dict[str, str]] = {"posix": "gztar", "nt": "zip"} def initialize_options(self) -> None: - self.bdist_dir: Optional[pathlib.Path] = None + self.bdist_dir: pathlib.Path | None = None self.plat_name = None - self.format: Optional[str] = None + self.format: str | None = None self.keep_temp = 0 self.dist_dir = None self.skip_build = None diff --git a/pyproject.toml b/pyproject.toml index 44ad148a1..7e7c9d887 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,14 +1,13 @@ [project] authors = [{ name = "SoulMelody", email = "yjxrtzyx@gmail.com" }] license = { text = "MIT" } -requires-python = ">=3.9,<3.14" +requires-python = ">=3.10,<3.14" classifiers = [ 'Development Status :: 4 - Beta', 'Programming Language :: Python', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', @@ -179,7 +178,7 @@ pythonpath = "." testpaths = "tests" [tool.ruff] -target-version = "py39" +target-version = "py310" src = ['libresvip', 'tests'] line-length = 100 fix = true diff --git a/pyrightconfig.json b/pyrightconfig.json index 615dadc9d..5e09d6f0a 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,5 +1,5 @@ { - "pythonVersion": "3.9", + "pythonVersion": "3.10", "enableTypeIgnoreComments": true, "typeCheckingMode": "strict", "reportAttributeAccessIssue": "none", @@ -41,5 +41,6 @@ "reportOperatorIssue": "warning", "reportArgumentType": "warning", "reportIndexIssue": "warning", + "reportMatchNotExhaustive": "warning", "reportCallInDefaultInitializer": "error" } \ No newline at end of file diff --git a/scripts/extract_messages.py b/scripts/extract_messages.py index 2ea2cc61c..6c8709f72 100644 --- a/scripts/extract_messages.py +++ b/scripts/extract_messages.py @@ -3,7 +3,7 @@ import subprocess from collections.abc import Iterator from configparser import RawConfigParser -from typing import Any, BinaryIO, Optional, Union, cast +from typing import Any, BinaryIO, cast from babel.messages import setuptools_frontend from ts_model import TranslationType, Ts @@ -27,7 +27,7 @@ def extract_from_plugin_metadata( keywords: list[str], comment_tags: list[str], options: dict[str, Any], -) -> Iterator[tuple[int, str, Union[Optional[str], tuple[Optional[str], ...]], str]]: +) -> Iterator[tuple[int, str, str | None | tuple[str | None, ...], str]]: try: plugin_info = DummyPluginInfo.load_from_string(fileobj.read().decode("utf-8")) except UnicodeDecodeError: @@ -62,7 +62,7 @@ def extract_from_qt_ts( keywords: list[str], comment_tags: list[str], options: dict[str, Any], -) -> Iterator[tuple[int, str, Union[str, tuple[str, str]], str]]: +) -> Iterator[tuple[int, str, str | tuple[str, str], str]]: xml_parser = XmlParser(config=ParserConfig(fail_on_unknown_properties=False)) ts = xml_parser.from_bytes(fileobj.read(), Ts) for context in ts.context: diff --git a/scripts/ts_model.py b/scripts/ts_model.py index c914297db..28d46bd79 100644 --- a/scripts/ts_model.py +++ b/scripts/ts_model.py @@ -1,5 +1,4 @@ from enum import Enum -from typing import Optional from pydantic import BaseModel from xsdata_pydantic.fields import field @@ -21,7 +20,7 @@ class Dependency(BaseModel): class Meta: name = "dependency" - catalog: Optional[str] = field( + catalog: str | None = field( default=None, metadata={ "type": "Attribute", @@ -33,13 +32,13 @@ class Location(BaseModel): class Meta: name = "location" - filename: Optional[str] = field( + filename: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - line: Optional[str] = field( + line: str | None = field( default=None, metadata={ "type": "Attribute", @@ -192,7 +191,7 @@ class Translation(BaseModel): class Meta: name = "translation" - type_value: Optional[TranslationType] = field( + type_value: TranslationType | None = field( default=None, metadata={ "name": "type", @@ -239,49 +238,49 @@ class Meta: "type": "Element", }, ) - source: Optional[Source] = field( + source: Source | None = field( default=None, metadata={ "type": "Element", }, ) - oldsource: Optional[Oldsource] = field( + oldsource: Oldsource | None = field( default=None, metadata={ "type": "Element", }, ) - comment: Optional[Comment] = field( + comment: Comment | None = field( default=None, metadata={ "type": "Element", }, ) - oldcomment: Optional[Oldcomment] = field( + oldcomment: Oldcomment | None = field( default=None, metadata={ "type": "Element", }, ) - extracomment: Optional[Extracomment] = field( + extracomment: Extracomment | None = field( default=None, metadata={ "type": "Element", }, ) - translatorcomment: Optional[Translatorcomment] = field( + translatorcomment: Translatorcomment | None = field( default=None, metadata={ "type": "Element", }, ) - translation: Optional[Translation] = field( + translation: Translation | None = field( default=None, metadata={ "type": "Element", }, ) - userdata: Optional[Userdata] = field( + userdata: Userdata | None = field( default=None, metadata={ "type": "Element", @@ -294,7 +293,7 @@ class Meta: "type": "Element", }, ) - id: Optional[str] = field( + id: str | None = field( default=None, metadata={ "type": "Attribute", @@ -318,7 +317,7 @@ class Meta: "required": True, } ) - comment: Optional[Comment] = field( + comment: Comment | None = field( default=None, metadata={ "type": "Element", @@ -331,7 +330,7 @@ class Meta: "min_occurs": 1, }, ) - encoding: Optional[str] = field( + encoding: str | None = field( default=None, metadata={ "type": "Attribute", @@ -350,7 +349,7 @@ class Meta: "type": "Element", }, ) - dependencies: Optional[Dependencies] = field( + dependencies: Dependencies | None = field( default=None, metadata={ "type": "Element", @@ -368,19 +367,19 @@ class Meta: "type": "Element", }, ) - version: Optional[str] = field( + version: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - sourcelanguage: Optional[str] = field( + sourcelanguage: str | None = field( default=None, metadata={ "type": "Attribute", }, ) - language: Optional[str] = field( + language: str | None = field( default=None, metadata={ "type": "Attribute", diff --git a/uv.lock b/uv.lock index d0b1d8231..332068028 100644 --- a/uv.lock +++ b/uv.lock @@ -1,49 +1,35 @@ version = 1 revision = 1 -requires-python = ">=3.9, <3.14" +requires-python = ">=3.10, <3.14" resolution-markers = [ - "(python_full_version < '3.10' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version < '3.10' and sys_platform != 'linux')", - "(python_full_version == '3.10.*' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version == '3.10.*' and sys_platform != 'linux')", - "(python_full_version == '3.11.*' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version == '3.11.*' and sys_platform != 'linux')", - "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version == '3.12.*' and sys_platform != 'linux')", - "python_full_version < '3.10' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 'aarch64' and sys_platform == 'linux'", - "python_full_version < '3.10' and platform_machine == 'armv7l' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 'armv7l' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 'armv7l' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 'armv7l' and sys_platform == 'linux'", - "python_full_version < '3.10' and platform_machine == 'i686' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 'i686' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 'i686' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 'i686' and sys_platform == 'linux'", - "python_full_version < '3.10' and platform_machine == 'ppc64le' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 'ppc64le' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 'ppc64le' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 'ppc64le' and sys_platform == 'linux'", - "python_full_version < '3.10' and platform_machine == 's390x' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 's390x' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 's390x' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 's390x' and sys_platform == 'linux'", - "python_full_version < '3.10' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "python_full_version == '3.10.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "python_full_version == '3.11.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux'", - "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version >= '3.13' and platform_python_implementation != 'CPython' and sys_platform != 'linux')", - "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'armv7l' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'i686' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'ppc64le' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 's390x' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'x86_64' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (python_full_version >= '3.13' and platform_python_implementation == 'CPython' and sys_platform != 'linux')", + "python_full_version >= '3.13' and platform_machine == 'x86_64' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 'i686' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", "python_full_version >= '3.13' and platform_machine == 'armv7l' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'i686' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", "python_full_version >= '3.13' and platform_machine == 'ppc64le' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", "python_full_version >= '3.13' and platform_machine == 's390x' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", - "python_full_version >= '3.13' and platform_machine == 'x86_64' and platform_python_implementation == 'CPython' and sys_platform == 'linux'", + "(python_full_version >= '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version >= '3.13' and platform_python_implementation != 'CPython' and sys_platform != 'linux')", + "(python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version >= '3.11' and python_full_version < '3.13' and sys_platform != 'linux')", + "(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or (python_full_version < '3.11' and sys_platform != 'linux')", + "python_full_version >= '3.13' and platform_machine == 'x86_64' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 'x86_64' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 'i686' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'i686' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 'i686' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 'aarch64' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 'aarch64' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 'armv7l' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'armv7l' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 'armv7l' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 'ppc64le' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 'ppc64le' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 'ppc64le' and sys_platform == 'linux'", + "python_full_version >= '3.13' and platform_machine == 's390x' and platform_python_implementation != 'CPython' and sys_platform == 'linux'", + "python_full_version >= '3.11' and python_full_version < '3.13' and platform_machine == 's390x' and sys_platform == 'linux'", + "python_full_version < '3.11' and platform_machine == 's390x' and sys_platform == 'linux'", ] [[package]] @@ -139,21 +125,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/72/8c/804bb2e837a175635d2000a0659eafc15b2e9d92d3d81c8f69e141ecd0b0/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:77abf6665ae54000b98b3c742bc6ea1d1fb31c394bcabf8b5d2c1ac3ebfe7f3b", size = 1281546 }, { url = "https://files.pythonhosted.org/packages/89/c0/862e6a9de3d6eeb126cd9d9ea388243b70df9b871ce1a42b193b7a4a77fc/aiohttp-3.10.10-cp313-cp313-win32.whl", hash = "sha256:4470c73c12cd9109db8277287d11f9dd98f77fc54155fc71a7738a83ffcc8ea8", size = 357516 }, { url = "https://files.pythonhosted.org/packages/ae/63/3e1aee3e554263f3f1011cca50d78a4894ae16ce99bf78101ac3a2f0ef74/aiohttp-3.10.10-cp313-cp313-win_amd64.whl", hash = "sha256:486f7aabfa292719a2753c016cc3a8f8172965cabb3ea2e7f7436c7f5a22a151", size = 376785 }, - { url = "https://files.pythonhosted.org/packages/3b/8e/0946283d36f156b0fda6564a97a91f42881d3efcdf236223989a93e7caa0/aiohttp-3.10.10-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:01948b1d570f83ee7bbf5a60ea2375a89dfb09fd419170e7f5af029510033d24", size = 588595 }, - { url = "https://files.pythonhosted.org/packages/05/84/acf2e75f652c02c304d547507597f0e322e43e8531adaba5798b3b90f29e/aiohttp-3.10.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9fc1500fd2a952c5c8e3b29aaf7e3cc6e27e9cfc0a8819b3bce48cc1b849e4cc", size = 400259 }, - { url = "https://files.pythonhosted.org/packages/54/0a/2395fb583fdf490240f6990a3196e8a56d91081ac1dcdca4ca542a013d9b/aiohttp-3.10.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f614ab0c76397661b90b6851a030004dac502e48260ea10f2441abd2207fbcc7", size = 391585 }, - { url = "https://files.pythonhosted.org/packages/4f/1d/d2ecab9d1f71adf073a01233a94500e6416d760ba4b04049d432c8b22589/aiohttp-3.10.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00819de9e45d42584bed046314c40ea7e9aea95411b38971082cad449392b08c", size = 1233673 }, - { url = "https://files.pythonhosted.org/packages/e8/0d/0e198499fdc48b75cca3e32f60a87e1ed9919c51647f1ca87160e27477ac/aiohttp-3.10.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05646ebe6b94cc93407b3bf34b9eb26c20722384d068eb7339de802154d61bc5", size = 1271052 }, - { url = "https://files.pythonhosted.org/packages/df/a3/e5e2061cfeb2e37bc7eeaa1320858194dad3e01127a844036dc1f8af5953/aiohttp-3.10.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:998f3bd3cfc95e9424a6acd7840cbdd39e45bc09ef87533c006f94ac47296090", size = 1304875 }, - { url = "https://files.pythonhosted.org/packages/31/40/ba9e90b88b5e227954858184be687019ba662f072b27ae3b7cba3ae64661/aiohttp-3.10.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9010c31cd6fa59438da4e58a7f19e4753f7f264300cd152e7f90d4602449762", size = 1225430 }, - { url = "https://files.pythonhosted.org/packages/86/5f/8e17c6ba352e654a12d9fc67fadeb89f3f92675aea43e68a0119cd66b3d0/aiohttp-3.10.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ea7ffc6d6d6f8a11e6f40091a1040995cdff02cfc9ba4c2f30a516cb2633554", size = 1196582 }, - { url = "https://files.pythonhosted.org/packages/00/41/ba0f75f356febbe320abc725f1ad2fccb276d38d998f6cd1630de84c963e/aiohttp-3.10.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ef9c33cc5cbca35808f6c74be11eb7f5f6b14d2311be84a15b594bd3e58b5527", size = 1196719 }, - { url = "https://files.pythonhosted.org/packages/5e/d9/f5e686c9891d70190e8162893b97cc7e47b2d2a516da8fb5dadb30995625/aiohttp-3.10.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ce0cdc074d540265bfeb31336e678b4e37316849d13b308607efa527e981f5c2", size = 1197209 }, - { url = "https://files.pythonhosted.org/packages/25/12/c4b1ea70135afe8a03c0519c29421e8b97fc4afeb5c7fc4b583ffb6c620e/aiohttp-3.10.10-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:597a079284b7ee65ee102bc3a6ea226a37d2b96d0418cc9047490f231dc09fe8", size = 1251306 }, - { url = "https://files.pythonhosted.org/packages/f8/17/4041d26c5d5bddd928a7f3f2972679de59d65044a208bcd026f43c3675f4/aiohttp-3.10.10-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:7789050d9e5d0c309c706953e5e8876e38662d57d45f936902e176d19f1c58ab", size = 1266087 }, - { url = "https://files.pythonhosted.org/packages/16/41/1b0c191c3477e1d6e5313d4a9fefeb436ab649c498622d4c14a9cc9eee6b/aiohttp-3.10.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e7f8b04d83483577fd9200461b057c9f14ced334dcb053090cea1da9c8321a91", size = 1217338 }, - { url = "https://files.pythonhosted.org/packages/4a/4b/4be4ab18675255178acaf18edda4fb19f15debefc873dfcc9ad6b73d3b2c/aiohttp-3.10.10-cp39-cp39-win32.whl", hash = "sha256:c02a30b904282777d872266b87b20ed8cc0d1501855e27f831320f471d54d983", size = 363262 }, - { url = "https://files.pythonhosted.org/packages/f7/54/e1f69b580e11127deb4c18e765bcc4730cd133ab3c75806c62f985af3e1c/aiohttp-3.10.10-cp39-cp39-win_amd64.whl", hash = "sha256:edfe3341033a6b53a5c522c802deb2079eee5cbfbb0af032a55064bd65c73a23", size = 381766 }, ] [[package]] @@ -185,9 +156,9 @@ wheels = [ name = "altgraph" version = "0.17.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/a8/7145824cf0b9e3c28046520480f207df47e927df83aa9555fb47f8505922/altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406", size = 48418 } +sdist = { url = "https://files.pythonhosted.org/packages/de/a8/7145824cf0b9e3c28046520480f207df47e927df83aa9555fb47f8505922/altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/3f/3bc3f1d83f6e4a7fcb834d3720544ca597590425be5ba9db032b2bf322a2/altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff", size = 21212 }, + { url = "https://files.pythonhosted.org/packages/4d/3f/3bc3f1d83f6e4a7fcb834d3720544ca597590425be5ba9db032b2bf322a2/altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff" }, ] [[package]] @@ -231,9 +202,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "types-python-dateutil" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960 } +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419 }, + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80" }, ] [[package]] @@ -279,9 +250,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chardet" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/fe/7ebfec74d49f97fc55cd38240c7a7d08134002b1e14be8c3897c0dd5e49b/binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061", size = 371054 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/fe/7ebfec74d49f97fc55cd38240c7a7d08134002b1e14be8c3897c0dd5e49b/binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061" } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/7e/f7b6f453e6481d1e233540262ccbfcf89adcd43606f44a028d7f5fae5eb2/binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4", size = 9006 }, + { url = "https://files.pythonhosted.org/packages/24/7e/f7b6f453e6481d1e233540262ccbfcf89adcd43606f44a028d7f5fae5eb2/binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4" }, ] [[package]] @@ -315,10 +286,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/d5/602d0ef5dfcace3fb4f79c436762f130abd9ee8d950fa2abdbf8bbc555e0/black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b", size = 1448085 }, { url = "https://files.pythonhosted.org/packages/47/6d/a3a239e938960df1a662b93d6230d4f3e9b4a22982d060fc38c42f45a56b/black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2", size = 1760928 }, { url = "https://files.pythonhosted.org/packages/dd/cf/af018e13b0eddfb434df4d9cd1b2b7892bab119f7a20123e93f6910982e8/black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b", size = 1436875 }, - { url = "https://files.pythonhosted.org/packages/fe/02/f408c804e0ee78c367dcea0a01aedde4f1712af93b8b6e60df981e0228c7/black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd", size = 1622516 }, - { url = "https://files.pythonhosted.org/packages/f8/b9/9b706ed2f55bfb28b436225a9c57da35990c9005b90b8c91f03924454ad7/black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f", size = 1456181 }, - { url = "https://files.pythonhosted.org/packages/0a/1c/314d7f17434a5375682ad097f6f4cc0e3f414f3c95a9b1bb4df14a0f11f9/black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800", size = 1752801 }, - { url = "https://files.pythonhosted.org/packages/39/a7/20e5cd9237d28ad0b31438de5d9f01c8b99814576f4c0cda1edd62caf4b0/black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7", size = 1413626 }, { url = "https://files.pythonhosted.org/packages/8d/a7/4b27c50537ebca8bec139b872861f9d2bf501c5ec51fcf897cb924d9e264/black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d", size = 206898 }, ] @@ -395,36 +362,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, - { url = "https://files.pythonhosted.org/packages/b9/ea/8bb50596b8ffbc49ddd7a1ad305035daa770202a6b782fc164647c2673ad/cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", size = 182220 }, - { url = "https://files.pythonhosted.org/packages/ae/11/e77c8cd24f58285a82c23af484cf5b124a376b32644e445960d1a4654c3a/cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", size = 178605 }, - { url = "https://files.pythonhosted.org/packages/ed/65/25a8dc32c53bf5b7b6c2686b42ae2ad58743f7ff644844af7cdb29b49361/cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", size = 424910 }, - { url = "https://files.pythonhosted.org/packages/42/7a/9d086fab7c66bd7c4d0f27c57a1b6b068ced810afc498cc8c49e0088661c/cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", size = 447200 }, - { url = "https://files.pythonhosted.org/packages/da/63/1785ced118ce92a993b0ec9e0d0ac8dc3e5dbfbcaa81135be56c69cabbb6/cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", size = 454565 }, - { url = "https://files.pythonhosted.org/packages/74/06/90b8a44abf3556599cdec107f7290277ae8901a58f75e6fe8f970cd72418/cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", size = 435635 }, - { url = "https://files.pythonhosted.org/packages/bd/62/a1f468e5708a70b1d86ead5bab5520861d9c7eacce4a885ded9faa7729c3/cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", size = 445218 }, - { url = "https://files.pythonhosted.org/packages/5b/95/b34462f3ccb09c2594aa782d90a90b045de4ff1f70148ee79c69d37a0a5a/cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", size = 460486 }, - { url = "https://files.pythonhosted.org/packages/fc/fc/a1e4bebd8d680febd29cf6c8a40067182b64f00c7d105f8f26b5bc54317b/cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", size = 437911 }, - { url = "https://files.pythonhosted.org/packages/e6/c3/21cab7a6154b6a5ea330ae80de386e7665254835b9e98ecc1340b3a7de9a/cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", size = 460632 }, - { url = "https://files.pythonhosted.org/packages/cb/b5/fd9f8b5a84010ca169ee49f4e4ad6f8c05f4e3545b72ee041dbbcb159882/cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", size = 171820 }, - { url = "https://files.pythonhosted.org/packages/8c/52/b08750ce0bce45c143e1b5d7357ee8c55341b52bdef4b0f081af1eb248c2/cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", size = 181290 }, ] [[package]] name = "cfgv" version = "3.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560", size = 7114 } +sdist = { url = "https://files.pythonhosted.org/packages/11/74/539e56497d9bd1d484fd863dd69cbbfa653cd2aa27abfe35653494d85e94/cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249 }, + { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9" }, ] [[package]] name = "chardet" version = "5.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970" }, ] [[package]] @@ -485,19 +440,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, - { url = "https://files.pythonhosted.org/packages/7f/c0/b913f8f02836ed9ab32ea643c6fe4d3325c3d8627cf6e78098671cafff86/charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41", size = 197867 }, - { url = "https://files.pythonhosted.org/packages/0f/6c/2bee440303d705b6fb1e2ec789543edec83d32d258299b16eed28aad48e0/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f", size = 141385 }, - { url = "https://files.pythonhosted.org/packages/3d/04/cb42585f07f6f9fd3219ffb6f37d5a39b4fd2db2355b23683060029c35f7/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2", size = 151367 }, - { url = "https://files.pythonhosted.org/packages/54/54/2412a5b093acb17f0222de007cc129ec0e0df198b5ad2ce5699355269dfe/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770", size = 143928 }, - { url = "https://files.pythonhosted.org/packages/5a/6d/e2773862b043dcf8a221342954f375392bb2ce6487bcd9f2c1b34e1d6781/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4", size = 146203 }, - { url = "https://files.pythonhosted.org/packages/b9/f8/ca440ef60d8f8916022859885f231abb07ada3c347c03d63f283bec32ef5/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537", size = 148082 }, - { url = "https://files.pythonhosted.org/packages/04/d2/42fd330901aaa4b805a1097856c2edf5095e260a597f65def493f4b8c833/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496", size = 142053 }, - { url = "https://files.pythonhosted.org/packages/9e/af/3a97a4fa3c53586f1910dadfc916e9c4f35eeada36de4108f5096cb7215f/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78", size = 150625 }, - { url = "https://files.pythonhosted.org/packages/26/ae/23d6041322a3556e4da139663d02fb1b3c59a23ab2e2b56432bd2ad63ded/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7", size = 153549 }, - { url = "https://files.pythonhosted.org/packages/94/22/b8f2081c6a77cb20d97e57e0b385b481887aa08019d2459dc2858ed64871/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6", size = 150945 }, - { url = "https://files.pythonhosted.org/packages/c7/0b/c5ec5092747f801b8b093cdf5610e732b809d6cb11f4c51e35fc28d1d389/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294", size = 146595 }, - { url = "https://files.pythonhosted.org/packages/0c/5a/0b59704c38470df6768aa154cc87b1ac7c9bb687990a1559dc8765e8627e/charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5", size = 95453 }, - { url = "https://files.pythonhosted.org/packages/85/2d/a9790237cb4d01a6d57afadc8573c8b73c609ade20b80f4cda30802009ee/charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765", size = 102811 }, { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, ] @@ -520,9 +462,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1d/ce/edb087fb53de63dad3b36408ca30368f438738098e668b78c87f93cd41df/click_default_group-1.2.4.tar.gz", hash = "sha256:eb3f3c99ec0d456ca6cd2a7f08f7d4e91771bef51b01bdd9580cc6450fe1251e", size = 3505 } +sdist = { url = "https://files.pythonhosted.org/packages/1d/ce/edb087fb53de63dad3b36408ca30368f438738098e668b78c87f93cd41df/click_default_group-1.2.4.tar.gz", hash = "sha256:eb3f3c99ec0d456ca6cd2a7f08f7d4e91771bef51b01bdd9580cc6450fe1251e" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/1a/aff8bb287a4b1400f69e09a53bd65de96aa5cee5691925b38731c67fc695/click_default_group-1.2.4-py2.py3-none-any.whl", hash = "sha256:9b60486923720e7fc61731bdb32b617039aba820e22e1c88766b1125592eaa5f", size = 4123 }, + { url = "https://files.pythonhosted.org/packages/2c/1a/aff8bb287a4b1400f69e09a53bd65de96aa5cee5691925b38731c67fc695/click_default_group-1.2.4-py2.py3-none-any.whl", hash = "sha256:9b60486923720e7fc61731bdb32b617039aba820e22e1c88766b1125592eaa5f" }, ] [[package]] @@ -548,9 +490,9 @@ dependencies = [ { name = "construct" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/13/c609e60a687252813aa4b69f989f42754ccd5e217717216fc852eefedfd7/construct-typing-0.6.2.tar.gz", hash = "sha256:948e998cfc003681dc34f2d071c3a688cf35b805cbe107febbc488ef967ccba1", size = 22029 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/13/c609e60a687252813aa4b69f989f42754ccd5e217717216fc852eefedfd7/construct-typing-0.6.2.tar.gz", hash = "sha256:948e998cfc003681dc34f2d071c3a688cf35b805cbe107febbc488ef967ccba1" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/0b/ab3ce2b27dd74b6a6703065bd304ea8211ff4de3b1c304446ed95234177b/construct_typing-0.6.2-py3-none-any.whl", hash = "sha256:ebea6989ac622d0c4eb457092cef0c7bfbcfa110bd018670fea7064d0bc09e47", size = 23298 }, + { url = "https://files.pythonhosted.org/packages/b2/0b/ab3ce2b27dd74b6a6703065bd304ea8211ff4de3b1c304446ed95234177b/construct_typing-0.6.2-py3-none-any.whl", hash = "sha256:ebea6989ac622d0c4eb457092cef0c7bfbcfa110bd018670fea7064d0bc09e47" }, ] [[package]] @@ -595,7 +537,6 @@ dependencies = [ { name = "patchelf", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'armv7l' and sys_platform == 'linux') or (platform_machine == 'i686' and sys_platform == 'linux') or (platform_machine == 'ppc64le' and sys_platform == 'linux') or (platform_machine == 's390x' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, { name = "setuptools" }, { name = "tomli", marker = "python_full_version < '3.11'" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d4/c3/9f05155f7e0f55041add55cedc8724e9d36418c11c2e29131056fbce8e5e/cx_freeze-7.2.10.tar.gz", hash = "sha256:16a6eb37db7d158d0eb4bba8b93a135b6c85ea4bf2c4176c437bc34f01067e61", size = 3146042 } wheels = [ @@ -623,11 +564,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/78/c123ec526b57531851d9d9c3338aa2df41b396fe3d23b7a2737bf1ef1a63/cx_Freeze-7.2.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d00914208a2953125398d192d1c332eea2bfb4f210a1507efe5188fec18fb8e3", size = 13315368 }, { url = "https://files.pythonhosted.org/packages/ac/6c/4a3ef0c1991805505b2ea69fd09e1fd694138b011d2c62808ab5d4548b16/cx_Freeze-7.2.10-cp312-cp312-win32.whl", hash = "sha256:c0af82ba512323a1036a42c2e863ea56e12764c8c9f0764303df1fa3e29b9d4a", size = 2136880 }, { url = "https://files.pythonhosted.org/packages/06/4c/d1c81cb9cf6b0a68837d7ee44a98a3269bafbc259cb8b3b96c22ac1e235e/cx_Freeze-7.2.10-cp312-cp312-win_amd64.whl", hash = "sha256:15b7dafc5eb2b5f6c118eaeed25b0fb0f3a9022e779958e5f9cd1ebf9f77c737", size = 2139867 }, - { url = "https://files.pythonhosted.org/packages/a7/7f/f70e05e2ab623b3c3ae8af78cb855f68ff4f40b4a050103c4a560f8ab610/cx_Freeze-7.2.10-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:105dfc3b15c4f8ff78607c892b73e5a48a29ccd87836284d34611031ca74f6d9", size = 17930542 }, - { url = "https://files.pythonhosted.org/packages/f5/14/af1f180f0e82038d5d08013fbc0b974568db1abf6197f9a692f1f8359142/cx_Freeze-7.2.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85a337dfb8b2e29213beef36592ac2ad3789911c9aa68e26e0b500914f31ef7d", size = 11867455 }, - { url = "https://files.pythonhosted.org/packages/8c/b6/a6490cea8a64a9a6925368754ac4f992912c2f29b8c5605cec9eb83c32a9/cx_Freeze-7.2.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ff17dd57a972a49d03b95b42476b5909dfda7e94c5fa67ff2def1fae0619881", size = 11982080 }, - { url = "https://files.pythonhosted.org/packages/24/4d/2d3434ca2a54869f7e3eb059172f6205c2a6e5116e8a626205512407819c/cx_Freeze-7.2.10-cp39-cp39-win32.whl", hash = "sha256:916f0512c42b00c63f1365f7321df8ad76724065f87b858c7b5839adbc472a0f", size = 2051094 }, - { url = "https://files.pythonhosted.org/packages/fc/91/9bf1da58401ed2138b34c6f0b94a5f81677b9bf55de53b48e6af9ae834eb/cx_Freeze-7.2.10-cp39-cp39-win_amd64.whl", hash = "sha256:e530625e979a8ac1fcb4421dfdc84607c0d3bd8c610f6e8983eb2925068c006e", size = 2054038 }, ] [[package]] @@ -644,8 +580,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5c/52/b6bd4f4d51eb4f3523da182cdf5969a560e35f4ef178f34841ba6795addc/cx_Logging-3.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:3452add0544db6ff29116b72a4c48761aaffa9b638728330433853c0c4ad2ea1", size = 26911 }, { url = "https://files.pythonhosted.org/packages/e1/78/0ce28b89aedf369b02bb5cb763324e799844144386fba75c03128ea9e2ff/cx_Logging-3.2.1-cp313-cp313-win32.whl", hash = "sha256:330a29030bdca8795c99b678b4f6d87a75fb606eed1da206fdd9fa579a33dc21", size = 22874 }, { url = "https://files.pythonhosted.org/packages/cb/23/dab5f561888951ec02843f087f34a59c791e8ac6423c25a412eb49300633/cx_Logging-3.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:e14748b031522a95aa2db4adfc5f2be5f96f4d0fe687da591114f73a09e66926", size = 26916 }, - { url = "https://files.pythonhosted.org/packages/f6/25/1b2c8983944122cec9484a2d371001e2aa8a34b917aa79b9226bc032e65e/cx_Logging-3.2.1-cp39-cp39-win32.whl", hash = "sha256:8f4d60a1a1508e88f2dab78494a1a8fd417ce335f94c01b0d443560cf8838115", size = 22783 }, - { url = "https://files.pythonhosted.org/packages/f9/15/da26daacf51d9043b8be3dec15c77e65bea1610f665ea514359d41f0a5ee/cx_Logging-3.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:26b707221077119606195fc14a65df2f21bd7bea78b383528ae8df4ea4298246", size = 26762 }, ] [[package]] @@ -692,14 +626,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2f/a1/e040362d2dfb91cd7b923fc20fb9a96ca1c4b8dd0a8d6704ca7ba3cedd46/dbus_fast-2.24.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0295a281f61e69855f2442df2f0de775c361c2cf8bdc73dc1d67ceb3695cbb9a", size = 5462554 }, { url = "https://files.pythonhosted.org/packages/6a/72/467971c405f85f7b15cfa7a74cb7961181ed9631aa2d6c4c4e699f8c307a/dbus_fast-2.24.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6bed68d1de004edc6519e9b003ae277f803b3f5927e22b0b109c67ccd8e9655", size = 5306563 }, { url = "https://files.pythonhosted.org/packages/19/c2/29932e670edb3c7f53347c7349420cf9c13c2411aafc283f4bfba832b33a/dbus_fast-2.24.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7fab714342c2c07fd12877015c38142eced5798569ddc24497b8fab640ba6c42", size = 5566233 }, - { url = "https://files.pythonhosted.org/packages/76/08/901f39680d2c20812d48d5e86dd0d48b1dcff3adb7a916be1c828568fd0b/dbus_fast-2.24.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:115ad68497b371f45cc491323d98242e989e706552df861e09d906b52aefbff4", size = 4972124 }, - { url = "https://files.pythonhosted.org/packages/8e/0d/55b6f356984d229e9b8e259f299bcf9114c40f1390bbde45898a83b7bee1/dbus_fast-2.24.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb0e24ee02d8ec88eab20923c5069f8b4550b82cc132049f2ce51636b10fa7c5", size = 5029464 }, - { url = "https://files.pythonhosted.org/packages/d8/b1/9cb7f7f247a314551397d2d4d2f441436f3e7da8480afac2e1059367edbb/dbus_fast-2.24.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1d900ed6264a513eca9445c2bfe8864c76cabf3c93c788a84e172e842ccd58d0", size = 4920314 }, - { url = "https://files.pythonhosted.org/packages/71/cf/b1c02c649e558ae85946431970943e8f60cc6ac1ed4dc6de26c86048fa2d/dbus_fast-2.24.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e8d319bd58178be770ce8e05ba6941e6741920912037b6ded440f6418e0a971d", size = 5082528 }, { url = "https://files.pythonhosted.org/packages/9d/70/c52dda2563c66b365ea76e2c7098f94827021a02a4f7f0d9b80341dfed99/dbus_fast-2.24.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55de22a9cea6385aa832bff4902d97f946766db47cc3a45dd923090c690a6aa4", size = 1735187 }, { url = "https://files.pythonhosted.org/packages/c3/46/103b7ece88bcaa1c83140a104bac88d02c3f1d18e113e953d5da8e986f0c/dbus_fast-2.24.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df1874a4e018b1be6280e38717085b740a0d79630ebe2bf786c5859f36bceaf2", size = 1764733 }, - { url = "https://files.pythonhosted.org/packages/8a/a4/98737a22cf6474932b333598984d4d5e0dd71395c7cffaff7fc6f66e3341/dbus_fast-2.24.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26996330d5f95819010a275188bb6658738865f4b03830b94ca28b57ab7a78bf", size = 1733861 }, - { url = "https://files.pythonhosted.org/packages/76/8e/9d0bab52238b307dce1bb023dab9dad2a09be14d3be6af4603e23c522475/dbus_fast-2.24.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35bd04e1d9d89e2f1f44a5d6a6d610e3c49c522c6055eb7c48d2f1a33fc77097", size = 1763554 }, ] [[package]] @@ -707,16 +635,16 @@ name = "desktop-notifier" version = "6.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "bidict", marker = "python_full_version < '3.13' or platform_python_implementation == 'CPython'" }, - { name = "dbus-fast", marker = "(python_full_version < '3.13' and sys_platform == 'linux') or (platform_python_implementation == 'CPython' and sys_platform == 'linux')" }, - { name = "packaging", marker = "python_full_version < '3.13' or platform_python_implementation == 'CPython'" }, - { name = "rubicon-objc", marker = "(python_full_version < '3.13' and sys_platform == 'darwin') or (platform_python_implementation == 'CPython' and sys_platform == 'darwin')" }, - { name = "winrt-windows-applicationmodel-core", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, - { name = "winrt-windows-data-xml-dom", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, - { name = "winrt-windows-foundation", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, - { name = "winrt-windows-foundation-collections", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, - { name = "winrt-windows-foundation-interop", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, - { name = "winrt-windows-ui-notifications", marker = "(python_full_version < '3.13' and sys_platform == 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32')" }, + { name = "bidict" }, + { name = "dbus-fast", marker = "sys_platform == 'linux'" }, + { name = "packaging" }, + { name = "rubicon-objc", marker = "sys_platform == 'darwin'" }, + { name = "winrt-windows-applicationmodel-core", marker = "sys_platform == 'win32'" }, + { name = "winrt-windows-data-xml-dom", marker = "sys_platform == 'win32'" }, + { name = "winrt-windows-foundation", marker = "sys_platform == 'win32'" }, + { name = "winrt-windows-foundation-collections", marker = "sys_platform == 'win32'" }, + { name = "winrt-windows-foundation-interop", marker = "sys_platform == 'win32'" }, + { name = "winrt-windows-ui-notifications", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/6f/39/8fdf293aa5e4c571e714ecbfe372a797dddabfd4a43ffd77b5652bfd00bd/desktop_notifier-6.0.0.tar.gz", hash = "sha256:188b6cf8f59192afc5c6ed9dc8304d46ee0380b08750e826fcce1048083d5cd8", size = 33457 } wheels = [ @@ -753,9 +681,9 @@ dependencies = [ { name = "charset-normalizer" }, { name = "untokenize" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/44/aba2c40cf796121b35835ea8c00bc5d93f2f70730eca53b36b8bbbfaefe1/docformatter-1.7.5.tar.gz", hash = "sha256:ffed3da0daffa2e77f80ccba4f0e50bfa2755e1c10e130102571c890a61b246e", size = 25893 } +sdist = { url = "https://files.pythonhosted.org/packages/f4/44/aba2c40cf796121b35835ea8c00bc5d93f2f70730eca53b36b8bbbfaefe1/docformatter-1.7.5.tar.gz", hash = "sha256:ffed3da0daffa2e77f80ccba4f0e50bfa2755e1c10e130102571c890a61b246e" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/95/568a2fca29df365b82012b09b64964a05f4f20ac83c2137b262f3fa3188f/docformatter-1.7.5-py3-none-any.whl", hash = "sha256:a24f5545ed1f30af00d106f5d85dc2fce4959295687c24c8f39f5263afaf9186", size = 32798 }, + { url = "https://files.pythonhosted.org/packages/8b/95/568a2fca29df365b82012b09b64964a05f4f20ac83c2137b262f3fa3188f/docformatter-1.7.5-py3-none-any.whl", hash = "sha256:a24f5545ed1f30af00d106f5d85dc2fce4959295687c24c8f39f5263afaf9186" }, ] [[package]] @@ -862,7 +790,7 @@ name = "flet-desktop" version = "0.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "flet", marker = "(platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or sys_platform != 'linux'" }, + { name = "flet" }, ] sdist = { url = "https://files.pythonhosted.org/packages/df/62/1dc546477843877045c6909532460929179709a934f6afa80c0838a3dd43/flet_desktop-0.26.0.tar.gz", hash = "sha256:f8e88c03bbb0d62975d626fca3fa1b3b1bea5d5f2e45ac3066a7525587f1cee7", size = 39597204 } wheels = [ @@ -961,21 +889,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/29/3b7a0bbbbe5a34833ba26f686aabfe982924adbdcafdc294a7a129c31688/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03", size = 264642 }, { url = "https://files.pythonhosted.org/packages/ab/42/0595b3dbffc2e82d7fe658c12d5a5bafcd7516c6bf2d1d1feb5387caa9c1/frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c", size = 44914 }, { url = "https://files.pythonhosted.org/packages/17/c4/b7db1206a3fea44bf3b838ca61deb6f74424a8a5db1dd53ecb21da669be6/frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28", size = 51167 }, - { url = "https://files.pythonhosted.org/packages/da/4d/d94ff0fb0f5313902c132817c62d19cdc5bdcd0c195d392006ef4b779fc6/frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972", size = 95319 }, - { url = "https://files.pythonhosted.org/packages/8c/1b/d90e554ca2b483d31cb2296e393f72c25bdc38d64526579e95576bfda587/frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336", size = 54749 }, - { url = "https://files.pythonhosted.org/packages/f8/66/7fdecc9ef49f8db2aa4d9da916e4ecf357d867d87aea292efc11e1b2e932/frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f", size = 52718 }, - { url = "https://files.pythonhosted.org/packages/08/04/e2fddc92135276e07addbc1cf413acffa0c2d848b3e54cacf684e146df49/frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f", size = 241756 }, - { url = "https://files.pythonhosted.org/packages/c6/52/be5ff200815d8a341aee5b16b6b707355e0ca3652953852238eb92b120c2/frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6", size = 267718 }, - { url = "https://files.pythonhosted.org/packages/88/be/4bd93a58be57a3722fc544c36debdf9dcc6758f761092e894d78f18b8f20/frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411", size = 263494 }, - { url = "https://files.pythonhosted.org/packages/32/ba/58348b90193caa096ce9e9befea6ae67f38dabfd3aacb47e46137a6250a8/frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08", size = 232838 }, - { url = "https://files.pythonhosted.org/packages/f6/33/9f152105227630246135188901373c4f322cc026565ca6215b063f4c82f4/frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2", size = 242912 }, - { url = "https://files.pythonhosted.org/packages/a0/10/3db38fb3ccbafadd80a1b0d6800c987b0e3fe3ef2d117c6ced0246eea17a/frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d", size = 244763 }, - { url = "https://files.pythonhosted.org/packages/e2/cd/1df468fdce2f66a4608dffe44c40cdc35eeaa67ef7fd1d813f99a9a37842/frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b", size = 242841 }, - { url = "https://files.pythonhosted.org/packages/ee/5f/16097a5ca0bb6b6779c02cc9379c72fe98d56115d4c54d059fb233168fb6/frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b", size = 263407 }, - { url = "https://files.pythonhosted.org/packages/0f/f7/58cd220ee1c2248ee65a32f5b4b93689e3fe1764d85537eee9fc392543bc/frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0", size = 265083 }, - { url = "https://files.pythonhosted.org/packages/62/b8/49768980caabf81ac4a2d156008f7cbd0107e6b36d08a313bb31035d9201/frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c", size = 251564 }, - { url = "https://files.pythonhosted.org/packages/cb/83/619327da3b86ef957ee7a0cbf3c166a09ed1e87a3f7f1ff487d7d0284683/frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3", size = 45691 }, - { url = "https://files.pythonhosted.org/packages/8b/28/407bc34a745151ed2322c690b6e7d83d7101472e81ed76e1ebdac0b70a78/frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0", size = 51767 }, { url = "https://files.pythonhosted.org/packages/c6/c8/a5be5b7550c10858fcf9b0ea054baccab474da77d37f1e828ce043a3a5d4/frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3", size = 11901 }, ] @@ -1140,15 +1053,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/74/0d/7df509a2cd2a54814598caf2fb759f3e0b93764431ff410f2175a6efb9e4/grpcio-1.67.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:917e8d8994eed1d86b907ba2a61b9f0aef27a2155bca6cbb322430fc7135b7bb", size = 6149819 }, { url = "https://files.pythonhosted.org/packages/0a/08/bc3b0155600898fd10f16b79054e1cca6cb644fa3c250c0fe59385df5e6f/grpcio-1.67.1-cp313-cp313-win32.whl", hash = "sha256:e279330bef1744040db8fc432becc8a727b84f456ab62b744d3fdb83f327e121", size = 3596561 }, { url = "https://files.pythonhosted.org/packages/5a/96/44759eca966720d0f3e1b105c43f8ad4590c97bf8eb3cd489656e9590baa/grpcio-1.67.1-cp313-cp313-win_amd64.whl", hash = "sha256:fa0c739ad8b1996bd24823950e3cb5152ae91fca1c09cc791190bf1627ffefba", size = 4346042 }, - { url = "https://files.pythonhosted.org/packages/a3/1d/9fa4dc94a3cebe5ef9f6ba5bb9893947665885d4f565d216359a4699c54c/grpcio-1.67.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:a25bdea92b13ff4d7790962190bf6bf5c4639876e01c0f3dda70fc2769616335", size = 5112899 }, - { url = "https://files.pythonhosted.org/packages/91/d7/685b53b4dd7b5fffc0c48bc411065420136ab618d838f09ce41809233e2f/grpcio-1.67.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cdc491ae35a13535fd9196acb5afe1af37c8237df2e54427be3eecda3653127e", size = 11000821 }, - { url = "https://files.pythonhosted.org/packages/bd/49/7763443826c52dece03bca64e10ba2f981e7af9735d9dded1275f4e46f83/grpcio-1.67.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:85f862069b86a305497e74d0dc43c02de3d1d184fc2c180993aa8aa86fbd19b8", size = 5631716 }, - { url = "https://files.pythonhosted.org/packages/7d/72/31753e27792b48cc14b4c80a5818224a33d167fd5e0770821111a4ea316c/grpcio-1.67.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec74ef02010186185de82cc594058a3ccd8d86821842bbac9873fd4a2cf8be8d", size = 6240280 }, - { url = "https://files.pythonhosted.org/packages/d4/ea/32bb9c4d58234383a4e617baf72da4e26e0ccf6396ca36ff7ddc95898ab6/grpcio-1.67.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01f616a964e540638af5130469451cf580ba8c7329f45ca998ab66e0c7dcdb04", size = 5884299 }, - { url = "https://files.pythonhosted.org/packages/3d/4c/5f44e5c9feab14f3d93becb3dd76989f2e97d31cd0c2c421b859c4bbb9ff/grpcio-1.67.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:299b3d8c4f790c6bcca485f9963b4846dd92cf6f1b65d3697145d005c80f9fe8", size = 6584605 }, - { url = "https://files.pythonhosted.org/packages/ec/dc/6cc20ce55d4cdc51c89f35900668d9429f47f3e5632c558636cd044b71cd/grpcio-1.67.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:60336bff760fbb47d7e86165408126f1dded184448e9a4c892189eb7c9d3f90f", size = 6162361 }, - { url = "https://files.pythonhosted.org/packages/1e/16/5b7255a6d6d1ac174481fb5c257adf3a869f3839a426eead05d2f6d6537a/grpcio-1.67.1-cp39-cp39-win32.whl", hash = "sha256:5ed601c4c6008429e3d247ddb367fe8c7259c355757448d7c1ef7bd4a6739e8e", size = 3616599 }, - { url = "https://files.pythonhosted.org/packages/41/ef/03860d260c56d018dc8327c7ec3ebd31d84cec98462cf1e44660c3c58c82/grpcio-1.67.1-cp39-cp39-win_amd64.whl", hash = "sha256:5db70d32d6703b89912af16d6d45d78406374a8b8ef0d28140351dd0ec610e98", size = 4353565 }, ] [[package]] @@ -1221,13 +1125,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0a/0d4df132bfca1507114198b766f1737d57580c9ad1cf93c1ff673e3387be/httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5", size = 448858 }, { url = "https://files.pythonhosted.org/packages/1e/6a/787004fdef2cabea27bad1073bf6a33f2437b4dbd3b6fb4a9d71172b1c7c/httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0", size = 452042 }, { url = "https://files.pythonhosted.org/packages/4d/dc/7decab5c404d1d2cdc1bb330b1bf70e83d6af0396fd4fc76fc60c0d522bf/httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8", size = 87682 }, - { url = "https://files.pythonhosted.org/packages/51/b1/4fc6f52afdf93b7c4304e21f6add9e981e4f857c2fa622a55dfe21b6059e/httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003", size = 201123 }, - { url = "https://files.pythonhosted.org/packages/c2/01/e6ecb40ac8fdfb76607c7d3b74a41b464458d5c8710534d8f163b0c15f29/httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab", size = 104507 }, - { url = "https://files.pythonhosted.org/packages/dc/24/c70c34119d209bf08199d938dc9c69164f585ed3029237b4bdb90f673cb9/httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547", size = 449615 }, - { url = "https://files.pythonhosted.org/packages/2b/62/e7f317fed3703bd81053840cacba4e40bcf424b870e4197f94bd1cf9fe7a/httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9", size = 448819 }, - { url = "https://files.pythonhosted.org/packages/2a/13/68337d3be6b023260139434c49d7aa466aaa98f9aee7ed29270ac7dde6a2/httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076", size = 422093 }, - { url = "https://files.pythonhosted.org/packages/fc/b3/3a1bc45be03dda7a60c7858e55b6cd0489a81613c1908fb81cf21d34ae50/httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd", size = 423898 }, - { url = "https://files.pythonhosted.org/packages/05/72/2ddc2ae5f7ace986f7e68a326215b2e7c32e32fd40e6428fa8f1d8065c7e/httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6", size = 89552 }, ] [[package]] @@ -1277,7 +1174,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "python_full_version < '3.11'" }, + { name = "zipp", marker = "python_full_version < '3.13' or platform_python_implementation != 'CPython'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -1288,9 +1185,6 @@ wheels = [ name = "importlib-resources" version = "6.5.2" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "zipp", marker = "python_full_version < '3.10'" }, -] sdist = { url = "https://files.pythonhosted.org/packages/cf/8c/f834fbf984f691b4f7ff60f50b514cc3de5cc08abfc3295564dd89c5e2e7/importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c", size = 44693 } wheels = [ { url = "https://files.pythonhosted.org/packages/a4/ed/1f1afb2e9e7f38a545d628f864d562a5ae64fe6f7a10e28ffb9b185b4e89/importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec", size = 37461 }, @@ -1386,12 +1280,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c9/95/b878c95af17f3e341ac5dc18e3160d45d86b2c05a0cafd866ceb0b766bbd/libcst-1.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2788b2b5838b78fe15df8e9fa6b6903195ea49b2d2ba43e8f423f6c90e4b69f", size = 2251410 }, { url = "https://files.pythonhosted.org/packages/e1/26/697b54aa839c4dc6ea2787d5e977ed4be0636149f85df1a0cba7a29bd188/libcst-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b5b5bcd3a9ba92840f27ad34eaa038acbee195ec337da39536c0a2efbbf28efd", size = 2323144 }, { url = "https://files.pythonhosted.org/packages/a0/9f/5b5481d716670ed5fbd8d06dfa94b7108272b645da2f2406eb909cb6a450/libcst-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:4d6acb0bdee1e55b44c6215c59755ec4693ac01e74bb1fde04c37358b378835d", size = 2029600 }, - { url = "https://files.pythonhosted.org/packages/e6/51/4d5579bd792661a5fc88fc916c0ef63f45832cec28f08dd633de64ccfed7/libcst-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6453b5a8755a6eee3ad67ee246f13a8eac9827d2cfc8e4a269e8bf0393db74bc", size = 2112551 }, - { url = "https://files.pythonhosted.org/packages/af/2d/1c5a8da004ef26681d84f491f1058855a6e430f861422a24c5b95d8b70be/libcst-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:40748361f4ea66ab6cdd82f8501c82c29808317ac7a3bd132074efd5fd9bfae2", size = 2026486 }, - { url = "https://files.pythonhosted.org/packages/53/3d/2c31bde9716ea732d1c939deaf2367c2202a1c124cc3949e90d9be1fbc54/libcst-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f71aed85932c2ea92058fd9bbd99a6478bd69eada041c3726b4f4c9af1f564e", size = 2203973 }, - { url = "https://files.pythonhosted.org/packages/2b/63/9aaaaff7c9427d5d2656482f77b79b0e3f36f40cd2856011b3d394c22d4d/libcst-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60b09abcc2848ab52d479c3a9b71b606d91a941e3779616efd083bb87dbe8ad", size = 2253437 }, - { url = "https://files.pythonhosted.org/packages/e4/61/28a9352d0f3ec48a320b92a8e25064f8ed834fb268f0071c51f7185c0165/libcst-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fb324ed20f3a725d152df5dba8d80f7e126d9c93cced581bf118a5fc18c1065", size = 2324593 }, - { url = "https://files.pythonhosted.org/packages/ca/96/a3b9dd3dd72ef0c80ceccb3beeb57e12eaa883cf6b23f440bd239c1e5392/libcst-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:99e7c52150a135d66716b03e00c7b1859a44336dc2a2bf8f9acc164494308531", size = 2030374 }, ] [[package]] @@ -1644,8 +1532,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/41/569d821d7b87a8d38c279eddcaf90a782afd7476fa0b1c5f2febc391848a/lief-0.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:28bf0922de5fb74502a29cc47930d3a052df58dc23ab6519fa590e564f194a60", size = 2343019 }, { url = "https://files.pythonhosted.org/packages/d2/77/893193b36b30cb2a9f1977994294dd71899015f1078db60e3563b7a175cd/lief-0.15.1-cp313-cp313-win32.whl", hash = "sha256:0d10e5b22e86bbf2d1e3877b604ffd8860c852b6bc00fca681fe1432f5018fe9", size = 2189918 }, { url = "https://files.pythonhosted.org/packages/89/2e/41447b878b77d6f1f359888c1babfe5cce8c7525e16f9d847d5522977556/lief-0.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:5af7dcb9c3f44baaf60875df6ba9af6777db94776cc577ee86143bcce105ba2f", size = 2342940 }, - { url = "https://files.pythonhosted.org/packages/a0/84/e393a3994c2e9acc8477c8515b9bd534d776d3905aad697e620ee7c18290/lief-0.15.1-cp39-cp39-win32.whl", hash = "sha256:4e47324736d6aa559421720758de4ce12d04fb56bdffa3dcc051fe8cdd42ed17", size = 2185910 }, - { url = "https://files.pythonhosted.org/packages/b5/dd/6a635272c723682b79680275c7c50b8e88f2b4593b5b8620f9261521710e/lief-0.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:382a189514c0e6ebfb41e0db6106936c7ba94d8400651276add2899ff3570585", size = 2334708 }, ] [[package]] @@ -1747,35 +1633,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/39/25/ad4ac8fac488505a2702656550e63c2a8db3a4fd63db82a20dad5689cecb/lxml-5.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dbf7bebc2275016cddf3c997bf8a0f7044160714c64a9b83975670a04e6d2252", size = 5050951 }, { url = "https://files.pythonhosted.org/packages/82/74/f7d223c704c87e44b3d27b5e0dde173a2fcf2e89c0524c8015c2b3554876/lxml-5.3.1-cp313-cp313-win32.whl", hash = "sha256:d0751528b97d2b19a388b302be2a0ee05817097bab46ff0ed76feeec24951f78", size = 3485357 }, { url = "https://files.pythonhosted.org/packages/80/83/8c54533b3576f4391eebea88454738978669a6cad0d8e23266224007939d/lxml-5.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:91fb6a43d72b4f8863d21f347a9163eecbf36e76e2f51068d59cd004c506f332", size = 3814484 }, - { url = "https://files.pythonhosted.org/packages/e6/ed/b27f5dd676e66aa8d7a5cef895c056fc5594b861aa7899d6445dcaa174e6/lxml-5.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5885bc586f1edb48e5d68e7a4b4757b5feb2a496b64f462b4d65950f5af3364f", size = 8147771 }, - { url = "https://files.pythonhosted.org/packages/3d/aa/7cf5d1b9301b061aa6ecd956d32ff01a1b3eadfd40e7634adb98f8909302/lxml-5.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1b92fe86e04f680b848fff594a908edfa72b31bfc3499ef7433790c11d4c8cd8", size = 4425579 }, - { url = "https://files.pythonhosted.org/packages/e7/c8/e2f993dec05cd33108e547a65d786bd5a72fe45797d481db409f2102837c/lxml-5.3.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a091026c3bf7519ab1e64655a3f52a59ad4a4e019a6f830c24d6430695b1cf6a", size = 5233161 }, - { url = "https://files.pythonhosted.org/packages/4a/98/561bd6a513a72f018ea951ddd0245afd2f4312d27346a8b719f8306827f0/lxml-5.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ffb141361108e864ab5f1813f66e4e1164181227f9b1f105b042729b6c15125", size = 4945449 }, - { url = "https://files.pythonhosted.org/packages/16/4a/36f84f0e5c40f58a2744e8eb92308e32884411e2fdadbf235168e4991678/lxml-5.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3715cdf0dd31b836433af9ee9197af10e3df41d273c19bb249230043667a5dfd", size = 5564649 }, - { url = "https://files.pythonhosted.org/packages/cc/fc/a7c5a1c79d9cbdcb4c73b3b10fa5b73326b04e5324e5856e15a5a276c49c/lxml-5.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88b72eb7222d918c967202024812c2bfb4048deeb69ca328363fb8e15254c549", size = 5002027 }, - { url = "https://files.pythonhosted.org/packages/63/f5/981828897caf3790c6c3d73f300a69b9d9bdc074a990a54b881c58386b88/lxml-5.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa59974880ab5ad8ef3afaa26f9bda148c5f39e06b11a8ada4660ecc9fb2feb3", size = 5115962 }, - { url = "https://files.pythonhosted.org/packages/e7/a1/aec02b84113733fa642e4ad0a5a6fa42126bbb6b3c8c8cac2cd3186f5ebe/lxml-5.3.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:3bb8149840daf2c3f97cebf00e4ed4a65a0baff888bf2605a8d0135ff5cf764e", size = 4941318 }, - { url = "https://files.pythonhosted.org/packages/2d/a7/7d2426b9799651c5e48bc752744dbddc5c13b12b99296b0bb09cb0b4dfdb/lxml-5.3.1-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:0d6b2fa86becfa81f0a0271ccb9eb127ad45fb597733a77b92e8a35e53414914", size = 5587564 }, - { url = "https://files.pythonhosted.org/packages/62/b2/2df1030c2da9df240fedb05ea0a993fa6019385d8971ee23054ccb03b8db/lxml-5.3.1-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:136bf638d92848a939fd8f0e06fcf92d9f2e4b57969d94faae27c55f3d85c05b", size = 5081939 }, - { url = "https://files.pythonhosted.org/packages/45/f9/36ffd0cad187c22ed8db618cf68d89df5b2df75c467fc05f8c68d299f16b/lxml-5.3.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:89934f9f791566e54c1d92cdc8f8fd0009447a5ecdb1ec6b810d5f8c4955f6be", size = 5161881 }, - { url = "https://files.pythonhosted.org/packages/29/6d/9f85ac6d67936c3b89daecb8e350e56e8b31d8350a2fe67b348b750eb85b/lxml-5.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a8ade0363f776f87f982572c2860cc43c65ace208db49c76df0a21dde4ddd16e", size = 5019764 }, - { url = "https://files.pythonhosted.org/packages/39/77/61438fc6094909f3c570c5f14518e1b01d6361985b1d0895840d5813cf70/lxml-5.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:bfbbab9316330cf81656fed435311386610f78b6c93cc5db4bebbce8dd146675", size = 5650195 }, - { url = "https://files.pythonhosted.org/packages/c4/bf/37a89992b8d1cba68a8bd1623b6c41d9f45f8044c6063a7082ab77790d54/lxml-5.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:172d65f7c72a35a6879217bcdb4bb11bc88d55fb4879e7569f55616062d387c2", size = 5491896 }, - { url = "https://files.pythonhosted.org/packages/33/12/d7a26ea1308d7bf7c23f8f6be197665ff84cfab94f6bf81098b5059daddb/lxml-5.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e3c623923967f3e5961d272718655946e5322b8d058e094764180cdee7bab1af", size = 5227538 }, - { url = "https://files.pythonhosted.org/packages/c7/04/cfd39f2fb0e33c0b91c8718197bf5e6a84d8c488b6706702eb39a11315c2/lxml-5.3.1-cp39-cp39-win32.whl", hash = "sha256:ce0930a963ff593e8bb6fda49a503911accc67dee7e5445eec972668e672a0f0", size = 3478331 }, - { url = "https://files.pythonhosted.org/packages/c2/6f/adc7985a81d3ad6f9898db2c8d4446546cf3c554510ab2451d370b02e99c/lxml-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:f7b64fcd670bca8800bc10ced36620c6bbb321e7bc1214b9c0c0df269c1dddc2", size = 3806157 }, { url = "https://files.pythonhosted.org/packages/d2/b4/89a68d05f267f05cc1b8b2f289a8242955705b1b0a9d246198227817ee46/lxml-5.3.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:afa578b6524ff85fb365f454cf61683771d0170470c48ad9d170c48075f86725", size = 3936118 }, { url = "https://files.pythonhosted.org/packages/7f/0d/c034a541e7a1153527d7880c62493a74f2277f38e64de2480cadd0d4cf96/lxml-5.3.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f5e80adf0aafc7b5454f2c1cb0cde920c9b1f2cbd0485f07cc1d0497c35c5d", size = 4233690 }, { url = "https://files.pythonhosted.org/packages/35/5c/38e183c2802f14fbdaa75c3266e11d0ca05c64d78e8cdab2ee84e954a565/lxml-5.3.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd0b80ac2d8f13ffc906123a6f20b459cb50a99222d0da492360512f3e50f84", size = 4349569 }, { url = "https://files.pythonhosted.org/packages/18/5b/14f93b359b3c29673d5d282bc3a6edb3a629879854a77541841aba37607f/lxml-5.3.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:422c179022ecdedbe58b0e242607198580804253da220e9454ffe848daa1cfd2", size = 4236731 }, { url = "https://files.pythonhosted.org/packages/f6/08/8471de65f3dee70a3a50e7082fd7409f0ac7a1ace777c13fca4aea1a5759/lxml-5.3.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:524ccfded8989a6595dbdda80d779fb977dbc9a7bc458864fc9a0c2fc15dc877", size = 4373119 }, { url = "https://files.pythonhosted.org/packages/83/29/00b9b0322a473aee6cda87473401c9abb19506cd650cc69a8aa38277ea74/lxml-5.3.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:48fd46bf7155def2e15287c6f2b133a2f78e2d22cdf55647269977b873c65499", size = 3487718 }, - { url = "https://files.pythonhosted.org/packages/6e/cc/3613e2190c0b4ff7ad1b758542daa27d29f66218ea13e33eb49f034e5798/lxml-5.3.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3031e4c16b59424e8d78522c69b062d301d951dc55ad8685736c3335a97fc270", size = 3933176 }, - { url = "https://files.pythonhosted.org/packages/23/ab/8149b34aafa61d1deef24f3ec4e56a2cde08ff20b4ea95f5125f61ee8cd1/lxml-5.3.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb659702a45136c743bc130760c6f137870d4df3a9e14386478b8a0511abcfca", size = 4231180 }, - { url = "https://files.pythonhosted.org/packages/cf/03/1727efdb98eb905ef4f5bd9aadfa0b243b6023101d87aaaa008d8119d4e9/lxml-5.3.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a11b16a33656ffc43c92a5343a28dc71eefe460bcc2a4923a96f292692709f6", size = 4346504 }, - { url = "https://files.pythonhosted.org/packages/00/1a/1fb699abda7f55e450b851d44f36d8c7c1525cbdbbda5ed095ae0e9ab3fc/lxml-5.3.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c5ae125276f254b01daa73e2c103363d3e99e3e10505686ac7d9d2442dd4627a", size = 4231437 }, - { url = "https://files.pythonhosted.org/packages/6c/f7/7978045dac9457bd952ea97fead4afbf5a98cae786c7a1a7309519c0b509/lxml-5.3.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c76722b5ed4a31ba103e0dc77ab869222ec36efe1a614e42e9bcea88a36186fe", size = 4369959 }, - { url = "https://files.pythonhosted.org/packages/54/9d/33dab9178adfa81d3062bb01eb41da65278e9c367bf31fbeab8803acbe1b/lxml-5.3.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:33e06717c00c788ab4e79bc4726ecc50c54b9bfb55355eae21473c145d83c2d2", size = 3486361 }, ] [[package]] @@ -1794,18 +1657,15 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "altgraph", marker = "(platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64') or sys_platform != 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/95/ee/af1a3842bdd5902ce133bd246eb7ffd4375c38642aeb5dc0ae3a0329dfa2/macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30", size = 59309 } +sdist = { url = "https://files.pythonhosted.org/packages/95/ee/af1a3842bdd5902ce133bd246eb7ffd4375c38642aeb5dc0ae3a0329dfa2/macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/5d/c059c180c84f7962db0aeae7c3b9303ed1d73d76f2bfbc32bc231c8be314/macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c", size = 38094 }, + { url = "https://files.pythonhosted.org/packages/d1/5d/c059c180c84f7962db0aeae7c3b9303ed1d73d76f2bfbc32bc231c8be314/macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c" }, ] [[package]] name = "markdown" version = "3.7" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, -] sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086 } wheels = [ { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 }, @@ -1896,16 +1756,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, - { url = "https://files.pythonhosted.org/packages/a7/ea/9b1530c3fdeeca613faeb0fb5cbcf2389d816072fab72a71b45749ef6062/MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", size = 14344 }, - { url = "https://files.pythonhosted.org/packages/4b/c2/fbdbfe48848e7112ab05e627e718e854d20192b674952d9042ebd8c9e5de/MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", size = 12389 }, - { url = "https://files.pythonhosted.org/packages/f0/25/7a7c6e4dbd4f867d95d94ca15449e91e52856f6ed1905d58ef1de5e211d0/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", size = 21607 }, - { url = "https://files.pythonhosted.org/packages/53/8f/f339c98a178f3c1e545622206b40986a4c3307fe39f70ccd3d9df9a9e425/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", size = 20728 }, - { url = "https://files.pythonhosted.org/packages/1a/03/8496a1a78308456dbd50b23a385c69b41f2e9661c67ea1329849a598a8f9/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", size = 20826 }, - { url = "https://files.pythonhosted.org/packages/e6/cf/0a490a4bd363048c3022f2f475c8c05582179bb179defcee4766fb3dcc18/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", size = 21843 }, - { url = "https://files.pythonhosted.org/packages/19/a3/34187a78613920dfd3cdf68ef6ce5e99c4f3417f035694074beb8848cd77/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", size = 21219 }, - { url = "https://files.pythonhosted.org/packages/17/d8/5811082f85bb88410ad7e452263af048d685669bbbfb7b595e8689152498/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", size = 20946 }, - { url = "https://files.pythonhosted.org/packages/7c/31/bd635fb5989440d9365c5e3c47556cfea121c7803f5034ac843e8f37c2f2/MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", size = 15063 }, - { url = "https://files.pythonhosted.org/packages/b3/73/085399401383ce949f727afec55ec3abd76648d04b9f22e1c0e99cb4bec3/MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", size = 15506 }, ] [[package]] @@ -1964,7 +1814,6 @@ dependencies = [ { name = "click" }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "ghp-import" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jinja2" }, { name = "markdown" }, { name = "markupsafe" }, @@ -1986,7 +1835,6 @@ name = "mkdocs-get-deps" version = "0.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "mergedeep" }, { name = "platformdirs" }, { name = "pyyaml" }, @@ -2022,9 +1870,9 @@ wheels = [ name = "mkdocs-material-extensions" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847 } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728 }, + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31" }, ] [[package]] @@ -2086,17 +1934,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7a/40/631c238f1f338eb09f4acb0f34ab5862c4e9d7eda11c1b685471a4c5ea37/msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c", size = 399082 }, { url = "https://files.pythonhosted.org/packages/e9/1b/fa8a952be252a1555ed39f97c06778e3aeb9123aa4cccc0fd2acd0b4e315/msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc", size = 69037 }, { url = "https://files.pythonhosted.org/packages/b6/bc/8bd826dd03e022153bfa1766dcdec4976d6c818865ed54223d71f07862b3/msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f", size = 75140 }, - { url = "https://files.pythonhosted.org/packages/f7/3b/544a5c5886042b80e1f4847a4757af3430f60d106d8d43bb7be72c9e9650/msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1", size = 150713 }, - { url = "https://files.pythonhosted.org/packages/93/af/d63f25bcccd3d6f06fd518ba4a321f34a4370c67b579ca5c70b4a37721b4/msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48", size = 84277 }, - { url = "https://files.pythonhosted.org/packages/92/9b/5c0dfb0009b9f96328664fecb9f8e4e9c8a1ae919e6d53986c1b813cb493/msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c", size = 81357 }, - { url = "https://files.pythonhosted.org/packages/d1/7c/3a9ee6ec9fc3e47681ad39b4d344ee04ff20a776b594fba92d88d8b68356/msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468", size = 371256 }, - { url = "https://files.pythonhosted.org/packages/f7/0a/8a213cecea7b731c540f25212ba5f9a818f358237ac51a44d448bd753690/msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74", size = 377868 }, - { url = "https://files.pythonhosted.org/packages/1b/94/a82b0db0981e9586ed5af77d6cfb343da05d7437dceaae3b35d346498110/msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846", size = 363370 }, - { url = "https://files.pythonhosted.org/packages/93/fc/6c7f0dcc1c913e14861e16eaf494c07fc1dde454ec726ff8cebcf348ae53/msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346", size = 358970 }, - { url = "https://files.pythonhosted.org/packages/1f/c6/e4a04c0089deace870dabcdef5c9f12798f958e2e81d5012501edaff342f/msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b", size = 366358 }, - { url = "https://files.pythonhosted.org/packages/b6/54/7d8317dac590cf16b3e08e3fb74d2081e5af44eb396f0effa13f17777f30/msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8", size = 370336 }, - { url = "https://files.pythonhosted.org/packages/dc/6f/a5a1f43b6566831e9630e5bc5d86034a8884386297302be128402555dde1/msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd", size = 68683 }, - { url = "https://files.pythonhosted.org/packages/5f/e8/2162621e18dbc36e2bc8492fd0e97b3975f5d89fe0472ae6d5f7fbdd8cf7/msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325", size = 74787 }, ] [[package]] @@ -2168,21 +2005,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/a4/63e7cd38ed29dd9f1881d5119f272c898ca92536cdb53ffe0843197f6c85/multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6", size = 125519 }, { url = "https://files.pythonhosted.org/packages/38/e0/4f5855037a72cd8a7a2f60a3952d9aa45feedb37ae7831642102604e8a37/multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81", size = 26426 }, { url = "https://files.pythonhosted.org/packages/7e/a5/17ee3a4db1e310b7405f5d25834460073a8ccd86198ce044dfaf69eac073/multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774", size = 28531 }, - { url = "https://files.pythonhosted.org/packages/e7/c9/9e153a6572b38ac5ff4434113af38acf8d5e9957897cdb1f513b3d6614ed/multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c", size = 48550 }, - { url = "https://files.pythonhosted.org/packages/76/f5/79565ddb629eba6c7f704f09a09df085c8dc04643b12506f10f718cee37a/multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1", size = 29298 }, - { url = "https://files.pythonhosted.org/packages/60/1b/9851878b704bc98e641a3e0bce49382ae9e05743dac6d97748feb5b7baba/multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c", size = 29641 }, - { url = "https://files.pythonhosted.org/packages/89/87/d451d45aab9e422cb0fb2f7720c31a4c1d3012c740483c37f642eba568fb/multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c", size = 126202 }, - { url = "https://files.pythonhosted.org/packages/fa/b4/27cbe9f3e2e469359887653f2e45470272eef7295139916cc21107c6b48c/multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f", size = 133925 }, - { url = "https://files.pythonhosted.org/packages/4d/a3/afc841899face8adfd004235ce759a37619f6ec99eafd959650c5ce4df57/multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875", size = 129039 }, - { url = "https://files.pythonhosted.org/packages/5e/41/0d0fb18c1ad574f807196f5f3d99164edf9de3e169a58c6dc2d6ed5742b9/multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255", size = 124072 }, - { url = "https://files.pythonhosted.org/packages/00/22/defd7a2e71a44e6e5b9a5428f972e5b572e7fe28e404dfa6519bbf057c93/multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30", size = 116532 }, - { url = "https://files.pythonhosted.org/packages/91/25/f7545102def0b1d456ab6449388eed2dfd822debba1d65af60194904a23a/multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057", size = 128173 }, - { url = "https://files.pythonhosted.org/packages/45/79/3dbe8d35fc99f5ea610813a72ab55f426cb9cf482f860fa8496e5409be11/multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657", size = 122654 }, - { url = "https://files.pythonhosted.org/packages/97/cb/209e735eeab96e1b160825b5d0b36c56d3862abff828fc43999bb957dcad/multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28", size = 133197 }, - { url = "https://files.pythonhosted.org/packages/e4/3a/a13808a7ada62808afccea67837a79d00ad6581440015ef00f726d064c2d/multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972", size = 129754 }, - { url = "https://files.pythonhosted.org/packages/77/dd/8540e139eafb240079242da8f8ffdf9d3f4b4ad1aac5a786cd4050923783/multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43", size = 126402 }, - { url = "https://files.pythonhosted.org/packages/86/99/e82e1a275d8b1ea16d3a251474262258dbbe41c05cce0c01bceda1fc8ea5/multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada", size = 26421 }, - { url = "https://files.pythonhosted.org/packages/86/1c/9fa630272355af7e4446a2c7550c259f11ee422ab2d30ff90a0a71cf3d9e/multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a", size = 28791 }, { url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 }, ] @@ -2221,12 +2043,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/8b/801aa06445d2de3895f59e476f38f3f8d610ef5d6908245f07d002676cbf/mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036", size = 12402541 }, { url = "https://files.pythonhosted.org/packages/c7/67/5a4268782eb77344cc613a4cf23540928e41f018a9a1ec4c6882baf20ab8/mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357", size = 12494348 }, { url = "https://files.pythonhosted.org/packages/83/3e/57bb447f7bbbfaabf1712d96f9df142624a386d98fb026a761532526057e/mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf", size = 9373648 }, - { url = "https://files.pythonhosted.org/packages/5a/fa/79cf41a55b682794abe71372151dbbf856e3008f6767057229e6649d294a/mypy-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e601a7fa172c2131bff456bb3ee08a88360760d0d2f8cbd7a75a65497e2df078", size = 10737129 }, - { url = "https://files.pythonhosted.org/packages/d3/33/dd8feb2597d648de29e3da0a8bf4e1afbda472964d2a4a0052203a6f3594/mypy-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:712e962a6357634fef20412699a3655c610110e01cdaa6180acec7fc9f8513ba", size = 9856335 }, - { url = "https://files.pythonhosted.org/packages/e4/b5/74508959c1b06b96674b364ffeb7ae5802646b32929b7701fc6b18447592/mypy-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95579473af29ab73a10bada2f9722856792a36ec5af5399b653aa28360290a5", size = 11611935 }, - { url = "https://files.pythonhosted.org/packages/6c/53/da61b9d9973efcd6507183fdad96606996191657fe79701b2c818714d573/mypy-1.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f8722560a14cde92fdb1e31597760dc35f9f5524cce17836c0d22841830fd5b", size = 12365827 }, - { url = "https://files.pythonhosted.org/packages/c1/72/965bd9ee89540c79a25778cc080c7e6ef40aa1eeac4d52cec7eae6eb5228/mypy-1.15.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fbb8da62dc352133d7d7ca90ed2fb0e9d42bb1a32724c287d3c76c58cbaa9c2", size = 12541924 }, - { url = "https://files.pythonhosted.org/packages/46/d0/f41645c2eb263e6c77ada7d76f894c580c9ddb20d77f0c24d34273a4dab2/mypy-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:d10d994b41fb3497719bbf866f227b3489048ea4bbbb5015357db306249f7980", size = 9271176 }, { url = "https://files.pythonhosted.org/packages/09/4e/a7d65c7322c510de2c409ff3828b03354a7c43f5a8ed458a7a131b41c7b9/mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e", size = 2221777 }, ] @@ -2350,16 +2166,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f2/97/12047b0c0e9b391d589fb76eb40538f522edc664f650f8e352fdaaf77ff5/orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0", size = 142961 }, { url = "https://files.pythonhosted.org/packages/a4/97/d904e26c1cabf2dd6ab1b0909e9b790af28a7f0fcb9d8378d7320d4869eb/orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b", size = 144486 }, { url = "https://files.pythonhosted.org/packages/42/62/3760bd1e6e949321d99bab238d08db2b1266564d2f708af668f57109bb36/orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270", size = 136361 }, - { url = "https://files.pythonhosted.org/packages/29/72/e44004a65831ed8c0d0303623744f01abdb41811a483584edad69ca5358d/orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af", size = 266080 }, - { url = "https://files.pythonhosted.org/packages/f9/84/36b6153ec6be55c9068e3df5e76d38712049052f85e4a4ee4eedba9f36c9/orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7", size = 151671 }, - { url = "https://files.pythonhosted.org/packages/59/1d/ca3e7e3c166587dfffc5c2c4ce06219f180ef338699d61e5e301dff8cc71/orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d", size = 167130 }, - { url = "https://files.pythonhosted.org/packages/87/22/46fb6668601c86af701ca32ec181f97f8ad5d246bd9713fce34798e2a1d3/orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de", size = 154079 }, - { url = "https://files.pythonhosted.org/packages/35/6b/98d96dd8576cc14779822d03f465acc42ae47a0acb9c7b79555e691d427b/orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54", size = 165449 }, - { url = "https://files.pythonhosted.org/packages/88/40/ff08c642eb0e226d2bb8e7095c21262802e7f4cf2a492f2635b4bed935bb/orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad", size = 142283 }, - { url = "https://files.pythonhosted.org/packages/86/37/05e39dde53aa53d1172fe6585dde3bc2a4a327cf9a6ba2bc6ac99ed46cf0/orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b", size = 146711 }, - { url = "https://files.pythonhosted.org/packages/36/ac/5c749779eacf60eb02ef5396821dec2c688f9df1bc2c3224e35b67d02335/orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f", size = 142701 }, - { url = "https://files.pythonhosted.org/packages/db/66/a61cb47eaf4b8afe10907e465d4e38f61f6e694fc982f01261b0020be8ed/orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950", size = 144301 }, - { url = "https://files.pythonhosted.org/packages/cb/08/69b1ce42bb7ee604e23270cf46514ea775265960f3fa4b246e1f8bfde081/orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017", size = 136263 }, ] [[package]] @@ -2540,22 +2346,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8d/6f/6272ecc7a8daad1d0754cfc6c8846076a8cb13f810005c79b15ce0ef0cf2/propcache-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4a91d44379f45f5e540971d41e4626dacd7f01004826a18cb048e7da7e96544", size = 221075 }, { url = "https://files.pythonhosted.org/packages/7c/bd/c7a6a719a6b3dd8b3aeadb3675b5783983529e4a3185946aa444d3e078f6/propcache-0.2.0-cp313-cp313-win32.whl", hash = "sha256:f902804113e032e2cdf8c71015651c97af6418363bea8d78dc0911d56c335032", size = 39654 }, { url = "https://files.pythonhosted.org/packages/88/e7/0eef39eff84fa3e001b44de0bd41c7c0e3432e7648ffd3d64955910f002d/propcache-0.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:8f188cfcc64fb1266f4684206c9de0e80f54622c3f22a910cbd200478aeae61e", size = 43705 }, - { url = "https://files.pythonhosted.org/packages/38/05/797e6738c9f44ab5039e3ff329540c934eabbe8ad7e63c305c75844bc86f/propcache-0.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:25c8d773a62ce0451b020c7b29a35cfbc05de8b291163a7a0f3b7904f27253e6", size = 81903 }, - { url = "https://files.pythonhosted.org/packages/9f/84/8d5edb9a73e1a56b24dd8f2adb6aac223109ff0e8002313d52e5518258ba/propcache-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:375a12d7556d462dc64d70475a9ee5982465fbb3d2b364f16b86ba9135793638", size = 46960 }, - { url = "https://files.pythonhosted.org/packages/e7/77/388697bedda984af0d12d68e536b98129b167282da3401965c8450de510e/propcache-0.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1ec43d76b9677637a89d6ab86e1fef70d739217fefa208c65352ecf0282be957", size = 46133 }, - { url = "https://files.pythonhosted.org/packages/e2/dc/60d444610bc5b1d7a758534f58362b1bcee736a785473f8a39c91f05aad1/propcache-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45eec587dafd4b2d41ac189c2156461ebd0c1082d2fe7013571598abb8505d1", size = 211105 }, - { url = "https://files.pythonhosted.org/packages/bc/c6/40eb0dd1de6f8e84f454615ab61f68eb4a58f9d63d6f6eaf04300ac0cc17/propcache-0.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc092ba439d91df90aea38168e11f75c655880c12782facf5cf9c00f3d42b562", size = 226613 }, - { url = "https://files.pythonhosted.org/packages/de/b6/e078b5e9de58e20db12135eb6a206b4b43cb26c6b62ee0fe36ac40763a64/propcache-0.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fa1076244f54bb76e65e22cb6910365779d5c3d71d1f18b275f1dfc7b0d71b4d", size = 225587 }, - { url = "https://files.pythonhosted.org/packages/ce/4e/97059dd24494d1c93d1efb98bb24825e1930265b41858dd59c15cb37a975/propcache-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:682a7c79a2fbf40f5dbb1eb6bfe2cd865376deeac65acf9beb607505dced9e12", size = 211826 }, - { url = "https://files.pythonhosted.org/packages/fc/23/4dbf726602a989d2280fe130a9b9dd71faa8d3bb8cd23d3261ff3c23f692/propcache-0.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e40876731f99b6f3c897b66b803c9e1c07a989b366c6b5b475fafd1f7ba3fb8", size = 203140 }, - { url = "https://files.pythonhosted.org/packages/5b/ce/f3bff82c885dbd9ae9e43f134d5b02516c3daa52d46f7a50e4f52ef9121f/propcache-0.2.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:363ea8cd3c5cb6679f1c2f5f1f9669587361c062e4899fce56758efa928728f8", size = 208841 }, - { url = "https://files.pythonhosted.org/packages/29/d7/19a4d3b4c7e95d08f216da97035d0b103d0c90411c6f739d47088d2da1f0/propcache-0.2.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:140fbf08ab3588b3468932974a9331aff43c0ab8a2ec2c608b6d7d1756dbb6cb", size = 203315 }, - { url = "https://files.pythonhosted.org/packages/db/87/5748212a18beb8d4ab46315c55ade8960d1e2cdc190764985b2d229dd3f4/propcache-0.2.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e70fac33e8b4ac63dfc4c956fd7d85a0b1139adcfc0d964ce288b7c527537fea", size = 204724 }, - { url = "https://files.pythonhosted.org/packages/84/2a/c3d2f989fc571a5bad0fabcd970669ccb08c8f9b07b037ecddbdab16a040/propcache-0.2.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:b33d7a286c0dc1a15f5fc864cc48ae92a846df287ceac2dd499926c3801054a6", size = 215514 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4c44c133b08bc5f776afcb8f0833889c2636b8a83e07ea1d9096c1e401b0/propcache-0.2.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:f6d5749fdd33d90e34c2efb174c7e236829147a2713334d708746e94c4bde40d", size = 220063 }, - { url = "https://files.pythonhosted.org/packages/2e/25/280d0a3bdaee68db74c0acd9a472e59e64b516735b59cffd3a326ff9058a/propcache-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22aa8f2272d81d9317ff5756bb108021a056805ce63dd3630e27d042c8092798", size = 211620 }, - { url = "https://files.pythonhosted.org/packages/28/8c/266898981b7883c1563c35954f9ce9ced06019fdcc487a9520150c48dc91/propcache-0.2.0-cp39-cp39-win32.whl", hash = "sha256:73e4b40ea0eda421b115248d7e79b59214411109a5bc47d0d48e4c73e3b8fcf9", size = 41049 }, - { url = "https://files.pythonhosted.org/packages/af/53/a3e5b937f58e757a940716b88105ec4c211c42790c1ea17052b46dc16f16/propcache-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:9517d5e9e0731957468c29dbfd0f976736a0e55afaea843726e887f36fe017df", size = 45587 }, { url = "https://files.pythonhosted.org/packages/3d/b6/e6d98278f2d49b22b4d033c9f792eda783b9ab2094b041f013fc69bcde87/propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036", size = 11603 }, ] @@ -2595,8 +2385,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1c/f2/baf397f3dd1d3e4af7e3f5a0382b868d25ac068eefe1ebde05132333436c/protobuf-5.28.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a3f6857551e53ce35e60b403b8a27b0295f7d6eb63d10484f12bc6879c715687", size = 414743 }, { url = "https://files.pythonhosted.org/packages/85/50/cd61a358ba1601f40e7d38bcfba22e053f40ef2c50d55b55926aecc8fec7/protobuf-5.28.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:3fa2de6b8b29d12c61911505d893afe7320ce7ccba4df913e2971461fa36d584", size = 316511 }, { url = "https://files.pythonhosted.org/packages/5d/ae/3257b09328c0b4e59535e497b0c7537d4954038bdd53a2f0d2f49d15a7c4/protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:712319fbdddb46f21abb66cd33cb9e491a5763b2febd8f228251add221981135", size = 316624 }, - { url = "https://files.pythonhosted.org/packages/57/b5/ee3d918f536168def73b3f49edeba065429ab3a7e7b033d33e69c46ddff9/protobuf-5.28.3-cp39-cp39-win32.whl", hash = "sha256:135658402f71bbd49500322c0f736145731b16fc79dc8f367ab544a17eab4535", size = 419648 }, - { url = "https://files.pythonhosted.org/packages/53/54/e1bdf6f1d29828ddb6aca0a83bf208ab1d5f88126f34e17e487b2cd20d93/protobuf-5.28.3-cp39-cp39-win_amd64.whl", hash = "sha256:70585a70fc2dd4818c51287ceef5bdba6387f88a578c86d47bb34669b5552c36", size = 431591 }, { url = "https://files.pythonhosted.org/packages/ad/c3/2377c159e28ea89a91cf1ca223f827ae8deccb2c9c401e5ca233cd73002f/protobuf-5.28.3-py3-none-any.whl", hash = "sha256:cee1757663fa32a1ee673434fcf3bf24dd54763c79690201208bafec62f19eed", size = 169511 }, ] @@ -2659,10 +2447,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f8/70/60bb08e9e9841b18d4669fb69d84b64ce900aacd7eb0ebebd4c7b9bdecd3/pycryptodomex-3.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df2608682db8279a9ebbaf05a72f62a321433522ed0e499bc486a6889b96bf3", size = 1653571 }, { url = "https://files.pythonhosted.org/packages/c9/6f/191b73509291c5ff0dddec9cc54797b1d73303c12b2e4017b24678e57099/pycryptodomex-3.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5823d03e904ea3e53aebd6799d6b8ec63b7675b5d2f4a4bd5e3adcb512d03b37", size = 1691548 }, { url = "https://files.pythonhosted.org/packages/2d/c7/a0d3356f3074ac548afefa515ff46f3bea011deca607faf1c09b26dd5330/pycryptodomex-3.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:27e84eeff24250ffec32722334749ac2a57a5fd60332cd6a0680090e7c42877e", size = 1792099 }, - { url = "https://files.pythonhosted.org/packages/55/ee/9349856ee02826899fdc489016756865158217909a82dcc74cc4d55d33af/pycryptodomex-3.21.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8ef436cdeea794015263853311f84c1ff0341b98fc7908e8a70595a68cefd971", size = 1619490 }, - { url = "https://files.pythonhosted.org/packages/07/93/e68fac121fcf761fd7a85a27f024c9238217e4d943c861a856ca354f412e/pycryptodomex-3.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1058e6dfe827f4209c5cae466e67610bcd0d66f2f037465daa2a29d92d952b", size = 1653481 }, - { url = "https://files.pythonhosted.org/packages/b8/47/8a39243d09fd294c339c59834ba3c92715584f3ed0d92b6bacb26f803ce0/pycryptodomex-3.21.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9ba09a5b407cbb3bcb325221e346a140605714b5e880741dc9a1e9ecf1688d42", size = 1691442 }, - { url = "https://files.pythonhosted.org/packages/21/1c/f8860c558b44776573acd719c1e86fec14d42f29cf248eaba9c770151d14/pycryptodomex-3.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8a9d8342cf22b74a746e3c6c9453cb0cfbb55943410e3a2619bd9164b48dc9d9", size = 1791966 }, ] [[package]] @@ -2743,19 +2527,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 }, { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 }, { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 }, - { url = "https://files.pythonhosted.org/packages/27/97/3aef1ddb65c5ccd6eda9050036c956ff6ecbfe66cb7eb40f280f121a5bb0/pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993", size = 1896475 }, - { url = "https://files.pythonhosted.org/packages/ad/d3/5668da70e373c9904ed2f372cb52c0b996426f302e0dee2e65634c92007d/pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308", size = 1772279 }, - { url = "https://files.pythonhosted.org/packages/8a/9e/e44b8cb0edf04a2f0a1f6425a65ee089c1d6f9c4c2dcab0209127b6fdfc2/pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4", size = 1829112 }, - { url = "https://files.pythonhosted.org/packages/1c/90/1160d7ac700102effe11616e8119e268770f2a2aa5afb935f3ee6832987d/pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf", size = 1866780 }, - { url = "https://files.pythonhosted.org/packages/ee/33/13983426df09a36d22c15980008f8d9c77674fc319351813b5a2739b70f3/pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76", size = 2037943 }, - { url = "https://files.pythonhosted.org/packages/01/d7/ced164e376f6747e9158c89988c293cd524ab8d215ae4e185e9929655d5c/pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118", size = 2740492 }, - { url = "https://files.pythonhosted.org/packages/8b/1f/3dc6e769d5b7461040778816aab2b00422427bcaa4b56cc89e9c653b2605/pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630", size = 1995714 }, - { url = "https://files.pythonhosted.org/packages/07/d7/a0bd09bc39283530b3f7c27033a814ef254ba3bd0b5cfd040b7abf1fe5da/pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54", size = 1997163 }, - { url = "https://files.pythonhosted.org/packages/2d/bb/2db4ad1762e1c5699d9b857eeb41959191980de6feb054e70f93085e1bcd/pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f", size = 2005217 }, - { url = "https://files.pythonhosted.org/packages/53/5f/23a5a3e7b8403f8dd8fc8a6f8b49f6b55c7d715b77dcf1f8ae919eeb5628/pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362", size = 2127899 }, - { url = "https://files.pythonhosted.org/packages/c2/ae/aa38bb8dd3d89c2f1d8362dd890ee8f3b967330821d03bbe08fa01ce3766/pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96", size = 2155726 }, - { url = "https://files.pythonhosted.org/packages/98/61/4f784608cc9e98f70839187117ce840480f768fed5d386f924074bf6213c/pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e", size = 1817219 }, - { url = "https://files.pythonhosted.org/packages/57/82/bb16a68e4a1a858bb3768c2c8f1ff8d8978014e16598f001ea29a25bf1d1/pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67", size = 1985382 }, { url = "https://files.pythonhosted.org/packages/46/72/af70981a341500419e67d5cb45abe552a7c74b66326ac8877588488da1ac/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e", size = 1891159 }, { url = "https://files.pythonhosted.org/packages/ad/3d/c5913cccdef93e0a6a95c2d057d2c2cba347815c845cda79ddd3c0f5e17d/pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8", size = 1768331 }, { url = "https://files.pythonhosted.org/packages/f6/f0/a3ae8fbee269e4934f14e2e0e00928f9346c5943174f2811193113e58252/pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3", size = 1822467 }, @@ -2765,15 +2536,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/aa/837821ecf0c022bbb74ca132e117c358321e72e7f9702d1b6a03758545e2/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50", size = 2116582 }, { url = "https://files.pythonhosted.org/packages/81/b0/5e74656e95623cbaa0a6278d16cf15e10a51f6002e3ec126541e95c29ea3/pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9", size = 2151985 }, { url = "https://files.pythonhosted.org/packages/63/37/3e32eeb2a451fddaa3898e2163746b0cffbbdbb4740d38372db0490d67f3/pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151", size = 2004715 }, - { url = "https://files.pythonhosted.org/packages/29/0e/dcaea00c9dbd0348b723cae82b0e0c122e0fa2b43fa933e1622fd237a3ee/pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656", size = 1891733 }, - { url = "https://files.pythonhosted.org/packages/86/d3/e797bba8860ce650272bda6383a9d8cad1d1c9a75a640c9d0e848076f85e/pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278", size = 1768375 }, - { url = "https://files.pythonhosted.org/packages/41/f7/f847b15fb14978ca2b30262548f5fc4872b2724e90f116393eb69008299d/pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb", size = 1822307 }, - { url = "https://files.pythonhosted.org/packages/9c/63/ed80ec8255b587b2f108e514dc03eed1546cd00f0af281e699797f373f38/pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd", size = 1979971 }, - { url = "https://files.pythonhosted.org/packages/a9/6d/6d18308a45454a0de0e975d70171cadaf454bc7a0bf86b9c7688e313f0bb/pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc", size = 1987616 }, - { url = "https://files.pythonhosted.org/packages/82/8a/05f8780f2c1081b800a7ca54c1971e291c2d07d1a50fb23c7e4aef4ed403/pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b", size = 1998943 }, - { url = "https://files.pythonhosted.org/packages/5e/3e/fe5b6613d9e4c0038434396b46c5303f5ade871166900b357ada4766c5b7/pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b", size = 2116654 }, - { url = "https://files.pythonhosted.org/packages/db/ad/28869f58938fad8cc84739c4e592989730bfb69b7c90a8fff138dff18e1e/pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2", size = 2152292 }, - { url = "https://files.pythonhosted.org/packages/a1/0c/c5c5cd3689c32ed1fe8c5d234b079c12c281c051759770c05b8bed6412b5/pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35", size = 2004961 }, ] [[package]] @@ -2822,7 +2584,6 @@ version = "6.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "altgraph" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "macholib", marker = "sys_platform == 'darwin'" }, { name = "packaging" }, { name = "pefile", marker = "sys_platform == 'win32'" }, @@ -2850,7 +2611,6 @@ name = "pyinstaller-hooks-contrib" version = "2025.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "packaging" }, { name = "setuptools" }, ] @@ -3118,15 +2878,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, - { url = "https://files.pythonhosted.org/packages/65/d8/b7a1db13636d7fb7d4ff431593c510c8b8fca920ade06ca8ef20015493c5/PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", size = 184777 }, - { url = "https://files.pythonhosted.org/packages/0a/02/6ec546cd45143fdf9840b2c6be8d875116a64076218b61d68e12548e5839/PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", size = 172318 }, - { url = "https://files.pythonhosted.org/packages/0e/9a/8cc68be846c972bda34f6c2a93abb644fb2476f4dcc924d52175786932c9/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", size = 720891 }, - { url = "https://files.pythonhosted.org/packages/e9/6c/6e1b7f40181bc4805e2e07f4abc10a88ce4648e7e95ff1abe4ae4014a9b2/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", size = 722614 }, - { url = "https://files.pythonhosted.org/packages/3d/32/e7bd8535d22ea2874cef6a81021ba019474ace0d13a4819c2a4bce79bd6a/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", size = 737360 }, - { url = "https://files.pythonhosted.org/packages/d7/12/7322c1e30b9be969670b672573d45479edef72c9a0deac3bb2868f5d7469/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", size = 699006 }, - { url = "https://files.pythonhosted.org/packages/82/72/04fcad41ca56491995076630c3ec1e834be241664c0c09a64c9a2589b507/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", size = 723577 }, - { url = "https://files.pythonhosted.org/packages/ed/5e/46168b1f2757f1fcd442bc3029cd8767d88a98c9c05770d8b420948743bb/PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", size = 144593 }, - { url = "https://files.pythonhosted.org/packages/19/87/5124b1c1f2412bb95c59ec481eaf936cd32f0fe2a7b16b97b81c4c017a6a/PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", size = 162312 }, ] [[package]] @@ -3215,32 +2966,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a7/54/7ab9cc54171b7f8bb97cfd1c1aa7fcb706a4babeb629732529d8111bc4e6/pyzstd-0.16.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:075e18b871f38a503b5d23e40a661adfc750bd4bd0bb8b208c1e290f3ceb8fa2", size = 429582 }, { url = "https://files.pythonhosted.org/packages/6c/a5/f9c950bb378dd1335bc4cc56444ec2ab40b1dab085c5798c5d16a9bf9d0b/pyzstd-0.16.2-cp313-cp313-win32.whl", hash = "sha256:9e4295eb299f8d87e3487852bca033d30332033272a801ca8130e934475e07a9", size = 218544 }, { url = "https://files.pythonhosted.org/packages/9a/df/a15b9a8a59cd9908ae2b70bce2cb4ac3e2d7da11414ee0d0ceb46e4d0439/pyzstd-0.16.2-cp313-cp313-win_amd64.whl", hash = "sha256:18deedc70f858f4cf574e59f305d2a0678e54db2751a33dba9f481f91bc71c28", size = 245313 }, - { url = "https://files.pythonhosted.org/packages/e0/38/43002103a545bc953e532973596e905550e9626973c1b282e04e01038ac6/pyzstd-0.16.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a9892b707ef52f599098b1e9528df0e7849c5ec01d3e8035fb0e67de4b464839", size = 372192 }, - { url = "https://files.pythonhosted.org/packages/61/be/28dfeba9dbad8ed19d6aefa0d6623d1ee97e83c6c1e97910439428655f28/pyzstd-0.16.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4fbd647864341f3c174c4a6d7f20e6ea6b4be9d840fb900dc0faf0849561badc", size = 295080 }, - { url = "https://files.pythonhosted.org/packages/63/c2/c7e5244f2dde72df3fb2b7b952e8d01bac20cd78dc0d585d0a060ca565b0/pyzstd-0.16.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20ac2c15656cc6194c4fed1cb0e8159f9394d4ea1d58be755448743d2ec6c9c4", size = 390165 }, - { url = "https://files.pythonhosted.org/packages/ff/30/52560cb88179fa3ff7536429c0d7b83aeecea86ecb2d180a4afc991502e5/pyzstd-0.16.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b239fb9a20c1be3374b9a2bd183ba624fd22ad7a3f67738c0d80cda68b4ae1d3", size = 472040 }, - { url = "https://files.pythonhosted.org/packages/69/a7/ab1e19626da5a8ff58493d6928d9d0da4931034e7a124949bf1a1705daaf/pyzstd-0.16.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc52400412cdae2635e0978b8d6bcc0028cc638fdab2fd301f6d157675d26896", size = 415255 }, - { url = "https://files.pythonhosted.org/packages/28/0d/bf7c9388fe43c7051a2ced4645e58a493a35c62e68307b5aaf0fb129b008/pyzstd-0.16.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b766a6aeb8dbb6c46e622e7a1aebfa9ab03838528273796941005a5ce7257b1", size = 413679 }, - { url = "https://files.pythonhosted.org/packages/58/2a/1e0738740a8bd2b1f4a74be86297c5776936b66b3a5340d8e4ae84c5844f/pyzstd-0.16.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd4b8676052f9d59579242bf3cfe5fd02532b6a9a93ab7737c118ae3b8509dc", size = 412623 }, - { url = "https://files.pythonhosted.org/packages/23/d5/7cbfbebbb3ffccb0626fc2fab622fb5a10cf66c2c60481f51e46a92eb2c5/pyzstd-0.16.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1c6c0a677aac7c0e3d2d2605d4d68ffa9893fdeeb2e071040eb7c8750969d463", size = 404981 }, - { url = "https://files.pythonhosted.org/packages/a7/b0/6ac198c753cc135357630e856f40f5998c2d28609713ae2830c679e8248c/pyzstd-0.16.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:15f9c2d612e7e2023d68d321d1b479846751f792af89141931d44e82ae391394", size = 417997 }, - { url = "https://files.pythonhosted.org/packages/c6/8f/0e5685efbf24ae62e135549e37947ca7919616b81108584112e25dd1a55a/pyzstd-0.16.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:11740bff847aad23beef4085a1bb767d101895881fe891f0a911aa27d43c372c", size = 485576 }, - { url = "https://files.pythonhosted.org/packages/30/d6/bf2f05752082967ac748d7c2d7c5a71097ac6fc1b902b5d34764cd0c12f7/pyzstd-0.16.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b9067483ebe860e4130a03ee665b3d7be4ec1608b208e645d5e7eb3492379464", size = 564538 }, - { url = "https://files.pythonhosted.org/packages/d8/97/1081cc3cbf5eeb6cf4e385226e9989fdebb61f8e48baa210eb774145e667/pyzstd-0.16.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:988f0ba19b14c2fe0afefc444ac1edfb2f497b7d7c3212b2f587504cc2ec804e", size = 430615 }, - { url = "https://files.pythonhosted.org/packages/e0/a7/2a82fbb248b951434306dd77e969fb99305968904c9a7494574d696b1392/pyzstd-0.16.2-cp39-cp39-win32.whl", hash = "sha256:8855acb1c3e3829030b9e9e9973b19e2d70f33efb14ad5c474b4d086864c959c", size = 218215 }, - { url = "https://files.pythonhosted.org/packages/9d/bf/e529ff84b87c8f978ab35906921ac54841270562e65bcb5d0dd9d3240204/pyzstd-0.16.2-cp39-cp39-win_amd64.whl", hash = "sha256:018e88378df5e76f5e1d8cf4416576603b6bc4a103cbc66bb593eaac54c758de", size = 245047 }, { url = "https://files.pythonhosted.org/packages/f9/ad/c09fb722c12a82b826c97efc50a919e229bfbaf644f5a140adcd71941473/pyzstd-0.16.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4b631117b97a42ff6dfd0ffc885a92fff462d7c34766b28383c57b996f863338", size = 364187 }, { url = "https://files.pythonhosted.org/packages/57/f9/93175fe72f85fb675fe04abca296fe583112a25d0ec7faa026288d9463c2/pyzstd-0.16.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:56493a3fbe1b651a02102dd0902b0aa2377a732ff3544fb6fb3f114ca18db52f", size = 279825 }, { url = "https://files.pythonhosted.org/packages/8a/de/0b40acf76d7ed1f7975877535e004de85ec2e869632754b5d4d389258b8a/pyzstd-0.16.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1eae9bdba4a1e5d3181331f403114ff5b8ce0f4b569f48eba2b9beb2deef1e4", size = 321313 }, { url = "https://files.pythonhosted.org/packages/41/5e/00102bacd1a7c957c88098f3ae2cdac17842ac0f94d2e685ff5b75a05730/pyzstd-0.16.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1be6972391c8aeecc7e61feb96ffc8e77a401bcba6ed994e7171330c45a1948", size = 344376 }, { url = "https://files.pythonhosted.org/packages/a3/95/27a7da3dbd4460cd9432bdc22d9d5f8ec77c86275d069020fa74ea280f7f/pyzstd-0.16.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:761439d687e3a5687c2ff5c6a1190e1601362a4a3e8c6c82ff89719d51d73e19", size = 328591 }, { url = "https://files.pythonhosted.org/packages/c2/03/8f4d5fd45f6bfad66d67cdf583492a9f52a21049f60e6b36a7e9f8aa7adc/pyzstd-0.16.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f5fbdb8cf31b60b2dc586fecb9b73e2f172c21a0b320ed275f7b8d8a866d9003", size = 240786 }, - { url = "https://files.pythonhosted.org/packages/91/f6/bd63e2587e0ec40abd9f92278a442bc28b7ff109e418d1240ee2eb6536aa/pyzstd-0.16.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:183f26e34f9becf0f2db38be9c0bfb136753d228bcb47c06c69175901bea7776", size = 364180 }, - { url = "https://files.pythonhosted.org/packages/ac/13/d4c68ad926e79d734f57b26d49447908e8dab7f5c066d3a013b0d0cfa2be/pyzstd-0.16.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:88318b64b5205a67748148d6d244097fa6cf61fcea02ad3435511b9e7155ae16", size = 279816 }, - { url = "https://files.pythonhosted.org/packages/b2/ba/76f0b75ec9e9fc3914496e036f99f345d5e0a99cb7070341f9becdaba2b8/pyzstd-0.16.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73142aa2571b6480136a1865ebda8257e09eabbc8bcd54b222202f6fa4febe1e", size = 321308 }, - { url = "https://files.pythonhosted.org/packages/a6/ea/9fe52bd777f33f007287f1a37bada7af5cf33d64904360c17bb64fefca21/pyzstd-0.16.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d3f8877c29a97f1b1bba16f3d3ab01ad10ad3da7bad317aecf36aaf8848b37c", size = 344368 }, - { url = "https://files.pythonhosted.org/packages/cc/c0/509077f73fc8e156ceeefb41d4b7e04aceb71b2339084fcd62d0ad3bfd75/pyzstd-0.16.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f25754562473ac7de856b8331ebd5964f5d85601045627a5f0bb0e4e899990", size = 328585 }, - { url = "https://files.pythonhosted.org/packages/14/74/a854ada61bf4c3c2ad239ec2bd1ff73cc0d718ccbcc56e3ced94e878fd50/pyzstd-0.16.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6ce17e84310080c55c02827ad9bb17893c00a845c8386a328b346f814aabd2c1", size = 240783 }, ] [[package]] @@ -3324,22 +3055,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/7f/8398c8155a3c70703a8e91c29532558186558e1aea44144b382faa2a6f7a/regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8", size = 787398 }, { url = "https://files.pythonhosted.org/packages/58/3a/f5903977647a9a7e46d5535e9e96c194304aeeca7501240509bde2f9e17f/regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8", size = 262035 }, { url = "https://files.pythonhosted.org/packages/ff/80/51ba3a4b7482f6011095b3a036e07374f64de180b7d870b704ed22509002/regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f", size = 273510 }, - { url = "https://files.pythonhosted.org/packages/a1/aa/e31baf8482ad690ccb3cdf20d1963a01e98d137e4d9ee493dbb0fa8ba2c6/regex-2024.9.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066", size = 482489 }, - { url = "https://files.pythonhosted.org/packages/a1/b5/449c2f14fc20dc42ef9729469fcff42809393470f021ed6c6fcf5f3d3297/regex-2024.9.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62", size = 287440 }, - { url = "https://files.pythonhosted.org/packages/3f/36/4b60a0c2e4cc6ecb2651be828117a31f42fae55a51a484a8071729df56a6/regex-2024.9.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16", size = 284566 }, - { url = "https://files.pythonhosted.org/packages/b4/21/feaa5b0d3e5e3bad659cd7d640e6b76cc0719504dbd9bc8f67cfa21bde82/regex-2024.9.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3", size = 782747 }, - { url = "https://files.pythonhosted.org/packages/bb/89/93516f0aa3e8a9366df2cf79bb0290abdc7dbe5dd27373d9bea0978b7ba6/regex-2024.9.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199", size = 822700 }, - { url = "https://files.pythonhosted.org/packages/d5/e7/79c04ccb81cee2831d9d4499274919b9153c1741ce8b3421d69cb0032f1b/regex-2024.9.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8", size = 809327 }, - { url = "https://files.pythonhosted.org/packages/01/e6/a7256c99c312b68f01cfd4f8eae6e770906fffb3832ecb66f35ca5b86b96/regex-2024.9.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca", size = 781970 }, - { url = "https://files.pythonhosted.org/packages/18/c4/29e8b6ff2208775858b5d4a2caa6428d40b5fade95aee426de7e42ffff39/regex-2024.9.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9", size = 771885 }, - { url = "https://files.pythonhosted.org/packages/95/78/7acd8882ac335f1f5ae1756417739fda3053e0bcacea8716ae4a04e74553/regex-2024.9.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a", size = 696978 }, - { url = "https://files.pythonhosted.org/packages/cb/d2/1d44f9b4a3d33ff5773fd79bea53e992d00f81e0af6f1f4e2efac1e4d897/regex-2024.9.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39", size = 768655 }, - { url = "https://files.pythonhosted.org/packages/79/ba/92ef9d3b8f59cb3df9febef07098dfb4a43c3bdcf35b1084c2009b0a93bf/regex-2024.9.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba", size = 776922 }, - { url = "https://files.pythonhosted.org/packages/16/71/d964c0c9d447f04bbe6ab5eafd220208e7d52b9608e452e6fcad553b38e0/regex-2024.9.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664", size = 845014 }, - { url = "https://files.pythonhosted.org/packages/83/cb/a378cdc2468782eefefa50183bbeabc3357fb588d4109d845f0a56e68713/regex-2024.9.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89", size = 844916 }, - { url = "https://files.pythonhosted.org/packages/b9/f0/82ea1565a6639270cfe96263002b3d91084a1db5048d9b6084f83bd5972d/regex-2024.9.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35", size = 773409 }, - { url = "https://files.pythonhosted.org/packages/97/9e/0400d742b9647b4940609a96d550de89e4e89c85f6a370796dab25b5979c/regex-2024.9.11-cp39-cp39-win32.whl", hash = "sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142", size = 261680 }, - { url = "https://files.pythonhosted.org/packages/b6/f1/aef1112652ac7b3922d2c129f8325a4fd286b66691127dd99f380f8ede19/regex-2024.9.11-cp39-cp39-win_amd64.whl", hash = "sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919", size = 274066 }, ] [[package]] @@ -3467,15 +3182,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/b8/01c29b924dcbbed75cc45b30c30d565d763b9c4d540545a0eeecffb8f09c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01", size = 709059 }, { url = "https://files.pythonhosted.org/packages/30/8c/ed73f047a73638257aa9377ad356bea4d96125b305c34a28766f4445cc0f/ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6", size = 98583 }, { url = "https://files.pythonhosted.org/packages/b0/85/e8e751d8791564dd333d5d9a4eab0a7a115f7e349595417fd50ecae3395c/ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3", size = 115190 }, - { url = "https://files.pythonhosted.org/packages/e5/46/ccdef7a84ad745c37cb3d9a81790f28fbc9adf9c237dba682017b123294e/ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987", size = 131834 }, - { url = "https://files.pythonhosted.org/packages/29/09/932360f30ad1b7b79f08757e0a6fb8c5392a52cdcc182779158fe66d25ac/ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45", size = 636120 }, - { url = "https://files.pythonhosted.org/packages/a2/2a/5b27602e7a4344c1334e26bf4739746206b7a60a8acdba33a61473468b73/ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519", size = 724914 }, - { url = "https://files.pythonhosted.org/packages/da/1c/23497017c554fc06ff5701b29355522cff850f626337fff35d9ab352cb18/ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7", size = 689072 }, - { url = "https://files.pythonhosted.org/packages/68/e6/f3d4ff3223f9ea49c3b7169ec0268e42bd49f87c70c0e3e853895e4a7ae2/ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285", size = 667091 }, - { url = "https://files.pythonhosted.org/packages/84/62/ead07043527642491e5011b143f44b81ef80f1025a96069b7210e0f2f0f3/ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed", size = 699111 }, - { url = "https://files.pythonhosted.org/packages/52/b3/fe4d84446f7e4887e3bea7ceff0a7df23790b5ed625f830e79ace88ebefb/ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7", size = 666365 }, - { url = "https://files.pythonhosted.org/packages/6e/b3/7feb99a00bfaa5c6868617bb7651308afde85e5a0b23cd187fe5de65feeb/ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12", size = 100863 }, - { url = "https://files.pythonhosted.org/packages/93/07/de635108684b7a5bb06e432b0930c5a04b6c59efe73bd966d8db3cc208f2/ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b", size = 118653 }, ] [[package]] @@ -3596,7 +3302,6 @@ version = "0.41.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3e/da/1fb4bdb72ae12b834becd7e1e7e47001d32f91ec0ce8d7bc1b618d9f0bd9/starlette-0.41.2.tar.gz", hash = "sha256:9834fd799d1a87fd346deb76158668cfa0b0d56f85caefe8268e2d97c3468b62", size = 2573867 } wheels = [ @@ -3886,28 +3591,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/45/ed/582c4daba0f3e1688d923b5cb914ada1f9defa702df38a1916c899f7c4d1/ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f", size = 1043580 }, { url = "https://files.pythonhosted.org/packages/d7/0c/9837fece153051e19c7bade9f88f9b409e026b9525927824cdf16293b43b/ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165", size = 38766 }, { url = "https://files.pythonhosted.org/packages/d7/72/6cb6728e2738c05bbe9bd522d6fc79f86b9a28402f38663e85a28fddd4a0/ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539", size = 42212 }, - { url = "https://files.pythonhosted.org/packages/97/94/50ff2f1b61d668907f20216873640ab19e0eaa77b51e64ee893f6adfb266/ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b", size = 55421 }, - { url = "https://files.pythonhosted.org/packages/0c/b3/3d2ca621d8dbeaf6c5afd0725e1b4bbd465077acc69eff1e9302735d1432/ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27", size = 51816 }, - { url = "https://files.pythonhosted.org/packages/8d/af/5dc103cb4d08f051f82d162a738adb9da488d1e3fafb9fd9290ea3eabf8e/ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76", size = 52023 }, - { url = "https://files.pythonhosted.org/packages/5d/dd/b9a6027ba782b0072bf24a70929e15a58686668c32a37aebfcfaa9e00bdd/ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5", size = 53622 }, - { url = "https://files.pythonhosted.org/packages/1f/28/bcf6df25c1a9f1989dc2ddc4ac8a80e246857e089f91a9079fd8a0a01459/ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0", size = 58563 }, - { url = "https://files.pythonhosted.org/packages/9e/82/89404453a102d06d0937f6807c0a7ef2eec68b200b4ce4386127f3c28156/ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1", size = 998050 }, - { url = "https://files.pythonhosted.org/packages/63/eb/2a4ea07165cad217bc842bb684b053bafa8ffdb818c47911c621e97a33fc/ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1", size = 1140672 }, - { url = "https://files.pythonhosted.org/packages/72/53/d7bdf6afabeba3ed899f89d993c7f202481fa291d8c5be031c98a181eda4/ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996", size = 1043577 }, - { url = "https://files.pythonhosted.org/packages/19/b1/75f5f0d18501fd34487e46829de3070724c7b350f1983ba7f07e0986720b/ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9", size = 38654 }, - { url = "https://files.pythonhosted.org/packages/77/0d/50d2f9238f6d6683ead5ecd32d83d53f093a3c0047ae4c720b6d586cb80d/ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a", size = 42134 }, { url = "https://files.pythonhosted.org/packages/95/53/e5f5e733fc3525e65f36f533b0dbece5e5e2730b760e9beacf7e3d9d8b26/ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64", size = 51846 }, { url = "https://files.pythonhosted.org/packages/59/1f/f7bc02a54ea7b47f3dc2d125a106408f18b0f47b14fc737f0913483ae82b/ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3", size = 48103 }, { url = "https://files.pythonhosted.org/packages/1a/3a/d3921b6f29bc744d8d6c56db5f8bbcbe55115fd0f2b79c3c43ff292cc7c9/ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a", size = 47257 }, { url = "https://files.pythonhosted.org/packages/f1/04/f4e3883204b786717038064afd537389ba7d31a72b437c1372297cb651ea/ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746", size = 48468 }, { url = "https://files.pythonhosted.org/packages/17/cd/9c6547169eb01a22b04cbb638804ccaeb3c2ec2afc12303464e0f9b2ee5a/ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88", size = 54266 }, { url = "https://files.pythonhosted.org/packages/70/bf/ecd14d3cf6127f8a990b01f0ad20e257f5619a555f47d707c57d39934894/ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b", size = 42224 }, - { url = "https://files.pythonhosted.org/packages/8d/96/a3a2356ca5a4b67fe32a0c31e49226114d5154ba2464bb1220a93eb383e8/ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4", size = 51855 }, - { url = "https://files.pythonhosted.org/packages/73/3d/41e78e7500e75eb6b5a7ab06907a6df35603b92ac6f939b86f40e9fe2c06/ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8", size = 48059 }, - { url = "https://files.pythonhosted.org/packages/be/14/e435cbe5b5189483adbba5fe328e88418ccd54b2b1f74baa4172384bb5cd/ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b", size = 47238 }, - { url = "https://files.pythonhosted.org/packages/e8/d9/b6f4d1e6bec20a3b582b48f64eaa25209fd70dc2892b21656b273bc23434/ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804", size = 48457 }, - { url = "https://files.pythonhosted.org/packages/23/1c/cfefabb5996e21a1a4348852df7eb7cfc69299143739e86e5b1071c78735/ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e", size = 54238 }, - { url = "https://files.pythonhosted.org/packages/af/c4/fa70e77e1c27bbaf682d790bd09ef40e86807ada704c528ef3ea3418d439/ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7", size = 42230 }, ] [[package]] @@ -3992,12 +3681,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/19/f5b78616566ea68edd42aacaf645adbf71fbd83fc52281fba555dc27e3f1/uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816", size = 4701068 }, { url = "https://files.pythonhosted.org/packages/47/57/66f061ee118f413cd22a656de622925097170b9380b30091b78ea0c6ea75/uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc", size = 4454428 }, { url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018 }, - { url = "https://files.pythonhosted.org/packages/3c/a4/646a9d0edff7cde25fc1734695d3dfcee0501140dd0e723e4df3f0a50acb/uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b", size = 1439646 }, - { url = "https://files.pythonhosted.org/packages/01/2e/e128c66106af9728f86ebfeeb52af27ecd3cb09336f3e2f3e06053707a15/uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2", size = 800931 }, - { url = "https://files.pythonhosted.org/packages/2d/1a/9fbc2b1543d0df11f7aed1632f64bdf5ecc4053cf98cdc9edb91a65494f9/uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0", size = 3829660 }, - { url = "https://files.pythonhosted.org/packages/b8/c0/392e235e4100ae3b95b5c6dac77f82b529d2760942b1e7e0981e5d8e895d/uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75", size = 3827185 }, - { url = "https://files.pythonhosted.org/packages/e1/24/a5da6aba58f99aed5255eca87d58d1760853e8302d390820cc29058408e3/uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd", size = 3705833 }, - { url = "https://files.pythonhosted.org/packages/1a/5c/6ba221bb60f1e6474474102e17e38612ec7a06dc320e22b687ab563d877f/uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff", size = 3804696 }, ] [[package]] @@ -4007,9 +3690,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pscript" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/22/be/f0c6204a36440bbcc086bfa25964d009b7391c5a3c74d6e73188efd47adb/vbuild-0.8.2.tar.gz", hash = "sha256:270cd9078349d907dfae6c0e6364a5a5e74cb86183bb5093613f12a18b435fa9", size = 8937 } +sdist = { url = "https://files.pythonhosted.org/packages/22/be/f0c6204a36440bbcc086bfa25964d009b7391c5a3c74d6e73188efd47adb/vbuild-0.8.2.tar.gz", hash = "sha256:270cd9078349d907dfae6c0e6364a5a5e74cb86183bb5093613f12a18b435fa9" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/3d/7b22abbdb059d551507275a2815bc2b1974e3b9f6a13781c1eac9e858965/vbuild-0.8.2-py2.py3-none-any.whl", hash = "sha256:d76bcc976a1c53b6a5776ac947606f9e7786c25df33a587ebe33ed09dd8a1076", size = 9371 }, + { url = "https://files.pythonhosted.org/packages/a6/3d/7b22abbdb059d551507275a2815bc2b1974e3b9f6a13781c1eac9e858965/vbuild-0.8.2-py2.py3-none-any.whl", hash = "sha256:d76bcc976a1c53b6a5776ac947606f9e7786c25df33a587ebe33ed09dd8a1076" }, ] [[package]] @@ -4052,13 +3735,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/79/63/eb8994a182672c042d85a33507475c50c2ee930577524dd97aea05251527/watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b", size = 100343 }, { url = "https://files.pythonhosted.org/packages/ce/82/027c0c65c2245769580605bcd20a1dc7dfd6c6683c8c4e2ef43920e38d27/watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d", size = 92313 }, { url = "https://files.pythonhosted.org/packages/2a/89/ad4715cbbd3440cb0d336b78970aba243a33a24b1a79d66f8d16b4590d6a/watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7", size = 92919 }, - { url = "https://files.pythonhosted.org/packages/68/eb/34d3173eceab490d4d1815ba9a821e10abe1da7a7264a224e30689b1450c/watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9", size = 100254 }, - { url = "https://files.pythonhosted.org/packages/18/a1/4bbafe7ace414904c2cc9bd93e472133e8ec11eab0b4625017f0e34caad8/watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578", size = 92249 }, - { url = "https://files.pythonhosted.org/packages/f3/11/ec5684e0ca692950826af0de862e5db167523c30c9cbf9b3f4ce7ec9cc05/watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b", size = 92891 }, { url = "https://files.pythonhosted.org/packages/3b/9a/6f30f023324de7bad8a3eb02b0afb06bd0726003a3550e9964321315df5a/watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa", size = 91775 }, { url = "https://files.pythonhosted.org/packages/87/62/8be55e605d378a154037b9ba484e00a5478e627b69c53d0f63e3ef413ba6/watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3", size = 92255 }, - { url = "https://files.pythonhosted.org/packages/70/3f/2173b4d9581bc9b5df4d7f2041b6c58b5e5448407856f68d4be9981000d0/watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1", size = 91773 }, - { url = "https://files.pythonhosted.org/packages/f0/de/6fff29161d5789048f06ef24d94d3ddcc25795f347202b7ea503c3356acb/watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e", size = 92250 }, { url = "https://files.pythonhosted.org/packages/8a/b1/25acf6767af6f7e44e0086309825bd8c098e301eed5868dc5350642124b9/watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83", size = 82947 }, { url = "https://files.pythonhosted.org/packages/e8/90/aebac95d6f954bd4901f5d46dcd83d68e682bfd21798fd125a95ae1c9dbf/watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c", size = 82942 }, { url = "https://files.pythonhosted.org/packages/15/3a/a4bd8f3b9381824995787488b9282aff1ed4667e1110f31a87b871ea851c/watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a", size = 82947 }, @@ -4130,26 +3808,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6d/d5/b96eeb9fe3fda137200dd2f31553670cbc731b1e13164fd69b49870b76ec/watchfiles-0.24.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:edf71b01dec9f766fb285b73930f95f730bb0943500ba0566ae234b5c1618c18", size = 593625 }, { url = "https://files.pythonhosted.org/packages/c1/e5/c326fe52ee0054107267608d8cea275e80be4455b6079491dfd9da29f46f/watchfiles-0.24.0-cp313-none-win32.whl", hash = "sha256:f4c96283fca3ee09fb044f02156d9570d156698bc3734252175a38f0e8975f07", size = 263899 }, { url = "https://files.pythonhosted.org/packages/a6/8b/8a7755c5e7221bb35fe4af2dc44db9174f90ebf0344fd5e9b1e8b42d381e/watchfiles-0.24.0-cp313-none-win_amd64.whl", hash = "sha256:a974231b4fdd1bb7f62064a0565a6b107d27d21d9acb50c484d2cdba515b9366", size = 276622 }, - { url = "https://files.pythonhosted.org/packages/93/90/15b3b1cc19799c217e4369ca15dbf9ba1d0f821d61b27173a54800002478/watchfiles-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b665caeeda58625c3946ad7308fbd88a086ee51ccb706307e5b1fa91556ac886", size = 375920 }, - { url = "https://files.pythonhosted.org/packages/74/e2/ec7766a5b20ba5e37397ef8d32ff39a90daf7e4677410efe077c386338b6/watchfiles-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5c51749f3e4e269231510da426ce4a44beb98db2dce9097225c338f815b05d4f", size = 369382 }, - { url = "https://files.pythonhosted.org/packages/a2/82/915b3a3295292f860181dc9c7d922834ac7265c8915052d396d40ccf4617/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82b2509f08761f29a0fdad35f7e1638b8ab1adfa2666d41b794090361fb8b855", size = 438556 }, - { url = "https://files.pythonhosted.org/packages/9b/76/750eab8e7baecedca05e712b9571ac5eb240e494e8d4c78b359da2939619/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a60e2bf9dc6afe7f743e7c9b149d1fdd6dbf35153c78fe3a14ae1a9aee3d98b", size = 433677 }, - { url = "https://files.pythonhosted.org/packages/1a/69/7c55142bafcdad9fec58433b7c1f162b59c48f0a3732a9441252147b13c7/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f7d9b87c4c55e3ea8881dfcbf6d61ea6775fffed1fedffaa60bd047d3c08c430", size = 451845 }, - { url = "https://files.pythonhosted.org/packages/d7/a6/124b0043a8936adf96fffa1d73217b205cc254b4a5a313b0a6ea33a44b7b/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78470906a6be5199524641f538bd2c56bb809cd4bf29a566a75051610bc982c3", size = 469931 }, - { url = "https://files.pythonhosted.org/packages/7a/14/29ffa6c7a695fb46a7ff835a5524976dbc07577215647fb35a61ea099c75/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07cdef0c84c03375f4e24642ef8d8178e533596b229d32d2bbd69e5128ede02a", size = 476577 }, - { url = "https://files.pythonhosted.org/packages/9d/8b/fea47dd852c644bd933108877293d0a1c56953c584e8b971530a9042c153/watchfiles-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d337193bbf3e45171c8025e291530fb7548a93c45253897cd764a6a71c937ed9", size = 426432 }, - { url = "https://files.pythonhosted.org/packages/0e/11/cfa073f1d9fa18867c2b4220ba445044fd48101ac481f8cbfea1c208ea88/watchfiles-0.24.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ec39698c45b11d9694a1b635a70946a5bad066b593af863460a8e600f0dff1ca", size = 613173 }, - { url = "https://files.pythonhosted.org/packages/77/44/05c8959304f96fbcd68b6c131c59df7bd3d7f0c2a7410324b7f63b1f9fe6/watchfiles-0.24.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e28d91ef48eab0afb939fa446d8ebe77e2f7593f5f463fd2bb2b14132f95b6e", size = 596184 }, - { url = "https://files.pythonhosted.org/packages/9b/85/033ecdb5eccb77770d6f24f9fa055067ffa962313a1383645afc711a3cd8/watchfiles-0.24.0-cp39-none-win32.whl", hash = "sha256:7138eff8baa883aeaa074359daabb8b6c1e73ffe69d5accdc907d62e50b1c0da", size = 264345 }, - { url = "https://files.pythonhosted.org/packages/16/6e/5ded97365346eceaf7fa32d4e2d16f4f97b11d648026b2903c2528c544f8/watchfiles-0.24.0-cp39-none-win_amd64.whl", hash = "sha256:b3ef2c69c655db63deb96b3c3e587084612f9b1fa983df5e0c3379d41307467f", size = 277760 }, { url = "https://files.pythonhosted.org/packages/df/94/1ad200e937ec91b2a9d6b39ae1cf9c2b1a9cc88d5ceb43aa5c6962eb3c11/watchfiles-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:632676574429bee8c26be8af52af20e0c718cc7f5f67f3fb658c71928ccd4f7f", size = 376986 }, { url = "https://files.pythonhosted.org/packages/ee/fd/d9e020d687ccf90fe95efc513fbb39a8049cf5a3ff51f53c59fcf4c47a5d/watchfiles-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a2a9891723a735d3e2540651184be6fd5b96880c08ffe1a98bae5017e65b544b", size = 369445 }, { url = "https://files.pythonhosted.org/packages/43/cb/c0279b35053555d10ef03559c5aebfcb0c703d9c70a7b4e532df74b9b0e8/watchfiles-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7fa2bc0efef3e209a8199fd111b8969fe9db9c711acc46636686331eda7dd4", size = 439383 }, { url = "https://files.pythonhosted.org/packages/8b/c4/08b3c2cda45db5169148a981c2100c744a4a222fa7ae7644937c0c002069/watchfiles-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01550ccf1d0aed6ea375ef259706af76ad009ef5b0203a3a4cce0f6024f9b68a", size = 426804 }, - { url = "https://files.pythonhosted.org/packages/02/81/9c9a1e6a83d3c320d2f89eca2b71854ae727eca8ab298ad5da00e36c69e2/watchfiles-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:96619302d4374de5e2345b2b622dc481257a99431277662c30f606f3e22f42be", size = 377076 }, - { url = "https://files.pythonhosted.org/packages/f1/05/9ef4158f15c417a420d907a6eb887c81953565d0268262195766a844a6d9/watchfiles-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:85d5f0c7771dcc7a26c7a27145059b6bb0ce06e4e751ed76cdf123d7039b60b5", size = 371717 }, - { url = "https://files.pythonhosted.org/packages/81/1b/8d036da7a9e4d490385b6979804229fb7ac9b591e4d84f159edf2b3f7cc2/watchfiles-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951088d12d339690a92cef2ec5d3cfd957692834c72ffd570ea76a6790222777", size = 440973 }, - { url = "https://files.pythonhosted.org/packages/fb/fc/885015d4a17ada85508e406c10d638808e7bfbb5622a2e342c868ede18c0/watchfiles-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fb58bcaa343fedc6a9e91f90195b20ccb3135447dc9e4e2570c3a39565853e", size = 428343 }, ] [[package]] @@ -4202,29 +3864,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a1/6e/66b6b756aebbd680b934c8bdbb6dcb9ce45aad72cde5f8a7208dbb00dd36/websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6", size = 164732 }, { url = "https://files.pythonhosted.org/packages/35/c6/12e3aab52c11aeb289e3dbbc05929e7a9d90d7a9173958477d3ef4f8ce2d/websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d", size = 158709 }, { url = "https://files.pythonhosted.org/packages/41/d8/63d6194aae711d7263df4498200c690a9c39fb437ede10f3e157a6343e0d/websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2", size = 159144 }, - { url = "https://files.pythonhosted.org/packages/61/26/5f7a7fb03efedb4f90ed61968338bfe7c389863b0ceda239b94ae61c5ae4/websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d", size = 157810 }, - { url = "https://files.pythonhosted.org/packages/0e/d4/9b4814a07dffaa7a79d71b4944d10836f9adbd527a113f6675734ef3abed/websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7", size = 155467 }, - { url = "https://files.pythonhosted.org/packages/1a/1a/2abdc7ce3b56429ae39d6bfb48d8c791f5a26bbcb6f44aabcf71ffc3fda2/websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a", size = 155714 }, - { url = "https://files.pythonhosted.org/packages/2a/98/189d7cf232753a719b2726ec55e7922522632248d5d830adf078e3f612be/websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa", size = 164587 }, - { url = "https://files.pythonhosted.org/packages/a5/2b/fb77cedf3f9f55ef8605238c801eef6b9a5269b01a396875a86896aea3a6/websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa", size = 163588 }, - { url = "https://files.pythonhosted.org/packages/a3/b7/070481b83d2d5ac0f19233d9f364294e224e6478b0762f07fa7f060e0619/websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79", size = 163894 }, - { url = "https://files.pythonhosted.org/packages/eb/be/d6e1cff7d441cfe5eafaacc5935463e5f14c8b1c0d39cb8afde82709b55a/websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17", size = 164315 }, - { url = "https://files.pythonhosted.org/packages/8b/5e/ffa234473e46ab2d3f9fd9858163d5db3ecea1439e4cb52966d78906424b/websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6", size = 163714 }, - { url = "https://files.pythonhosted.org/packages/cc/92/cea9eb9d381ca57065a5eb4ec2ce7a291bd96c85ce742915c3c9ffc1069f/websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5", size = 163673 }, - { url = "https://files.pythonhosted.org/packages/a4/f1/279104fff239bfd04c12b1e58afea227d72fd1acf431e3eed3f6ac2c96d2/websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c", size = 158702 }, - { url = "https://files.pythonhosted.org/packages/25/0b/b87370ff141375c41f7dd67941728e4b3682ebb45882591516c792a2ebee/websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d", size = 159146 }, { url = "https://files.pythonhosted.org/packages/2d/75/6da22cb3ad5b8c606963f9a5f9f88656256fecc29d420b4b2bf9e0c7d56f/websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238", size = 155499 }, { url = "https://files.pythonhosted.org/packages/c0/ba/22833d58629088fcb2ccccedfae725ac0bbcd713319629e97125b52ac681/websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5", size = 155737 }, { url = "https://files.pythonhosted.org/packages/95/54/61684fe22bdb831e9e1843d972adadf359cf04ab8613285282baea6a24bb/websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9", size = 157095 }, { url = "https://files.pythonhosted.org/packages/fc/f5/6652fb82440813822022a9301a30afde85e5ff3fb2aebb77f34aabe2b4e8/websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6", size = 156701 }, { url = "https://files.pythonhosted.org/packages/67/33/ae82a7b860fa8a08aba68818bdf7ff61f04598aa5ab96df4cd5a3e418ca4/websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a", size = 156654 }, { url = "https://files.pythonhosted.org/packages/63/0b/a1b528d36934f833e20f6da1032b995bf093d55cb416b9f2266f229fb237/websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23", size = 159192 }, - { url = "https://files.pythonhosted.org/packages/59/fd/e4bf9a7159dba6a16c59ae9e670e3e8ad9dcb6791bc0599eb86de32d50a9/websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e", size = 155499 }, - { url = "https://files.pythonhosted.org/packages/74/42/d48ede93cfe0c343f3b552af08efc60778d234989227b16882eed1b8b189/websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09", size = 155731 }, - { url = "https://files.pythonhosted.org/packages/f6/f2/2ef6bff1c90a43b80622a17c0852b48c09d3954ab169266ad7b15e17cdcb/websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842", size = 157093 }, - { url = "https://files.pythonhosted.org/packages/d1/14/6f20bbaeeb350f155edf599aad949c554216f90e5d4ae7373d1f2e5931fb/websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb", size = 156701 }, - { url = "https://files.pythonhosted.org/packages/c7/86/38279dfefecd035e22b79c38722d4f87c4b6196f1556b7a631d0a3095ca7/websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20", size = 156649 }, - { url = "https://files.pythonhosted.org/packages/f6/c5/12c6859a2eaa8c53f59a647617a27f1835a226cd7106c601067c53251d98/websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678", size = 159187 }, { url = "https://files.pythonhosted.org/packages/56/27/96a5cd2626d11c8280656c6c71d8ab50fe006490ef9971ccd154e0c42cd2/websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f", size = 152134 }, ] @@ -4255,9 +3900,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/c2/87551e0ec1796812396e1065e04cbf303557d8e4820c5eb53d707fa1ca62/winrt_runtime-2.3.0-cp313-cp313-win32.whl", hash = "sha256:77f06df6b7a6cb536913ae455e30c1733d31d88dafe2c3cd8c3d0e2bcf7e2a20", size = 183255 }, { url = "https://files.pythonhosted.org/packages/d5/12/cd01c5825affcace2590ab6b771baf17a5f1289939fd5cabd317be501eb2/winrt_runtime-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:7388774b74ea2f4510ab3a98c95af296665ebe69d9d7e2fd7ee2c3fc5856099e", size = 213404 }, { url = "https://files.pythonhosted.org/packages/c2/52/4b5bb8f46703efe650a021240d94d80d75eea98b3a4f817640f73b93b1c8/winrt_runtime-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:0d3a4ac7661cad492d51653054e63328b940a6083c1ee1dd977f90069cb8afaa", size = 390639 }, - { url = "https://files.pythonhosted.org/packages/7d/4b/3d4acb821d4bcc2fe4235486cc53d7ccf1af4d32b78a8e47b71ee037cb8d/winrt_runtime-2.3.0-cp39-cp39-win32.whl", hash = "sha256:cd7bce2c7703054e7f64d11be665e9728e15d9dae0d952a51228fe830e0c4b55", size = 184226 }, - { url = "https://files.pythonhosted.org/packages/63/fa/42254803549091fcd094addc2d287cc7f99487699d04af5a8f225ef50ce9/winrt_runtime-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:2da01af378ab9374a3a933da97543f471a676a3b844318316869bffeff811e8a", size = 214166 }, - { url = "https://files.pythonhosted.org/packages/3c/7a/2ad1e3347e92d29912b6f68a2d7a196ffac5477b571bcccd94930f89af02/winrt_runtime-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:1c6bbfcc7cbe1c8159ed5d776b30b7f1cbc2c6990803292823b0788c22d75636", size = 391352 }, ] [[package]] @@ -4265,7 +3907,7 @@ name = "winrt-windows-applicationmodel-core" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "winrt-runtime", marker = "(python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version < '3.13' and sys_platform != 'linux') or (platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (platform_python_implementation == 'CPython' and sys_platform != 'linux')" }, + { name = "winrt-runtime" }, ] sdist = { url = "https://files.pythonhosted.org/packages/95/e9/bbe2d682b0da132df02a0715d549ac7be98b83b6157d3dea6eb8ecd872fe/winrt_windows_applicationmodel_core-2.3.0.tar.gz", hash = "sha256:17ac6cb2c6872d51625547b4df5eadd0b296d966e976868520183d6dc45a0884", size = 11402 } wheels = [ @@ -4281,9 +3923,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c8/aa/2c96a8b555d850ce38426cff6a70f8d74035c306c427a7f9d6aeb3d879e7/winrt_Windows.ApplicationModel.Core-2.3.0-cp313-cp313-win32.whl", hash = "sha256:923435eb28301579868715a4c85813cde3bd204d0604c6b4763898f8a9668689", size = 56696 }, { url = "https://files.pythonhosted.org/packages/a5/74/b0f2529f1095d73ee481b8b618667279f0e633f8beeed8cda775ff31ac2f/winrt_Windows.ApplicationModel.Core-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:5222db4fe2db889d25278aa1a3ea103c916bfbac10b280d9bbafab0a9699addc", size = 63384 }, { url = "https://files.pythonhosted.org/packages/03/c9/c44809903c1afa033160d81067436aee888a347cba6e139178b50c3670cf/winrt_Windows.ApplicationModel.Core-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:442ee7123315df3d41bdc03688821d338cc83bbd5b31130bf95f7b8c928a5f94", size = 58088 }, - { url = "https://files.pythonhosted.org/packages/7a/5d/246f00e6fbdba1228583a5e61caa017534ed1651d6855099cfba9d3be509/winrt_Windows.ApplicationModel.Core-2.3.0-cp39-cp39-win32.whl", hash = "sha256:a3df2a7f0c7d6d49f5830760f1c280bda1630d7a533358715e4ae126edd7b463", size = 56701 }, - { url = "https://files.pythonhosted.org/packages/4a/30/e86d377ddf6bfea48614b2a334eec704b170c99cb4c6cfa24088a0f0411d/winrt_Windows.ApplicationModel.Core-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d1e30df0f1b8af34262b351f66945511e1ffc2ae79452e360deb0a6fa38e1996", size = 63703 }, - { url = "https://files.pythonhosted.org/packages/a8/cf/214f9ee648ad0dc1f345a5bcbe866832d89d553abc3010e2d5de65bb79b1/winrt_Windows.ApplicationModel.Core-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:a54d963b29be87d1ee6ee414f9db2388ca1ca4a5490919473d372c033fc6af45", size = 58366 }, ] [[package]] @@ -4291,7 +3930,7 @@ name = "winrt-windows-data-xml-dom" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "winrt-runtime", marker = "(python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version < '3.13' and sys_platform != 'linux') or (platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (platform_python_implementation == 'CPython' and sys_platform != 'linux')" }, + { name = "winrt-runtime" }, ] sdist = { url = "https://files.pythonhosted.org/packages/16/15/fbc461056ff571862b72472a78b9038c2debfa06978f967d17fd25b28c1b/winrt_windows_data_xml_dom-2.3.0.tar.gz", hash = "sha256:3a9a8ded7d6ccaf5a141f3bb5eb6abdbdf680a25ec1dc0cd542ea1a4a652571a", size = 39525 } wheels = [ @@ -4307,9 +3946,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a2/62/900f9e0221159d4eeaa4ea8617a1c478ec36d922a192f5a743eaaf4cdbbf/winrt_Windows.Data.Xml.Dom-2.3.0-cp313-cp313-win32.whl", hash = "sha256:12fc93efd93b1eb40b932cf47736ba42dcd94955d33266c91fcb5f4456b820a5", size = 130411 }, { url = "https://files.pythonhosted.org/packages/f5/57/d4b8396177dec48ff3001e318b3a32f77e0ea1a74c14e9555f00546433f0/winrt_Windows.Data.Xml.Dom-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:6a37754acce645ce1fefeb1fafc8f703b8912528dc0178650392335d24647ed2", size = 163696 }, { url = "https://files.pythonhosted.org/packages/c0/e4/49406ff47d9347a8eda3dc717aa548a4e02d0269bcc08805ecb9279ee353/winrt_Windows.Data.Xml.Dom-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:48f6203613d6b4a17316e4682c60a73cd24bd1a1a897e5b38497a4fe23de0c1f", size = 138250 }, - { url = "https://files.pythonhosted.org/packages/59/1c/203cee0b55d47f3af78cdddfe04b683394394422f20a2809917e2a99a17c/winrt_Windows.Data.Xml.Dom-2.3.0-cp39-cp39-win32.whl", hash = "sha256:94095b93e3f1d99432f00b01c4a8fd9dc285b3a3b5b785e0d5add4a6f09482b2", size = 130427 }, - { url = "https://files.pythonhosted.org/packages/52/3e/16c977c278808d2acf462b3df7dfa62fe06a5dc59e2aec746616005d6f03/winrt_Windows.Data.Xml.Dom-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58315e7c7f75f5241988b67a264b4747e3e2041e0780f3cfa6402a630ffae93", size = 163695 }, - { url = "https://files.pythonhosted.org/packages/ec/78/cfc623f6b365da180ed5513d5ccae39a85b0b458b59c8ee84abd4289aed7/winrt_Windows.Data.Xml.Dom-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:875767d9e7f65e3fb3bb6675d370df6519e9746b0f20c8d1e06a44781339345d", size = 138721 }, ] [[package]] @@ -4317,7 +3953,7 @@ name = "winrt-windows-foundation" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "winrt-runtime", marker = "(python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version < '3.13' and sys_platform != 'linux') or (platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (platform_python_implementation == 'CPython' and sys_platform != 'linux')" }, + { name = "winrt-runtime" }, ] sdist = { url = "https://files.pythonhosted.org/packages/55/7f/93fd748713622d999c5ae71fe66441c6d63b7b826285555e68807481222c/winrt_windows_foundation-2.3.0.tar.gz", hash = "sha256:c5766f011c8debbe89b460af4a97d026ca252144e62d7278c9c79c5581ea0c02", size = 22594 } wheels = [ @@ -4333,9 +3969,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/a0/a7d21584cac23961acaa359398ae3f5ad5d1a35b98e3be9c130634c226f8/winrt_Windows.Foundation-2.3.0-cp313-cp313-win32.whl", hash = "sha256:2b00fad3f2a3859ccae41eee12ab44434813a371c2f3003b4f2419e5eecb4832", size = 85760 }, { url = "https://files.pythonhosted.org/packages/07/fe/2553025e5d1cf880b272d15ae43c5014c74687bfc041d4260d069f5357f3/winrt_Windows.Foundation-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:686619932b2a2c689cbebc7f5196437a45fd2056656ef130bb10240bb111086a", size = 100140 }, { url = "https://files.pythonhosted.org/packages/ab/b7/94ed1b3d5341115a7f5dab8fff7b22695ae8779ece94ce9b2d9608d47478/winrt_Windows.Foundation-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b38dcb83fe82a7da9a57d7d5ad5deb09503b5be6d9357a9fd3016ca31673805d", size = 86641 }, - { url = "https://files.pythonhosted.org/packages/d5/99/cdf8a3c431fec498795524cc7366970862a38eeeb3b16d2489dfb091e011/winrt_Windows.Foundation-2.3.0-cp39-cp39-win32.whl", hash = "sha256:2d6922de4dc38061b86d314c7319d7c6bd78a52d64ee0c93eb81474bddb499bc", size = 85900 }, - { url = "https://files.pythonhosted.org/packages/41/d4/65de7f7b2df0a465fb3c145773787a6d40e1a10ccd8bd7512287b7bd7415/winrt_Windows.Foundation-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:1513e43adff3779d2f611d8bdf9350ac1a7c04389e9e6b1d777c5cd54f46e4fc", size = 99727 }, - { url = "https://files.pythonhosted.org/packages/4f/94/f116bb10690d763bf2e338f4d1a6e28bae72d4ec885cbbf3d74b24b4ce0f/winrt_Windows.Foundation-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:c811e4a4f79b947fbbb50f74d34ef6840dd2dd26e0199bd61a4185e48c6a84a8", size = 86958 }, ] [[package]] @@ -4343,7 +3976,7 @@ name = "winrt-windows-foundation-collections" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "winrt-runtime", marker = "(python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version < '3.13' and sys_platform != 'linux') or (platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (platform_python_implementation == 'CPython' and sys_platform != 'linux')" }, + { name = "winrt-runtime" }, ] sdist = { url = "https://files.pythonhosted.org/packages/59/fc/a8687fb0095471b0db29f6c921a8eb971f55ab79e1ccb5bcd01bf1b4baba/winrt_windows_foundation_collections-2.3.0.tar.gz", hash = "sha256:15c997fd6b64ef0400a619319ea3c6851c9c24e31d51b6448ba9bac3616d25a0", size = 12932 } wheels = [ @@ -4359,9 +3992,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ea/00/aef792aa5434c7bd69161606c7c001bba6d38a2759dc2112c19f548ea187/winrt_Windows.Foundation.Collections-2.3.0-cp313-cp313-win32.whl", hash = "sha256:1e5f1637e0919c7bb5b11ba1eebbd43bc0ad9600cf887b59fcece0f8a6c0eac3", size = 51201 }, { url = "https://files.pythonhosted.org/packages/e6/cf/dbca5e255ad05a162f82ad0f8dba7cdf91ebaf78b955f056b8fc98ead448/winrt_Windows.Foundation.Collections-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:c809a70bc0f93d53c7289a0a86d8869740e09fff0c57318a14401f5c17e0b912", size = 60736 }, { url = "https://files.pythonhosted.org/packages/55/84/6e3a75da245964461b3e6ac5a9db7d596fbbe8cf13bf771b4264c2c93ba6/winrt_Windows.Foundation.Collections-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:269942fe86af06293a2676c8b2dcd5cb1d8ddfe1b5244f11c16e48ae0a5d100f", size = 52492 }, - { url = "https://files.pythonhosted.org/packages/42/1f/77683cbbe24bd082f69437315bc36c7627ea7f88a4f20516c2e48ce795ff/winrt_Windows.Foundation.Collections-2.3.0-cp39-cp39-win32.whl", hash = "sha256:936b1c5720b564ec699673198addee97f3bdb790622d24c8fd1b346a9767717c", size = 51383 }, - { url = "https://files.pythonhosted.org/packages/e1/27/5d97805bd203780907a98b2ca6d27c045059fae5d94d5f406f8862e5b1de/winrt_Windows.Foundation.Collections-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:905a6ac9cd6b51659a9bba08cf44cfc925f528ef34cdd9c3a6c2632e97804a96", size = 60913 }, - { url = "https://files.pythonhosted.org/packages/af/c0/e0761c619fac825ed36e1f6e69dee505a4e98fc754ebf733e3ef997938b3/winrt_Windows.Foundation.Collections-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:1d6eac85976bd831e1b8cc479d7f14afa51c27cec5a38e2540077d3400cbd3ef", size = 52491 }, ] [[package]] @@ -4382,9 +4012,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/70/d4/e0f1c515758dfa3f165ec1e9fbf99f5597280efd7b728cab427f33f270e9/winrt_Windows.Foundation.Interop-2.3.0-cp313-cp313-win32.whl", hash = "sha256:917839b4d0a87730c1ff604bdbbe21f39c5d2de5b691694776e7f96fa49f8002", size = 8294 }, { url = "https://files.pythonhosted.org/packages/59/48/a098f3ebd8663fd9d2138dce9606713753ffe6417d629ad51fa5ab514441/winrt_Windows.Foundation.Interop-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81cf25ce23a4e7703c79c55546c012d7e274f6212e785513d0114d97537a2c0e", size = 8669 }, { url = "https://files.pythonhosted.org/packages/1c/53/2c5e20166769eee4211b67858b23bb08b3e98c60567336d820c2e176831d/winrt_Windows.Foundation.Interop-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:a5dedb8559382b850b77c984b8b42a730fe2a49294716ba3e48b7e8e30140dc7", size = 7395 }, - { url = "https://files.pythonhosted.org/packages/3d/cc/2b0637554ea30de609289e19669ecbf551c3179d2a212dae069a99274208/winrt_Windows.Foundation.Interop-2.3.0-cp39-cp39-win32.whl", hash = "sha256:bc0cc162303b3118f160cbffe4cdc98bd6675c22d13b6b7af12692abe9c018f4", size = 8285 }, - { url = "https://files.pythonhosted.org/packages/bd/05/f0dfa4d8bdae2f10d40a6477df822b53189311a7eea2af5257aa0ca7cb55/winrt_Windows.Foundation.Interop-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:3d363550aef4464784ef8445d5a01d11cca72aed5c7094fc4458b15102a45609", size = 8660 }, - { url = "https://files.pythonhosted.org/packages/e3/33/f4e59f887d1b4c41b7bf657a3f18150fccf6ec1b1859952f66d4f19cf584/winrt_Windows.Foundation.Interop-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:64514ea00b70e1acf413d728e7503b7682873a4fd8c7038c0d641e7c4fc94979", size = 7390 }, ] [[package]] @@ -4392,7 +4019,7 @@ name = "winrt-windows-ui-notifications" version = "2.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "winrt-runtime", marker = "(python_full_version < '3.13' and platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation != 'CPython') or (python_full_version < '3.13' and sys_platform != 'linux') or (platform_machine != 'aarch64' and platform_machine != 'armv7l' and platform_machine != 'i686' and platform_machine != 'ppc64le' and platform_machine != 's390x' and platform_machine != 'x86_64' and platform_python_implementation == 'CPython') or (platform_python_implementation == 'CPython' and sys_platform != 'linux')" }, + { name = "winrt-runtime" }, ] sdist = { url = "https://files.pythonhosted.org/packages/2a/77/eec58fcf1fb6ef494da53a47b78fc783bdd9e3d155d5e2ff387a29f42231/winrt_windows_ui_notifications-2.3.0.tar.gz", hash = "sha256:3bd5b1b991bfe9cd29f9357ebbef2387cccd3dbb5203d7c143c7c5d6d2631227", size = 25567 } wheels = [ @@ -4408,9 +4035,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/23/b276e61b3b5775fb369d9b6e277488960c03905cfd2a71d6436d1a3307bf/winrt_Windows.UI.Notifications-2.3.0-cp313-cp313-win32.whl", hash = "sha256:dc1230249d63865f33f80ab0cae1139987dca446fa44af27b593afe99a67bf05", size = 129756 }, { url = "https://files.pythonhosted.org/packages/d0/9c/399a04267e86ecae131603c30dde064a7fe294d0e34dcdcf4b343412e8e5/winrt_Windows.UI.Notifications-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:33cd44d4744d3b4b0ef7dc624bcd3483c6f0c8eb92006e45e2fdeed00eea69ec", size = 150920 }, { url = "https://files.pythonhosted.org/packages/43/ce/58335fe4a4d25e5f32f43ad360b3656bb8ef2ea293c5261af3473471b3ba/winrt_Windows.UI.Notifications-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:5a8b52b373b1b61432743ec4169b729fe35f1126eb6355a6506a8ef6d69ed18c", size = 136438 }, - { url = "https://files.pythonhosted.org/packages/b1/e4/294e7015384bd5119c1117d6eea03c9eccc143693b3168b7bb440c570741/winrt_Windows.UI.Notifications-2.3.0-cp39-cp39-win32.whl", hash = "sha256:2146a3734aaf8f2461460d0d456cae594ecc32d89fb38f5acaeebc093462d468", size = 129781 }, - { url = "https://files.pythonhosted.org/packages/cb/5d/2600d33b1e50f05c3c0f7244a8f1a202c37a61cf18c690a5a3ddc6d68e1b/winrt_Windows.UI.Notifications-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:cffc71c6da06f049f77d117263d1ce603e23b72c121de9da2e7cfc622c7f93dd", size = 151525 }, - { url = "https://files.pythonhosted.org/packages/cc/eb/ae826c9a92c0724cd8785df873f211795a3bed268cb0893d9f6b6b9350a1/winrt_Windows.UI.Notifications-2.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:eb151634858339f2f266a33b9bff32caa2087a73e6de0588e28c636ac4cda2bc", size = 136201 }, ] [[package]] @@ -4535,22 +4159,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/87/756e05c74cd8bf9e71537df4a2cae7e8211a9ebe0d2350a3e26949e1e41c/yarl-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b0341e6d9a0c0e3cdc65857ef518bb05b410dbd70d749a0d33ac0f39e81a4258", size = 359452 }, { url = "https://files.pythonhosted.org/packages/06/b2/b2bb09c1e6d59e1c9b1b36a86caa473e22c3dbf26d1032c030e9bfb554dc/yarl-1.17.1-cp313-cp313-win32.whl", hash = "sha256:2e7ba4c9377e48fb7b20dedbd473cbcbc13e72e1826917c185157a137dac9df2", size = 308904 }, { url = "https://files.pythonhosted.org/packages/f3/27/f084d9a5668853c1f3b246620269b14ee871ef3c3cc4f3a1dd53645b68ec/yarl-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:949681f68e0e3c25377462be4b658500e85ca24323d9619fdc41f68d46a1ffda", size = 314637 }, - { url = "https://files.pythonhosted.org/packages/8b/1d/715a116e42ecd31f515b268c1a0237a9d8771622cdfc1b4a4216f7854d16/yarl-1.17.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8994b29c462de9a8fce2d591028b986dbbe1b32f3ad600b2d3e1c482c93abad6", size = 141924 }, - { url = "https://files.pythonhosted.org/packages/f4/fa/50c9ac90ce17b6161bd815967f3d40304945353da831c9746bbac3bb0369/yarl-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f9cbfbc5faca235fbdf531b93aa0f9f005ec7d267d9d738761a4d42b744ea159", size = 94156 }, - { url = "https://files.pythonhosted.org/packages/ff/a6/3f7c41d7c63d1e7819871ac1c6c3b94af27b359e162f4769ffe613e3c43c/yarl-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b40d1bf6e6f74f7c0a567a9e5e778bbd4699d1d3d2c0fe46f4b717eef9e96b95", size = 91989 }, - { url = "https://files.pythonhosted.org/packages/12/5d/8bd30a5d2269b0f4062ce10804c79c2bdffde6be4c0501d1761ee99e9bc7/yarl-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5efe0661b9fcd6246f27957f6ae1c0eb29bc60552820f01e970b4996e016004", size = 316098 }, - { url = "https://files.pythonhosted.org/packages/95/70/2bca909b53502ffa2b46695ece4e893eb2a7d6e6628e82741c3b518fb5d0/yarl-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5c4804e4039f487e942c13381e6c27b4b4e66066d94ef1fae3f6ba8b953f383", size = 333170 }, - { url = "https://files.pythonhosted.org/packages/d9/1b/ef6d740e96f555a9c96572367f53b8e853e511d6dbfc228d4e09b7217b8d/yarl-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5d6a6c9602fd4598fa07e0389e19fe199ae96449008d8304bf5d47cb745462e", size = 328992 }, - { url = "https://files.pythonhosted.org/packages/02/d7/4b7877b277ba46dc571de11f0e9df9a9f3ea1548d6125b66541277b68e15/yarl-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4c9156c4d1eb490fe374fb294deeb7bc7eaccda50e23775b2354b6a6739934", size = 320752 }, - { url = "https://files.pythonhosted.org/packages/ae/da/d6ba097b6c78dadf3b9b40f13f0bf19fd9084b95c42611e90b6938d132a3/yarl-1.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6324274b4e0e2fa1b3eccb25997b1c9ed134ff61d296448ab8269f5ac068c4c", size = 313372 }, - { url = "https://files.pythonhosted.org/packages/0b/18/39e7c0d57d2d132e1e5d2dd3e11cb5acf6cc87fa7b9a58b947c005c7d858/yarl-1.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d8a8b74d843c2638f3864a17d97a4acda58e40d3e44b6303b8cc3d3c44ae2d29", size = 321654 }, - { url = "https://files.pythonhosted.org/packages/fd/ac/3e8e22eaec701ca15a5f236c62c6fc5303aff78beb9c49d15307843abdcc/yarl-1.17.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7fac95714b09da9278a0b52e492466f773cfe37651cf467a83a1b659be24bf71", size = 323298 }, - { url = "https://files.pythonhosted.org/packages/5d/44/f4aa2bbf3d62b8de8a9e9987256ba1be9e05c6fc4b34ef5d286a8364ad38/yarl-1.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c180ac742a083e109c1a18151f4dd8675f32679985a1c750d2ff806796165b55", size = 326736 }, - { url = "https://files.pythonhosted.org/packages/36/65/0c0245b826ca27c6a9ab7887749de10560a75734d124515f7992a311c0c7/yarl-1.17.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578d00c9b7fccfa1745a44f4eddfdc99d723d157dad26764538fbdda37209857", size = 338987 }, - { url = "https://files.pythonhosted.org/packages/75/65/32115ff01b61f6f492b0e588c7b698be1f58941a7ad52789886f7713d732/yarl-1.17.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1a3b91c44efa29e6c8ef8a9a2b583347998e2ba52c5d8280dbd5919c02dfc3b5", size = 339352 }, - { url = "https://files.pythonhosted.org/packages/f0/04/f7c2d9cb220e4d179f1d7be2319d55bacf3ab088e66d3cbf7f0c258f97df/yarl-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ac5b4984c468ce4f4a553df281450df0a34aefae02e58d77a0847be8d1e11f", size = 334126 }, - { url = "https://files.pythonhosted.org/packages/69/6d/838a7b90f441d5111374ded683ba64f93fbac591a799c12cc0e722be61bf/yarl-1.17.1-cp39-cp39-win32.whl", hash = "sha256:7294e38f9aa2e9f05f765b28ffdc5d81378508ce6dadbe93f6d464a8c9594473", size = 84113 }, - { url = "https://files.pythonhosted.org/packages/5b/60/f93718008e232747ceed89f2cd7b7d67b180478020c3d18a795d36291bae/yarl-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:eb6dce402734575e1a8cc0bb1509afca508a400a57ce13d306ea2c663bad1138", size = 90234 }, { url = "https://files.pythonhosted.org/packages/52/ad/1fe7ff5f3e8869d4c5070f47b96bac2b4d15e67c100a8278d8e7876329fc/yarl-1.17.1-py3-none-any.whl", hash = "sha256:f1790a4b1e8e8e028c391175433b9c8122c39b46e1663228158e61e6f915bf06", size = 44352 }, ] @@ -4645,20 +4253,4 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299 }, { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862 }, { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578 }, - { url = "https://files.pythonhosted.org/packages/fb/96/4fcafeb7e013a2386d22f974b5b97a0b9a65004ed58c87ae001599bfbd48/zstandard-0.23.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa014d55c3af933c1315eb4bb06dd0459661cc0b15cd61077afa6489bec63bb", size = 788697 }, - { url = "https://files.pythonhosted.org/packages/83/ff/a52ce725be69b86a2967ecba0497a8184540cc284c0991125515449e54e2/zstandard-0.23.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7f0804bb3799414af278e9ad51be25edf67f78f916e08afdb983e74161b916", size = 633679 }, - { url = "https://files.pythonhosted.org/packages/34/0f/3dc62db122f6a9c481c335fff6fc9f4e88d8f6e2d47321ee3937328addb4/zstandard-0.23.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb2b1ecfef1e67897d336de3a0e3f52478182d6a47eda86cbd42504c5cbd009a", size = 4940416 }, - { url = "https://files.pythonhosted.org/packages/1d/e5/9fe0dd8c85fdc2f635e6660d07872a5dc4b366db566630161e39f9f804e1/zstandard-0.23.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:837bb6764be6919963ef41235fd56a6486b132ea64afe5fafb4cb279ac44f259", size = 5307693 }, - { url = "https://files.pythonhosted.org/packages/73/bf/fe62c0cd865c171ee8ed5bc83174b5382a2cb729c8d6162edfb99a83158b/zstandard-0.23.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1516c8c37d3a053b01c1c15b182f3b5f5eef19ced9b930b684a73bad121addf4", size = 5341236 }, - { url = "https://files.pythonhosted.org/packages/39/86/4fe79b30c794286110802a6cd44a73b6a314ac8196b9338c0fbd78c2407d/zstandard-0.23.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48ef6a43b1846f6025dde6ed9fee0c24e1149c1c25f7fb0a0585572b2f3adc58", size = 5439101 }, - { url = "https://files.pythonhosted.org/packages/72/ed/cacec235c581ebf8c608c7fb3d4b6b70d1b490d0e5128ea6996f809ecaef/zstandard-0.23.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11e3bf3c924853a2d5835b24f03eeba7fc9b07d8ca499e247e06ff5676461a15", size = 4860320 }, - { url = "https://files.pythonhosted.org/packages/f6/1e/2c589a2930f93946b132fc852c574a19d5edc23fad2b9e566f431050c7ec/zstandard-0.23.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2fb4535137de7e244c230e24f9d1ec194f61721c86ebea04e1581d9d06ea1269", size = 4931933 }, - { url = "https://files.pythonhosted.org/packages/8e/f5/30eadde3686d902b5d4692bb5f286977cbc4adc082145eb3f49d834b2eae/zstandard-0.23.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8c24f21fa2af4bb9f2c492a86fe0c34e6d2c63812a839590edaf177b7398f700", size = 5463878 }, - { url = "https://files.pythonhosted.org/packages/e0/c8/8aed1f0ab9854ef48e5ad4431367fcb23ce73f0304f7b72335a8edc66556/zstandard-0.23.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a8c86881813a78a6f4508ef9daf9d4995b8ac2d147dcb1a450448941398091c9", size = 4857192 }, - { url = "https://files.pythonhosted.org/packages/a8/c6/55e666cfbcd032b9e271865e8578fec56e5594d4faeac379d371526514f5/zstandard-0.23.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fe3b385d996ee0822fd46528d9f0443b880d4d05528fd26a9119a54ec3f91c69", size = 4696513 }, - { url = "https://files.pythonhosted.org/packages/dc/bd/720b65bea63ec9de0ac7414c33b9baf271c8de8996e5ff324dc93fc90ff1/zstandard-0.23.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:82d17e94d735c99621bf8ebf9995f870a6b3e6d14543b99e201ae046dfe7de70", size = 5204823 }, - { url = "https://files.pythonhosted.org/packages/d8/40/d678db1556e3941d330cd4e95623a63ef235b18547da98fa184cbc028ecf/zstandard-0.23.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c7c517d74bea1a6afd39aa612fa025e6b8011982a0897768a2f7c8ab4ebb78a2", size = 5666490 }, - { url = "https://files.pythonhosted.org/packages/ed/cc/c89329723d7515898a1fc7ef5d251264078548c505719d13e9511800a103/zstandard-0.23.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fd7e0f1cfb70eb2f95a19b472ee7ad6d9a0a992ec0ae53286870c104ca939e5", size = 5196622 }, - { url = "https://files.pythonhosted.org/packages/78/4c/634289d41e094327a94500dfc919e58841b10ea3a9efdfafbac614797ec2/zstandard-0.23.0-cp39-cp39-win32.whl", hash = "sha256:43da0f0092281bf501f9c5f6f3b4c975a8a0ea82de49ba3f7100e64d422a1274", size = 430620 }, - { url = "https://files.pythonhosted.org/packages/a2/e2/0b0c5a0f4f7699fecd92c1ba6278ef9b01f2b0b0dd46f62bfc6729c05659/zstandard-0.23.0-cp39-cp39-win_amd64.whl", hash = "sha256:f8346bfa098532bc1fb6c7ef06783e969d87a99dd1d2a5a18a892c1d7a643c58", size = 495528 }, ]