evan.liu 1948e4b1ba tools: commit the bundled production runtime (python-embed + NSpyocd + DFP pack)
Per request the full portable environment is now in git: a fresh clone's
tools/ runs everything with zero installation. Only regenerable release
zips and the dev venv stay ignored.
2026-09-05 10:38:43 +08:00

114 lines
2.1 KiB
Python

from typing import Annotated
from typing_extensions import Buffer, TypeAlias
from winrt._winrt import (
Array,
Object,
box_boolean,
box_char16,
box_date_time,
box_double,
box_guid,
box_int8,
box_int16,
box_int32,
box_int64,
box_single,
box_string,
box_time_span,
box_uint8,
box_uint16,
box_uint32,
box_uint64,
unbox_boolean,
unbox_char16,
unbox_date_time,
unbox_double,
unbox_guid,
unbox_int8,
unbox_int16,
unbox_int32,
unbox_int64,
unbox_single,
unbox_string,
unbox_time_span,
unbox_uint8,
unbox_uint16,
unbox_uint32,
unbox_uint64,
)
import winrt.runtime._internals
# type aliases with struct format string annotation
Int8 = Annotated[int, "b"]
UInt8 = Annotated[int, "B"]
Int16 = Annotated[int, "h"]
UInt16 = Annotated[int, "H"]
Int32 = Annotated[int, "i"]
UInt32 = Annotated[int, "I"]
Int64 = Annotated[int, "q"]
UInt64 = Annotated[int, "Q"]
Single = Annotated[float, "f"]
Double = Annotated[float, "d"]
Char16 = Annotated[str, "u"]
winrt.runtime._internals.mixin_mutable_sequence(Array)
# Type hints for Python buffer protocol - can use standard Python types in
# addition to the WinRT Array.
ReadableBuffer: TypeAlias = Buffer # WinRT PassArray
WriteableBuffer: TypeAlias = Buffer # WinRT FillArray
__all__ = [
"Int8",
"UInt8",
"Int16",
"UInt16",
"Int32",
"UInt32",
"Int64",
"UInt64",
"Single",
"Double",
"Char16",
"Object",
"Array",
"ReadableBuffer",
"WriteableBuffer",
"box_boolean",
"box_int8",
"box_uint8",
"box_int16",
"box_uint16",
"box_int32",
"box_uint32",
"box_int64",
"box_uint64",
"box_single",
"box_double",
"box_char16",
"box_string",
"box_guid",
"box_date_time",
"box_time_span",
"unbox_boolean",
"unbox_int8",
"unbox_uint8",
"unbox_int16",
"unbox_uint16",
"unbox_int32",
"unbox_uint32",
"unbox_int64",
"unbox_uint64",
"unbox_single",
"unbox_double",
"unbox_char16",
"unbox_string",
"unbox_guid",
"unbox_date_time",
"unbox_time_span",
]