From d269d7b2c09099ddb3ce9cb3179dd6c0455d21ed Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:36:54 +0200 Subject: [PATCH 01/23] chore: remove old code gen artifacts --- .../Controller_V1_pb2.py | 172 --- .../Controller_V1_pb2.pyi | 910 ------------- .../Controller_V1_pb2_grpc.py | 1148 ----------------- 3 files changed, 2230 deletions(-) delete mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.py delete mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.pyi delete mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2_grpc.py diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.py b/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.py deleted file mode 100644 index e0eb6a50..00000000 --- a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.py +++ /dev/null @@ -1,172 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: Controller_V1.proto -# Protobuf Python Version: 5.26.1 -"""Generated protocol buffer code.""" - -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder - -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x13\x43ontroller_V1.proto\x12\x0f\x41skui.API.TDKv1"\x06\n\x04Void"\x0e\n\x0cRequest_Void"\x0f\n\rResponse_Void"&\n\x05Size2\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r"\x1e\n\x06\x44\x65lta2\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"#\n\x0b\x43oordinate2\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"E\n\tRectangle\x12\x0c\n\x04left\x18\x01 \x01(\x05\x12\x0b\n\x03top\x18\x02 \x01(\x05\x12\r\n\x05right\x18\x03 \x01(\x05\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x05"u\n\x06\x42itmap\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x11\n\tlineWidth\x18\x03 \x01(\r\x12\x14\n\x0c\x62itsPerPixel\x18\x04 \x01(\r\x12\x15\n\rbytesPerPixel\x18\x05 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c"(\n\x05\x43olor\x12\t\n\x01r\x18\x01 \x01(\r\x12\t\n\x01g\x18\x02 \x01(\r\x12\t\n\x01\x62\x18\x03 \x01(\r")\n\x04GUID\x12\x10\n\x08highPart\x18\x01 \x01(\x04\x12\x0f\n\x07lowPart\x18\x02 \x01(\x04"L\n\x0bSessionInfo\x12*\n\x0bsessionGUID\x18\x01 \x01(\x0b\x32\x15.Askui.API.TDKv1.GUID\x12\x11\n\tsessionID\x18\x02 \x01(\x04"e\n\x0b\x43\x61ptureArea\x12$\n\x04size\x18\x03 \x01(\x0b\x32\x16.Askui.API.TDKv1.Size2\x12\x30\n\ncoordinate\x18\x02 \x01(\x0b\x32\x1c.Askui.API.TDKv1.Coordinate2"\x81\x01\n\x11\x43\x61ptureParameters\x12\x16\n\tdisplayID\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x36\n\x0b\x63\x61ptureArea\x18\x02 \x01(\x0b\x32\x1c.Askui.API.TDKv1.CaptureAreaH\x01\x88\x01\x01\x42\x0c\n\n_displayIDB\x0e\n\x0c_captureArea"6\n"PollEventParameters_ActionFinished\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r"n\n\x13PollEventParameters\x12M\n\x0e\x61\x63tionFinished\x18\x01 \x01(\x0b\x32\x33.Askui.API.TDKv1.PollEventParameters_ActionFinishedH\x00\x42\x08\n\x06\x64\x61taOf"-\n\x15\x41\x63tionParameters_Wait\x12\x14\n\x0cmilliseconds\x18\x01 \x01(\r"W\n"ActionParameters_MouseButton_Press\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton"Y\n$ActionParameters_MouseButton_Release\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton"p\n,ActionParameters_MouseButton_PressAndRelease\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton\x12\r\n\x05\x63ount\x18\x02 \x01(\r"\xc0\x01\n!ActionParameters_MouseWheelScroll\x12=\n\tdirection\x18\x01 \x01(\x0e\x32*.Askui.API.TDKv1.MouseWheelScrollDirection\x12\x37\n\tdeltaType\x18\x02 \x01(\x0e\x32$.Askui.API.TDKv1.MouseWheelDeltaType\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x05\x12\x14\n\x0cmilliseconds\x18\x04 \x01(\x05"x\n\x1a\x41\x63tionParameters_MouseMove\x12.\n\x08position\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.Coordinate2\x12\x19\n\x0cmilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x0f\n\r_milliseconds"v\n ActionParameters_MouseMove_Delta\x12&\n\x05\x64\x65lta\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Delta2\x12\x19\n\x0cmilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x0f\n\r_milliseconds"O\n"ActionParameters_KeyboardKey_Press\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"Q\n$ActionParameters_KeyboardKey_Release\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"Y\n,ActionParameters_KeyboardKey_PressAndRelease\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"Q\n#ActionParameters_KeyboardKeys_Press\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"S\n%ActionParameters_KeyboardKeys_Release\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"[\n-ActionParameters_KeyboardKeys_PressAndRelease\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t"\x99\x01\n"ActionParameters_KeyboardType_Text\x12\x0c\n\x04text\x18\x01 \x01(\t\x12;\n\x10typingSpeedValue\x18\x02 \x01(\x0e\x32!.Askui.API.TDKv1.TypingSpeedValue\x12\x18\n\x0btypingSpeed\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_typingSpeed"\xa0\x01\n)ActionParameters_KeyboardType_UnicodeText\x12\x0c\n\x04text\x18\x01 \x01(\x0c\x12;\n\x10typingSpeedValue\x18\x02 \x01(\x0e\x32!.Askui.API.TDKv1.TypingSpeedValue\x12\x18\n\x0btypingSpeed\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_typingSpeed"l\n\x1b\x41\x63tionParameters_RunCommand\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12"\n\x15timeoutInMilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x18\n\x16_timeoutInMilliseconds"\xf5\n\n\x10\x41\x63tionParameters\x12%\n\x04none\x18\x01 \x01(\x0b\x32\x15.Askui.API.TDKv1.VoidH\x00\x12\x36\n\x04wait\x18\x02 \x01(\x0b\x32&.Askui.API.TDKv1.ActionParameters_WaitH\x00\x12O\n\x10mouseButtonPress\x18\x03 \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_MouseButton_PressH\x00\x12S\n\x12mouseButtonRelease\x18\x04 \x01(\x0b\x32\x35.Askui.API.TDKv1.ActionParameters_MouseButton_ReleaseH\x00\x12\x63\n\x1amouseButtonPressAndRelease\x18\x05 \x01(\x0b\x32=.Askui.API.TDKv1.ActionParameters_MouseButton_PressAndReleaseH\x00\x12N\n\x10mouseWheelScroll\x18\x06 \x01(\x0b\x32\x32.Askui.API.TDKv1.ActionParameters_MouseWheelScrollH\x00\x12@\n\tmouseMove\x18\x07 \x01(\x0b\x32+.Askui.API.TDKv1.ActionParameters_MouseMoveH\x00\x12K\n\x0emouseMoveDelta\x18\x08 \x01(\x0b\x32\x31.Askui.API.TDKv1.ActionParameters_MouseMove_DeltaH\x00\x12O\n\x10keyboardKeyPress\x18\t \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_KeyboardKey_PressH\x00\x12S\n\x12keyboardKeyRelease\x18\n \x01(\x0b\x32\x35.Askui.API.TDKv1.ActionParameters_KeyboardKey_ReleaseH\x00\x12\x63\n\x1akeyboardKeyPressAndRelease\x18\x0b \x01(\x0b\x32=.Askui.API.TDKv1.ActionParameters_KeyboardKey_PressAndReleaseH\x00\x12Q\n\x11keyboardKeysPress\x18\x0c \x01(\x0b\x32\x34.Askui.API.TDKv1.ActionParameters_KeyboardKeys_PressH\x00\x12U\n\x13keyboardKeysRelease\x18\r \x01(\x0b\x32\x36.Askui.API.TDKv1.ActionParameters_KeyboardKeys_ReleaseH\x00\x12\x65\n\x1bkeyboardKeysPressAndRelease\x18\x0e \x01(\x0b\x32>.Askui.API.TDKv1.ActionParameters_KeyboardKeys_PressAndReleaseH\x00\x12O\n\x10keyboardTypeText\x18\x0f \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_KeyboardType_TextH\x00\x12]\n\x17keyboardTypeUnicodeText\x18\x10 \x01(\x0b\x32:.Askui.API.TDKv1.ActionParameters_KeyboardType_UnicodeTextH\x00\x12\x42\n\nruncommand\x18\x11 \x01(\x0b\x32,.Askui.API.TDKv1.ActionParameters_RunCommandH\x00\x42\x08\n\x06\x64\x61taOf"G\n\x14Request_StartSession\x12\x13\n\x0bsessionGUID\x18\x01 \x01(\t\x12\x1a\n\x12immediateExecution\x18\x02 \x01(\x08"J\n\x15Response_StartSession\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"G\n\x12Request_EndSession\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"t\n\x0cRequest_Poll\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x31\n\x0bpollEventID\x18\x02 \x01(\x0e\x32\x1c.Askui.API.TDKv1.PollEventID"K\n\x16Request_StartExecution\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"J\n\x15Request_StopExecution\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"\x85\x01\n\rResponse_Poll\x12\x31\n\x0bpollEventID\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.PollEventID\x12\x41\n\x13pollEventParameters\x18\x02 \x01(\x0b\x32$.Askui.API.TDKv1.PollEventParameters"\xc2\x01\n\x19Request_RunRecordedAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters"L\n\x1aResponse_RunRecordedAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\x12\x1c\n\x14requiredMilliseconds\x18\x02 \x01(\r"\xc6\x01\n\x1dRequest_ScheduleBatchedAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters"2\n\x1eResponse_ScheduleBatchedAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r"K\n\x16Request_GetActionCount\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo".\n\x17Response_GetActionCount\x12\x13\n\x0b\x61\x63tionCount\x18\x01 \x01(\r"[\n\x11Request_GetAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x13\n\x0b\x61\x63tionIndex\x18\x02 \x01(\r"\x9a\x01\n\x12Response_GetAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters"[\n\x14Request_RemoveAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x10\n\x08\x61\x63tionID\x18\x02 \x01(\r"M\n\x18Request_RemoveAllActions\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"J\n\x15Request_StartBatchRun\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"I\n\x14Request_StopBatchRun\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo"\xa4\x01\n\x15Request_CaptureScreen\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x42\n\x11\x63\x61ptureParameters\x18\x02 \x01(\x0b\x32".Askui.API.TDKv1.CaptureParametersH\x00\x88\x01\x01\x42\x14\n\x12_captureParameters"A\n\x16Response_CaptureScreen\x12\'\n\x06\x62itmap\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap"O\n$Response_GetContinuousCapturedScreen\x12\'\n\x06\x62itmap\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap"\xde\x01\n\x1cReuqest_SetTestConfiguration\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x44\n\x18\x64\x65\x66\x61ultCaptureParameters\x18\x02 \x01(\x0b\x32".Askui.API.TDKv1.CaptureParameters\x12 \n\x18mouseDelayInMilliseconds\x18\x03 \x01(\r\x12#\n\x1bkeyboardDelayInMilliseconds\x18\x04 \x01(\r"g\n\x15Request_SetMouseDelay\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x1b\n\x13\x64\x65layInMilliseconds\x18\x02 \x01(\r"j\n\x18Request_SetKeyboardDelay\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x1b\n\x13\x64\x65layInMilliseconds\x18\x02 \x01(\r"\x9f\x01\n\x12\x44isplayInformation\x12\x11\n\tdisplayID\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12,\n\x0csizeInPixels\x18\x03 \x01(\x0b\x32\x16.Askui.API.TDKv1.Size2\x12:\n\x16virtualScreenRectangle\x18\x04 \x01(\x0b\x32\x1a.Askui.API.TDKv1.Rectangle"\x93\x01\n\x1eResponse_GetDisplayInformation\x12\x35\n\x08\x64isplays\x18\x01 \x03(\x0b\x32#.Askui.API.TDKv1.DisplayInformation\x12:\n\x16virtualScreenRectangle\x18\x02 \x01(\x0b\x32\x1a.Askui.API.TDKv1.Rectangle"1\n\x19Response_GetMousePosition\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"-\n\x18Request_SetActiveDisplay\x12\x11\n\tdisplayID\x18\x01 \x01(\r"Q\n\x10Request_GetColor\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\x12\'\n\x06\x62itmap\x18\x03 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap":\n\x11Response_GetColor\x12%\n\x05\x63olor\x18\x01 \x01(\x0b\x32\x16.Askui.API.TDKv1.Color"-\n\x15Request_GetPixelColor\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05"?\n\x16Response_GetPixelColor\x12%\n\x05\x63olor\x18\x01 \x01(\x0b\x32\x16.Askui.API.TDKv1.Color"n\n\x17Request_SetDisplayLabel\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x11\n\tdisplayID\x18\x02 \x01(\r\x12\r\n\x05label\x18\x03 \x01(\t*N\n\x0bPollEventID\x12\x19\n\x15PollEventID_Undefined\x10\x00\x12\x1e\n\x1aPollEventID_ActionFinished\x10\x02"\x04\x08\x01\x10\x01*m\n\x0bMouseButton\x12\x19\n\x15MouseButton_Undefined\x10\x00\x12\x14\n\x10MouseButton_Left\x10\x01\x12\x15\n\x11MouseButton_Right\x10\x02\x12\x16\n\x12MouseButton_Middle\x10\x03*\x8b\x05\n\rActionClassID\x12\x1b\n\x17\x41\x63tionClassID_Undefined\x10\x00\x12\x16\n\x12\x41\x63tionClassID_Wait\x10\x01\x12#\n\x1f\x41\x63tionClassID_MouseButton_Press\x10\x08\x12%\n!ActionClassID_MouseButton_Release\x10\t\x12-\n)ActionClassID_MouseButton_PressAndRelease\x10\n\x12"\n\x1e\x41\x63tionClassID_MouseWheelScroll\x10\x0b\x12\x1b\n\x17\x41\x63tionClassID_MouseMove\x10\x0c\x12!\n\x1d\x41\x63tionClassID_MouseMove_Delta\x10\r\x12#\n\x1f\x41\x63tionClassID_KeyboardKey_Press\x10\x0e\x12%\n!ActionClassID_KeyboardKey_Release\x10\x0f\x12-\n)ActionClassID_KeyboardKey_PressAndRelease\x10\x10\x12$\n ActionClassID_KeyboardKeys_Press\x10\x11\x12&\n"ActionClassID_KeyboardKeys_Release\x10\x12\x12.\n*ActionClassID_KeyboardKeys_PressAndRelease\x10\x13\x12#\n\x1f\x41\x63tionClassID_KeyboardType_Text\x10\x14\x12*\n&ActionClassID_KeyboardType_UnicodeText\x10\x15\x12\x1c\n\x18\x41\x63tionClassID_RunCommand\x10\x16*i\n\x13MouseWheelDeltaType\x12\x1d\n\x19MouseWheelDelta_Undefined\x10\x00\x12\x17\n\x13MouseWheelDelta_Raw\x10\x01\x12\x1a\n\x16MouseWheelDelta_Detent\x10\x02*\x96\x01\n\x19MouseWheelScrollDirection\x12\'\n#MouseWheelScrollDirection_Undefined\x10\x00\x12&\n"MouseWheelScrollDirection_Vertical\x10\x01\x12(\n$MouseWheelScrollDirection_Horizontal\x10\x02*z\n\x10TypingSpeedValue\x12\x1e\n\x1aTypingSpeedValue_Undefined\x10\x00\x12(\n$TypingSpeedValue_CharactersPerSecond\x10\x01\x12\x1c\n\x18TypingSpeedValue_Seconds\x10\x02\x32\xad\x11\n\rControllerAPI\x12_\n\x0cStartSession\x12%.Askui.API.TDKv1.Request_StartSession\x1a&.Askui.API.TDKv1.Response_StartSession"\x00\x12S\n\nEndSession\x12#.Askui.API.TDKv1.Request_EndSession\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12G\n\x04Poll\x12\x1d.Askui.API.TDKv1.Request_Poll\x1a\x1e.Askui.API.TDKv1.Response_Poll"\x00\x12[\n\x0eStartExecution\x12\'.Askui.API.TDKv1.Request_StartExecution\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12Y\n\rStopExecution\x12&.Askui.API.TDKv1.Request_StopExecution\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12n\n\x11RunRecordedAction\x12*.Askui.API.TDKv1.Request_RunRecordedAction\x1a+.Askui.API.TDKv1.Response_RunRecordedAction"\x00\x12z\n\x15ScheduleBatchedAction\x12..Askui.API.TDKv1.Request_ScheduleBatchedAction\x1a/.Askui.API.TDKv1.Response_ScheduleBatchedAction"\x00\x12Y\n\rStartBatchRun\x12&.Askui.API.TDKv1.Request_StartBatchRun\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12W\n\x0cStopBatchRun\x12%.Askui.API.TDKv1.Request_StopBatchRun\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12\x65\n\x0eGetActionCount\x12\'.Askui.API.TDKv1.Request_GetActionCount\x1a(.Askui.API.TDKv1.Response_GetActionCount"\x00\x12V\n\tGetAction\x12".Askui.API.TDKv1.Request_GetAction\x1a#.Askui.API.TDKv1.Response_GetAction"\x00\x12W\n\x0cRemoveAction\x12%.Askui.API.TDKv1.Request_RemoveAction\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12_\n\x10RemoveAllActions\x12).Askui.API.TDKv1.Request_RemoveAllActions\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12\x62\n\rCaptureScreen\x12&.Askui.API.TDKv1.Request_CaptureScreen\x1a\'.Askui.API.TDKv1.Response_CaptureScreen"\x00\x12g\n\x14SetTestConfiguration\x12-.Askui.API.TDKv1.Reuqest_SetTestConfiguration\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12Y\n\rSetMouseDelay\x12&.Askui.API.TDKv1.Request_SetMouseDelay\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12_\n\x10SetKeyboardDelay\x12).Askui.API.TDKv1.Request_SetKeyboardDelay\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12i\n\x15GetDisplayInformation\x12\x1d.Askui.API.TDKv1.Request_Void\x1a/.Askui.API.TDKv1.Response_GetDisplayInformation"\x00\x12_\n\x10GetMousePosition\x12\x1d.Askui.API.TDKv1.Request_Void\x1a*.Askui.API.TDKv1.Response_GetMousePosition"\x00\x12_\n\x10SetActiveDisplay\x12).Askui.API.TDKv1.Request_SetActiveDisplay\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x12S\n\x08GetColor\x12!.Askui.API.TDKv1.Request_GetColor\x1a".Askui.API.TDKv1.Response_GetColor"\x00\x12\x62\n\rGetPixelColor\x12&.Askui.API.TDKv1.Request_GetPixelColor\x1a\'.Askui.API.TDKv1.Response_GetPixelColor"\x00\x12]\n\x0fSetDisplayLabel\x12(.Askui.API.TDKv1.Request_SetDisplayLabel\x1a\x1e.Askui.API.TDKv1.Response_Void"\x00\x62\x06proto3' -) - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "Controller_V1_pb2", _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals["_POLLEVENTID"]._serialized_start = 7454 - _globals["_POLLEVENTID"]._serialized_end = 7532 - _globals["_MOUSEBUTTON"]._serialized_start = 7534 - _globals["_MOUSEBUTTON"]._serialized_end = 7643 - _globals["_ACTIONCLASSID"]._serialized_start = 7646 - _globals["_ACTIONCLASSID"]._serialized_end = 8297 - _globals["_MOUSEWHEELDELTATYPE"]._serialized_start = 8299 - _globals["_MOUSEWHEELDELTATYPE"]._serialized_end = 8404 - _globals["_MOUSEWHEELSCROLLDIRECTION"]._serialized_start = 8407 - _globals["_MOUSEWHEELSCROLLDIRECTION"]._serialized_end = 8557 - _globals["_TYPINGSPEEDVALUE"]._serialized_start = 8559 - _globals["_TYPINGSPEEDVALUE"]._serialized_end = 8681 - _globals["_VOID"]._serialized_start = 40 - _globals["_VOID"]._serialized_end = 46 - _globals["_REQUEST_VOID"]._serialized_start = 48 - _globals["_REQUEST_VOID"]._serialized_end = 62 - _globals["_RESPONSE_VOID"]._serialized_start = 64 - _globals["_RESPONSE_VOID"]._serialized_end = 79 - _globals["_SIZE2"]._serialized_start = 81 - _globals["_SIZE2"]._serialized_end = 119 - _globals["_DELTA2"]._serialized_start = 121 - _globals["_DELTA2"]._serialized_end = 151 - _globals["_COORDINATE2"]._serialized_start = 153 - _globals["_COORDINATE2"]._serialized_end = 188 - _globals["_RECTANGLE"]._serialized_start = 190 - _globals["_RECTANGLE"]._serialized_end = 259 - _globals["_BITMAP"]._serialized_start = 261 - _globals["_BITMAP"]._serialized_end = 378 - _globals["_COLOR"]._serialized_start = 380 - _globals["_COLOR"]._serialized_end = 420 - _globals["_GUID"]._serialized_start = 422 - _globals["_GUID"]._serialized_end = 463 - _globals["_SESSIONINFO"]._serialized_start = 465 - _globals["_SESSIONINFO"]._serialized_end = 541 - _globals["_CAPTUREAREA"]._serialized_start = 543 - _globals["_CAPTUREAREA"]._serialized_end = 644 - _globals["_CAPTUREPARAMETERS"]._serialized_start = 647 - _globals["_CAPTUREPARAMETERS"]._serialized_end = 776 - _globals["_POLLEVENTPARAMETERS_ACTIONFINISHED"]._serialized_start = 778 - _globals["_POLLEVENTPARAMETERS_ACTIONFINISHED"]._serialized_end = 832 - _globals["_POLLEVENTPARAMETERS"]._serialized_start = 834 - _globals["_POLLEVENTPARAMETERS"]._serialized_end = 944 - _globals["_ACTIONPARAMETERS_WAIT"]._serialized_start = 946 - _globals["_ACTIONPARAMETERS_WAIT"]._serialized_end = 991 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_PRESS"]._serialized_start = 993 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_PRESS"]._serialized_end = 1080 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_RELEASE"]._serialized_start = 1082 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_RELEASE"]._serialized_end = 1171 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_PRESSANDRELEASE"]._serialized_start = 1173 - _globals["_ACTIONPARAMETERS_MOUSEBUTTON_PRESSANDRELEASE"]._serialized_end = 1285 - _globals["_ACTIONPARAMETERS_MOUSEWHEELSCROLL"]._serialized_start = 1288 - _globals["_ACTIONPARAMETERS_MOUSEWHEELSCROLL"]._serialized_end = 1480 - _globals["_ACTIONPARAMETERS_MOUSEMOVE"]._serialized_start = 1482 - _globals["_ACTIONPARAMETERS_MOUSEMOVE"]._serialized_end = 1602 - _globals["_ACTIONPARAMETERS_MOUSEMOVE_DELTA"]._serialized_start = 1604 - _globals["_ACTIONPARAMETERS_MOUSEMOVE_DELTA"]._serialized_end = 1722 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_PRESS"]._serialized_start = 1724 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_PRESS"]._serialized_end = 1803 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_RELEASE"]._serialized_start = 1805 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_RELEASE"]._serialized_end = 1886 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_PRESSANDRELEASE"]._serialized_start = 1888 - _globals["_ACTIONPARAMETERS_KEYBOARDKEY_PRESSANDRELEASE"]._serialized_end = 1977 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_PRESS"]._serialized_start = 1979 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_PRESS"]._serialized_end = 2060 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_RELEASE"]._serialized_start = 2062 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_RELEASE"]._serialized_end = 2145 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_PRESSANDRELEASE"]._serialized_start = 2147 - _globals["_ACTIONPARAMETERS_KEYBOARDKEYS_PRESSANDRELEASE"]._serialized_end = 2238 - _globals["_ACTIONPARAMETERS_KEYBOARDTYPE_TEXT"]._serialized_start = 2241 - _globals["_ACTIONPARAMETERS_KEYBOARDTYPE_TEXT"]._serialized_end = 2394 - _globals["_ACTIONPARAMETERS_KEYBOARDTYPE_UNICODETEXT"]._serialized_start = 2397 - _globals["_ACTIONPARAMETERS_KEYBOARDTYPE_UNICODETEXT"]._serialized_end = 2557 - _globals["_ACTIONPARAMETERS_RUNCOMMAND"]._serialized_start = 2559 - _globals["_ACTIONPARAMETERS_RUNCOMMAND"]._serialized_end = 2667 - _globals["_ACTIONPARAMETERS"]._serialized_start = 2670 - _globals["_ACTIONPARAMETERS"]._serialized_end = 4067 - _globals["_REQUEST_STARTSESSION"]._serialized_start = 4069 - _globals["_REQUEST_STARTSESSION"]._serialized_end = 4140 - _globals["_RESPONSE_STARTSESSION"]._serialized_start = 4142 - _globals["_RESPONSE_STARTSESSION"]._serialized_end = 4216 - _globals["_REQUEST_ENDSESSION"]._serialized_start = 4218 - _globals["_REQUEST_ENDSESSION"]._serialized_end = 4289 - _globals["_REQUEST_POLL"]._serialized_start = 4291 - _globals["_REQUEST_POLL"]._serialized_end = 4407 - _globals["_REQUEST_STARTEXECUTION"]._serialized_start = 4409 - _globals["_REQUEST_STARTEXECUTION"]._serialized_end = 4484 - _globals["_REQUEST_STOPEXECUTION"]._serialized_start = 4486 - _globals["_REQUEST_STOPEXECUTION"]._serialized_end = 4560 - _globals["_RESPONSE_POLL"]._serialized_start = 4563 - _globals["_RESPONSE_POLL"]._serialized_end = 4696 - _globals["_REQUEST_RUNRECORDEDACTION"]._serialized_start = 4699 - _globals["_REQUEST_RUNRECORDEDACTION"]._serialized_end = 4893 - _globals["_RESPONSE_RUNRECORDEDACTION"]._serialized_start = 4895 - _globals["_RESPONSE_RUNRECORDEDACTION"]._serialized_end = 4971 - _globals["_REQUEST_SCHEDULEBATCHEDACTION"]._serialized_start = 4974 - _globals["_REQUEST_SCHEDULEBATCHEDACTION"]._serialized_end = 5172 - _globals["_RESPONSE_SCHEDULEBATCHEDACTION"]._serialized_start = 5174 - _globals["_RESPONSE_SCHEDULEBATCHEDACTION"]._serialized_end = 5224 - _globals["_REQUEST_GETACTIONCOUNT"]._serialized_start = 5226 - _globals["_REQUEST_GETACTIONCOUNT"]._serialized_end = 5301 - _globals["_RESPONSE_GETACTIONCOUNT"]._serialized_start = 5303 - _globals["_RESPONSE_GETACTIONCOUNT"]._serialized_end = 5349 - _globals["_REQUEST_GETACTION"]._serialized_start = 5351 - _globals["_REQUEST_GETACTION"]._serialized_end = 5442 - _globals["_RESPONSE_GETACTION"]._serialized_start = 5445 - _globals["_RESPONSE_GETACTION"]._serialized_end = 5599 - _globals["_REQUEST_REMOVEACTION"]._serialized_start = 5601 - _globals["_REQUEST_REMOVEACTION"]._serialized_end = 5692 - _globals["_REQUEST_REMOVEALLACTIONS"]._serialized_start = 5694 - _globals["_REQUEST_REMOVEALLACTIONS"]._serialized_end = 5771 - _globals["_REQUEST_STARTBATCHRUN"]._serialized_start = 5773 - _globals["_REQUEST_STARTBATCHRUN"]._serialized_end = 5847 - _globals["_REQUEST_STOPBATCHRUN"]._serialized_start = 5849 - _globals["_REQUEST_STOPBATCHRUN"]._serialized_end = 5922 - _globals["_REQUEST_CAPTURESCREEN"]._serialized_start = 5925 - _globals["_REQUEST_CAPTURESCREEN"]._serialized_end = 6089 - _globals["_RESPONSE_CAPTURESCREEN"]._serialized_start = 6091 - _globals["_RESPONSE_CAPTURESCREEN"]._serialized_end = 6156 - _globals["_RESPONSE_GETCONTINUOUSCAPTUREDSCREEN"]._serialized_start = 6158 - _globals["_RESPONSE_GETCONTINUOUSCAPTUREDSCREEN"]._serialized_end = 6237 - _globals["_REUQEST_SETTESTCONFIGURATION"]._serialized_start = 6240 - _globals["_REUQEST_SETTESTCONFIGURATION"]._serialized_end = 6462 - _globals["_REQUEST_SETMOUSEDELAY"]._serialized_start = 6464 - _globals["_REQUEST_SETMOUSEDELAY"]._serialized_end = 6567 - _globals["_REQUEST_SETKEYBOARDDELAY"]._serialized_start = 6569 - _globals["_REQUEST_SETKEYBOARDDELAY"]._serialized_end = 6675 - _globals["_DISPLAYINFORMATION"]._serialized_start = 6678 - _globals["_DISPLAYINFORMATION"]._serialized_end = 6837 - _globals["_RESPONSE_GETDISPLAYINFORMATION"]._serialized_start = 6840 - _globals["_RESPONSE_GETDISPLAYINFORMATION"]._serialized_end = 6987 - _globals["_RESPONSE_GETMOUSEPOSITION"]._serialized_start = 6989 - _globals["_RESPONSE_GETMOUSEPOSITION"]._serialized_end = 7038 - _globals["_REQUEST_SETACTIVEDISPLAY"]._serialized_start = 7040 - _globals["_REQUEST_SETACTIVEDISPLAY"]._serialized_end = 7085 - _globals["_REQUEST_GETCOLOR"]._serialized_start = 7087 - _globals["_REQUEST_GETCOLOR"]._serialized_end = 7168 - _globals["_RESPONSE_GETCOLOR"]._serialized_start = 7170 - _globals["_RESPONSE_GETCOLOR"]._serialized_end = 7228 - _globals["_REQUEST_GETPIXELCOLOR"]._serialized_start = 7230 - _globals["_REQUEST_GETPIXELCOLOR"]._serialized_end = 7275 - _globals["_RESPONSE_GETPIXELCOLOR"]._serialized_start = 7277 - _globals["_RESPONSE_GETPIXELCOLOR"]._serialized_end = 7340 - _globals["_REQUEST_SETDISPLAYLABEL"]._serialized_start = 7342 - _globals["_REQUEST_SETDISPLAYLABEL"]._serialized_end = 7452 - _globals["_CONTROLLERAPI"]._serialized_start = 8684 - _globals["_CONTROLLERAPI"]._serialized_end = 10905 -# @@protoc_insertion_point(module_scope) diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.pyi b/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.pyi deleted file mode 100644 index 58bb9f9e..00000000 --- a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2.pyi +++ /dev/null @@ -1,910 +0,0 @@ -from typing import ( - ClassVar as _ClassVar, -) -from typing import ( - Iterable as _Iterable, -) -from typing import ( - Mapping as _Mapping, -) -from typing import ( - Optional as _Optional, -) -from typing import ( - Union as _Union, -) - -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper - -DESCRIPTOR: _descriptor.FileDescriptor - -class PollEventID(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - PollEventID_Undefined: _ClassVar[PollEventID] - PollEventID_ActionFinished: _ClassVar[PollEventID] - -class MouseButton(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MouseButton_Undefined: _ClassVar[MouseButton] - MouseButton_Left: _ClassVar[MouseButton] - MouseButton_Right: _ClassVar[MouseButton] - MouseButton_Middle: _ClassVar[MouseButton] - -class ActionClassID(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - ActionClassID_Undefined: _ClassVar[ActionClassID] - ActionClassID_Wait: _ClassVar[ActionClassID] - ActionClassID_MouseButton_Press: _ClassVar[ActionClassID] - ActionClassID_MouseButton_Release: _ClassVar[ActionClassID] - ActionClassID_MouseButton_PressAndRelease: _ClassVar[ActionClassID] - ActionClassID_MouseWheelScroll: _ClassVar[ActionClassID] - ActionClassID_MouseMove: _ClassVar[ActionClassID] - ActionClassID_MouseMove_Delta: _ClassVar[ActionClassID] - ActionClassID_KeyboardKey_Press: _ClassVar[ActionClassID] - ActionClassID_KeyboardKey_Release: _ClassVar[ActionClassID] - ActionClassID_KeyboardKey_PressAndRelease: _ClassVar[ActionClassID] - ActionClassID_KeyboardKeys_Press: _ClassVar[ActionClassID] - ActionClassID_KeyboardKeys_Release: _ClassVar[ActionClassID] - ActionClassID_KeyboardKeys_PressAndRelease: _ClassVar[ActionClassID] - ActionClassID_KeyboardType_Text: _ClassVar[ActionClassID] - ActionClassID_KeyboardType_UnicodeText: _ClassVar[ActionClassID] - ActionClassID_RunCommand: _ClassVar[ActionClassID] - -class MouseWheelDeltaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MouseWheelDelta_Undefined: _ClassVar[MouseWheelDeltaType] - MouseWheelDelta_Raw: _ClassVar[MouseWheelDeltaType] - MouseWheelDelta_Detent: _ClassVar[MouseWheelDeltaType] - -class MouseWheelScrollDirection(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MouseWheelScrollDirection_Undefined: _ClassVar[MouseWheelScrollDirection] - MouseWheelScrollDirection_Vertical: _ClassVar[MouseWheelScrollDirection] - MouseWheelScrollDirection_Horizontal: _ClassVar[MouseWheelScrollDirection] - -class TypingSpeedValue(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - TypingSpeedValue_Undefined: _ClassVar[TypingSpeedValue] - TypingSpeedValue_CharactersPerSecond: _ClassVar[TypingSpeedValue] - TypingSpeedValue_Seconds: _ClassVar[TypingSpeedValue] - -PollEventID_Undefined: PollEventID -PollEventID_ActionFinished: PollEventID -MouseButton_Undefined: MouseButton -MouseButton_Left: MouseButton -MouseButton_Right: MouseButton -MouseButton_Middle: MouseButton -ActionClassID_Undefined: ActionClassID -ActionClassID_Wait: ActionClassID -ActionClassID_MouseButton_Press: ActionClassID -ActionClassID_MouseButton_Release: ActionClassID -ActionClassID_MouseButton_PressAndRelease: ActionClassID -ActionClassID_MouseWheelScroll: ActionClassID -ActionClassID_MouseMove: ActionClassID -ActionClassID_MouseMove_Delta: ActionClassID -ActionClassID_KeyboardKey_Press: ActionClassID -ActionClassID_KeyboardKey_Release: ActionClassID -ActionClassID_KeyboardKey_PressAndRelease: ActionClassID -ActionClassID_KeyboardKeys_Press: ActionClassID -ActionClassID_KeyboardKeys_Release: ActionClassID -ActionClassID_KeyboardKeys_PressAndRelease: ActionClassID -ActionClassID_KeyboardType_Text: ActionClassID -ActionClassID_KeyboardType_UnicodeText: ActionClassID -ActionClassID_RunCommand: ActionClassID -MouseWheelDelta_Undefined: MouseWheelDeltaType -MouseWheelDelta_Raw: MouseWheelDeltaType -MouseWheelDelta_Detent: MouseWheelDeltaType -MouseWheelScrollDirection_Undefined: MouseWheelScrollDirection -MouseWheelScrollDirection_Vertical: MouseWheelScrollDirection -MouseWheelScrollDirection_Horizontal: MouseWheelScrollDirection -TypingSpeedValue_Undefined: TypingSpeedValue -TypingSpeedValue_CharactersPerSecond: TypingSpeedValue -TypingSpeedValue_Seconds: TypingSpeedValue - -class Void(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Request_Void(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Response_Void(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Size2(_message.Message): - __slots__ = ("width", "height") - WIDTH_FIELD_NUMBER: _ClassVar[int] - HEIGHT_FIELD_NUMBER: _ClassVar[int] - width: int - height: int - def __init__( - self, width: _Optional[int] = ..., height: _Optional[int] = ... - ) -> None: ... - -class Delta2(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: int - y: int - def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... - -class Coordinate2(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: int - y: int - def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... - -class Rectangle(_message.Message): - __slots__ = ("left", "top", "right", "bottom") - LEFT_FIELD_NUMBER: _ClassVar[int] - TOP_FIELD_NUMBER: _ClassVar[int] - RIGHT_FIELD_NUMBER: _ClassVar[int] - BOTTOM_FIELD_NUMBER: _ClassVar[int] - left: int - top: int - right: int - bottom: int - def __init__( - self, - left: _Optional[int] = ..., - top: _Optional[int] = ..., - right: _Optional[int] = ..., - bottom: _Optional[int] = ..., - ) -> None: ... - -class Bitmap(_message.Message): - __slots__ = ( - "width", - "height", - "lineWidth", - "bitsPerPixel", - "bytesPerPixel", - "data", - ) - WIDTH_FIELD_NUMBER: _ClassVar[int] - HEIGHT_FIELD_NUMBER: _ClassVar[int] - LINEWIDTH_FIELD_NUMBER: _ClassVar[int] - BITSPERPIXEL_FIELD_NUMBER: _ClassVar[int] - BYTESPERPIXEL_FIELD_NUMBER: _ClassVar[int] - DATA_FIELD_NUMBER: _ClassVar[int] - width: int - height: int - lineWidth: int - bitsPerPixel: int - bytesPerPixel: int - data: bytes - def __init__( - self, - width: _Optional[int] = ..., - height: _Optional[int] = ..., - lineWidth: _Optional[int] = ..., - bitsPerPixel: _Optional[int] = ..., - bytesPerPixel: _Optional[int] = ..., - data: _Optional[bytes] = ..., - ) -> None: ... - -class Color(_message.Message): - __slots__ = ("r", "g", "b") - R_FIELD_NUMBER: _ClassVar[int] - G_FIELD_NUMBER: _ClassVar[int] - B_FIELD_NUMBER: _ClassVar[int] - r: int - g: int - b: int - def __init__( - self, r: _Optional[int] = ..., g: _Optional[int] = ..., b: _Optional[int] = ... - ) -> None: ... - -class GUID(_message.Message): - __slots__ = ("highPart", "lowPart") - HIGHPART_FIELD_NUMBER: _ClassVar[int] - LOWPART_FIELD_NUMBER: _ClassVar[int] - highPart: int - lowPart: int - def __init__( - self, highPart: _Optional[int] = ..., lowPart: _Optional[int] = ... - ) -> None: ... - -class SessionInfo(_message.Message): - __slots__ = ("sessionGUID", "sessionID") - SESSIONGUID_FIELD_NUMBER: _ClassVar[int] - SESSIONID_FIELD_NUMBER: _ClassVar[int] - sessionGUID: GUID - sessionID: int - def __init__( - self, - sessionGUID: _Optional[_Union[GUID, _Mapping]] = ..., - sessionID: _Optional[int] = ..., - ) -> None: ... - -class CaptureArea(_message.Message): - __slots__ = ("size", "coordinate") - SIZE_FIELD_NUMBER: _ClassVar[int] - COORDINATE_FIELD_NUMBER: _ClassVar[int] - size: Size2 - coordinate: Coordinate2 - def __init__( - self, - size: _Optional[_Union[Size2, _Mapping]] = ..., - coordinate: _Optional[_Union[Coordinate2, _Mapping]] = ..., - ) -> None: ... - -class CaptureParameters(_message.Message): - __slots__ = ("displayID", "captureArea") - DISPLAYID_FIELD_NUMBER: _ClassVar[int] - CAPTUREAREA_FIELD_NUMBER: _ClassVar[int] - displayID: int - captureArea: CaptureArea - def __init__( - self, - displayID: _Optional[int] = ..., - captureArea: _Optional[_Union[CaptureArea, _Mapping]] = ..., - ) -> None: ... - -class PollEventParameters_ActionFinished(_message.Message): - __slots__ = ("actionID",) - ACTIONID_FIELD_NUMBER: _ClassVar[int] - actionID: int - def __init__(self, actionID: _Optional[int] = ...) -> None: ... - -class PollEventParameters(_message.Message): - __slots__ = ("actionFinished",) - ACTIONFINISHED_FIELD_NUMBER: _ClassVar[int] - actionFinished: PollEventParameters_ActionFinished - def __init__( - self, - actionFinished: _Optional[ - _Union[PollEventParameters_ActionFinished, _Mapping] - ] = ..., - ) -> None: ... - -class ActionParameters_Wait(_message.Message): - __slots__ = ("milliseconds",) - MILLISECONDS_FIELD_NUMBER: _ClassVar[int] - milliseconds: int - def __init__(self, milliseconds: _Optional[int] = ...) -> None: ... - -class ActionParameters_MouseButton_Press(_message.Message): - __slots__ = ("mouseButton",) - MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] - mouseButton: MouseButton - def __init__( - self, mouseButton: _Optional[_Union[MouseButton, str]] = ... - ) -> None: ... - -class ActionParameters_MouseButton_Release(_message.Message): - __slots__ = ("mouseButton",) - MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] - mouseButton: MouseButton - def __init__( - self, mouseButton: _Optional[_Union[MouseButton, str]] = ... - ) -> None: ... - -class ActionParameters_MouseButton_PressAndRelease(_message.Message): - __slots__ = ("mouseButton", "count") - MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] - COUNT_FIELD_NUMBER: _ClassVar[int] - mouseButton: MouseButton - count: int - def __init__( - self, - mouseButton: _Optional[_Union[MouseButton, str]] = ..., - count: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_MouseWheelScroll(_message.Message): - __slots__ = ("direction", "deltaType", "delta", "milliseconds") - DIRECTION_FIELD_NUMBER: _ClassVar[int] - DELTATYPE_FIELD_NUMBER: _ClassVar[int] - DELTA_FIELD_NUMBER: _ClassVar[int] - MILLISECONDS_FIELD_NUMBER: _ClassVar[int] - direction: MouseWheelScrollDirection - deltaType: MouseWheelDeltaType - delta: int - milliseconds: int - def __init__( - self, - direction: _Optional[_Union[MouseWheelScrollDirection, str]] = ..., - deltaType: _Optional[_Union[MouseWheelDeltaType, str]] = ..., - delta: _Optional[int] = ..., - milliseconds: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_MouseMove(_message.Message): - __slots__ = ("position", "milliseconds") - POSITION_FIELD_NUMBER: _ClassVar[int] - MILLISECONDS_FIELD_NUMBER: _ClassVar[int] - position: Coordinate2 - milliseconds: int - def __init__( - self, - position: _Optional[_Union[Coordinate2, _Mapping]] = ..., - milliseconds: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_MouseMove_Delta(_message.Message): - __slots__ = ("delta", "milliseconds") - DELTA_FIELD_NUMBER: _ClassVar[int] - MILLISECONDS_FIELD_NUMBER: _ClassVar[int] - delta: Delta2 - milliseconds: int - def __init__( - self, - delta: _Optional[_Union[Delta2, _Mapping]] = ..., - milliseconds: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKey_Press(_message.Message): - __slots__ = ("keyName", "modifierKeyNames") - KEYNAME_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyName: str - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyName: _Optional[str] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKey_Release(_message.Message): - __slots__ = ("keyName", "modifierKeyNames") - KEYNAME_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyName: str - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyName: _Optional[str] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKey_PressAndRelease(_message.Message): - __slots__ = ("keyName", "modifierKeyNames") - KEYNAME_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyName: str - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyName: _Optional[str] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKeys_Press(_message.Message): - __slots__ = ("keyNames", "modifierKeyNames") - KEYNAMES_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyNames: _containers.RepeatedScalarFieldContainer[str] - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyNames: _Optional[_Iterable[str]] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKeys_Release(_message.Message): - __slots__ = ("keyNames", "modifierKeyNames") - KEYNAMES_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyNames: _containers.RepeatedScalarFieldContainer[str] - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyNames: _Optional[_Iterable[str]] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardKeys_PressAndRelease(_message.Message): - __slots__ = ("keyNames", "modifierKeyNames") - KEYNAMES_FIELD_NUMBER: _ClassVar[int] - MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] - keyNames: _containers.RepeatedScalarFieldContainer[str] - modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] - def __init__( - self, - keyNames: _Optional[_Iterable[str]] = ..., - modifierKeyNames: _Optional[_Iterable[str]] = ..., - ) -> None: ... - -class ActionParameters_KeyboardType_Text(_message.Message): - __slots__ = ("text", "typingSpeedValue", "typingSpeed") - TEXT_FIELD_NUMBER: _ClassVar[int] - TYPINGSPEEDVALUE_FIELD_NUMBER: _ClassVar[int] - TYPINGSPEED_FIELD_NUMBER: _ClassVar[int] - text: str - typingSpeedValue: TypingSpeedValue - typingSpeed: int - def __init__( - self, - text: _Optional[str] = ..., - typingSpeedValue: _Optional[_Union[TypingSpeedValue, str]] = ..., - typingSpeed: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_KeyboardType_UnicodeText(_message.Message): - __slots__ = ("text", "typingSpeedValue", "typingSpeed") - TEXT_FIELD_NUMBER: _ClassVar[int] - TYPINGSPEEDVALUE_FIELD_NUMBER: _ClassVar[int] - TYPINGSPEED_FIELD_NUMBER: _ClassVar[int] - text: bytes - typingSpeedValue: TypingSpeedValue - typingSpeed: int - def __init__( - self, - text: _Optional[bytes] = ..., - typingSpeedValue: _Optional[_Union[TypingSpeedValue, str]] = ..., - typingSpeed: _Optional[int] = ..., - ) -> None: ... - -class ActionParameters_RunCommand(_message.Message): - __slots__ = ("command", "timeoutInMilliseconds") - COMMAND_FIELD_NUMBER: _ClassVar[int] - TIMEOUTINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - command: str - timeoutInMilliseconds: int - def __init__( - self, command: _Optional[str] = ..., timeoutInMilliseconds: _Optional[int] = ... - ) -> None: ... - -class ActionParameters(_message.Message): - __slots__ = ( - "none", - "wait", - "mouseButtonPress", - "mouseButtonRelease", - "mouseButtonPressAndRelease", - "mouseWheelScroll", - "mouseMove", - "mouseMoveDelta", - "keyboardKeyPress", - "keyboardKeyRelease", - "keyboardKeyPressAndRelease", - "keyboardKeysPress", - "keyboardKeysRelease", - "keyboardKeysPressAndRelease", - "keyboardTypeText", - "keyboardTypeUnicodeText", - "runcommand", - ) - NONE_FIELD_NUMBER: _ClassVar[int] - WAIT_FIELD_NUMBER: _ClassVar[int] - MOUSEBUTTONPRESS_FIELD_NUMBER: _ClassVar[int] - MOUSEBUTTONRELEASE_FIELD_NUMBER: _ClassVar[int] - MOUSEBUTTONPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] - MOUSEWHEELSCROLL_FIELD_NUMBER: _ClassVar[int] - MOUSEMOVE_FIELD_NUMBER: _ClassVar[int] - MOUSEMOVEDELTA_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYPRESS_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYRELEASE_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYSPRESS_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYSRELEASE_FIELD_NUMBER: _ClassVar[int] - KEYBOARDKEYSPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] - KEYBOARDTYPETEXT_FIELD_NUMBER: _ClassVar[int] - KEYBOARDTYPEUNICODETEXT_FIELD_NUMBER: _ClassVar[int] - RUNCOMMAND_FIELD_NUMBER: _ClassVar[int] - none: Void - wait: ActionParameters_Wait - mouseButtonPress: ActionParameters_MouseButton_Press - mouseButtonRelease: ActionParameters_MouseButton_Release - mouseButtonPressAndRelease: ActionParameters_MouseButton_PressAndRelease - mouseWheelScroll: ActionParameters_MouseWheelScroll - mouseMove: ActionParameters_MouseMove - mouseMoveDelta: ActionParameters_MouseMove_Delta - keyboardKeyPress: ActionParameters_KeyboardKey_Press - keyboardKeyRelease: ActionParameters_KeyboardKey_Release - keyboardKeyPressAndRelease: ActionParameters_KeyboardKey_PressAndRelease - keyboardKeysPress: ActionParameters_KeyboardKeys_Press - keyboardKeysRelease: ActionParameters_KeyboardKeys_Release - keyboardKeysPressAndRelease: ActionParameters_KeyboardKeys_PressAndRelease - keyboardTypeText: ActionParameters_KeyboardType_Text - keyboardTypeUnicodeText: ActionParameters_KeyboardType_UnicodeText - runcommand: ActionParameters_RunCommand - def __init__( - self, - none: _Optional[_Union[Void, _Mapping]] = ..., - wait: _Optional[_Union[ActionParameters_Wait, _Mapping]] = ..., - mouseButtonPress: _Optional[ - _Union[ActionParameters_MouseButton_Press, _Mapping] - ] = ..., - mouseButtonRelease: _Optional[ - _Union[ActionParameters_MouseButton_Release, _Mapping] - ] = ..., - mouseButtonPressAndRelease: _Optional[ - _Union[ActionParameters_MouseButton_PressAndRelease, _Mapping] - ] = ..., - mouseWheelScroll: _Optional[ - _Union[ActionParameters_MouseWheelScroll, _Mapping] - ] = ..., - mouseMove: _Optional[_Union[ActionParameters_MouseMove, _Mapping]] = ..., - mouseMoveDelta: _Optional[ - _Union[ActionParameters_MouseMove_Delta, _Mapping] - ] = ..., - keyboardKeyPress: _Optional[ - _Union[ActionParameters_KeyboardKey_Press, _Mapping] - ] = ..., - keyboardKeyRelease: _Optional[ - _Union[ActionParameters_KeyboardKey_Release, _Mapping] - ] = ..., - keyboardKeyPressAndRelease: _Optional[ - _Union[ActionParameters_KeyboardKey_PressAndRelease, _Mapping] - ] = ..., - keyboardKeysPress: _Optional[ - _Union[ActionParameters_KeyboardKeys_Press, _Mapping] - ] = ..., - keyboardKeysRelease: _Optional[ - _Union[ActionParameters_KeyboardKeys_Release, _Mapping] - ] = ..., - keyboardKeysPressAndRelease: _Optional[ - _Union[ActionParameters_KeyboardKeys_PressAndRelease, _Mapping] - ] = ..., - keyboardTypeText: _Optional[ - _Union[ActionParameters_KeyboardType_Text, _Mapping] - ] = ..., - keyboardTypeUnicodeText: _Optional[ - _Union[ActionParameters_KeyboardType_UnicodeText, _Mapping] - ] = ..., - runcommand: _Optional[_Union[ActionParameters_RunCommand, _Mapping]] = ..., - ) -> None: ... - -class Request_StartSession(_message.Message): - __slots__ = ("sessionGUID", "immediateExecution") - SESSIONGUID_FIELD_NUMBER: _ClassVar[int] - IMMEDIATEEXECUTION_FIELD_NUMBER: _ClassVar[int] - sessionGUID: str - immediateExecution: bool - def __init__( - self, sessionGUID: _Optional[str] = ..., immediateExecution: bool = ... - ) -> None: ... - -class Response_StartSession(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_EndSession(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_Poll(_message.Message): - __slots__ = ("sessionInfo", "pollEventID") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - POLLEVENTID_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - pollEventID: PollEventID - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - pollEventID: _Optional[_Union[PollEventID, str]] = ..., - ) -> None: ... - -class Request_StartExecution(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_StopExecution(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Response_Poll(_message.Message): - __slots__ = ("pollEventID", "pollEventParameters") - POLLEVENTID_FIELD_NUMBER: _ClassVar[int] - POLLEVENTPARAMETERS_FIELD_NUMBER: _ClassVar[int] - pollEventID: PollEventID - pollEventParameters: PollEventParameters - def __init__( - self, - pollEventID: _Optional[_Union[PollEventID, str]] = ..., - pollEventParameters: _Optional[_Union[PollEventParameters, _Mapping]] = ..., - ) -> None: ... - -class Request_RunRecordedAction(_message.Message): - __slots__ = ("sessionInfo", "actionClassID", "actionParameters") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] - ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - actionClassID: ActionClassID - actionParameters: ActionParameters - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - actionClassID: _Optional[_Union[ActionClassID, str]] = ..., - actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ..., - ) -> None: ... - -class Response_RunRecordedAction(_message.Message): - __slots__ = ("actionID", "requiredMilliseconds") - ACTIONID_FIELD_NUMBER: _ClassVar[int] - REQUIREDMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - actionID: int - requiredMilliseconds: int - def __init__( - self, actionID: _Optional[int] = ..., requiredMilliseconds: _Optional[int] = ... - ) -> None: ... - -class Request_ScheduleBatchedAction(_message.Message): - __slots__ = ("sessionInfo", "actionClassID", "actionParameters") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] - ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - actionClassID: ActionClassID - actionParameters: ActionParameters - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - actionClassID: _Optional[_Union[ActionClassID, str]] = ..., - actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ..., - ) -> None: ... - -class Response_ScheduleBatchedAction(_message.Message): - __slots__ = ("actionID",) - ACTIONID_FIELD_NUMBER: _ClassVar[int] - actionID: int - def __init__(self, actionID: _Optional[int] = ...) -> None: ... - -class Request_GetActionCount(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Response_GetActionCount(_message.Message): - __slots__ = ("actionCount",) - ACTIONCOUNT_FIELD_NUMBER: _ClassVar[int] - actionCount: int - def __init__(self, actionCount: _Optional[int] = ...) -> None: ... - -class Request_GetAction(_message.Message): - __slots__ = ("sessionInfo", "actionIndex") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - ACTIONINDEX_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - actionIndex: int - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - actionIndex: _Optional[int] = ..., - ) -> None: ... - -class Response_GetAction(_message.Message): - __slots__ = ("actionID", "actionClassID", "actionParameters") - ACTIONID_FIELD_NUMBER: _ClassVar[int] - ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] - ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] - actionID: int - actionClassID: ActionClassID - actionParameters: ActionParameters - def __init__( - self, - actionID: _Optional[int] = ..., - actionClassID: _Optional[_Union[ActionClassID, str]] = ..., - actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ..., - ) -> None: ... - -class Request_RemoveAction(_message.Message): - __slots__ = ("sessionInfo", "actionID") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - ACTIONID_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - actionID: int - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - actionID: _Optional[int] = ..., - ) -> None: ... - -class Request_RemoveAllActions(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_StartBatchRun(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_StopBatchRun(_message.Message): - __slots__ = ("sessionInfo",) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - def __init__( - self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ... - ) -> None: ... - -class Request_CaptureScreen(_message.Message): - __slots__ = ("sessionInfo", "captureParameters") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - CAPTUREPARAMETERS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - captureParameters: CaptureParameters - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - captureParameters: _Optional[_Union[CaptureParameters, _Mapping]] = ..., - ) -> None: ... - -class Response_CaptureScreen(_message.Message): - __slots__ = ("bitmap",) - BITMAP_FIELD_NUMBER: _ClassVar[int] - bitmap: Bitmap - def __init__(self, bitmap: _Optional[_Union[Bitmap, _Mapping]] = ...) -> None: ... - -class Response_GetContinuousCapturedScreen(_message.Message): - __slots__ = ("bitmap",) - BITMAP_FIELD_NUMBER: _ClassVar[int] - bitmap: Bitmap - def __init__(self, bitmap: _Optional[_Union[Bitmap, _Mapping]] = ...) -> None: ... - -class Reuqest_SetTestConfiguration(_message.Message): - __slots__ = ( - "sessionInfo", - "defaultCaptureParameters", - "mouseDelayInMilliseconds", - "keyboardDelayInMilliseconds", - ) - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - DEFAULTCAPTUREPARAMETERS_FIELD_NUMBER: _ClassVar[int] - MOUSEDELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - KEYBOARDDELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - defaultCaptureParameters: CaptureParameters - mouseDelayInMilliseconds: int - keyboardDelayInMilliseconds: int - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - defaultCaptureParameters: _Optional[_Union[CaptureParameters, _Mapping]] = ..., - mouseDelayInMilliseconds: _Optional[int] = ..., - keyboardDelayInMilliseconds: _Optional[int] = ..., - ) -> None: ... - -class Request_SetMouseDelay(_message.Message): - __slots__ = ("sessionInfo", "delayInMilliseconds") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - DELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - delayInMilliseconds: int - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - delayInMilliseconds: _Optional[int] = ..., - ) -> None: ... - -class Request_SetKeyboardDelay(_message.Message): - __slots__ = ("sessionInfo", "delayInMilliseconds") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - DELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - delayInMilliseconds: int - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - delayInMilliseconds: _Optional[int] = ..., - ) -> None: ... - -class DisplayInformation(_message.Message): - __slots__ = ("displayID", "name", "sizeInPixels", "virtualScreenRectangle") - DISPLAYID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - SIZEINPIXELS_FIELD_NUMBER: _ClassVar[int] - VIRTUALSCREENRECTANGLE_FIELD_NUMBER: _ClassVar[int] - displayID: int - name: str - sizeInPixels: Size2 - virtualScreenRectangle: Rectangle - def __init__( - self, - displayID: _Optional[int] = ..., - name: _Optional[str] = ..., - sizeInPixels: _Optional[_Union[Size2, _Mapping]] = ..., - virtualScreenRectangle: _Optional[_Union[Rectangle, _Mapping]] = ..., - ) -> None: ... - -class Response_GetDisplayInformation(_message.Message): - __slots__ = ("displays", "virtualScreenRectangle") - DISPLAYS_FIELD_NUMBER: _ClassVar[int] - VIRTUALSCREENRECTANGLE_FIELD_NUMBER: _ClassVar[int] - displays: _containers.RepeatedCompositeFieldContainer[DisplayInformation] - virtualScreenRectangle: Rectangle - def __init__( - self, - displays: _Optional[_Iterable[_Union[DisplayInformation, _Mapping]]] = ..., - virtualScreenRectangle: _Optional[_Union[Rectangle, _Mapping]] = ..., - ) -> None: ... - -class Response_GetMousePosition(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: int - y: int - def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... - -class Request_SetActiveDisplay(_message.Message): - __slots__ = ("displayID",) - DISPLAYID_FIELD_NUMBER: _ClassVar[int] - displayID: int - def __init__(self, displayID: _Optional[int] = ...) -> None: ... - -class Request_GetColor(_message.Message): - __slots__ = ("x", "y", "bitmap") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - BITMAP_FIELD_NUMBER: _ClassVar[int] - x: int - y: int - bitmap: Bitmap - def __init__( - self, - x: _Optional[int] = ..., - y: _Optional[int] = ..., - bitmap: _Optional[_Union[Bitmap, _Mapping]] = ..., - ) -> None: ... - -class Response_GetColor(_message.Message): - __slots__ = ("color",) - COLOR_FIELD_NUMBER: _ClassVar[int] - color: Color - def __init__(self, color: _Optional[_Union[Color, _Mapping]] = ...) -> None: ... - -class Request_GetPixelColor(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: int - y: int - def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... - -class Response_GetPixelColor(_message.Message): - __slots__ = ("color",) - COLOR_FIELD_NUMBER: _ClassVar[int] - color: Color - def __init__(self, color: _Optional[_Union[Color, _Mapping]] = ...) -> None: ... - -class Request_SetDisplayLabel(_message.Message): - __slots__ = ("sessionInfo", "displayID", "label") - SESSIONINFO_FIELD_NUMBER: _ClassVar[int] - DISPLAYID_FIELD_NUMBER: _ClassVar[int] - LABEL_FIELD_NUMBER: _ClassVar[int] - sessionInfo: SessionInfo - displayID: int - label: str - def __init__( - self, - sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., - displayID: _Optional[int] = ..., - label: _Optional[str] = ..., - ) -> None: ... diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2_grpc.py b/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2_grpc.py deleted file mode 100644 index ecac6ac1..00000000 --- a/src/askui/tools/askui/askui_ui_controller_grpc/Controller_V1_pb2_grpc.py +++ /dev/null @@ -1,1148 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" - -import warnings - -import grpc - -import askui.tools.askui.askui_ui_controller_grpc.Controller_V1_pb2 as Controller__V1__pb2 - -GRPC_GENERATED_VERSION = "1.64.1" -GRPC_VERSION = grpc.__version__ -EXPECTED_ERROR_RELEASE = "1.65.0" -SCHEDULED_RELEASE_DATE = "June 25, 2024" -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - - _version_not_supported = first_version_is_lower( - GRPC_VERSION, GRPC_GENERATED_VERSION - ) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - warnings.warn( - f"The grpc package installed is at version {GRPC_VERSION}," - + " but the generated code in Controller_V1_pb2_grpc.py depends on" - + f" grpcio>={GRPC_GENERATED_VERSION}." - + f" Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}" - + f" or downgrade your generated code using grpcio-tools<={GRPC_VERSION}." - + f" This warning will become an error in {EXPECTED_ERROR_RELEASE}," - + f" scheduled for release on {SCHEDULED_RELEASE_DATE}.", - RuntimeWarning, - ) - - -class ControllerAPIStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.StartSession = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/StartSession", - request_serializer=Controller__V1__pb2.Request_StartSession.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_StartSession.FromString, - _registered_method=True, - ) - self.EndSession = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/EndSession", - request_serializer=Controller__V1__pb2.Request_EndSession.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.Poll = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/Poll", - request_serializer=Controller__V1__pb2.Request_Poll.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Poll.FromString, - _registered_method=True, - ) - self.StartExecution = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/StartExecution", - request_serializer=Controller__V1__pb2.Request_StartExecution.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.StopExecution = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/StopExecution", - request_serializer=Controller__V1__pb2.Request_StopExecution.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.RunRecordedAction = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/RunRecordedAction", - request_serializer=Controller__V1__pb2.Request_RunRecordedAction.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_RunRecordedAction.FromString, - _registered_method=True, - ) - self.ScheduleBatchedAction = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/ScheduleBatchedAction", - request_serializer=Controller__V1__pb2.Request_ScheduleBatchedAction.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_ScheduleBatchedAction.FromString, - _registered_method=True, - ) - self.StartBatchRun = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/StartBatchRun", - request_serializer=Controller__V1__pb2.Request_StartBatchRun.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.StopBatchRun = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/StopBatchRun", - request_serializer=Controller__V1__pb2.Request_StopBatchRun.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.GetActionCount = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetActionCount", - request_serializer=Controller__V1__pb2.Request_GetActionCount.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetActionCount.FromString, - _registered_method=True, - ) - self.GetAction = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetAction", - request_serializer=Controller__V1__pb2.Request_GetAction.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetAction.FromString, - _registered_method=True, - ) - self.RemoveAction = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/RemoveAction", - request_serializer=Controller__V1__pb2.Request_RemoveAction.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.RemoveAllActions = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/RemoveAllActions", - request_serializer=Controller__V1__pb2.Request_RemoveAllActions.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.CaptureScreen = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/CaptureScreen", - request_serializer=Controller__V1__pb2.Request_CaptureScreen.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_CaptureScreen.FromString, - _registered_method=True, - ) - self.SetTestConfiguration = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/SetTestConfiguration", - request_serializer=Controller__V1__pb2.Reuqest_SetTestConfiguration.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.SetMouseDelay = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/SetMouseDelay", - request_serializer=Controller__V1__pb2.Request_SetMouseDelay.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.SetKeyboardDelay = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/SetKeyboardDelay", - request_serializer=Controller__V1__pb2.Request_SetKeyboardDelay.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.GetDisplayInformation = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetDisplayInformation", - request_serializer=Controller__V1__pb2.Request_Void.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetDisplayInformation.FromString, - _registered_method=True, - ) - self.GetMousePosition = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetMousePosition", - request_serializer=Controller__V1__pb2.Request_Void.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetMousePosition.FromString, - _registered_method=True, - ) - self.SetActiveDisplay = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/SetActiveDisplay", - request_serializer=Controller__V1__pb2.Request_SetActiveDisplay.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - self.GetColor = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetColor", - request_serializer=Controller__V1__pb2.Request_GetColor.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetColor.FromString, - _registered_method=True, - ) - self.GetPixelColor = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/GetPixelColor", - request_serializer=Controller__V1__pb2.Request_GetPixelColor.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_GetPixelColor.FromString, - _registered_method=True, - ) - self.SetDisplayLabel = channel.unary_unary( - "/Askui.API.TDKv1.ControllerAPI/SetDisplayLabel", - request_serializer=Controller__V1__pb2.Request_SetDisplayLabel.SerializeToString, - response_deserializer=Controller__V1__pb2.Response_Void.FromString, - _registered_method=True, - ) - - -class ControllerAPIServicer(object): - """Missing associated documentation comment in .proto file.""" - - def StartSession(self, request, context): - """General""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def EndSession(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def Poll(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def StartExecution(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def StopExecution(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def RunRecordedAction(self, request, context): - """Run action and record it""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def ScheduleBatchedAction(self, request, context): - """Schedule an action""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def StartBatchRun(self, request, context): - """Start and stop batched execution""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def StopBatchRun(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetActionCount(self, request, context): - """Recorded or batched actions access""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetAction(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def RemoveAction(self, request, context): - """Modify acvtions batch""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def RemoveAllActions(self, request, context): - """Clear all batched or recorded actions""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def CaptureScreen(self, request, context): - """Capturing""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def SetTestConfiguration(self, request, context): - """Configuration""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def SetMouseDelay(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def SetKeyboardDelay(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetDisplayInformation(self, request, context): - """Device Information""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetMousePosition(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def SetActiveDisplay(self, request, context): - """Device Configuration""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetColor(self, request, context): - """Deprecated Utilities""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def GetPixelColor(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - def SetDisplayLabel(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details("Method not implemented!") - raise NotImplementedError("Method not implemented!") - - -def add_ControllerAPIServicer_to_server(servicer, server): - rpc_method_handlers = { - "StartSession": grpc.unary_unary_rpc_method_handler( - servicer.StartSession, - request_deserializer=Controller__V1__pb2.Request_StartSession.FromString, - response_serializer=Controller__V1__pb2.Response_StartSession.SerializeToString, - ), - "EndSession": grpc.unary_unary_rpc_method_handler( - servicer.EndSession, - request_deserializer=Controller__V1__pb2.Request_EndSession.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "Poll": grpc.unary_unary_rpc_method_handler( - servicer.Poll, - request_deserializer=Controller__V1__pb2.Request_Poll.FromString, - response_serializer=Controller__V1__pb2.Response_Poll.SerializeToString, - ), - "StartExecution": grpc.unary_unary_rpc_method_handler( - servicer.StartExecution, - request_deserializer=Controller__V1__pb2.Request_StartExecution.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "StopExecution": grpc.unary_unary_rpc_method_handler( - servicer.StopExecution, - request_deserializer=Controller__V1__pb2.Request_StopExecution.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "RunRecordedAction": grpc.unary_unary_rpc_method_handler( - servicer.RunRecordedAction, - request_deserializer=Controller__V1__pb2.Request_RunRecordedAction.FromString, - response_serializer=Controller__V1__pb2.Response_RunRecordedAction.SerializeToString, - ), - "ScheduleBatchedAction": grpc.unary_unary_rpc_method_handler( - servicer.ScheduleBatchedAction, - request_deserializer=Controller__V1__pb2.Request_ScheduleBatchedAction.FromString, - response_serializer=Controller__V1__pb2.Response_ScheduleBatchedAction.SerializeToString, - ), - "StartBatchRun": grpc.unary_unary_rpc_method_handler( - servicer.StartBatchRun, - request_deserializer=Controller__V1__pb2.Request_StartBatchRun.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "StopBatchRun": grpc.unary_unary_rpc_method_handler( - servicer.StopBatchRun, - request_deserializer=Controller__V1__pb2.Request_StopBatchRun.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "GetActionCount": grpc.unary_unary_rpc_method_handler( - servicer.GetActionCount, - request_deserializer=Controller__V1__pb2.Request_GetActionCount.FromString, - response_serializer=Controller__V1__pb2.Response_GetActionCount.SerializeToString, - ), - "GetAction": grpc.unary_unary_rpc_method_handler( - servicer.GetAction, - request_deserializer=Controller__V1__pb2.Request_GetAction.FromString, - response_serializer=Controller__V1__pb2.Response_GetAction.SerializeToString, - ), - "RemoveAction": grpc.unary_unary_rpc_method_handler( - servicer.RemoveAction, - request_deserializer=Controller__V1__pb2.Request_RemoveAction.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "RemoveAllActions": grpc.unary_unary_rpc_method_handler( - servicer.RemoveAllActions, - request_deserializer=Controller__V1__pb2.Request_RemoveAllActions.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "CaptureScreen": grpc.unary_unary_rpc_method_handler( - servicer.CaptureScreen, - request_deserializer=Controller__V1__pb2.Request_CaptureScreen.FromString, - response_serializer=Controller__V1__pb2.Response_CaptureScreen.SerializeToString, - ), - "SetTestConfiguration": grpc.unary_unary_rpc_method_handler( - servicer.SetTestConfiguration, - request_deserializer=Controller__V1__pb2.Reuqest_SetTestConfiguration.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "SetMouseDelay": grpc.unary_unary_rpc_method_handler( - servicer.SetMouseDelay, - request_deserializer=Controller__V1__pb2.Request_SetMouseDelay.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "SetKeyboardDelay": grpc.unary_unary_rpc_method_handler( - servicer.SetKeyboardDelay, - request_deserializer=Controller__V1__pb2.Request_SetKeyboardDelay.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "GetDisplayInformation": grpc.unary_unary_rpc_method_handler( - servicer.GetDisplayInformation, - request_deserializer=Controller__V1__pb2.Request_Void.FromString, - response_serializer=Controller__V1__pb2.Response_GetDisplayInformation.SerializeToString, - ), - "GetMousePosition": grpc.unary_unary_rpc_method_handler( - servicer.GetMousePosition, - request_deserializer=Controller__V1__pb2.Request_Void.FromString, - response_serializer=Controller__V1__pb2.Response_GetMousePosition.SerializeToString, - ), - "SetActiveDisplay": grpc.unary_unary_rpc_method_handler( - servicer.SetActiveDisplay, - request_deserializer=Controller__V1__pb2.Request_SetActiveDisplay.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - "GetColor": grpc.unary_unary_rpc_method_handler( - servicer.GetColor, - request_deserializer=Controller__V1__pb2.Request_GetColor.FromString, - response_serializer=Controller__V1__pb2.Response_GetColor.SerializeToString, - ), - "GetPixelColor": grpc.unary_unary_rpc_method_handler( - servicer.GetPixelColor, - request_deserializer=Controller__V1__pb2.Request_GetPixelColor.FromString, - response_serializer=Controller__V1__pb2.Response_GetPixelColor.SerializeToString, - ), - "SetDisplayLabel": grpc.unary_unary_rpc_method_handler( - servicer.SetDisplayLabel, - request_deserializer=Controller__V1__pb2.Request_SetDisplayLabel.FromString, - response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - "Askui.API.TDKv1.ControllerAPI", rpc_method_handlers - ) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers( - "Askui.API.TDKv1.ControllerAPI", rpc_method_handlers - ) - - -# This class is part of an EXPERIMENTAL API. -class ControllerAPI(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def StartSession( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/StartSession", - Controller__V1__pb2.Request_StartSession.SerializeToString, - Controller__V1__pb2.Response_StartSession.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def EndSession( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/EndSession", - Controller__V1__pb2.Request_EndSession.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def Poll( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/Poll", - Controller__V1__pb2.Request_Poll.SerializeToString, - Controller__V1__pb2.Response_Poll.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def StartExecution( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/StartExecution", - Controller__V1__pb2.Request_StartExecution.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def StopExecution( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/StopExecution", - Controller__V1__pb2.Request_StopExecution.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def RunRecordedAction( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/RunRecordedAction", - Controller__V1__pb2.Request_RunRecordedAction.SerializeToString, - Controller__V1__pb2.Response_RunRecordedAction.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def ScheduleBatchedAction( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/ScheduleBatchedAction", - Controller__V1__pb2.Request_ScheduleBatchedAction.SerializeToString, - Controller__V1__pb2.Response_ScheduleBatchedAction.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def StartBatchRun( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/StartBatchRun", - Controller__V1__pb2.Request_StartBatchRun.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def StopBatchRun( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/StopBatchRun", - Controller__V1__pb2.Request_StopBatchRun.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetActionCount( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetActionCount", - Controller__V1__pb2.Request_GetActionCount.SerializeToString, - Controller__V1__pb2.Response_GetActionCount.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetAction( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetAction", - Controller__V1__pb2.Request_GetAction.SerializeToString, - Controller__V1__pb2.Response_GetAction.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def RemoveAction( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/RemoveAction", - Controller__V1__pb2.Request_RemoveAction.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def RemoveAllActions( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/RemoveAllActions", - Controller__V1__pb2.Request_RemoveAllActions.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def CaptureScreen( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/CaptureScreen", - Controller__V1__pb2.Request_CaptureScreen.SerializeToString, - Controller__V1__pb2.Response_CaptureScreen.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def SetTestConfiguration( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/SetTestConfiguration", - Controller__V1__pb2.Reuqest_SetTestConfiguration.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def SetMouseDelay( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/SetMouseDelay", - Controller__V1__pb2.Request_SetMouseDelay.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def SetKeyboardDelay( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/SetKeyboardDelay", - Controller__V1__pb2.Request_SetKeyboardDelay.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetDisplayInformation( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetDisplayInformation", - Controller__V1__pb2.Request_Void.SerializeToString, - Controller__V1__pb2.Response_GetDisplayInformation.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetMousePosition( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetMousePosition", - Controller__V1__pb2.Request_Void.SerializeToString, - Controller__V1__pb2.Response_GetMousePosition.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def SetActiveDisplay( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/SetActiveDisplay", - Controller__V1__pb2.Request_SetActiveDisplay.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetColor( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetColor", - Controller__V1__pb2.Request_GetColor.SerializeToString, - Controller__V1__pb2.Response_GetColor.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def GetPixelColor( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/GetPixelColor", - Controller__V1__pb2.Request_GetPixelColor.SerializeToString, - Controller__V1__pb2.Response_GetPixelColor.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) - - @staticmethod - def SetDisplayLabel( - request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None, - ): - return grpc.experimental.unary_unary( - request, - target, - "/Askui.API.TDKv1.ControllerAPI/SetDisplayLabel", - Controller__V1__pb2.Request_SetDisplayLabel.SerializeToString, - Controller__V1__pb2.Response_Void.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True, - ) From 68f1ad726f59ed0524ca63591571e44a243f3c82 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:37:11 +0200 Subject: [PATCH 02/23] feat: update proto file --- .../proto/Controller_V1.proto | 539 ++++++++++++++++++ 1 file changed, 539 insertions(+) create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto b/src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto new file mode 100644 index 00000000..e8adc62a --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto @@ -0,0 +1,539 @@ +syntax = "proto3"; + +package Askui.API.TDKv1; + +service ControllerAPI { + // General + rpc StartSession (Request_StartSession) returns (Response_StartSession) {} + rpc EndSession (Request_EndSession) returns (Response_Void) {} + + rpc Send (Request_Send) returns (Response_Send) {} + rpc Poll (Request_Poll) returns (Response_Poll) {} + + rpc StartExecution (Request_StartExecution) returns (Response_Void) {} + rpc StopExecution (Request_StopExecution) returns (Response_Void) {} + + // Run action and record it + rpc RunRecordedAction (Request_RunRecordedAction) returns (Response_RunRecordedAction) {} + + // Schedule an action + rpc ScheduleBatchedAction (Request_ScheduleBatchedAction) returns (Response_ScheduleBatchedAction) {} + + // Start and stop batched execution + rpc StartBatchRun (Request_StartBatchRun) returns (Response_Void) {} + rpc StopBatchRun(Request_StopBatchRun) returns (Response_Void) {} + + // Recorded or batched actions access + rpc GetActionCount (Request_GetActionCount) returns (Response_GetActionCount) {} + rpc GetAction (Request_GetAction) returns (Response_GetAction) {} + + // Modify actions batch + rpc RemoveAction (Request_RemoveAction) returns (Response_Void) {} + + // Clear all batched or recorded actions + rpc RemoveAllActions (Request_RemoveAllActions) returns (Response_Void) {} + + // Capturing + rpc CaptureScreen (Request_CaptureScreen) returns (Response_CaptureScreen) {} + + // Configuration + rpc SetTestConfiguration (Reuqest_SetTestConfiguration) returns (Response_Void) {} + rpc SetMouseDelay (Request_SetMouseDelay) returns (Response_Void) {} // TODO: TDKv2 should use push and pop instead. + rpc SetKeyboardDelay (Request_SetKeyboardDelay) returns (Response_Void) {} // TODO: TDKv2 should use push and pop instead. + + // Device Information + rpc GetDisplayInformation (Request_Void) returns (Response_GetDisplayInformation) {} + rpc GetMousePosition (Request_Void) returns (Response_GetMousePosition) {} + rpc GetProcessList (Request_GetProcessList) returns (Response_GetProcessList) {} + rpc GetWindowList (Request_GetWindowList) returns (Response_GetWindowList) {} + rpc GetAutomationTargetList (Request_Void) returns (Response_GetAutomationTargetList) {} + + // Device Configuration + rpc SetActiveDisplay (Request_SetActiveDisplay) returns (Response_Void) {} + rpc SetActiveWindow (Request_SetActiveWindow) returns (Response_Void) {} + rpc SetActiveAutomationTarget (Request_SetActiveAutomationTarget) returns (Response_Void) {} + + // Deprecated Utilities + rpc GetColor (Request_GetColor) returns (Response_GetColor) {} + rpc GetPixelColor (Request_GetPixelColor) returns (Response_GetPixelColor) {} + + rpc SetDisplayLabel(Request_SetDisplayLabel) returns (Response_Void) {} // TODO: Not yet implemented, supposded to be deleted if not needed. +} + +message Void {} + +message Request_Void {} +message Response_Void {} + +message Size2 { + uint32 width = 1; + uint32 height = 2; +} + +message Delta2 { + int32 x = 1; + int32 y = 2; +} + +message Coordinate2 { + int32 x = 1; + int32 y = 2; +} + +message Rectangle { + int32 left = 1; + int32 top = 2; + int32 right = 3; + int32 bottom = 4; +} + +message Bitmap { + uint32 width = 1; + uint32 height = 2; + uint32 lineWidth = 3; + uint32 bitsPerPixel = 4; + uint32 bytesPerPixel = 5; + bytes data = 6; +} + +message Color { + uint32 r = 1; + uint32 g = 2; + uint32 b = 3; +} + +message GUID { + uint64 highPart = 1; + uint64 lowPart = 2; +} + +message SessionInfo { + GUID sessionGUID = 1; + uint64 sessionID = 2; +} + +message CaptureArea { + Size2 size = 3; + Coordinate2 coordinate = 2; +} + +// Usage +// +// displayID: +// Value from 'DisplayInformation::displayID', use '0' if screenshots shall be taked from virtual sreen. +// +// captureArea: +// Defines either the area to capture on virtual screen or of the display if 'displayID'. +message CaptureParameters { + optional uint32 displayID = 1; + optional CaptureArea captureArea = 2; +} + +// +// Poll +enum PollEventID { + reserved 1; + + PollEventID_Undefined = 0; + //Any = 1; + PollEventID_ActionFinished = 2; +} + +message PollEventParameters_ActionFinished { + uint32 actionID = 1; +} + +message PollEventParameters { + oneof dataOf { + PollEventParameters_ActionFinished actionFinished = 1; + } +} + +// +// +enum MouseButton { + MouseButton_Undefined = 0; + + MouseButton_Left = 1; + MouseButton_Right = 2; + MouseButton_Middle = 3; +} + +// +// Action Parameters +enum ActionClassID { + ActionClassID_Undefined = 0; + + ActionClassID_Wait = 1; + + ActionClassID_MouseButton_Press = 8; + ActionClassID_MouseButton_Release = 9; + ActionClassID_MouseButton_PressAndRelease = 10; + ActionClassID_MouseWheelScroll = 11; + ActionClassID_MouseMove = 12; + ActionClassID_MouseMove_Delta = 13; + + ActionClassID_KeyboardKey_Press = 14; + ActionClassID_KeyboardKey_Release = 15; + ActionClassID_KeyboardKey_PressAndRelease = 16; + ActionClassID_KeyboardKeys_Press = 17; + ActionClassID_KeyboardKeys_Release = 18; + ActionClassID_KeyboardKeys_PressAndRelease = 19; + + ActionClassID_KeyboardType_Text = 20; + ActionClassID_KeyboardType_UnicodeText = 21; + + ActionClassID_RunCommand = 22; +} + +message ActionParameters_Wait { + uint32 milliseconds = 1; +} + +message ActionParameters_MouseButton_Press { + MouseButton mouseButton = 1; +} + +message ActionParameters_MouseButton_Release { + MouseButton mouseButton = 1; +} + +message ActionParameters_MouseButton_PressAndRelease { + MouseButton mouseButton = 1; + uint32 count = 2; +} + +enum MouseWheelDeltaType { + MouseWheelDelta_Undefined = 0; + MouseWheelDelta_Raw = 1; + MouseWheelDelta_Detent = 2; +} + +enum MouseWheelScrollDirection { + MouseWheelScrollDirection_Undefined = 0; + MouseWheelScrollDirection_Vertical = 1; + MouseWheelScrollDirection_Horizontal = 2; +} + +message ActionParameters_MouseWheelScroll { + MouseWheelScrollDirection direction = 1; + MouseWheelDeltaType deltaType = 2; + int32 delta = 3; + int32 milliseconds = 4; +} + +message ActionParameters_MouseMove { + Coordinate2 position = 1; + optional uint32 milliseconds = 2; +} + +message ActionParameters_MouseMove_Delta { + Delta2 delta = 1; + optional uint32 milliseconds = 2; +} + +message ActionParameters_KeyboardKey_Press { + string keyName = 1; + repeated string modifierKeyNames = 2; +} + +message ActionParameters_KeyboardKey_Release { + string keyName = 1; + repeated string modifierKeyNames = 2; +} + +message ActionParameters_KeyboardKey_PressAndRelease { + string keyName = 1; + repeated string modifierKeyNames = 2; +} + +message ActionParameters_KeyboardKeys_Press { + repeated string keyNames = 1; + repeated string modifierKeyNames = 2; +} + +message ActionParameters_KeyboardKeys_Release { + repeated string keyNames = 1; + repeated string modifierKeyNames = 2; +} + +message ActionParameters_KeyboardKeys_PressAndRelease { + repeated string keyNames = 1; + repeated string modifierKeyNames = 2; +} + +enum TypingSpeedValue { + TypingSpeedValue_Undefined = 0; + TypingSpeedValue_CharactersPerSecond = 1; + TypingSpeedValue_Seconds = 2; +} + +message ActionParameters_KeyboardType_Text { + string text = 1; + TypingSpeedValue typingSpeedValue = 2; + optional uint32 typingSpeed = 3; +} + +message ActionParameters_KeyboardType_UnicodeText { + bytes text = 1; + TypingSpeedValue typingSpeedValue = 2; + optional uint32 typingSpeed = 3; +} + +message ActionParameters_RunCommand { + string command = 1; + optional uint32 timeoutInMilliseconds = 2; +} + +message ActionParameters { + oneof dataOf { + Void none = 1; + ActionParameters_Wait wait = 2; + ActionParameters_MouseButton_Press mouseButtonPress = 3; + ActionParameters_MouseButton_Release mouseButtonRelease = 4; + ActionParameters_MouseButton_PressAndRelease mouseButtonPressAndRelease = 5; + ActionParameters_MouseWheelScroll mouseWheelScroll = 6; + ActionParameters_MouseMove mouseMove = 7; + ActionParameters_MouseMove_Delta mouseMoveDelta = 8; + ActionParameters_KeyboardKey_Press keyboardKeyPress = 9; + ActionParameters_KeyboardKey_Release keyboardKeyRelease = 10; + ActionParameters_KeyboardKey_PressAndRelease keyboardKeyPressAndRelease = 11; + ActionParameters_KeyboardKeys_Press keyboardKeysPress = 12; + ActionParameters_KeyboardKeys_Release keyboardKeysRelease = 13; + ActionParameters_KeyboardKeys_PressAndRelease keyboardKeysPressAndRelease = 14; + ActionParameters_KeyboardType_Text keyboardTypeText = 15; + ActionParameters_KeyboardType_UnicodeText keyboardTypeUnicodeText = 16; + ActionParameters_RunCommand runcommand = 17; + } +} + +// +// Request and Response Messages +message Request_StartSession { + string sessionGUID = 1; // "{62F7CE3F-D73B-4F96-826F-43D767DAB5C1}" + bool immediateExecution = 2; // true +} + +message Response_StartSession { + SessionInfo sessionInfo = 1; +} + +message Request_EndSession { + SessionInfo sessionInfo = 1; +} + +message Request_Send { + string message = 1; +} + +message Request_Poll { + SessionInfo sessionInfo = 1; + PollEventID pollEventID = 2; +} + +message Request_StartExecution { + SessionInfo sessionInfo = 1; +} + +message Request_StopExecution { + SessionInfo sessionInfo = 1; +} + +message Response_Send { + string message = 1; +} + +message Response_Poll { + PollEventID pollEventID = 1; + PollEventParameters pollEventParameters = 2; +} + +message Request_RunRecordedAction { + SessionInfo sessionInfo = 1; + ActionClassID actionClassID = 2; + ActionParameters actionParameters = 3; +} + +message Response_RunRecordedAction { + uint32 actionID = 1; + uint32 requiredMilliseconds = 2; +} + +message Request_ScheduleBatchedAction { + SessionInfo sessionInfo = 1; + ActionClassID actionClassID = 2; + ActionParameters actionParameters = 3; +} + +message Response_ScheduleBatchedAction { + uint32 actionID = 1; +} + +message Request_GetActionCount { + SessionInfo sessionInfo = 1; +} + +message Response_GetActionCount { + uint32 actionCount = 1; +} + +message Request_GetAction { + SessionInfo sessionInfo = 1; + uint32 actionIndex = 2; +} + +message Response_GetAction { + uint32 actionID = 1; + ActionClassID actionClassID = 2; + ActionParameters actionParameters = 3; +} + +message Request_RemoveAction { + SessionInfo sessionInfo = 1; + uint32 actionID = 2; +} + +message Request_RemoveAllActions { + SessionInfo sessionInfo = 1; +} + +message Request_StartBatchRun { + SessionInfo sessionInfo = 1; +} + +message Request_StopBatchRun { + SessionInfo sessionInfo = 1; +} + +message Request_CaptureScreen { + SessionInfo sessionInfo = 1; + optional CaptureParameters captureParameters = 2; +} + +message Response_CaptureScreen { + Bitmap bitmap = 1; +} + +message Response_GetContinuousCapturedScreen { + Bitmap bitmap = 1; +} + +message Reuqest_SetTestConfiguration { + SessionInfo sessionInfo = 1; + CaptureParameters defaultCaptureParameters = 2; + uint32 mouseDelayInMilliseconds = 3; + uint32 keyboardDelayInMilliseconds = 4; +} + +message Request_SetMouseDelay { + SessionInfo sessionInfo = 1; + uint32 delayInMilliseconds = 2; +} + +message Request_SetKeyboardDelay { + SessionInfo sessionInfo = 1; + uint32 delayInMilliseconds = 2; +} + +message DisplayInformation { + uint32 displayID = 1; + string name = 2; + Size2 sizeInPixels = 3; + Rectangle virtualScreenRectangle = 4; +} + +message Response_GetDisplayInformation { + repeated DisplayInformation displays = 1; + Rectangle virtualScreenRectangle = 2; +} + +message Response_GetMousePosition { + int32 x = 1; + int32 y = 2; +} + +message ProcessInfoExtended { + bool hasWindow = 1; +} + +message ProcessInfo { + uint64 ID = 1; + string name = 2; + optional ProcessInfoExtended extendedInfo = 3; +} + +message Request_GetProcessList { + bool getExtendedInfo = 1; +} + +message Response_GetProcessList { + repeated ProcessInfo processes = 1; +} + +message Request_GetWindowList { + uint64 processID = 1; +} + +message WindowInfo { + uint64 ID = 1; + string name = 2; +} + +message Response_GetWindowList { + repeated WindowInfo windows = 1; +} + +message Request_SetActiveDisplay { + uint32 displayID = 1; +} + +message Request_SetActiveWindow { + uint64 processID = 1; + uint64 windowID = 2; +} + +enum AutomationTargetType { + AutomationTarget_Local = 0; + AutomationTarget_Background = 1; + AutomationTarget_Companion = 2; +} + +message AutomationTarget { + uint64 ID = 1; + AutomationTargetType type = 2; + string name = 3; + bool active = 4; +} + +message Response_GetAutomationTargetList { + repeated AutomationTarget targets = 1; +} + +message Request_SetActiveAutomationTarget { + uint64 ID = 1; +} + +message Request_GetColor { + int32 x = 1; + int32 y = 2; + Bitmap bitmap = 3; +} + +message Response_GetColor { + Color color = 1; +} + +message Request_GetPixelColor { + int32 x = 1; + int32 y = 2; +} + +message Response_GetPixelColor { + Color color = 1; +} + +message Request_SetDisplayLabel { + SessionInfo sessionInfo = 1; + uint32 displayID = 2; + string label = 3; +} From 9057a3c695bf65ac49006c5d9fc5391ceef85b81 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:37:56 +0200 Subject: [PATCH 03/23] feat: introduce codegen and update references --- pyproject.toml | 3 + src/askui/tools/askui/askui_controller.py | 4 +- .../generated/Controller_V1_pb2.py | 208 +++ .../generated/Controller_V1_pb2.pyi | 736 +++++++++ .../generated/Controller_V1_pb2_grpc.py | 1313 +++++++++++++++++ .../askui/askui_ui_controller_grpc/readme.md | 19 + 6 files changed, 2281 insertions(+), 2 deletions(-) create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.py create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.pyi create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/readme.md diff --git a/pyproject.toml b/pyproject.toml index f470fa1a..821034db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,9 @@ typecheck = "mypy" "format", "lint:fix", ] } +======= +"grpc:gen" = "python -m grpc_tools.protoc -I src/askui/tools/askui/askui_ui_controller_grpc/proto --python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto" +"grpc:fix-import" = "bash -c \"sed -i.bak 's/^import Controller_V1_pb2 as Controller__V1__pb2$/from . import Controller_V1_pb2 as Controller__V1__pb2/' src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py && rm src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py.bak\"" [dependency-groups] test = [ diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index 7c385bbf..a723ef20 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -16,10 +16,10 @@ from askui.logger import logger from askui.reporting import Reporter from askui.tools.agent_os import AgentOs, ModifierKey, PcKey -from askui.tools.askui.askui_ui_controller_grpc import ( +from askui.tools.askui.askui_ui_controller_grpc.generated import ( Controller_V1_pb2 as controller_v1_pbs, ) -from askui.tools.askui.askui_ui_controller_grpc import ( +from askui.tools.askui.askui_ui_controller_grpc.generated import ( Controller_V1_pb2_grpc as controller_v1, ) from askui.utils.image_utils import draw_point_on_image diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.py b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.py new file mode 100644 index 00000000..ec91bee0 --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: Controller_V1.proto +# Protobuf Python Version: 5.29.0 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 0, + '', + 'Controller_V1.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x43ontroller_V1.proto\x12\x0f\x41skui.API.TDKv1\"\x06\n\x04Void\"\x0e\n\x0cRequest_Void\"\x0f\n\rResponse_Void\"&\n\x05Size2\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\"\x1e\n\x06\x44\x65lta2\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"#\n\x0b\x43oordinate2\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"E\n\tRectangle\x12\x0c\n\x04left\x18\x01 \x01(\x05\x12\x0b\n\x03top\x18\x02 \x01(\x05\x12\r\n\x05right\x18\x03 \x01(\x05\x12\x0e\n\x06\x62ottom\x18\x04 \x01(\x05\"u\n\x06\x42itmap\x12\r\n\x05width\x18\x01 \x01(\r\x12\x0e\n\x06height\x18\x02 \x01(\r\x12\x11\n\tlineWidth\x18\x03 \x01(\r\x12\x14\n\x0c\x62itsPerPixel\x18\x04 \x01(\r\x12\x15\n\rbytesPerPixel\x18\x05 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\"(\n\x05\x43olor\x12\t\n\x01r\x18\x01 \x01(\r\x12\t\n\x01g\x18\x02 \x01(\r\x12\t\n\x01\x62\x18\x03 \x01(\r\")\n\x04GUID\x12\x10\n\x08highPart\x18\x01 \x01(\x04\x12\x0f\n\x07lowPart\x18\x02 \x01(\x04\"L\n\x0bSessionInfo\x12*\n\x0bsessionGUID\x18\x01 \x01(\x0b\x32\x15.Askui.API.TDKv1.GUID\x12\x11\n\tsessionID\x18\x02 \x01(\x04\"e\n\x0b\x43\x61ptureArea\x12$\n\x04size\x18\x03 \x01(\x0b\x32\x16.Askui.API.TDKv1.Size2\x12\x30\n\ncoordinate\x18\x02 \x01(\x0b\x32\x1c.Askui.API.TDKv1.Coordinate2\"\x81\x01\n\x11\x43\x61ptureParameters\x12\x16\n\tdisplayID\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x36\n\x0b\x63\x61ptureArea\x18\x02 \x01(\x0b\x32\x1c.Askui.API.TDKv1.CaptureAreaH\x01\x88\x01\x01\x42\x0c\n\n_displayIDB\x0e\n\x0c_captureArea\"6\n\"PollEventParameters_ActionFinished\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\"n\n\x13PollEventParameters\x12M\n\x0e\x61\x63tionFinished\x18\x01 \x01(\x0b\x32\x33.Askui.API.TDKv1.PollEventParameters_ActionFinishedH\x00\x42\x08\n\x06\x64\x61taOf\"-\n\x15\x41\x63tionParameters_Wait\x12\x14\n\x0cmilliseconds\x18\x01 \x01(\r\"W\n\"ActionParameters_MouseButton_Press\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton\"Y\n$ActionParameters_MouseButton_Release\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton\"p\n,ActionParameters_MouseButton_PressAndRelease\x12\x31\n\x0bmouseButton\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.MouseButton\x12\r\n\x05\x63ount\x18\x02 \x01(\r\"\xc0\x01\n!ActionParameters_MouseWheelScroll\x12=\n\tdirection\x18\x01 \x01(\x0e\x32*.Askui.API.TDKv1.MouseWheelScrollDirection\x12\x37\n\tdeltaType\x18\x02 \x01(\x0e\x32$.Askui.API.TDKv1.MouseWheelDeltaType\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x05\x12\x14\n\x0cmilliseconds\x18\x04 \x01(\x05\"x\n\x1a\x41\x63tionParameters_MouseMove\x12.\n\x08position\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.Coordinate2\x12\x19\n\x0cmilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x0f\n\r_milliseconds\"v\n ActionParameters_MouseMove_Delta\x12&\n\x05\x64\x65lta\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Delta2\x12\x19\n\x0cmilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x0f\n\r_milliseconds\"O\n\"ActionParameters_KeyboardKey_Press\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"Q\n$ActionParameters_KeyboardKey_Release\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"Y\n,ActionParameters_KeyboardKey_PressAndRelease\x12\x0f\n\x07keyName\x18\x01 \x01(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"Q\n#ActionParameters_KeyboardKeys_Press\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"S\n%ActionParameters_KeyboardKeys_Release\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"[\n-ActionParameters_KeyboardKeys_PressAndRelease\x12\x10\n\x08keyNames\x18\x01 \x03(\t\x12\x18\n\x10modifierKeyNames\x18\x02 \x03(\t\"\x99\x01\n\"ActionParameters_KeyboardType_Text\x12\x0c\n\x04text\x18\x01 \x01(\t\x12;\n\x10typingSpeedValue\x18\x02 \x01(\x0e\x32!.Askui.API.TDKv1.TypingSpeedValue\x12\x18\n\x0btypingSpeed\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_typingSpeed\"\xa0\x01\n)ActionParameters_KeyboardType_UnicodeText\x12\x0c\n\x04text\x18\x01 \x01(\x0c\x12;\n\x10typingSpeedValue\x18\x02 \x01(\x0e\x32!.Askui.API.TDKv1.TypingSpeedValue\x12\x18\n\x0btypingSpeed\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0e\n\x0c_typingSpeed\"l\n\x1b\x41\x63tionParameters_RunCommand\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\"\n\x15timeoutInMilliseconds\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x18\n\x16_timeoutInMilliseconds\"\xf5\n\n\x10\x41\x63tionParameters\x12%\n\x04none\x18\x01 \x01(\x0b\x32\x15.Askui.API.TDKv1.VoidH\x00\x12\x36\n\x04wait\x18\x02 \x01(\x0b\x32&.Askui.API.TDKv1.ActionParameters_WaitH\x00\x12O\n\x10mouseButtonPress\x18\x03 \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_MouseButton_PressH\x00\x12S\n\x12mouseButtonRelease\x18\x04 \x01(\x0b\x32\x35.Askui.API.TDKv1.ActionParameters_MouseButton_ReleaseH\x00\x12\x63\n\x1amouseButtonPressAndRelease\x18\x05 \x01(\x0b\x32=.Askui.API.TDKv1.ActionParameters_MouseButton_PressAndReleaseH\x00\x12N\n\x10mouseWheelScroll\x18\x06 \x01(\x0b\x32\x32.Askui.API.TDKv1.ActionParameters_MouseWheelScrollH\x00\x12@\n\tmouseMove\x18\x07 \x01(\x0b\x32+.Askui.API.TDKv1.ActionParameters_MouseMoveH\x00\x12K\n\x0emouseMoveDelta\x18\x08 \x01(\x0b\x32\x31.Askui.API.TDKv1.ActionParameters_MouseMove_DeltaH\x00\x12O\n\x10keyboardKeyPress\x18\t \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_KeyboardKey_PressH\x00\x12S\n\x12keyboardKeyRelease\x18\n \x01(\x0b\x32\x35.Askui.API.TDKv1.ActionParameters_KeyboardKey_ReleaseH\x00\x12\x63\n\x1akeyboardKeyPressAndRelease\x18\x0b \x01(\x0b\x32=.Askui.API.TDKv1.ActionParameters_KeyboardKey_PressAndReleaseH\x00\x12Q\n\x11keyboardKeysPress\x18\x0c \x01(\x0b\x32\x34.Askui.API.TDKv1.ActionParameters_KeyboardKeys_PressH\x00\x12U\n\x13keyboardKeysRelease\x18\r \x01(\x0b\x32\x36.Askui.API.TDKv1.ActionParameters_KeyboardKeys_ReleaseH\x00\x12\x65\n\x1bkeyboardKeysPressAndRelease\x18\x0e \x01(\x0b\x32>.Askui.API.TDKv1.ActionParameters_KeyboardKeys_PressAndReleaseH\x00\x12O\n\x10keyboardTypeText\x18\x0f \x01(\x0b\x32\x33.Askui.API.TDKv1.ActionParameters_KeyboardType_TextH\x00\x12]\n\x17keyboardTypeUnicodeText\x18\x10 \x01(\x0b\x32:.Askui.API.TDKv1.ActionParameters_KeyboardType_UnicodeTextH\x00\x12\x42\n\nruncommand\x18\x11 \x01(\x0b\x32,.Askui.API.TDKv1.ActionParameters_RunCommandH\x00\x42\x08\n\x06\x64\x61taOf\"G\n\x14Request_StartSession\x12\x13\n\x0bsessionGUID\x18\x01 \x01(\t\x12\x1a\n\x12immediateExecution\x18\x02 \x01(\x08\"J\n\x15Response_StartSession\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"G\n\x12Request_EndSession\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"\x1f\n\x0cRequest_Send\x12\x0f\n\x07message\x18\x01 \x01(\t\"t\n\x0cRequest_Poll\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x31\n\x0bpollEventID\x18\x02 \x01(\x0e\x32\x1c.Askui.API.TDKv1.PollEventID\"K\n\x16Request_StartExecution\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"J\n\x15Request_StopExecution\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\" \n\rResponse_Send\x12\x0f\n\x07message\x18\x01 \x01(\t\"\x85\x01\n\rResponse_Poll\x12\x31\n\x0bpollEventID\x18\x01 \x01(\x0e\x32\x1c.Askui.API.TDKv1.PollEventID\x12\x41\n\x13pollEventParameters\x18\x02 \x01(\x0b\x32$.Askui.API.TDKv1.PollEventParameters\"\xc2\x01\n\x19Request_RunRecordedAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters\"L\n\x1aResponse_RunRecordedAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\x12\x1c\n\x14requiredMilliseconds\x18\x02 \x01(\r\"\xc6\x01\n\x1dRequest_ScheduleBatchedAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters\"2\n\x1eResponse_ScheduleBatchedAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\"K\n\x16Request_GetActionCount\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\".\n\x17Response_GetActionCount\x12\x13\n\x0b\x61\x63tionCount\x18\x01 \x01(\r\"[\n\x11Request_GetAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x13\n\x0b\x61\x63tionIndex\x18\x02 \x01(\r\"\x9a\x01\n\x12Response_GetAction\x12\x10\n\x08\x61\x63tionID\x18\x01 \x01(\r\x12\x35\n\ractionClassID\x18\x02 \x01(\x0e\x32\x1e.Askui.API.TDKv1.ActionClassID\x12;\n\x10\x61\x63tionParameters\x18\x03 \x01(\x0b\x32!.Askui.API.TDKv1.ActionParameters\"[\n\x14Request_RemoveAction\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x10\n\x08\x61\x63tionID\x18\x02 \x01(\r\"M\n\x18Request_RemoveAllActions\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"J\n\x15Request_StartBatchRun\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"I\n\x14Request_StopBatchRun\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\"\xa4\x01\n\x15Request_CaptureScreen\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x42\n\x11\x63\x61ptureParameters\x18\x02 \x01(\x0b\x32\".Askui.API.TDKv1.CaptureParametersH\x00\x88\x01\x01\x42\x14\n\x12_captureParameters\"A\n\x16Response_CaptureScreen\x12\'\n\x06\x62itmap\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap\"O\n$Response_GetContinuousCapturedScreen\x12\'\n\x06\x62itmap\x18\x01 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap\"\xde\x01\n\x1cReuqest_SetTestConfiguration\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x44\n\x18\x64\x65\x66\x61ultCaptureParameters\x18\x02 \x01(\x0b\x32\".Askui.API.TDKv1.CaptureParameters\x12 \n\x18mouseDelayInMilliseconds\x18\x03 \x01(\r\x12#\n\x1bkeyboardDelayInMilliseconds\x18\x04 \x01(\r\"g\n\x15Request_SetMouseDelay\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x1b\n\x13\x64\x65layInMilliseconds\x18\x02 \x01(\r\"j\n\x18Request_SetKeyboardDelay\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x1b\n\x13\x64\x65layInMilliseconds\x18\x02 \x01(\r\"\x9f\x01\n\x12\x44isplayInformation\x12\x11\n\tdisplayID\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12,\n\x0csizeInPixels\x18\x03 \x01(\x0b\x32\x16.Askui.API.TDKv1.Size2\x12:\n\x16virtualScreenRectangle\x18\x04 \x01(\x0b\x32\x1a.Askui.API.TDKv1.Rectangle\"\x93\x01\n\x1eResponse_GetDisplayInformation\x12\x35\n\x08\x64isplays\x18\x01 \x03(\x0b\x32#.Askui.API.TDKv1.DisplayInformation\x12:\n\x16virtualScreenRectangle\x18\x02 \x01(\x0b\x32\x1a.Askui.API.TDKv1.Rectangle\"1\n\x19Response_GetMousePosition\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"(\n\x13ProcessInfoExtended\x12\x11\n\thasWindow\x18\x01 \x01(\x08\"y\n\x0bProcessInfo\x12\n\n\x02ID\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\x12?\n\x0c\x65xtendedInfo\x18\x03 \x01(\x0b\x32$.Askui.API.TDKv1.ProcessInfoExtendedH\x00\x88\x01\x01\x42\x0f\n\r_extendedInfo\"1\n\x16Request_GetProcessList\x12\x17\n\x0fgetExtendedInfo\x18\x01 \x01(\x08\"J\n\x17Response_GetProcessList\x12/\n\tprocesses\x18\x01 \x03(\x0b\x32\x1c.Askui.API.TDKv1.ProcessInfo\"*\n\x15Request_GetWindowList\x12\x11\n\tprocessID\x18\x01 \x01(\x04\"&\n\nWindowInfo\x12\n\n\x02ID\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"F\n\x16Response_GetWindowList\x12,\n\x07windows\x18\x01 \x03(\x0b\x32\x1b.Askui.API.TDKv1.WindowInfo\"-\n\x18Request_SetActiveDisplay\x12\x11\n\tdisplayID\x18\x01 \x01(\r\">\n\x17Request_SetActiveWindow\x12\x11\n\tprocessID\x18\x01 \x01(\x04\x12\x10\n\x08windowID\x18\x02 \x01(\x04\"q\n\x10\x41utomationTarget\x12\n\n\x02ID\x18\x01 \x01(\x04\x12\x33\n\x04type\x18\x02 \x01(\x0e\x32%.Askui.API.TDKv1.AutomationTargetType\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x04 \x01(\x08\"V\n Response_GetAutomationTargetList\x12\x32\n\x07targets\x18\x01 \x03(\x0b\x32!.Askui.API.TDKv1.AutomationTarget\"/\n!Request_SetActiveAutomationTarget\x12\n\n\x02ID\x18\x01 \x01(\x04\"Q\n\x10Request_GetColor\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\x12\'\n\x06\x62itmap\x18\x03 \x01(\x0b\x32\x17.Askui.API.TDKv1.Bitmap\":\n\x11Response_GetColor\x12%\n\x05\x63olor\x18\x01 \x01(\x0b\x32\x16.Askui.API.TDKv1.Color\"-\n\x15Request_GetPixelColor\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"?\n\x16Response_GetPixelColor\x12%\n\x05\x63olor\x18\x01 \x01(\x0b\x32\x16.Askui.API.TDKv1.Color\"n\n\x17Request_SetDisplayLabel\x12\x31\n\x0bsessionInfo\x18\x01 \x01(\x0b\x32\x1c.Askui.API.TDKv1.SessionInfo\x12\x11\n\tdisplayID\x18\x02 \x01(\r\x12\r\n\x05label\x18\x03 \x01(\t*N\n\x0bPollEventID\x12\x19\n\x15PollEventID_Undefined\x10\x00\x12\x1e\n\x1aPollEventID_ActionFinished\x10\x02\"\x04\x08\x01\x10\x01*m\n\x0bMouseButton\x12\x19\n\x15MouseButton_Undefined\x10\x00\x12\x14\n\x10MouseButton_Left\x10\x01\x12\x15\n\x11MouseButton_Right\x10\x02\x12\x16\n\x12MouseButton_Middle\x10\x03*\x8b\x05\n\rActionClassID\x12\x1b\n\x17\x41\x63tionClassID_Undefined\x10\x00\x12\x16\n\x12\x41\x63tionClassID_Wait\x10\x01\x12#\n\x1f\x41\x63tionClassID_MouseButton_Press\x10\x08\x12%\n!ActionClassID_MouseButton_Release\x10\t\x12-\n)ActionClassID_MouseButton_PressAndRelease\x10\n\x12\"\n\x1e\x41\x63tionClassID_MouseWheelScroll\x10\x0b\x12\x1b\n\x17\x41\x63tionClassID_MouseMove\x10\x0c\x12!\n\x1d\x41\x63tionClassID_MouseMove_Delta\x10\r\x12#\n\x1f\x41\x63tionClassID_KeyboardKey_Press\x10\x0e\x12%\n!ActionClassID_KeyboardKey_Release\x10\x0f\x12-\n)ActionClassID_KeyboardKey_PressAndRelease\x10\x10\x12$\n ActionClassID_KeyboardKeys_Press\x10\x11\x12&\n\"ActionClassID_KeyboardKeys_Release\x10\x12\x12.\n*ActionClassID_KeyboardKeys_PressAndRelease\x10\x13\x12#\n\x1f\x41\x63tionClassID_KeyboardType_Text\x10\x14\x12*\n&ActionClassID_KeyboardType_UnicodeText\x10\x15\x12\x1c\n\x18\x41\x63tionClassID_RunCommand\x10\x16*i\n\x13MouseWheelDeltaType\x12\x1d\n\x19MouseWheelDelta_Undefined\x10\x00\x12\x17\n\x13MouseWheelDelta_Raw\x10\x01\x12\x1a\n\x16MouseWheelDelta_Detent\x10\x02*\x96\x01\n\x19MouseWheelScrollDirection\x12\'\n#MouseWheelScrollDirection_Undefined\x10\x00\x12&\n\"MouseWheelScrollDirection_Vertical\x10\x01\x12(\n$MouseWheelScrollDirection_Horizontal\x10\x02*z\n\x10TypingSpeedValue\x12\x1e\n\x1aTypingSpeedValue_Undefined\x10\x00\x12(\n$TypingSpeedValue_CharactersPerSecond\x10\x01\x12\x1c\n\x18TypingSpeedValue_Seconds\x10\x02*s\n\x14\x41utomationTargetType\x12\x1a\n\x16\x41utomationTarget_Local\x10\x00\x12\x1f\n\x1b\x41utomationTarget_Background\x10\x01\x12\x1e\n\x1a\x41utomationTarget_Companion\x10\x02\x32\x82\x16\n\rControllerAPI\x12_\n\x0cStartSession\x12%.Askui.API.TDKv1.Request_StartSession\x1a&.Askui.API.TDKv1.Response_StartSession\"\x00\x12S\n\nEndSession\x12#.Askui.API.TDKv1.Request_EndSession\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12G\n\x04Send\x12\x1d.Askui.API.TDKv1.Request_Send\x1a\x1e.Askui.API.TDKv1.Response_Send\"\x00\x12G\n\x04Poll\x12\x1d.Askui.API.TDKv1.Request_Poll\x1a\x1e.Askui.API.TDKv1.Response_Poll\"\x00\x12[\n\x0eStartExecution\x12\'.Askui.API.TDKv1.Request_StartExecution\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12Y\n\rStopExecution\x12&.Askui.API.TDKv1.Request_StopExecution\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12n\n\x11RunRecordedAction\x12*.Askui.API.TDKv1.Request_RunRecordedAction\x1a+.Askui.API.TDKv1.Response_RunRecordedAction\"\x00\x12z\n\x15ScheduleBatchedAction\x12..Askui.API.TDKv1.Request_ScheduleBatchedAction\x1a/.Askui.API.TDKv1.Response_ScheduleBatchedAction\"\x00\x12Y\n\rStartBatchRun\x12&.Askui.API.TDKv1.Request_StartBatchRun\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12W\n\x0cStopBatchRun\x12%.Askui.API.TDKv1.Request_StopBatchRun\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12\x65\n\x0eGetActionCount\x12\'.Askui.API.TDKv1.Request_GetActionCount\x1a(.Askui.API.TDKv1.Response_GetActionCount\"\x00\x12V\n\tGetAction\x12\".Askui.API.TDKv1.Request_GetAction\x1a#.Askui.API.TDKv1.Response_GetAction\"\x00\x12W\n\x0cRemoveAction\x12%.Askui.API.TDKv1.Request_RemoveAction\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12_\n\x10RemoveAllActions\x12).Askui.API.TDKv1.Request_RemoveAllActions\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12\x62\n\rCaptureScreen\x12&.Askui.API.TDKv1.Request_CaptureScreen\x1a\'.Askui.API.TDKv1.Response_CaptureScreen\"\x00\x12g\n\x14SetTestConfiguration\x12-.Askui.API.TDKv1.Reuqest_SetTestConfiguration\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12Y\n\rSetMouseDelay\x12&.Askui.API.TDKv1.Request_SetMouseDelay\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12_\n\x10SetKeyboardDelay\x12).Askui.API.TDKv1.Request_SetKeyboardDelay\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12i\n\x15GetDisplayInformation\x12\x1d.Askui.API.TDKv1.Request_Void\x1a/.Askui.API.TDKv1.Response_GetDisplayInformation\"\x00\x12_\n\x10GetMousePosition\x12\x1d.Askui.API.TDKv1.Request_Void\x1a*.Askui.API.TDKv1.Response_GetMousePosition\"\x00\x12\x65\n\x0eGetProcessList\x12\'.Askui.API.TDKv1.Request_GetProcessList\x1a(.Askui.API.TDKv1.Response_GetProcessList\"\x00\x12\x62\n\rGetWindowList\x12&.Askui.API.TDKv1.Request_GetWindowList\x1a\'.Askui.API.TDKv1.Response_GetWindowList\"\x00\x12m\n\x17GetAutomationTargetList\x12\x1d.Askui.API.TDKv1.Request_Void\x1a\x31.Askui.API.TDKv1.Response_GetAutomationTargetList\"\x00\x12_\n\x10SetActiveDisplay\x12).Askui.API.TDKv1.Request_SetActiveDisplay\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12]\n\x0fSetActiveWindow\x12(.Askui.API.TDKv1.Request_SetActiveWindow\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12q\n\x19SetActiveAutomationTarget\x12\x32.Askui.API.TDKv1.Request_SetActiveAutomationTarget\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x12S\n\x08GetColor\x12!.Askui.API.TDKv1.Request_GetColor\x1a\".Askui.API.TDKv1.Response_GetColor\"\x00\x12\x62\n\rGetPixelColor\x12&.Askui.API.TDKv1.Request_GetPixelColor\x1a\'.Askui.API.TDKv1.Response_GetPixelColor\"\x00\x12]\n\x0fSetDisplayLabel\x12(.Askui.API.TDKv1.Request_SetDisplayLabel\x1a\x1e.Askui.API.TDKv1.Response_Void\"\x00\x62\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'Controller_V1_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_POLLEVENTID']._serialized_start=8285 + _globals['_POLLEVENTID']._serialized_end=8363 + _globals['_MOUSEBUTTON']._serialized_start=8365 + _globals['_MOUSEBUTTON']._serialized_end=8474 + _globals['_ACTIONCLASSID']._serialized_start=8477 + _globals['_ACTIONCLASSID']._serialized_end=9128 + _globals['_MOUSEWHEELDELTATYPE']._serialized_start=9130 + _globals['_MOUSEWHEELDELTATYPE']._serialized_end=9235 + _globals['_MOUSEWHEELSCROLLDIRECTION']._serialized_start=9238 + _globals['_MOUSEWHEELSCROLLDIRECTION']._serialized_end=9388 + _globals['_TYPINGSPEEDVALUE']._serialized_start=9390 + _globals['_TYPINGSPEEDVALUE']._serialized_end=9512 + _globals['_AUTOMATIONTARGETTYPE']._serialized_start=9514 + _globals['_AUTOMATIONTARGETTYPE']._serialized_end=9629 + _globals['_VOID']._serialized_start=40 + _globals['_VOID']._serialized_end=46 + _globals['_REQUEST_VOID']._serialized_start=48 + _globals['_REQUEST_VOID']._serialized_end=62 + _globals['_RESPONSE_VOID']._serialized_start=64 + _globals['_RESPONSE_VOID']._serialized_end=79 + _globals['_SIZE2']._serialized_start=81 + _globals['_SIZE2']._serialized_end=119 + _globals['_DELTA2']._serialized_start=121 + _globals['_DELTA2']._serialized_end=151 + _globals['_COORDINATE2']._serialized_start=153 + _globals['_COORDINATE2']._serialized_end=188 + _globals['_RECTANGLE']._serialized_start=190 + _globals['_RECTANGLE']._serialized_end=259 + _globals['_BITMAP']._serialized_start=261 + _globals['_BITMAP']._serialized_end=378 + _globals['_COLOR']._serialized_start=380 + _globals['_COLOR']._serialized_end=420 + _globals['_GUID']._serialized_start=422 + _globals['_GUID']._serialized_end=463 + _globals['_SESSIONINFO']._serialized_start=465 + _globals['_SESSIONINFO']._serialized_end=541 + _globals['_CAPTUREAREA']._serialized_start=543 + _globals['_CAPTUREAREA']._serialized_end=644 + _globals['_CAPTUREPARAMETERS']._serialized_start=647 + _globals['_CAPTUREPARAMETERS']._serialized_end=776 + _globals['_POLLEVENTPARAMETERS_ACTIONFINISHED']._serialized_start=778 + _globals['_POLLEVENTPARAMETERS_ACTIONFINISHED']._serialized_end=832 + _globals['_POLLEVENTPARAMETERS']._serialized_start=834 + _globals['_POLLEVENTPARAMETERS']._serialized_end=944 + _globals['_ACTIONPARAMETERS_WAIT']._serialized_start=946 + _globals['_ACTIONPARAMETERS_WAIT']._serialized_end=991 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_PRESS']._serialized_start=993 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_PRESS']._serialized_end=1080 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_RELEASE']._serialized_start=1082 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_RELEASE']._serialized_end=1171 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_PRESSANDRELEASE']._serialized_start=1173 + _globals['_ACTIONPARAMETERS_MOUSEBUTTON_PRESSANDRELEASE']._serialized_end=1285 + _globals['_ACTIONPARAMETERS_MOUSEWHEELSCROLL']._serialized_start=1288 + _globals['_ACTIONPARAMETERS_MOUSEWHEELSCROLL']._serialized_end=1480 + _globals['_ACTIONPARAMETERS_MOUSEMOVE']._serialized_start=1482 + _globals['_ACTIONPARAMETERS_MOUSEMOVE']._serialized_end=1602 + _globals['_ACTIONPARAMETERS_MOUSEMOVE_DELTA']._serialized_start=1604 + _globals['_ACTIONPARAMETERS_MOUSEMOVE_DELTA']._serialized_end=1722 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_PRESS']._serialized_start=1724 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_PRESS']._serialized_end=1803 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_RELEASE']._serialized_start=1805 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_RELEASE']._serialized_end=1886 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_PRESSANDRELEASE']._serialized_start=1888 + _globals['_ACTIONPARAMETERS_KEYBOARDKEY_PRESSANDRELEASE']._serialized_end=1977 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_PRESS']._serialized_start=1979 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_PRESS']._serialized_end=2060 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_RELEASE']._serialized_start=2062 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_RELEASE']._serialized_end=2145 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_PRESSANDRELEASE']._serialized_start=2147 + _globals['_ACTIONPARAMETERS_KEYBOARDKEYS_PRESSANDRELEASE']._serialized_end=2238 + _globals['_ACTIONPARAMETERS_KEYBOARDTYPE_TEXT']._serialized_start=2241 + _globals['_ACTIONPARAMETERS_KEYBOARDTYPE_TEXT']._serialized_end=2394 + _globals['_ACTIONPARAMETERS_KEYBOARDTYPE_UNICODETEXT']._serialized_start=2397 + _globals['_ACTIONPARAMETERS_KEYBOARDTYPE_UNICODETEXT']._serialized_end=2557 + _globals['_ACTIONPARAMETERS_RUNCOMMAND']._serialized_start=2559 + _globals['_ACTIONPARAMETERS_RUNCOMMAND']._serialized_end=2667 + _globals['_ACTIONPARAMETERS']._serialized_start=2670 + _globals['_ACTIONPARAMETERS']._serialized_end=4067 + _globals['_REQUEST_STARTSESSION']._serialized_start=4069 + _globals['_REQUEST_STARTSESSION']._serialized_end=4140 + _globals['_RESPONSE_STARTSESSION']._serialized_start=4142 + _globals['_RESPONSE_STARTSESSION']._serialized_end=4216 + _globals['_REQUEST_ENDSESSION']._serialized_start=4218 + _globals['_REQUEST_ENDSESSION']._serialized_end=4289 + _globals['_REQUEST_SEND']._serialized_start=4291 + _globals['_REQUEST_SEND']._serialized_end=4322 + _globals['_REQUEST_POLL']._serialized_start=4324 + _globals['_REQUEST_POLL']._serialized_end=4440 + _globals['_REQUEST_STARTEXECUTION']._serialized_start=4442 + _globals['_REQUEST_STARTEXECUTION']._serialized_end=4517 + _globals['_REQUEST_STOPEXECUTION']._serialized_start=4519 + _globals['_REQUEST_STOPEXECUTION']._serialized_end=4593 + _globals['_RESPONSE_SEND']._serialized_start=4595 + _globals['_RESPONSE_SEND']._serialized_end=4627 + _globals['_RESPONSE_POLL']._serialized_start=4630 + _globals['_RESPONSE_POLL']._serialized_end=4763 + _globals['_REQUEST_RUNRECORDEDACTION']._serialized_start=4766 + _globals['_REQUEST_RUNRECORDEDACTION']._serialized_end=4960 + _globals['_RESPONSE_RUNRECORDEDACTION']._serialized_start=4962 + _globals['_RESPONSE_RUNRECORDEDACTION']._serialized_end=5038 + _globals['_REQUEST_SCHEDULEBATCHEDACTION']._serialized_start=5041 + _globals['_REQUEST_SCHEDULEBATCHEDACTION']._serialized_end=5239 + _globals['_RESPONSE_SCHEDULEBATCHEDACTION']._serialized_start=5241 + _globals['_RESPONSE_SCHEDULEBATCHEDACTION']._serialized_end=5291 + _globals['_REQUEST_GETACTIONCOUNT']._serialized_start=5293 + _globals['_REQUEST_GETACTIONCOUNT']._serialized_end=5368 + _globals['_RESPONSE_GETACTIONCOUNT']._serialized_start=5370 + _globals['_RESPONSE_GETACTIONCOUNT']._serialized_end=5416 + _globals['_REQUEST_GETACTION']._serialized_start=5418 + _globals['_REQUEST_GETACTION']._serialized_end=5509 + _globals['_RESPONSE_GETACTION']._serialized_start=5512 + _globals['_RESPONSE_GETACTION']._serialized_end=5666 + _globals['_REQUEST_REMOVEACTION']._serialized_start=5668 + _globals['_REQUEST_REMOVEACTION']._serialized_end=5759 + _globals['_REQUEST_REMOVEALLACTIONS']._serialized_start=5761 + _globals['_REQUEST_REMOVEALLACTIONS']._serialized_end=5838 + _globals['_REQUEST_STARTBATCHRUN']._serialized_start=5840 + _globals['_REQUEST_STARTBATCHRUN']._serialized_end=5914 + _globals['_REQUEST_STOPBATCHRUN']._serialized_start=5916 + _globals['_REQUEST_STOPBATCHRUN']._serialized_end=5989 + _globals['_REQUEST_CAPTURESCREEN']._serialized_start=5992 + _globals['_REQUEST_CAPTURESCREEN']._serialized_end=6156 + _globals['_RESPONSE_CAPTURESCREEN']._serialized_start=6158 + _globals['_RESPONSE_CAPTURESCREEN']._serialized_end=6223 + _globals['_RESPONSE_GETCONTINUOUSCAPTUREDSCREEN']._serialized_start=6225 + _globals['_RESPONSE_GETCONTINUOUSCAPTUREDSCREEN']._serialized_end=6304 + _globals['_REUQEST_SETTESTCONFIGURATION']._serialized_start=6307 + _globals['_REUQEST_SETTESTCONFIGURATION']._serialized_end=6529 + _globals['_REQUEST_SETMOUSEDELAY']._serialized_start=6531 + _globals['_REQUEST_SETMOUSEDELAY']._serialized_end=6634 + _globals['_REQUEST_SETKEYBOARDDELAY']._serialized_start=6636 + _globals['_REQUEST_SETKEYBOARDDELAY']._serialized_end=6742 + _globals['_DISPLAYINFORMATION']._serialized_start=6745 + _globals['_DISPLAYINFORMATION']._serialized_end=6904 + _globals['_RESPONSE_GETDISPLAYINFORMATION']._serialized_start=6907 + _globals['_RESPONSE_GETDISPLAYINFORMATION']._serialized_end=7054 + _globals['_RESPONSE_GETMOUSEPOSITION']._serialized_start=7056 + _globals['_RESPONSE_GETMOUSEPOSITION']._serialized_end=7105 + _globals['_PROCESSINFOEXTENDED']._serialized_start=7107 + _globals['_PROCESSINFOEXTENDED']._serialized_end=7147 + _globals['_PROCESSINFO']._serialized_start=7149 + _globals['_PROCESSINFO']._serialized_end=7270 + _globals['_REQUEST_GETPROCESSLIST']._serialized_start=7272 + _globals['_REQUEST_GETPROCESSLIST']._serialized_end=7321 + _globals['_RESPONSE_GETPROCESSLIST']._serialized_start=7323 + _globals['_RESPONSE_GETPROCESSLIST']._serialized_end=7397 + _globals['_REQUEST_GETWINDOWLIST']._serialized_start=7399 + _globals['_REQUEST_GETWINDOWLIST']._serialized_end=7441 + _globals['_WINDOWINFO']._serialized_start=7443 + _globals['_WINDOWINFO']._serialized_end=7481 + _globals['_RESPONSE_GETWINDOWLIST']._serialized_start=7483 + _globals['_RESPONSE_GETWINDOWLIST']._serialized_end=7553 + _globals['_REQUEST_SETACTIVEDISPLAY']._serialized_start=7555 + _globals['_REQUEST_SETACTIVEDISPLAY']._serialized_end=7600 + _globals['_REQUEST_SETACTIVEWINDOW']._serialized_start=7602 + _globals['_REQUEST_SETACTIVEWINDOW']._serialized_end=7664 + _globals['_AUTOMATIONTARGET']._serialized_start=7666 + _globals['_AUTOMATIONTARGET']._serialized_end=7779 + _globals['_RESPONSE_GETAUTOMATIONTARGETLIST']._serialized_start=7781 + _globals['_RESPONSE_GETAUTOMATIONTARGETLIST']._serialized_end=7867 + _globals['_REQUEST_SETACTIVEAUTOMATIONTARGET']._serialized_start=7869 + _globals['_REQUEST_SETACTIVEAUTOMATIONTARGET']._serialized_end=7916 + _globals['_REQUEST_GETCOLOR']._serialized_start=7918 + _globals['_REQUEST_GETCOLOR']._serialized_end=7999 + _globals['_RESPONSE_GETCOLOR']._serialized_start=8001 + _globals['_RESPONSE_GETCOLOR']._serialized_end=8059 + _globals['_REQUEST_GETPIXELCOLOR']._serialized_start=8061 + _globals['_REQUEST_GETPIXELCOLOR']._serialized_end=8106 + _globals['_RESPONSE_GETPIXELCOLOR']._serialized_start=8108 + _globals['_RESPONSE_GETPIXELCOLOR']._serialized_end=8171 + _globals['_REQUEST_SETDISPLAYLABEL']._serialized_start=8173 + _globals['_REQUEST_SETDISPLAYLABEL']._serialized_end=8283 + _globals['_CONTROLLERAPI']._serialized_start=9632 + _globals['_CONTROLLERAPI']._serialized_end=12450 +# @@protoc_insertion_point(module_scope) diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.pyi b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.pyi new file mode 100644 index 00000000..409383f9 --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2.pyi @@ -0,0 +1,736 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class PollEventID(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + PollEventID_Undefined: _ClassVar[PollEventID] + PollEventID_ActionFinished: _ClassVar[PollEventID] + +class MouseButton(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MouseButton_Undefined: _ClassVar[MouseButton] + MouseButton_Left: _ClassVar[MouseButton] + MouseButton_Right: _ClassVar[MouseButton] + MouseButton_Middle: _ClassVar[MouseButton] + +class ActionClassID(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + ActionClassID_Undefined: _ClassVar[ActionClassID] + ActionClassID_Wait: _ClassVar[ActionClassID] + ActionClassID_MouseButton_Press: _ClassVar[ActionClassID] + ActionClassID_MouseButton_Release: _ClassVar[ActionClassID] + ActionClassID_MouseButton_PressAndRelease: _ClassVar[ActionClassID] + ActionClassID_MouseWheelScroll: _ClassVar[ActionClassID] + ActionClassID_MouseMove: _ClassVar[ActionClassID] + ActionClassID_MouseMove_Delta: _ClassVar[ActionClassID] + ActionClassID_KeyboardKey_Press: _ClassVar[ActionClassID] + ActionClassID_KeyboardKey_Release: _ClassVar[ActionClassID] + ActionClassID_KeyboardKey_PressAndRelease: _ClassVar[ActionClassID] + ActionClassID_KeyboardKeys_Press: _ClassVar[ActionClassID] + ActionClassID_KeyboardKeys_Release: _ClassVar[ActionClassID] + ActionClassID_KeyboardKeys_PressAndRelease: _ClassVar[ActionClassID] + ActionClassID_KeyboardType_Text: _ClassVar[ActionClassID] + ActionClassID_KeyboardType_UnicodeText: _ClassVar[ActionClassID] + ActionClassID_RunCommand: _ClassVar[ActionClassID] + +class MouseWheelDeltaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MouseWheelDelta_Undefined: _ClassVar[MouseWheelDeltaType] + MouseWheelDelta_Raw: _ClassVar[MouseWheelDeltaType] + MouseWheelDelta_Detent: _ClassVar[MouseWheelDeltaType] + +class MouseWheelScrollDirection(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MouseWheelScrollDirection_Undefined: _ClassVar[MouseWheelScrollDirection] + MouseWheelScrollDirection_Vertical: _ClassVar[MouseWheelScrollDirection] + MouseWheelScrollDirection_Horizontal: _ClassVar[MouseWheelScrollDirection] + +class TypingSpeedValue(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + TypingSpeedValue_Undefined: _ClassVar[TypingSpeedValue] + TypingSpeedValue_CharactersPerSecond: _ClassVar[TypingSpeedValue] + TypingSpeedValue_Seconds: _ClassVar[TypingSpeedValue] + +class AutomationTargetType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AutomationTarget_Local: _ClassVar[AutomationTargetType] + AutomationTarget_Background: _ClassVar[AutomationTargetType] + AutomationTarget_Companion: _ClassVar[AutomationTargetType] +PollEventID_Undefined: PollEventID +PollEventID_ActionFinished: PollEventID +MouseButton_Undefined: MouseButton +MouseButton_Left: MouseButton +MouseButton_Right: MouseButton +MouseButton_Middle: MouseButton +ActionClassID_Undefined: ActionClassID +ActionClassID_Wait: ActionClassID +ActionClassID_MouseButton_Press: ActionClassID +ActionClassID_MouseButton_Release: ActionClassID +ActionClassID_MouseButton_PressAndRelease: ActionClassID +ActionClassID_MouseWheelScroll: ActionClassID +ActionClassID_MouseMove: ActionClassID +ActionClassID_MouseMove_Delta: ActionClassID +ActionClassID_KeyboardKey_Press: ActionClassID +ActionClassID_KeyboardKey_Release: ActionClassID +ActionClassID_KeyboardKey_PressAndRelease: ActionClassID +ActionClassID_KeyboardKeys_Press: ActionClassID +ActionClassID_KeyboardKeys_Release: ActionClassID +ActionClassID_KeyboardKeys_PressAndRelease: ActionClassID +ActionClassID_KeyboardType_Text: ActionClassID +ActionClassID_KeyboardType_UnicodeText: ActionClassID +ActionClassID_RunCommand: ActionClassID +MouseWheelDelta_Undefined: MouseWheelDeltaType +MouseWheelDelta_Raw: MouseWheelDeltaType +MouseWheelDelta_Detent: MouseWheelDeltaType +MouseWheelScrollDirection_Undefined: MouseWheelScrollDirection +MouseWheelScrollDirection_Vertical: MouseWheelScrollDirection +MouseWheelScrollDirection_Horizontal: MouseWheelScrollDirection +TypingSpeedValue_Undefined: TypingSpeedValue +TypingSpeedValue_CharactersPerSecond: TypingSpeedValue +TypingSpeedValue_Seconds: TypingSpeedValue +AutomationTarget_Local: AutomationTargetType +AutomationTarget_Background: AutomationTargetType +AutomationTarget_Companion: AutomationTargetType + +class Void(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class Request_Void(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class Response_Void(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class Size2(_message.Message): + __slots__ = ("width", "height") + WIDTH_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + width: int + height: int + def __init__(self, width: _Optional[int] = ..., height: _Optional[int] = ...) -> None: ... + +class Delta2(_message.Message): + __slots__ = ("x", "y") + X_FIELD_NUMBER: _ClassVar[int] + Y_FIELD_NUMBER: _ClassVar[int] + x: int + y: int + def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... + +class Coordinate2(_message.Message): + __slots__ = ("x", "y") + X_FIELD_NUMBER: _ClassVar[int] + Y_FIELD_NUMBER: _ClassVar[int] + x: int + y: int + def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... + +class Rectangle(_message.Message): + __slots__ = ("left", "top", "right", "bottom") + LEFT_FIELD_NUMBER: _ClassVar[int] + TOP_FIELD_NUMBER: _ClassVar[int] + RIGHT_FIELD_NUMBER: _ClassVar[int] + BOTTOM_FIELD_NUMBER: _ClassVar[int] + left: int + top: int + right: int + bottom: int + def __init__(self, left: _Optional[int] = ..., top: _Optional[int] = ..., right: _Optional[int] = ..., bottom: _Optional[int] = ...) -> None: ... + +class Bitmap(_message.Message): + __slots__ = ("width", "height", "lineWidth", "bitsPerPixel", "bytesPerPixel", "data") + WIDTH_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + LINEWIDTH_FIELD_NUMBER: _ClassVar[int] + BITSPERPIXEL_FIELD_NUMBER: _ClassVar[int] + BYTESPERPIXEL_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + width: int + height: int + lineWidth: int + bitsPerPixel: int + bytesPerPixel: int + data: bytes + def __init__(self, width: _Optional[int] = ..., height: _Optional[int] = ..., lineWidth: _Optional[int] = ..., bitsPerPixel: _Optional[int] = ..., bytesPerPixel: _Optional[int] = ..., data: _Optional[bytes] = ...) -> None: ... + +class Color(_message.Message): + __slots__ = ("r", "g", "b") + R_FIELD_NUMBER: _ClassVar[int] + G_FIELD_NUMBER: _ClassVar[int] + B_FIELD_NUMBER: _ClassVar[int] + r: int + g: int + b: int + def __init__(self, r: _Optional[int] = ..., g: _Optional[int] = ..., b: _Optional[int] = ...) -> None: ... + +class GUID(_message.Message): + __slots__ = ("highPart", "lowPart") + HIGHPART_FIELD_NUMBER: _ClassVar[int] + LOWPART_FIELD_NUMBER: _ClassVar[int] + highPart: int + lowPart: int + def __init__(self, highPart: _Optional[int] = ..., lowPart: _Optional[int] = ...) -> None: ... + +class SessionInfo(_message.Message): + __slots__ = ("sessionGUID", "sessionID") + SESSIONGUID_FIELD_NUMBER: _ClassVar[int] + SESSIONID_FIELD_NUMBER: _ClassVar[int] + sessionGUID: GUID + sessionID: int + def __init__(self, sessionGUID: _Optional[_Union[GUID, _Mapping]] = ..., sessionID: _Optional[int] = ...) -> None: ... + +class CaptureArea(_message.Message): + __slots__ = ("size", "coordinate") + SIZE_FIELD_NUMBER: _ClassVar[int] + COORDINATE_FIELD_NUMBER: _ClassVar[int] + size: Size2 + coordinate: Coordinate2 + def __init__(self, size: _Optional[_Union[Size2, _Mapping]] = ..., coordinate: _Optional[_Union[Coordinate2, _Mapping]] = ...) -> None: ... + +class CaptureParameters(_message.Message): + __slots__ = ("displayID", "captureArea") + DISPLAYID_FIELD_NUMBER: _ClassVar[int] + CAPTUREAREA_FIELD_NUMBER: _ClassVar[int] + displayID: int + captureArea: CaptureArea + def __init__(self, displayID: _Optional[int] = ..., captureArea: _Optional[_Union[CaptureArea, _Mapping]] = ...) -> None: ... + +class PollEventParameters_ActionFinished(_message.Message): + __slots__ = ("actionID",) + ACTIONID_FIELD_NUMBER: _ClassVar[int] + actionID: int + def __init__(self, actionID: _Optional[int] = ...) -> None: ... + +class PollEventParameters(_message.Message): + __slots__ = ("actionFinished",) + ACTIONFINISHED_FIELD_NUMBER: _ClassVar[int] + actionFinished: PollEventParameters_ActionFinished + def __init__(self, actionFinished: _Optional[_Union[PollEventParameters_ActionFinished, _Mapping]] = ...) -> None: ... + +class ActionParameters_Wait(_message.Message): + __slots__ = ("milliseconds",) + MILLISECONDS_FIELD_NUMBER: _ClassVar[int] + milliseconds: int + def __init__(self, milliseconds: _Optional[int] = ...) -> None: ... + +class ActionParameters_MouseButton_Press(_message.Message): + __slots__ = ("mouseButton",) + MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] + mouseButton: MouseButton + def __init__(self, mouseButton: _Optional[_Union[MouseButton, str]] = ...) -> None: ... + +class ActionParameters_MouseButton_Release(_message.Message): + __slots__ = ("mouseButton",) + MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] + mouseButton: MouseButton + def __init__(self, mouseButton: _Optional[_Union[MouseButton, str]] = ...) -> None: ... + +class ActionParameters_MouseButton_PressAndRelease(_message.Message): + __slots__ = ("mouseButton", "count") + MOUSEBUTTON_FIELD_NUMBER: _ClassVar[int] + COUNT_FIELD_NUMBER: _ClassVar[int] + mouseButton: MouseButton + count: int + def __init__(self, mouseButton: _Optional[_Union[MouseButton, str]] = ..., count: _Optional[int] = ...) -> None: ... + +class ActionParameters_MouseWheelScroll(_message.Message): + __slots__ = ("direction", "deltaType", "delta", "milliseconds") + DIRECTION_FIELD_NUMBER: _ClassVar[int] + DELTATYPE_FIELD_NUMBER: _ClassVar[int] + DELTA_FIELD_NUMBER: _ClassVar[int] + MILLISECONDS_FIELD_NUMBER: _ClassVar[int] + direction: MouseWheelScrollDirection + deltaType: MouseWheelDeltaType + delta: int + milliseconds: int + def __init__(self, direction: _Optional[_Union[MouseWheelScrollDirection, str]] = ..., deltaType: _Optional[_Union[MouseWheelDeltaType, str]] = ..., delta: _Optional[int] = ..., milliseconds: _Optional[int] = ...) -> None: ... + +class ActionParameters_MouseMove(_message.Message): + __slots__ = ("position", "milliseconds") + POSITION_FIELD_NUMBER: _ClassVar[int] + MILLISECONDS_FIELD_NUMBER: _ClassVar[int] + position: Coordinate2 + milliseconds: int + def __init__(self, position: _Optional[_Union[Coordinate2, _Mapping]] = ..., milliseconds: _Optional[int] = ...) -> None: ... + +class ActionParameters_MouseMove_Delta(_message.Message): + __slots__ = ("delta", "milliseconds") + DELTA_FIELD_NUMBER: _ClassVar[int] + MILLISECONDS_FIELD_NUMBER: _ClassVar[int] + delta: Delta2 + milliseconds: int + def __init__(self, delta: _Optional[_Union[Delta2, _Mapping]] = ..., milliseconds: _Optional[int] = ...) -> None: ... + +class ActionParameters_KeyboardKey_Press(_message.Message): + __slots__ = ("keyName", "modifierKeyNames") + KEYNAME_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyName: str + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyName: _Optional[str] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardKey_Release(_message.Message): + __slots__ = ("keyName", "modifierKeyNames") + KEYNAME_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyName: str + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyName: _Optional[str] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardKey_PressAndRelease(_message.Message): + __slots__ = ("keyName", "modifierKeyNames") + KEYNAME_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyName: str + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyName: _Optional[str] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardKeys_Press(_message.Message): + __slots__ = ("keyNames", "modifierKeyNames") + KEYNAMES_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyNames: _containers.RepeatedScalarFieldContainer[str] + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyNames: _Optional[_Iterable[str]] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardKeys_Release(_message.Message): + __slots__ = ("keyNames", "modifierKeyNames") + KEYNAMES_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyNames: _containers.RepeatedScalarFieldContainer[str] + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyNames: _Optional[_Iterable[str]] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardKeys_PressAndRelease(_message.Message): + __slots__ = ("keyNames", "modifierKeyNames") + KEYNAMES_FIELD_NUMBER: _ClassVar[int] + MODIFIERKEYNAMES_FIELD_NUMBER: _ClassVar[int] + keyNames: _containers.RepeatedScalarFieldContainer[str] + modifierKeyNames: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, keyNames: _Optional[_Iterable[str]] = ..., modifierKeyNames: _Optional[_Iterable[str]] = ...) -> None: ... + +class ActionParameters_KeyboardType_Text(_message.Message): + __slots__ = ("text", "typingSpeedValue", "typingSpeed") + TEXT_FIELD_NUMBER: _ClassVar[int] + TYPINGSPEEDVALUE_FIELD_NUMBER: _ClassVar[int] + TYPINGSPEED_FIELD_NUMBER: _ClassVar[int] + text: str + typingSpeedValue: TypingSpeedValue + typingSpeed: int + def __init__(self, text: _Optional[str] = ..., typingSpeedValue: _Optional[_Union[TypingSpeedValue, str]] = ..., typingSpeed: _Optional[int] = ...) -> None: ... + +class ActionParameters_KeyboardType_UnicodeText(_message.Message): + __slots__ = ("text", "typingSpeedValue", "typingSpeed") + TEXT_FIELD_NUMBER: _ClassVar[int] + TYPINGSPEEDVALUE_FIELD_NUMBER: _ClassVar[int] + TYPINGSPEED_FIELD_NUMBER: _ClassVar[int] + text: bytes + typingSpeedValue: TypingSpeedValue + typingSpeed: int + def __init__(self, text: _Optional[bytes] = ..., typingSpeedValue: _Optional[_Union[TypingSpeedValue, str]] = ..., typingSpeed: _Optional[int] = ...) -> None: ... + +class ActionParameters_RunCommand(_message.Message): + __slots__ = ("command", "timeoutInMilliseconds") + COMMAND_FIELD_NUMBER: _ClassVar[int] + TIMEOUTINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + command: str + timeoutInMilliseconds: int + def __init__(self, command: _Optional[str] = ..., timeoutInMilliseconds: _Optional[int] = ...) -> None: ... + +class ActionParameters(_message.Message): + __slots__ = ("none", "wait", "mouseButtonPress", "mouseButtonRelease", "mouseButtonPressAndRelease", "mouseWheelScroll", "mouseMove", "mouseMoveDelta", "keyboardKeyPress", "keyboardKeyRelease", "keyboardKeyPressAndRelease", "keyboardKeysPress", "keyboardKeysRelease", "keyboardKeysPressAndRelease", "keyboardTypeText", "keyboardTypeUnicodeText", "runcommand") + NONE_FIELD_NUMBER: _ClassVar[int] + WAIT_FIELD_NUMBER: _ClassVar[int] + MOUSEBUTTONPRESS_FIELD_NUMBER: _ClassVar[int] + MOUSEBUTTONRELEASE_FIELD_NUMBER: _ClassVar[int] + MOUSEBUTTONPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] + MOUSEWHEELSCROLL_FIELD_NUMBER: _ClassVar[int] + MOUSEMOVE_FIELD_NUMBER: _ClassVar[int] + MOUSEMOVEDELTA_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYPRESS_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYRELEASE_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYSPRESS_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYSRELEASE_FIELD_NUMBER: _ClassVar[int] + KEYBOARDKEYSPRESSANDRELEASE_FIELD_NUMBER: _ClassVar[int] + KEYBOARDTYPETEXT_FIELD_NUMBER: _ClassVar[int] + KEYBOARDTYPEUNICODETEXT_FIELD_NUMBER: _ClassVar[int] + RUNCOMMAND_FIELD_NUMBER: _ClassVar[int] + none: Void + wait: ActionParameters_Wait + mouseButtonPress: ActionParameters_MouseButton_Press + mouseButtonRelease: ActionParameters_MouseButton_Release + mouseButtonPressAndRelease: ActionParameters_MouseButton_PressAndRelease + mouseWheelScroll: ActionParameters_MouseWheelScroll + mouseMove: ActionParameters_MouseMove + mouseMoveDelta: ActionParameters_MouseMove_Delta + keyboardKeyPress: ActionParameters_KeyboardKey_Press + keyboardKeyRelease: ActionParameters_KeyboardKey_Release + keyboardKeyPressAndRelease: ActionParameters_KeyboardKey_PressAndRelease + keyboardKeysPress: ActionParameters_KeyboardKeys_Press + keyboardKeysRelease: ActionParameters_KeyboardKeys_Release + keyboardKeysPressAndRelease: ActionParameters_KeyboardKeys_PressAndRelease + keyboardTypeText: ActionParameters_KeyboardType_Text + keyboardTypeUnicodeText: ActionParameters_KeyboardType_UnicodeText + runcommand: ActionParameters_RunCommand + def __init__(self, none: _Optional[_Union[Void, _Mapping]] = ..., wait: _Optional[_Union[ActionParameters_Wait, _Mapping]] = ..., mouseButtonPress: _Optional[_Union[ActionParameters_MouseButton_Press, _Mapping]] = ..., mouseButtonRelease: _Optional[_Union[ActionParameters_MouseButton_Release, _Mapping]] = ..., mouseButtonPressAndRelease: _Optional[_Union[ActionParameters_MouseButton_PressAndRelease, _Mapping]] = ..., mouseWheelScroll: _Optional[_Union[ActionParameters_MouseWheelScroll, _Mapping]] = ..., mouseMove: _Optional[_Union[ActionParameters_MouseMove, _Mapping]] = ..., mouseMoveDelta: _Optional[_Union[ActionParameters_MouseMove_Delta, _Mapping]] = ..., keyboardKeyPress: _Optional[_Union[ActionParameters_KeyboardKey_Press, _Mapping]] = ..., keyboardKeyRelease: _Optional[_Union[ActionParameters_KeyboardKey_Release, _Mapping]] = ..., keyboardKeyPressAndRelease: _Optional[_Union[ActionParameters_KeyboardKey_PressAndRelease, _Mapping]] = ..., keyboardKeysPress: _Optional[_Union[ActionParameters_KeyboardKeys_Press, _Mapping]] = ..., keyboardKeysRelease: _Optional[_Union[ActionParameters_KeyboardKeys_Release, _Mapping]] = ..., keyboardKeysPressAndRelease: _Optional[_Union[ActionParameters_KeyboardKeys_PressAndRelease, _Mapping]] = ..., keyboardTypeText: _Optional[_Union[ActionParameters_KeyboardType_Text, _Mapping]] = ..., keyboardTypeUnicodeText: _Optional[_Union[ActionParameters_KeyboardType_UnicodeText, _Mapping]] = ..., runcommand: _Optional[_Union[ActionParameters_RunCommand, _Mapping]] = ...) -> None: ... + +class Request_StartSession(_message.Message): + __slots__ = ("sessionGUID", "immediateExecution") + SESSIONGUID_FIELD_NUMBER: _ClassVar[int] + IMMEDIATEEXECUTION_FIELD_NUMBER: _ClassVar[int] + sessionGUID: str + immediateExecution: bool + def __init__(self, sessionGUID: _Optional[str] = ..., immediateExecution: bool = ...) -> None: ... + +class Response_StartSession(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_EndSession(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_Send(_message.Message): + __slots__ = ("message",) + MESSAGE_FIELD_NUMBER: _ClassVar[int] + message: str + def __init__(self, message: _Optional[str] = ...) -> None: ... + +class Request_Poll(_message.Message): + __slots__ = ("sessionInfo", "pollEventID") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + POLLEVENTID_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + pollEventID: PollEventID + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., pollEventID: _Optional[_Union[PollEventID, str]] = ...) -> None: ... + +class Request_StartExecution(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_StopExecution(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Response_Send(_message.Message): + __slots__ = ("message",) + MESSAGE_FIELD_NUMBER: _ClassVar[int] + message: str + def __init__(self, message: _Optional[str] = ...) -> None: ... + +class Response_Poll(_message.Message): + __slots__ = ("pollEventID", "pollEventParameters") + POLLEVENTID_FIELD_NUMBER: _ClassVar[int] + POLLEVENTPARAMETERS_FIELD_NUMBER: _ClassVar[int] + pollEventID: PollEventID + pollEventParameters: PollEventParameters + def __init__(self, pollEventID: _Optional[_Union[PollEventID, str]] = ..., pollEventParameters: _Optional[_Union[PollEventParameters, _Mapping]] = ...) -> None: ... + +class Request_RunRecordedAction(_message.Message): + __slots__ = ("sessionInfo", "actionClassID", "actionParameters") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] + ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + actionClassID: ActionClassID + actionParameters: ActionParameters + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., actionClassID: _Optional[_Union[ActionClassID, str]] = ..., actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ...) -> None: ... + +class Response_RunRecordedAction(_message.Message): + __slots__ = ("actionID", "requiredMilliseconds") + ACTIONID_FIELD_NUMBER: _ClassVar[int] + REQUIREDMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + actionID: int + requiredMilliseconds: int + def __init__(self, actionID: _Optional[int] = ..., requiredMilliseconds: _Optional[int] = ...) -> None: ... + +class Request_ScheduleBatchedAction(_message.Message): + __slots__ = ("sessionInfo", "actionClassID", "actionParameters") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] + ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + actionClassID: ActionClassID + actionParameters: ActionParameters + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., actionClassID: _Optional[_Union[ActionClassID, str]] = ..., actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ...) -> None: ... + +class Response_ScheduleBatchedAction(_message.Message): + __slots__ = ("actionID",) + ACTIONID_FIELD_NUMBER: _ClassVar[int] + actionID: int + def __init__(self, actionID: _Optional[int] = ...) -> None: ... + +class Request_GetActionCount(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Response_GetActionCount(_message.Message): + __slots__ = ("actionCount",) + ACTIONCOUNT_FIELD_NUMBER: _ClassVar[int] + actionCount: int + def __init__(self, actionCount: _Optional[int] = ...) -> None: ... + +class Request_GetAction(_message.Message): + __slots__ = ("sessionInfo", "actionIndex") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + ACTIONINDEX_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + actionIndex: int + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., actionIndex: _Optional[int] = ...) -> None: ... + +class Response_GetAction(_message.Message): + __slots__ = ("actionID", "actionClassID", "actionParameters") + ACTIONID_FIELD_NUMBER: _ClassVar[int] + ACTIONCLASSID_FIELD_NUMBER: _ClassVar[int] + ACTIONPARAMETERS_FIELD_NUMBER: _ClassVar[int] + actionID: int + actionClassID: ActionClassID + actionParameters: ActionParameters + def __init__(self, actionID: _Optional[int] = ..., actionClassID: _Optional[_Union[ActionClassID, str]] = ..., actionParameters: _Optional[_Union[ActionParameters, _Mapping]] = ...) -> None: ... + +class Request_RemoveAction(_message.Message): + __slots__ = ("sessionInfo", "actionID") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + ACTIONID_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + actionID: int + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., actionID: _Optional[int] = ...) -> None: ... + +class Request_RemoveAllActions(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_StartBatchRun(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_StopBatchRun(_message.Message): + __slots__ = ("sessionInfo",) + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ... + +class Request_CaptureScreen(_message.Message): + __slots__ = ("sessionInfo", "captureParameters") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + CAPTUREPARAMETERS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + captureParameters: CaptureParameters + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., captureParameters: _Optional[_Union[CaptureParameters, _Mapping]] = ...) -> None: ... + +class Response_CaptureScreen(_message.Message): + __slots__ = ("bitmap",) + BITMAP_FIELD_NUMBER: _ClassVar[int] + bitmap: Bitmap + def __init__(self, bitmap: _Optional[_Union[Bitmap, _Mapping]] = ...) -> None: ... + +class Response_GetContinuousCapturedScreen(_message.Message): + __slots__ = ("bitmap",) + BITMAP_FIELD_NUMBER: _ClassVar[int] + bitmap: Bitmap + def __init__(self, bitmap: _Optional[_Union[Bitmap, _Mapping]] = ...) -> None: ... + +class Reuqest_SetTestConfiguration(_message.Message): + __slots__ = ("sessionInfo", "defaultCaptureParameters", "mouseDelayInMilliseconds", "keyboardDelayInMilliseconds") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + DEFAULTCAPTUREPARAMETERS_FIELD_NUMBER: _ClassVar[int] + MOUSEDELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + KEYBOARDDELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + defaultCaptureParameters: CaptureParameters + mouseDelayInMilliseconds: int + keyboardDelayInMilliseconds: int + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., defaultCaptureParameters: _Optional[_Union[CaptureParameters, _Mapping]] = ..., mouseDelayInMilliseconds: _Optional[int] = ..., keyboardDelayInMilliseconds: _Optional[int] = ...) -> None: ... + +class Request_SetMouseDelay(_message.Message): + __slots__ = ("sessionInfo", "delayInMilliseconds") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + DELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + delayInMilliseconds: int + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., delayInMilliseconds: _Optional[int] = ...) -> None: ... + +class Request_SetKeyboardDelay(_message.Message): + __slots__ = ("sessionInfo", "delayInMilliseconds") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + DELAYINMILLISECONDS_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + delayInMilliseconds: int + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., delayInMilliseconds: _Optional[int] = ...) -> None: ... + +class DisplayInformation(_message.Message): + __slots__ = ("displayID", "name", "sizeInPixels", "virtualScreenRectangle") + DISPLAYID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + SIZEINPIXELS_FIELD_NUMBER: _ClassVar[int] + VIRTUALSCREENRECTANGLE_FIELD_NUMBER: _ClassVar[int] + displayID: int + name: str + sizeInPixels: Size2 + virtualScreenRectangle: Rectangle + def __init__(self, displayID: _Optional[int] = ..., name: _Optional[str] = ..., sizeInPixels: _Optional[_Union[Size2, _Mapping]] = ..., virtualScreenRectangle: _Optional[_Union[Rectangle, _Mapping]] = ...) -> None: ... + +class Response_GetDisplayInformation(_message.Message): + __slots__ = ("displays", "virtualScreenRectangle") + DISPLAYS_FIELD_NUMBER: _ClassVar[int] + VIRTUALSCREENRECTANGLE_FIELD_NUMBER: _ClassVar[int] + displays: _containers.RepeatedCompositeFieldContainer[DisplayInformation] + virtualScreenRectangle: Rectangle + def __init__(self, displays: _Optional[_Iterable[_Union[DisplayInformation, _Mapping]]] = ..., virtualScreenRectangle: _Optional[_Union[Rectangle, _Mapping]] = ...) -> None: ... + +class Response_GetMousePosition(_message.Message): + __slots__ = ("x", "y") + X_FIELD_NUMBER: _ClassVar[int] + Y_FIELD_NUMBER: _ClassVar[int] + x: int + y: int + def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... + +class ProcessInfoExtended(_message.Message): + __slots__ = ("hasWindow",) + HASWINDOW_FIELD_NUMBER: _ClassVar[int] + hasWindow: bool + def __init__(self, hasWindow: bool = ...) -> None: ... + +class ProcessInfo(_message.Message): + __slots__ = ("ID", "name", "extendedInfo") + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + EXTENDEDINFO_FIELD_NUMBER: _ClassVar[int] + ID: int + name: str + extendedInfo: ProcessInfoExtended + def __init__(self, ID: _Optional[int] = ..., name: _Optional[str] = ..., extendedInfo: _Optional[_Union[ProcessInfoExtended, _Mapping]] = ...) -> None: ... + +class Request_GetProcessList(_message.Message): + __slots__ = ("getExtendedInfo",) + GETEXTENDEDINFO_FIELD_NUMBER: _ClassVar[int] + getExtendedInfo: bool + def __init__(self, getExtendedInfo: bool = ...) -> None: ... + +class Response_GetProcessList(_message.Message): + __slots__ = ("processes",) + PROCESSES_FIELD_NUMBER: _ClassVar[int] + processes: _containers.RepeatedCompositeFieldContainer[ProcessInfo] + def __init__(self, processes: _Optional[_Iterable[_Union[ProcessInfo, _Mapping]]] = ...) -> None: ... + +class Request_GetWindowList(_message.Message): + __slots__ = ("processID",) + PROCESSID_FIELD_NUMBER: _ClassVar[int] + processID: int + def __init__(self, processID: _Optional[int] = ...) -> None: ... + +class WindowInfo(_message.Message): + __slots__ = ("ID", "name") + ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + ID: int + name: str + def __init__(self, ID: _Optional[int] = ..., name: _Optional[str] = ...) -> None: ... + +class Response_GetWindowList(_message.Message): + __slots__ = ("windows",) + WINDOWS_FIELD_NUMBER: _ClassVar[int] + windows: _containers.RepeatedCompositeFieldContainer[WindowInfo] + def __init__(self, windows: _Optional[_Iterable[_Union[WindowInfo, _Mapping]]] = ...) -> None: ... + +class Request_SetActiveDisplay(_message.Message): + __slots__ = ("displayID",) + DISPLAYID_FIELD_NUMBER: _ClassVar[int] + displayID: int + def __init__(self, displayID: _Optional[int] = ...) -> None: ... + +class Request_SetActiveWindow(_message.Message): + __slots__ = ("processID", "windowID") + PROCESSID_FIELD_NUMBER: _ClassVar[int] + WINDOWID_FIELD_NUMBER: _ClassVar[int] + processID: int + windowID: int + def __init__(self, processID: _Optional[int] = ..., windowID: _Optional[int] = ...) -> None: ... + +class AutomationTarget(_message.Message): + __slots__ = ("ID", "type", "name", "active") + ID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + ACTIVE_FIELD_NUMBER: _ClassVar[int] + ID: int + type: AutomationTargetType + name: str + active: bool + def __init__(self, ID: _Optional[int] = ..., type: _Optional[_Union[AutomationTargetType, str]] = ..., name: _Optional[str] = ..., active: bool = ...) -> None: ... + +class Response_GetAutomationTargetList(_message.Message): + __slots__ = ("targets",) + TARGETS_FIELD_NUMBER: _ClassVar[int] + targets: _containers.RepeatedCompositeFieldContainer[AutomationTarget] + def __init__(self, targets: _Optional[_Iterable[_Union[AutomationTarget, _Mapping]]] = ...) -> None: ... + +class Request_SetActiveAutomationTarget(_message.Message): + __slots__ = ("ID",) + ID_FIELD_NUMBER: _ClassVar[int] + ID: int + def __init__(self, ID: _Optional[int] = ...) -> None: ... + +class Request_GetColor(_message.Message): + __slots__ = ("x", "y", "bitmap") + X_FIELD_NUMBER: _ClassVar[int] + Y_FIELD_NUMBER: _ClassVar[int] + BITMAP_FIELD_NUMBER: _ClassVar[int] + x: int + y: int + bitmap: Bitmap + def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ..., bitmap: _Optional[_Union[Bitmap, _Mapping]] = ...) -> None: ... + +class Response_GetColor(_message.Message): + __slots__ = ("color",) + COLOR_FIELD_NUMBER: _ClassVar[int] + color: Color + def __init__(self, color: _Optional[_Union[Color, _Mapping]] = ...) -> None: ... + +class Request_GetPixelColor(_message.Message): + __slots__ = ("x", "y") + X_FIELD_NUMBER: _ClassVar[int] + Y_FIELD_NUMBER: _ClassVar[int] + x: int + y: int + def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ...) -> None: ... + +class Response_GetPixelColor(_message.Message): + __slots__ = ("color",) + COLOR_FIELD_NUMBER: _ClassVar[int] + color: Color + def __init__(self, color: _Optional[_Union[Color, _Mapping]] = ...) -> None: ... + +class Request_SetDisplayLabel(_message.Message): + __slots__ = ("sessionInfo", "displayID", "label") + SESSIONINFO_FIELD_NUMBER: _ClassVar[int] + DISPLAYID_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + sessionInfo: SessionInfo + displayID: int + label: str + def __init__(self, sessionInfo: _Optional[_Union[SessionInfo, _Mapping]] = ..., displayID: _Optional[int] = ..., label: _Optional[str] = ...) -> None: ... diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py new file mode 100644 index 00000000..5e36a40c --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py @@ -0,0 +1,1313 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + +from . import Controller_V1_pb2 as Controller__V1__pb2 + +GRPC_GENERATED_VERSION = '1.71.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in Controller_V1_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + + +class ControllerAPIStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.StartSession = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/StartSession', + request_serializer=Controller__V1__pb2.Request_StartSession.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_StartSession.FromString, + _registered_method=True) + self.EndSession = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/EndSession', + request_serializer=Controller__V1__pb2.Request_EndSession.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.Send = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/Send', + request_serializer=Controller__V1__pb2.Request_Send.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Send.FromString, + _registered_method=True) + self.Poll = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/Poll', + request_serializer=Controller__V1__pb2.Request_Poll.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Poll.FromString, + _registered_method=True) + self.StartExecution = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/StartExecution', + request_serializer=Controller__V1__pb2.Request_StartExecution.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.StopExecution = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/StopExecution', + request_serializer=Controller__V1__pb2.Request_StopExecution.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.RunRecordedAction = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/RunRecordedAction', + request_serializer=Controller__V1__pb2.Request_RunRecordedAction.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_RunRecordedAction.FromString, + _registered_method=True) + self.ScheduleBatchedAction = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/ScheduleBatchedAction', + request_serializer=Controller__V1__pb2.Request_ScheduleBatchedAction.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_ScheduleBatchedAction.FromString, + _registered_method=True) + self.StartBatchRun = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/StartBatchRun', + request_serializer=Controller__V1__pb2.Request_StartBatchRun.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.StopBatchRun = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/StopBatchRun', + request_serializer=Controller__V1__pb2.Request_StopBatchRun.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.GetActionCount = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetActionCount', + request_serializer=Controller__V1__pb2.Request_GetActionCount.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetActionCount.FromString, + _registered_method=True) + self.GetAction = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetAction', + request_serializer=Controller__V1__pb2.Request_GetAction.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetAction.FromString, + _registered_method=True) + self.RemoveAction = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/RemoveAction', + request_serializer=Controller__V1__pb2.Request_RemoveAction.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.RemoveAllActions = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/RemoveAllActions', + request_serializer=Controller__V1__pb2.Request_RemoveAllActions.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.CaptureScreen = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/CaptureScreen', + request_serializer=Controller__V1__pb2.Request_CaptureScreen.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_CaptureScreen.FromString, + _registered_method=True) + self.SetTestConfiguration = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetTestConfiguration', + request_serializer=Controller__V1__pb2.Reuqest_SetTestConfiguration.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.SetMouseDelay = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetMouseDelay', + request_serializer=Controller__V1__pb2.Request_SetMouseDelay.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.SetKeyboardDelay = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetKeyboardDelay', + request_serializer=Controller__V1__pb2.Request_SetKeyboardDelay.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.GetDisplayInformation = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetDisplayInformation', + request_serializer=Controller__V1__pb2.Request_Void.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetDisplayInformation.FromString, + _registered_method=True) + self.GetMousePosition = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetMousePosition', + request_serializer=Controller__V1__pb2.Request_Void.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetMousePosition.FromString, + _registered_method=True) + self.GetProcessList = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetProcessList', + request_serializer=Controller__V1__pb2.Request_GetProcessList.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetProcessList.FromString, + _registered_method=True) + self.GetWindowList = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetWindowList', + request_serializer=Controller__V1__pb2.Request_GetWindowList.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetWindowList.FromString, + _registered_method=True) + self.GetAutomationTargetList = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetAutomationTargetList', + request_serializer=Controller__V1__pb2.Request_Void.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetAutomationTargetList.FromString, + _registered_method=True) + self.SetActiveDisplay = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetActiveDisplay', + request_serializer=Controller__V1__pb2.Request_SetActiveDisplay.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.SetActiveWindow = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetActiveWindow', + request_serializer=Controller__V1__pb2.Request_SetActiveWindow.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.SetActiveAutomationTarget = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetActiveAutomationTarget', + request_serializer=Controller__V1__pb2.Request_SetActiveAutomationTarget.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + self.GetColor = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetColor', + request_serializer=Controller__V1__pb2.Request_GetColor.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetColor.FromString, + _registered_method=True) + self.GetPixelColor = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/GetPixelColor', + request_serializer=Controller__V1__pb2.Request_GetPixelColor.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_GetPixelColor.FromString, + _registered_method=True) + self.SetDisplayLabel = channel.unary_unary( + '/Askui.API.TDKv1.ControllerAPI/SetDisplayLabel', + request_serializer=Controller__V1__pb2.Request_SetDisplayLabel.SerializeToString, + response_deserializer=Controller__V1__pb2.Response_Void.FromString, + _registered_method=True) + + +class ControllerAPIServicer(object): + """Missing associated documentation comment in .proto file.""" + + def StartSession(self, request, context): + """General + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def EndSession(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Send(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def Poll(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StartExecution(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StopExecution(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RunRecordedAction(self, request, context): + """Run action and record it + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ScheduleBatchedAction(self, request, context): + """Schedule an action + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StartBatchRun(self, request, context): + """Start and stop batched execution + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def StopBatchRun(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetActionCount(self, request, context): + """Recorded or batched actions access + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAction(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RemoveAction(self, request, context): + """Modify actions batch + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def RemoveAllActions(self, request, context): + """Clear all batched or recorded actions + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def CaptureScreen(self, request, context): + """Capturing + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetTestConfiguration(self, request, context): + """Configuration + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetMouseDelay(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetKeyboardDelay(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetDisplayInformation(self, request, context): + """Device Information + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetMousePosition(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetProcessList(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetWindowList(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetAutomationTargetList(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetActiveDisplay(self, request, context): + """Device Configuration + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetActiveWindow(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetActiveAutomationTarget(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetColor(self, request, context): + """Deprecated Utilities + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetPixelColor(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def SetDisplayLabel(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_ControllerAPIServicer_to_server(servicer, server): + rpc_method_handlers = { + 'StartSession': grpc.unary_unary_rpc_method_handler( + servicer.StartSession, + request_deserializer=Controller__V1__pb2.Request_StartSession.FromString, + response_serializer=Controller__V1__pb2.Response_StartSession.SerializeToString, + ), + 'EndSession': grpc.unary_unary_rpc_method_handler( + servicer.EndSession, + request_deserializer=Controller__V1__pb2.Request_EndSession.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'Send': grpc.unary_unary_rpc_method_handler( + servicer.Send, + request_deserializer=Controller__V1__pb2.Request_Send.FromString, + response_serializer=Controller__V1__pb2.Response_Send.SerializeToString, + ), + 'Poll': grpc.unary_unary_rpc_method_handler( + servicer.Poll, + request_deserializer=Controller__V1__pb2.Request_Poll.FromString, + response_serializer=Controller__V1__pb2.Response_Poll.SerializeToString, + ), + 'StartExecution': grpc.unary_unary_rpc_method_handler( + servicer.StartExecution, + request_deserializer=Controller__V1__pb2.Request_StartExecution.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'StopExecution': grpc.unary_unary_rpc_method_handler( + servicer.StopExecution, + request_deserializer=Controller__V1__pb2.Request_StopExecution.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'RunRecordedAction': grpc.unary_unary_rpc_method_handler( + servicer.RunRecordedAction, + request_deserializer=Controller__V1__pb2.Request_RunRecordedAction.FromString, + response_serializer=Controller__V1__pb2.Response_RunRecordedAction.SerializeToString, + ), + 'ScheduleBatchedAction': grpc.unary_unary_rpc_method_handler( + servicer.ScheduleBatchedAction, + request_deserializer=Controller__V1__pb2.Request_ScheduleBatchedAction.FromString, + response_serializer=Controller__V1__pb2.Response_ScheduleBatchedAction.SerializeToString, + ), + 'StartBatchRun': grpc.unary_unary_rpc_method_handler( + servicer.StartBatchRun, + request_deserializer=Controller__V1__pb2.Request_StartBatchRun.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'StopBatchRun': grpc.unary_unary_rpc_method_handler( + servicer.StopBatchRun, + request_deserializer=Controller__V1__pb2.Request_StopBatchRun.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'GetActionCount': grpc.unary_unary_rpc_method_handler( + servicer.GetActionCount, + request_deserializer=Controller__V1__pb2.Request_GetActionCount.FromString, + response_serializer=Controller__V1__pb2.Response_GetActionCount.SerializeToString, + ), + 'GetAction': grpc.unary_unary_rpc_method_handler( + servicer.GetAction, + request_deserializer=Controller__V1__pb2.Request_GetAction.FromString, + response_serializer=Controller__V1__pb2.Response_GetAction.SerializeToString, + ), + 'RemoveAction': grpc.unary_unary_rpc_method_handler( + servicer.RemoveAction, + request_deserializer=Controller__V1__pb2.Request_RemoveAction.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'RemoveAllActions': grpc.unary_unary_rpc_method_handler( + servicer.RemoveAllActions, + request_deserializer=Controller__V1__pb2.Request_RemoveAllActions.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'CaptureScreen': grpc.unary_unary_rpc_method_handler( + servicer.CaptureScreen, + request_deserializer=Controller__V1__pb2.Request_CaptureScreen.FromString, + response_serializer=Controller__V1__pb2.Response_CaptureScreen.SerializeToString, + ), + 'SetTestConfiguration': grpc.unary_unary_rpc_method_handler( + servicer.SetTestConfiguration, + request_deserializer=Controller__V1__pb2.Reuqest_SetTestConfiguration.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'SetMouseDelay': grpc.unary_unary_rpc_method_handler( + servicer.SetMouseDelay, + request_deserializer=Controller__V1__pb2.Request_SetMouseDelay.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'SetKeyboardDelay': grpc.unary_unary_rpc_method_handler( + servicer.SetKeyboardDelay, + request_deserializer=Controller__V1__pb2.Request_SetKeyboardDelay.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'GetDisplayInformation': grpc.unary_unary_rpc_method_handler( + servicer.GetDisplayInformation, + request_deserializer=Controller__V1__pb2.Request_Void.FromString, + response_serializer=Controller__V1__pb2.Response_GetDisplayInformation.SerializeToString, + ), + 'GetMousePosition': grpc.unary_unary_rpc_method_handler( + servicer.GetMousePosition, + request_deserializer=Controller__V1__pb2.Request_Void.FromString, + response_serializer=Controller__V1__pb2.Response_GetMousePosition.SerializeToString, + ), + 'GetProcessList': grpc.unary_unary_rpc_method_handler( + servicer.GetProcessList, + request_deserializer=Controller__V1__pb2.Request_GetProcessList.FromString, + response_serializer=Controller__V1__pb2.Response_GetProcessList.SerializeToString, + ), + 'GetWindowList': grpc.unary_unary_rpc_method_handler( + servicer.GetWindowList, + request_deserializer=Controller__V1__pb2.Request_GetWindowList.FromString, + response_serializer=Controller__V1__pb2.Response_GetWindowList.SerializeToString, + ), + 'GetAutomationTargetList': grpc.unary_unary_rpc_method_handler( + servicer.GetAutomationTargetList, + request_deserializer=Controller__V1__pb2.Request_Void.FromString, + response_serializer=Controller__V1__pb2.Response_GetAutomationTargetList.SerializeToString, + ), + 'SetActiveDisplay': grpc.unary_unary_rpc_method_handler( + servicer.SetActiveDisplay, + request_deserializer=Controller__V1__pb2.Request_SetActiveDisplay.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'SetActiveWindow': grpc.unary_unary_rpc_method_handler( + servicer.SetActiveWindow, + request_deserializer=Controller__V1__pb2.Request_SetActiveWindow.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'SetActiveAutomationTarget': grpc.unary_unary_rpc_method_handler( + servicer.SetActiveAutomationTarget, + request_deserializer=Controller__V1__pb2.Request_SetActiveAutomationTarget.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + 'GetColor': grpc.unary_unary_rpc_method_handler( + servicer.GetColor, + request_deserializer=Controller__V1__pb2.Request_GetColor.FromString, + response_serializer=Controller__V1__pb2.Response_GetColor.SerializeToString, + ), + 'GetPixelColor': grpc.unary_unary_rpc_method_handler( + servicer.GetPixelColor, + request_deserializer=Controller__V1__pb2.Request_GetPixelColor.FromString, + response_serializer=Controller__V1__pb2.Response_GetPixelColor.SerializeToString, + ), + 'SetDisplayLabel': grpc.unary_unary_rpc_method_handler( + servicer.SetDisplayLabel, + request_deserializer=Controller__V1__pb2.Request_SetDisplayLabel.FromString, + response_serializer=Controller__V1__pb2.Response_Void.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'Askui.API.TDKv1.ControllerAPI', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('Askui.API.TDKv1.ControllerAPI', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class ControllerAPI(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def StartSession(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/StartSession', + Controller__V1__pb2.Request_StartSession.SerializeToString, + Controller__V1__pb2.Response_StartSession.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def EndSession(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/EndSession', + Controller__V1__pb2.Request_EndSession.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Send(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/Send', + Controller__V1__pb2.Request_Send.SerializeToString, + Controller__V1__pb2.Response_Send.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def Poll(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/Poll', + Controller__V1__pb2.Request_Poll.SerializeToString, + Controller__V1__pb2.Response_Poll.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StartExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/StartExecution', + Controller__V1__pb2.Request_StartExecution.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StopExecution(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/StopExecution', + Controller__V1__pb2.Request_StopExecution.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def RunRecordedAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/RunRecordedAction', + Controller__V1__pb2.Request_RunRecordedAction.SerializeToString, + Controller__V1__pb2.Response_RunRecordedAction.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ScheduleBatchedAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/ScheduleBatchedAction', + Controller__V1__pb2.Request_ScheduleBatchedAction.SerializeToString, + Controller__V1__pb2.Response_ScheduleBatchedAction.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StartBatchRun(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/StartBatchRun', + Controller__V1__pb2.Request_StartBatchRun.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def StopBatchRun(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/StopBatchRun', + Controller__V1__pb2.Request_StopBatchRun.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetActionCount(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetActionCount', + Controller__V1__pb2.Request_GetActionCount.SerializeToString, + Controller__V1__pb2.Response_GetActionCount.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetAction', + Controller__V1__pb2.Request_GetAction.SerializeToString, + Controller__V1__pb2.Response_GetAction.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def RemoveAction(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/RemoveAction', + Controller__V1__pb2.Request_RemoveAction.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def RemoveAllActions(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/RemoveAllActions', + Controller__V1__pb2.Request_RemoveAllActions.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def CaptureScreen(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/CaptureScreen', + Controller__V1__pb2.Request_CaptureScreen.SerializeToString, + Controller__V1__pb2.Response_CaptureScreen.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetTestConfiguration(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetTestConfiguration', + Controller__V1__pb2.Reuqest_SetTestConfiguration.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetMouseDelay(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetMouseDelay', + Controller__V1__pb2.Request_SetMouseDelay.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetKeyboardDelay(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetKeyboardDelay', + Controller__V1__pb2.Request_SetKeyboardDelay.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetDisplayInformation(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetDisplayInformation', + Controller__V1__pb2.Request_Void.SerializeToString, + Controller__V1__pb2.Response_GetDisplayInformation.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetMousePosition(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetMousePosition', + Controller__V1__pb2.Request_Void.SerializeToString, + Controller__V1__pb2.Response_GetMousePosition.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetProcessList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetProcessList', + Controller__V1__pb2.Request_GetProcessList.SerializeToString, + Controller__V1__pb2.Response_GetProcessList.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetWindowList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetWindowList', + Controller__V1__pb2.Request_GetWindowList.SerializeToString, + Controller__V1__pb2.Response_GetWindowList.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetAutomationTargetList(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetAutomationTargetList', + Controller__V1__pb2.Request_Void.SerializeToString, + Controller__V1__pb2.Response_GetAutomationTargetList.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetActiveDisplay(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetActiveDisplay', + Controller__V1__pb2.Request_SetActiveDisplay.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetActiveWindow(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetActiveWindow', + Controller__V1__pb2.Request_SetActiveWindow.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetActiveAutomationTarget(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetActiveAutomationTarget', + Controller__V1__pb2.Request_SetActiveAutomationTarget.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetColor(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetColor', + Controller__V1__pb2.Request_GetColor.SerializeToString, + Controller__V1__pb2.Response_GetColor.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetPixelColor(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/GetPixelColor', + Controller__V1__pb2.Request_GetPixelColor.SerializeToString, + Controller__V1__pb2.Response_GetPixelColor.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def SetDisplayLabel(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/Askui.API.TDKv1.ControllerAPI/SetDisplayLabel', + Controller__V1__pb2.Request_SetDisplayLabel.SerializeToString, + Controller__V1__pb2.Response_Void.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/readme.md b/src/askui/tools/askui/askui_ui_controller_grpc/readme.md new file mode 100644 index 00000000..294c4aa9 --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/readme.md @@ -0,0 +1,19 @@ +## 1) Generate code +```bash +python -m grpc_tools.protoc \ +-I src/askui/tools/askui/askui_ui_controller_grpc/proto \ +--python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ +--pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ +--grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ +src/askui/tools/askui/askui_ui_controller_grpc/proto/* +``` + + +## 2) Fix import +Because of [this issue](https://github.com/protocolbuffers/protobuf/issues/1491) following change is required in `Controller_V1_pb2_grpc.py` after generating the code. + +```diff +- import Controller_V1_pb2 as Controller__V1__pb2 ++ from . import Controller_V1_pb2 as Controller__V1__pb2 +``` + From 95e60f69a6af80ca38192d9524dbad61e095ccef Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:00:35 +0200 Subject: [PATCH 04/23] feat: feat update `askui_controller` --- src/askui/tools/askui/askui_controller.py | 485 ++++++++++++++++++++++ 1 file changed, 485 insertions(+) diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index a723ef20..824b55e8 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -404,6 +404,7 @@ def screenshot(self, report: bool = True) -> Image.Image: Returns: Image.Image: A PIL Image object containing the screenshot. + """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -724,3 +725,487 @@ def run_command(self, command: str, timeout_ms: int = 30000) -> None: ) ), ) + + @telemetry.record_call() + def get_display_information( + self, + ) -> controller_v1_pbs.Response_GetDisplayInformation: + """ + Get information about all available displays and virtual screen. + + Returns: + controller_v1_pbs.Response_GetDisplayInformation: + - displays: List of DisplayInformation objects + - virtualScreenRectangle: Overall virtual screen bounds + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "get_display_information()") + + response: controller_v1_pbs.Response_GetDisplayInformation = ( + self._stub.GetDisplayInformation(controller_v1_pbs.Request_Void()) + ) + + return response + + @telemetry.record_call() + def get_mouse_position(self) -> controller_v1_pbs.Response_GetMousePosition: + """ + Get the current mouse cursor position. + + Returns: + controller_v1_pbs.Response_GetMousePosition: Mouse position containing: + - x: Horizontal coordinate + - y: Vertical coordinate + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "get_mouse_position()") + + response: controller_v1_pbs.Response_GetMousePosition = ( + self._stub.GetMousePosition(controller_v1_pbs.Request_Void()) + ) + + return response + + @telemetry.record_call() + def get_process_list( + self, get_extended_info: bool = False + ) -> controller_v1_pbs.Response_GetProcessList: + """ + Get a list of running processes. + + Args: + get_extended_info (bool, optional): Whether to include + extended process information. + Defaults to False. + + Returns: + controller_v1_pbs.Response_GetProcessList: Process list response containing: + - processes: List of ProcessInfo objects + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"get_process_list({get_extended_info})") + + response: controller_v1_pbs.Response_GetProcessList = self._stub.GetProcessList( + controller_v1_pbs.Request_GetProcessList(getExtendedInfo=get_extended_info) + ) + + return response + + @telemetry.record_call() + def get_window_list( + self, process_id: int + ) -> controller_v1_pbs.Response_GetWindowList: + """ + Get a list of windows for a specific process. + + Args: + process_id (int): The ID of the process to get windows for. + + Returns: + controller_v1_pbs.Response_GetWindowList: Window list response containing: + - windows: List of WindowInfo objects with ID and name + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"get_window_list({process_id})") + + response: controller_v1_pbs.Response_GetWindowList = self._stub.GetWindowList( + controller_v1_pbs.Request_GetWindowList(processID=process_id) + ) + + return response + + @telemetry.record_call() + def get_automation_target_list( + self, + ) -> controller_v1_pbs.Response_GetAutomationTargetList: + """ + Get a list of available automation targets. + + Returns: + controller_v1_pbs.Response_GetAutomationTargetList: + Automation target list response: + - targets: List of AutomationTarget objects + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "get_automation_target_list()") + + response: controller_v1_pbs.Response_GetAutomationTargetList = ( + self._stub.GetAutomationTargetList(controller_v1_pbs.Request_Void()) + ) + + return response + + @telemetry.record_call() + def set_test_configuration( + self, + default_capture_parameters: controller_v1_pbs.CaptureParameters | None = None, + mouse_delay_ms: int = 0, + keyboard_delay_ms: int = 0, + ) -> None: + """ + Configure test settings including default capture parameters and delays. + + Args: + default_capture_parameters + (controller_v1_pbs.CaptureParameters | None, optional): + Default capture parameters with displayID and captureArea. + Defaults to None. + mouse_delay_ms (int, optional): Mouse delay in milliseconds. Defaults to 0. + keyboard_delay_ms (int, optional): Keyboard delay in milliseconds. + Defaults to 0. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message( + "AgentOS", + f"set_test_configuration(" + f"{default_capture_parameters}, " + f"{mouse_delay_ms}, " + f"{keyboard_delay_ms})", + ) + + # Use provided capture parameters or create empty one + capture_params = ( + default_capture_parameters or controller_v1_pbs.CaptureParameters() + ) + + self._stub.SetTestConfiguration( + controller_v1_pbs.Reuqest_SetTestConfiguration( + sessionInfo=self._session_info, + defaultCaptureParameters=capture_params, + mouseDelayInMilliseconds=mouse_delay_ms, + keyboardDelayInMilliseconds=keyboard_delay_ms, + ) + ) + + @telemetry.record_call() + def set_mouse_delay(self, delay_ms: int) -> None: + """ + Configure mouse action delay. + + Args: + delay_ms (int): The delay in milliseconds to set for mouse actions. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"set_mouse_delay({delay_ms})") + + self._stub.SetMouseDelay( + controller_v1_pbs.Request_SetMouseDelay( + sessionInfo=self._session_info, delayInMilliseconds=delay_ms + ) + ) + + @telemetry.record_call() + def set_keyboard_delay(self, delay_ms: int) -> None: + """ + Configure keyboard action delay. + + Args: + delay_ms (int): The delay in milliseconds to set for keyboard actions. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"set_keyboard_delay({delay_ms})") + + self._stub.SetKeyboardDelay( + controller_v1_pbs.Request_SetKeyboardDelay( + sessionInfo=self._session_info, delayInMilliseconds=delay_ms + ) + ) + + @telemetry.record_call() + def set_active_window(self, process_id: int, window_id: int) -> None: + """ + Set the active window for automation. + + Args: + process_id (int): The ID of the process that owns the window. + window_id (int): The ID of the window to set as active. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message( + "AgentOS", f"set_active_window({process_id}, {window_id})" + ) + + self._stub.SetActiveWindow( + controller_v1_pbs.Request_SetActiveWindow( + processID=process_id, windowID=window_id + ) + ) + + @telemetry.record_call() + def set_active_automation_target(self, target_id: int) -> None: + """ + Set the active automation target. + + Args: + target_id (int): The ID of the automation target to set as active. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message( + "AgentOS", f"set_active_automation_target({target_id})" + ) + + self._stub.SetActiveAutomationTarget( + controller_v1_pbs.Request_SetActiveAutomationTarget(ID=target_id) + ) + + @telemetry.record_call() + def schedule_batched_action( + self, + action_class_id: controller_v1_pbs.ActionClassID, + action_parameters: controller_v1_pbs.ActionParameters, + ) -> controller_v1_pbs.Response_ScheduleBatchedAction: + """ + Schedule an action for batch execution. + + Args: + action_class_id (controller_v1_pbs.ActionClassID): The class ID + of the action to schedule. + action_parameters (controller_v1_pbs.ActionParameters): + Parameters for the action. + + Returns: + controller_v1_pbs.Response_ScheduleBatchedAction: Response containing + the scheduled action ID. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message( + "AgentOS", + f"schedule_batched_action({action_class_id}, {action_parameters})", + ) + + response: controller_v1_pbs.Response_ScheduleBatchedAction = ( + self._stub.ScheduleBatchedAction( + controller_v1_pbs.Request_ScheduleBatchedAction( + sessionInfo=self._session_info, + actionClassID=action_class_id, + actionParameters=action_parameters, + ) + ) + ) + + return response + + @telemetry.record_call() + def start_batch_run(self) -> None: + """ + Start executing batched actions. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "start_batch_run()") + + self._stub.StartBatchRun( + controller_v1_pbs.Request_StartBatchRun(sessionInfo=self._session_info) + ) + + @telemetry.record_call() + def stop_batch_run(self) -> None: + """ + Stop executing batched actions. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "stop_batch_run()") + + self._stub.StopBatchRun( + controller_v1_pbs.Request_StopBatchRun(sessionInfo=self._session_info) + ) + + @telemetry.record_call() + def get_action_count(self) -> controller_v1_pbs.Response_GetActionCount: + """ + Get the count of recorded or batched actions. + + Returns: + controller_v1_pbs.Response_GetActionCount: Response + containing the action count. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "get_action_count()") + + response: controller_v1_pbs.Response_GetActionCount = self._stub.GetActionCount( + controller_v1_pbs.Request_GetActionCount(sessionInfo=self._session_info) + ) + + return response + + @telemetry.record_call() + def get_action(self, action_index: int) -> controller_v1_pbs.Response_GetAction: + """ + Get a specific action by its index. + + Args: + action_index (int): The index of the action to retrieve. + + Returns: + controller_v1_pbs.Response_GetAction: Action information containing: + - actionID: The action ID + - actionClassID: The action class ID + - actionParameters: The action parameters + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"get_action({action_index})") + + response: controller_v1_pbs.Response_GetAction = self._stub.GetAction( + controller_v1_pbs.Request_GetAction( + sessionInfo=self._session_info, actionIndex=action_index + ) + ) + + return response + + @telemetry.record_call() + def remove_action(self, action_id: int) -> None: + """ + Remove a specific action by its ID. + + Args: + action_id (int): The ID of the action to remove. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f"remove_action({action_id})") + + self._stub.RemoveAction( + controller_v1_pbs.Request_RemoveAction( + sessionInfo=self._session_info, actionID=action_id + ) + ) + + @telemetry.record_call() + def remove_all_actions(self) -> None: + """ + Clear all recorded or batched actions. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", "remove_all_actions()") + + self._stub.RemoveAllActions( + controller_v1_pbs.Request_RemoveAllActions(sessionInfo=self._session_info) + ) + + @telemetry.record_call(exclude={"message"}) + def send_message(self, message: str) -> controller_v1_pbs.Response_Send: + """ + Send a general message to the controller. + + Args: + message (str): The message to send to the controller. + + Returns: + controller_v1_pbs.Response_Send: Response containing + the message from the controller. + + Raises: + AssertionError: If the gRPC stub is not initialized. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + + self._reporter.add_message("AgentOS", f'send_message("{message}")') + + response: controller_v1_pbs.Response_Send = self._stub.Send( + controller_v1_pbs.Request_Send(message=message) + ) + + return response From 66e056856ec99fcb28867dc01c0c89d0dad16a3d Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:01:00 +0200 Subject: [PATCH 05/23] feat: introduce basic tests --- .../e2e/tools/askui/test_askui_controller.py | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) diff --git a/tests/e2e/tools/askui/test_askui_controller.py b/tests/e2e/tools/askui/test_askui_controller.py index 76a51105..fb940a18 100644 --- a/tests/e2e/tools/askui/test_askui_controller.py +++ b/tests/e2e/tools/askui/test_askui_controller.py @@ -1,6 +1,8 @@ from pathlib import Path +from typing import Literal import pytest +from PIL import Image from askui.reporting import CompositeReporter from askui.tools.askui.askui_controller import ( @@ -39,3 +41,164 @@ def test_actions(controller_client: AskUiControllerClient) -> None: controller_client.screenshot() controller_client.mouse_move(0, 0) controller_client.click() + + +@pytest.mark.parametrize("button", ["left", "right", "middle"]) +def test_click_all_buttons( + controller_client: AskUiControllerClient, button: Literal["left", "middle", "right"] +) -> None: + """Test clicking each mouse button""" + with controller_client: + controller_client.click(button=button) + + +def test_mouse_multiple_clicks(controller_client: AskUiControllerClient) -> None: + """Test click count parameter""" + with controller_client: + controller_client.click(count=3) + + +@pytest.mark.parametrize("button", ["left", "right", "middle"]) +def test_mouse_press_hold_release( + controller_client: AskUiControllerClient, button: Literal["left", "middle", "right"] +) -> None: + """Test mouse_down() and mouse_up() operations""" + with controller_client: + controller_client.mouse_down(button=button) + controller_client.mouse_up(button=button) + + +@pytest.mark.parametrize("x,y", [(0, 0), (100, 100), (500, 300)]) +def test_mouse_move_coordinates( + controller_client: AskUiControllerClient, x: int, y: int +) -> None: + """Test mouse movement to various coordinates""" + with controller_client: + controller_client.mouse_move(x, y) + + +def test_mouse_scroll_directions(controller_client: AskUiControllerClient) -> None: + """Test horizontal and vertical scrolling""" + with controller_client: + controller_client.mouse_scroll(0, 5) # Vertical scroll + controller_client.mouse_scroll(5, 0) # Horizontal scroll + controller_client.mouse_scroll(3, -2) # Combined scroll + + +def test_type_text_basic(controller_client: AskUiControllerClient) -> None: + """Test typing simple text""" + with controller_client: + controller_client.type("Hello World") + + +def test_type_text_with_speed(controller_client: AskUiControllerClient) -> None: + """Test typing with custom speed""" + with controller_client: + controller_client.type("Fast typing", typing_speed=100) + controller_client.type("Slow typing", typing_speed=10) + + +def test_keyboard_tap_with_modifiers(controller_client: AskUiControllerClient) -> None: + """Test key combination like Ctrl+C""" + with controller_client: + controller_client.keyboard_tap("c", modifier_keys=["command"]) + controller_client.keyboard_tap("v", modifier_keys=["command"]) + + +def test_keyboard_tap_multiple(controller_client: AskUiControllerClient) -> None: + """Test multiple key taps""" + with controller_client: + controller_client.keyboard_tap("escape", count=3) + + +def test_keyboard_press_hold_release(controller_client: AskUiControllerClient) -> None: + """Test keyboard_pressed() and keyboard_release()""" + with controller_client: + controller_client.keyboard_pressed("escape") + controller_client.keyboard_release("escape") + + +def test_screenshot_basic(controller_client: AskUiControllerClient) -> None: + """Test taking screenshots with different report settings""" + with controller_client: + image_with_report = controller_client.screenshot() + assert isinstance(image_with_report, Image.Image) + + +def test_get_display_information(controller_client: AskUiControllerClient) -> None: + """Test retrieving display information""" + with controller_client: + display_info = controller_client.get_display_information() + assert display_info is not None + + +def test_get_mouse_position(controller_client: AskUiControllerClient) -> None: + """Test getting current mouse coordinates""" + with controller_client: + position = controller_client.get_mouse_position() + assert position is not None + assert hasattr(position, "x") + assert hasattr(position, "y") + + +def test_get_process_list(controller_client: AskUiControllerClient) -> None: + """Test retrieving running processes""" + with controller_client: + processes = controller_client.get_process_list() + assert processes is not None + + processes_extended = controller_client.get_process_list(get_extended_info=True) + assert processes_extended is not None + + +def test_get_automation_target_list(controller_client: AskUiControllerClient) -> None: + """Test retrieving automation targets""" + with controller_client: + targets = controller_client.get_automation_target_list() + assert targets is not None + + +def test_set_display(controller_client: AskUiControllerClient) -> None: + """Test changing active display""" + with controller_client: + controller_client.set_display(1) + + +def test_set_mouse_delay(controller_client: AskUiControllerClient) -> None: + """Test configuring mouse action delay""" + with controller_client: + controller_client.set_mouse_delay(100) + + +def test_set_keyboard_delay(controller_client: AskUiControllerClient) -> None: + """Test configuring keyboard action delay""" + with controller_client: + controller_client.set_keyboard_delay(50) + + +def test_run_command(controller_client: AskUiControllerClient) -> None: + """Test executing shell commands""" + with controller_client: + controller_client.run_command("echo test") + + +def test_get_action_count(controller_client: AskUiControllerClient) -> None: + """Test getting count of batched actions""" + with controller_client: + count = controller_client.get_action_count() + assert count is not None + + +def test_operations_before_connect() -> None: + """Test calling methods before connect() raises appropriate errors""" + client = AskUiControllerClient(reporter=CompositeReporter(), display=1) + + with pytest.raises(AssertionError, match="Stub is not initialized"): + client.screenshot() + + +def test_invalid_coordinates(controller_client: AskUiControllerClient) -> None: + """Test mouse operations with potentially problematic coordinates""" + with controller_client: + controller_client.mouse_move(-1, -1) + controller_client.mouse_move(9999, 9999) From 534499b5642c9f1f11fda38138ef557417d6ea4a Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:09:20 +0200 Subject: [PATCH 06/23] chore: remove readme --- .../askui/askui_ui_controller_grpc/readme.md | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/readme.md diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/readme.md b/src/askui/tools/askui/askui_ui_controller_grpc/readme.md deleted file mode 100644 index 294c4aa9..00000000 --- a/src/askui/tools/askui/askui_ui_controller_grpc/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -## 1) Generate code -```bash -python -m grpc_tools.protoc \ --I src/askui/tools/askui/askui_ui_controller_grpc/proto \ ---python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ ---pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ ---grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated \ -src/askui/tools/askui/askui_ui_controller_grpc/proto/* -``` - - -## 2) Fix import -Because of [this issue](https://github.com/protocolbuffers/protobuf/issues/1491) following change is required in `Controller_V1_pb2_grpc.py` after generating the code. - -```diff -- import Controller_V1_pb2 as Controller__V1__pb2 -+ from . import Controller_V1_pb2 as Controller__V1__pb2 -``` - From 846d3a247ffb28b99c8551e0abcb3652a9f57a3e Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:09:55 +0200 Subject: [PATCH 07/23] chore: merge grpc:gen and grpc:fix-import --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 821034db..5609a16b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,9 +62,7 @@ typecheck = "mypy" "format", "lint:fix", ] } -======= -"grpc:gen" = "python -m grpc_tools.protoc -I src/askui/tools/askui/askui_ui_controller_grpc/proto --python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto" -"grpc:fix-import" = "bash -c \"sed -i.bak 's/^import Controller_V1_pb2 as Controller__V1__pb2$/from . import Controller_V1_pb2 as Controller__V1__pb2/' src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py && rm src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py.bak\"" +"grpc:gen" = "bash -c \"python -m grpc_tools.protoc -I src/askui/tools/askui/askui_ui_controller_grpc/proto --python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto && sed -i.bak 's/^import Controller_V1_pb2 as Controller__V1__pb2$/from . import Controller_V1_pb2 as Controller__V1__pb2/' src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py && rm src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py.bak\"" [dependency-groups] test = [ From d7c91782b30fa0e2f545020f61e7084ca07d014a Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:26:04 +0200 Subject: [PATCH 08/23] chore: ignore formatting for generated code --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 5609a16b..5c4cdeac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -115,6 +115,7 @@ exclude = [ "dist", "node_modules", "venv", + "generated" ] # Same as Black. From c5aafe2c10007b609bdbc9f64eac46b95984ab1b Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:38:15 +0200 Subject: [PATCH 09/23] chore: extract grpc generation to dedicated script --- pyproject.toml | 2 +- scripts/grpc-gen.sh | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 scripts/grpc-gen.sh diff --git a/pyproject.toml b/pyproject.toml index 5c4cdeac..0dfa75a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,7 @@ typecheck = "mypy" "format", "lint:fix", ] } -"grpc:gen" = "bash -c \"python -m grpc_tools.protoc -I src/askui/tools/askui/askui_ui_controller_grpc/proto --python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --pyi_out=src/askui/tools/askui/askui_ui_controller_grpc/generated --grpc_python_out=src/askui/tools/askui/askui_ui_controller_grpc/generated src/askui/tools/askui/askui_ui_controller_grpc/proto/Controller_V1.proto && sed -i.bak 's/^import Controller_V1_pb2 as Controller__V1__pb2$/from . import Controller_V1_pb2 as Controller__V1__pb2/' src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py && rm src/askui/tools/askui/askui_ui_controller_grpc/generated/Controller_V1_pb2_grpc.py.bak\"" +"grpc:gen" = "bash scripts/grpc-gen.sh" [dependency-groups] test = [ diff --git a/scripts/grpc-gen.sh b/scripts/grpc-gen.sh new file mode 100644 index 00000000..7d5d519a --- /dev/null +++ b/scripts/grpc-gen.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Define paths +PROTO_DIR="src/askui/tools/askui/askui_ui_controller_grpc/proto" +OUTPUT_DIR="src/askui/tools/askui/askui_ui_controller_grpc/generated" +PROTO_FILE="Controller_V1.proto" +GRPC_FILE="Controller_V1_pb2_grpc.py" + +# Generate Python gRPC code from proto file +python -m grpc_tools.protoc \ + -I "$PROTO_DIR" \ + --python_out="$OUTPUT_DIR" \ + --pyi_out="$OUTPUT_DIR" \ + --grpc_python_out="$OUTPUT_DIR" \ + "$PROTO_DIR/$PROTO_FILE" + +# Fix import in generated gRPC file to use relative import +# https://github.com/protocolbuffers/protobuf/issues/1491 +sed -i.bak \ + 's/^import Controller_V1_pb2 as Controller__V1__pb2$/from . import Controller_V1_pb2 as Controller__V1__pb2/' \ + "$OUTPUT_DIR/$GRPC_FILE" + +# Remove backup file +rm "$OUTPUT_DIR/$GRPC_FILE.bak" From 8f1af9170c267c62c94dfa64b423952e0bd456d0 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:58:28 +0200 Subject: [PATCH 10/23] chore: specify generated path to exclude --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0dfa75a3..9d61df65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -115,7 +115,7 @@ exclude = [ "dist", "node_modules", "venv", - "generated" + "src/askui/tools/askui/askui_ui_controller_grpc/generated" ] # Same as Black. From 5a70ced01dc420d3229e9679bd77d211ec0ac60c Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 16:15:11 +0200 Subject: [PATCH 11/23] format: use backtick for default parameters in docstring --- src/askui/tools/askui/askui_controller.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index 824b55e8..7021047e 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -788,7 +788,7 @@ def get_process_list( Args: get_extended_info (bool, optional): Whether to include extended process information. - Defaults to False. + Defaults to `False`. Returns: controller_v1_pbs.Response_GetProcessList: Process list response containing: @@ -879,10 +879,11 @@ def set_test_configuration( default_capture_parameters (controller_v1_pbs.CaptureParameters | None, optional): Default capture parameters with displayID and captureArea. - Defaults to None. - mouse_delay_ms (int, optional): Mouse delay in milliseconds. Defaults to 0. + Defaults to `None`. + mouse_delay_ms (int, optional): Mouse delay in milliseconds. + Defaults to `0`. keyboard_delay_ms (int, optional): Keyboard delay in milliseconds. - Defaults to 0. + Defaults to `0`. Raises: AssertionError: If the gRPC stub is not initialized. From edc82d5ac19609cfbc9af3e900706304f05cb431 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:05:34 +0200 Subject: [PATCH 12/23] feat: introduce controller json schema and codegen --- pdm.lock | 1714 +++++++++-------- pyproject.toml | 2 + .../generated/AgentOS_Send_Request_2501.py | 169 ++ .../generated/AgentOS_Send_Response_2501.py | 108 ++ .../generated/__init__.py | 3 + .../AgentOS-Send-Request-2501.json | 354 ++++ .../AgentOS-Send-Response-2501.json | 149 ++ 7 files changed, 1654 insertions(+), 845 deletions(-) create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Request_2501.py create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Response_2501.py create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/generated/__init__.py create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Request-2501.json create mode 100644 src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Response-2501.json diff --git a/pdm.lock b/pdm.lock index b9890ea2..9521b8a2 100644 --- a/pdm.lock +++ b/pdm.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "all", "android", "chat", "pynput", "test", "web"] +groups = ["default", "test"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:ef6394264b2ff9cb7a834ac372df248bf78b24f6845fd1e47b2e7c160823ec8c" +content_hash = "sha256:3f1210874dcb559b27dbb933798fe3fad3a956fde20d6ad049af00dbfb182e4b" [[metadata.targets]] requires_python = ">=3.10" @@ -15,7 +15,7 @@ name = "annotated-types" version = "0.7.0" requires_python = ">=3.8" summary = "Reusable constraint types to use with typing.Annotated" -groups = ["default", "all", "chat"] +groups = ["default"] dependencies = [ "typing-extensions>=4.0.0; python_version < \"3.9\"", ] @@ -26,7 +26,7 @@ files = [ [[package]] name = "anthropic" -version = "0.54.0" +version = "0.58.2" requires_python = ">=3.8" summary = "The official Python library for the anthropic API" groups = ["default"] @@ -40,8 +40,8 @@ dependencies = [ "typing-extensions<5,>=4.10", ] files = [ - {file = "anthropic-0.54.0-py3-none-any.whl", hash = "sha256:c1062a0a905daeec17ca9c06c401e4b3f24cb0495841d29d752568a1d4018d56"}, - {file = "anthropic-0.54.0.tar.gz", hash = "sha256:5e6f997d97ce8e70eac603c3ec2e7f23addeff953fbbb76b19430562bb6ba815"}, + {file = "anthropic-0.58.2-py3-none-any.whl", hash = "sha256:3742181c634c725f337b71096839b6404145e33a8e190c75387c4028b825864d"}, + {file = "anthropic-0.58.2.tar.gz", hash = "sha256:86396cc45530a83acea25ae6bca9f86656af81e3d598b4d22a1300e0e4cf8df8"}, ] [[package]] @@ -49,7 +49,7 @@ name = "anyio" version = "4.9.0" requires_python = ">=3.9" summary = "High level compatibility layer for multiple asynchronous event loop implementations" -groups = ["default", "all", "chat"] +groups = ["default"] dependencies = [ "exceptiongroup>=1.0.2; python_version < \"3.11\"", "idna>=2.8", @@ -61,6 +61,17 @@ files = [ {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] +[[package]] +name = "argcomplete" +version = "3.6.2" +requires_python = ">=3.8" +summary = "Bash tab completion for argparse" +groups = ["default"] +files = [ + {file = "argcomplete-3.6.2-py3-none-any.whl", hash = "sha256:65b3133a29ad53fb42c48cf5114752c7ab66c1c38544fdf6460f450c09b42591"}, + {file = "argcomplete-3.6.2.tar.gz", hash = "sha256:d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf"}, +] + [[package]] name = "backoff" version = "2.2.1" @@ -72,93 +83,128 @@ files = [ {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, ] +[[package]] +name = "black" +version = "25.1.0" +requires_python = ">=3.9" +summary = "The uncompromising code formatter." +groups = ["default"] +dependencies = [ + "click>=8.0.0", + "mypy-extensions>=0.4.3", + "packaging>=22.0", + "pathspec>=0.9.0", + "platformdirs>=2", + "tomli>=1.1.0; python_version < \"3.11\"", + "typing-extensions>=4.0.1; python_version < \"3.11\"", +] +files = [ + {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, + {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, + {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, + {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, + {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, + {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, + {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, + {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, + {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, + {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, + {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, + {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, + {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, + {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, + {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, + {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, + {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, + {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, +] + [[package]] name = "certifi" -version = "2025.1.31" -requires_python = ">=3.6" +version = "2025.7.14" +requires_python = ">=3.7" summary = "Python package for providing Mozilla's CA Bundle." groups = ["default"] files = [ - {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, - {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, + {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, + {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, ] [[package]] name = "charset-normalizer" -version = "3.4.1" +version = "3.4.2" requires_python = ">=3.7" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." groups = ["default"] files = [ - {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, - {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, - {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, - {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, - {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, - {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, - {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, + {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, + {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] [[package]] name = "click" -version = "8.1.8" -requires_python = ">=3.7" +version = "8.2.1" +requires_python = ">=3.10" summary = "Composable command line interface toolkit" -groups = ["all", "chat"] +groups = ["default"] dependencies = [ "colorama; platform_system == \"Windows\"", - "importlib-metadata; python_version < \"3.8\"", ] files = [ - {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, - {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, + {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, + {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, ] [[package]] @@ -166,7 +212,7 @@ name = "colorama" version = "0.4.6" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Cross-platform colored terminal text." -groups = ["default", "all", "chat", "test"] +groups = ["default", "test"] marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, @@ -175,131 +221,162 @@ files = [ [[package]] name = "coverage" -version = "7.8.0" +version = "7.9.2" requires_python = ">=3.9" summary = "Code coverage measurement for Python" groups = ["test"] files = [ - {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, - {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, - {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, - {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, - {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, - {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, - {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, - {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, - {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, - {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, - {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, - {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, - {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, - {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, - {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, + {file = "coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912"}, + {file = "coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f22627c1fe2745ee98d3ab87679ca73a97e75ca75eb5faee48660d060875465f"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b1c2d8363247b46bd51f393f86c94096e64a1cf6906803fa8d5a9d03784bdbf"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10c882b114faf82dbd33e876d0cbd5e1d1ebc0d2a74ceef642c6152f3f4d547"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de3c0378bdf7066c3988d66cd5232d161e933b87103b014ab1b0b4676098fa45"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1e2f097eae0e5991e7623958a24ced3282676c93c013dde41399ff63e230fcf2"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28dc1f67e83a14e7079b6cea4d314bc8b24d1aed42d3582ff89c0295f09b181e"}, + {file = "coverage-7.9.2-cp310-cp310-win32.whl", hash = "sha256:bf7d773da6af9e10dbddacbf4e5cab13d06d0ed93561d44dae0188a42c65be7e"}, + {file = "coverage-7.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:0c0378ba787681ab1897f7c89b415bd56b0b2d9a47e5a3d8dc0ea55aac118d6c"}, + {file = "coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba"}, + {file = "coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74"}, + {file = "coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6"}, + {file = "coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7"}, + {file = "coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62"}, + {file = "coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0"}, + {file = "coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d"}, + {file = "coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355"}, + {file = "coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0"}, + {file = "coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b"}, + {file = "coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038"}, + {file = "coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdd612e59baed2a93c8843c9a7cb902260f181370f1d772f4842987535071d14"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:256ea87cb2a1ed992bcdfc349d8042dcea1b80436f4ddf6e246d6bee4b5d73b6"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f44ae036b63c8ea432f610534a2668b0c3aee810e7037ab9d8ff6883de480f5b"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82d76ad87c932935417a19b10cfe7abb15fd3f923cfe47dbdaa74ef4e503752d"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:619317bb86de4193debc712b9e59d5cffd91dc1d178627ab2a77b9870deb2868"}, + {file = "coverage-7.9.2-cp313-cp313-win32.whl", hash = "sha256:0a07757de9feb1dfafd16ab651e0f628fd7ce551604d1bf23e47e1ddca93f08a"}, + {file = "coverage-7.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:115db3d1f4d3f35f5bb021e270edd85011934ff97c8797216b62f461dd69374b"}, + {file = "coverage-7.9.2-cp313-cp313-win_arm64.whl", hash = "sha256:48f82f889c80af8b2a7bb6e158d95a3fbec6a3453a1004d04e4f3b5945a02694"}, + {file = "coverage-7.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:55a28954545f9d2f96870b40f6c3386a59ba8ed50caf2d949676dac3ecab99f5"}, + {file = "coverage-7.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cdef6504637731a63c133bb2e6f0f0214e2748495ec15fe42d1e219d1b133f0b"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd5ebe66c7a97273d5d2ddd4ad0ed2e706b39630ed4b53e713d360626c3dbb3"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9303aed20872d7a3c9cb39c5d2b9bdbe44e3a9a1aecb52920f7e7495410dfab8"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc18ea9e417a04d1920a9a76fe9ebd2f43ca505b81994598482f938d5c315f46"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6406cff19880aaaadc932152242523e892faff224da29e241ce2fca329866584"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d0d4f6ecdf37fcc19c88fec3e2277d5dee740fb51ffdd69b9579b8c31e4232e"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c33624f50cf8de418ab2b4d6ca9eda96dc45b2c4231336bac91454520e8d1fac"}, + {file = "coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926"}, + {file = "coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd"}, + {file = "coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb"}, + {file = "coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050"}, + {file = "coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4"}, + {file = "coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b"}, ] [[package]] name = "coverage" -version = "7.8.0" +version = "7.9.2" extras = ["toml"] requires_python = ">=3.9" summary = "Code coverage measurement for Python" groups = ["test"] dependencies = [ - "coverage==7.8.0", + "coverage==7.9.2", "tomli; python_full_version <= \"3.11.0a6\"", ] files = [ - {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, - {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, - {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, - {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, - {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, - {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, - {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, - {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, - {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, - {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, - {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, - {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, - {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, - {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, - {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, - {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, - {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, - {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, - {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, - {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, - {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, - {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, - {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, - {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, - {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, - {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, - {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, - {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, - {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, + {file = "coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912"}, + {file = "coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f22627c1fe2745ee98d3ab87679ca73a97e75ca75eb5faee48660d060875465f"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b1c2d8363247b46bd51f393f86c94096e64a1cf6906803fa8d5a9d03784bdbf"}, + {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10c882b114faf82dbd33e876d0cbd5e1d1ebc0d2a74ceef642c6152f3f4d547"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de3c0378bdf7066c3988d66cd5232d161e933b87103b014ab1b0b4676098fa45"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1e2f097eae0e5991e7623958a24ced3282676c93c013dde41399ff63e230fcf2"}, + {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28dc1f67e83a14e7079b6cea4d314bc8b24d1aed42d3582ff89c0295f09b181e"}, + {file = "coverage-7.9.2-cp310-cp310-win32.whl", hash = "sha256:bf7d773da6af9e10dbddacbf4e5cab13d06d0ed93561d44dae0188a42c65be7e"}, + {file = "coverage-7.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:0c0378ba787681ab1897f7c89b415bd56b0b2d9a47e5a3d8dc0ea55aac118d6c"}, + {file = "coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba"}, + {file = "coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc"}, + {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd"}, + {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74"}, + {file = "coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6"}, + {file = "coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7"}, + {file = "coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62"}, + {file = "coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0"}, + {file = "coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615"}, + {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f"}, + {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d"}, + {file = "coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355"}, + {file = "coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0"}, + {file = "coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b"}, + {file = "coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038"}, + {file = "coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdd612e59baed2a93c8843c9a7cb902260f181370f1d772f4842987535071d14"}, + {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:256ea87cb2a1ed992bcdfc349d8042dcea1b80436f4ddf6e246d6bee4b5d73b6"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f44ae036b63c8ea432f610534a2668b0c3aee810e7037ab9d8ff6883de480f5b"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82d76ad87c932935417a19b10cfe7abb15fd3f923cfe47dbdaa74ef4e503752d"}, + {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:619317bb86de4193debc712b9e59d5cffd91dc1d178627ab2a77b9870deb2868"}, + {file = "coverage-7.9.2-cp313-cp313-win32.whl", hash = "sha256:0a07757de9feb1dfafd16ab651e0f628fd7ce551604d1bf23e47e1ddca93f08a"}, + {file = "coverage-7.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:115db3d1f4d3f35f5bb021e270edd85011934ff97c8797216b62f461dd69374b"}, + {file = "coverage-7.9.2-cp313-cp313-win_arm64.whl", hash = "sha256:48f82f889c80af8b2a7bb6e158d95a3fbec6a3453a1004d04e4f3b5945a02694"}, + {file = "coverage-7.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:55a28954545f9d2f96870b40f6c3386a59ba8ed50caf2d949676dac3ecab99f5"}, + {file = "coverage-7.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cdef6504637731a63c133bb2e6f0f0214e2748495ec15fe42d1e219d1b133f0b"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd5ebe66c7a97273d5d2ddd4ad0ed2e706b39630ed4b53e713d360626c3dbb3"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9303aed20872d7a3c9cb39c5d2b9bdbe44e3a9a1aecb52920f7e7495410dfab8"}, + {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc18ea9e417a04d1920a9a76fe9ebd2f43ca505b81994598482f938d5c315f46"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6406cff19880aaaadc932152242523e892faff224da29e241ce2fca329866584"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d0d4f6ecdf37fcc19c88fec3e2277d5dee740fb51ffdd69b9579b8c31e4232e"}, + {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c33624f50cf8de418ab2b4d6ca9eda96dc45b2c4231336bac91454520e8d1fac"}, + {file = "coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926"}, + {file = "coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd"}, + {file = "coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb"}, + {file = "coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050"}, + {file = "coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4"}, + {file = "coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b"}, +] + +[[package]] +name = "datamodel-code-generator" +version = "0.31.2" +requires_python = ">=3.9" +summary = "Datamodel Code Generator" +groups = ["default"] +dependencies = [ + "argcomplete<4,>=2.10.1", + "black>=19.10b0", + "genson<2,>=1.2.1", + "inflect<8,>=4.1", + "isort<7,>=4.3.21", + "jinja2<4,>=2.10.1", + "packaging", + "pydantic>=1.5", + "pyyaml>=6.0.1", + "tomli<3,>=2.2.1; python_version <= \"3.11\"", +] +files = [ + {file = "datamodel_code_generator-0.31.2-py3-none-any.whl", hash = "sha256:78f200a9e673ee4d041e96e82a835273baf4ce15e446d46501c0433d82af3ef5"}, + {file = "datamodel_code_generator-0.31.2.tar.gz", hash = "sha256:47887b8aa6fd69865e07e2893c1e76e34dae753b9a97f1020357af8337bc4cdb"}, ] [[package]] @@ -313,27 +390,19 @@ files = [ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, ] -[[package]] -name = "evdev" -version = "1.9.2" -requires_python = ">=3.8" -summary = "Bindings to the Linux input handling subsystem" -groups = ["all", "chat", "pynput"] -marker = "\"linux\" in sys_platform" -files = [ - {file = "evdev-1.9.2.tar.gz", hash = "sha256:5d3278892ce1f92a74d6bf888cc8525d9f68af85dbe336c95d1c87fb8f423069"}, -] - [[package]] name = "exceptiongroup" -version = "1.2.2" +version = "1.3.0" requires_python = ">=3.7" summary = "Backport of PEP 654 (exception groups)" -groups = ["default", "all", "chat", "test"] +groups = ["default", "test"] marker = "python_version < \"3.11\"" +dependencies = [ + "typing-extensions>=4.6.0; python_version < \"3.13\"", +] files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, ] [[package]] @@ -347,22 +416,6 @@ files = [ {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] -[[package]] -name = "fastapi" -version = "0.115.12" -requires_python = ">=3.8" -summary = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -groups = ["all", "chat"] -dependencies = [ - "pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4", - "starlette<0.47.0,>=0.40.0", - "typing-extensions>=4.8.0", -] -files = [ - {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, - {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, -] - [[package]] name = "filelock" version = "3.18.0" @@ -376,18 +429,28 @@ files = [ [[package]] name = "fsspec" -version = "2025.3.2" +version = "2025.7.0" requires_python = ">=3.9" summary = "File-system specification" groups = ["default"] files = [ - {file = "fsspec-2025.3.2-py3-none-any.whl", hash = "sha256:2daf8dc3d1dfa65b6aa37748d112773a7a08416f6c70d96b264c96476ecaf711"}, - {file = "fsspec-2025.3.2.tar.gz", hash = "sha256:e52c77ef398680bbd6a98c0e628fbc469491282981209907bbc8aea76a04fdc6"}, + {file = "fsspec-2025.7.0-py3-none-any.whl", hash = "sha256:8b012e39f63c7d5f10474de957f3ab793b47b45ae7d39f2fb735f8bbe25c0e21"}, + {file = "fsspec-2025.7.0.tar.gz", hash = "sha256:786120687ffa54b8283d942929540d8bc5ccfa820deb555a2b5d0ed2b737bf58"}, +] + +[[package]] +name = "genson" +version = "1.3.0" +summary = "GenSON is a powerful, user-friendly JSON Schema generator." +groups = ["default"] +files = [ + {file = "genson-1.3.0-py3-none-any.whl", hash = "sha256:468feccd00274cc7e4c09e84b08704270ba8d95232aa280f65b986139cec67f7"}, + {file = "genson-1.3.0.tar.gz", hash = "sha256:e02db9ac2e3fd29e65b5286f7135762e2cd8a986537c075b06fc5f1517308e37"}, ] [[package]] name = "gradio-client" -version = "1.8.0" +version = "1.11.0" requires_python = ">=3.10" summary = "Python library for easily interacting with trained machine learning models" groups = ["default"] @@ -400,8 +463,8 @@ dependencies = [ "websockets<16.0,>=10.0", ] files = [ - {file = "gradio_client-1.8.0-py3-none-any.whl", hash = "sha256:27a3ab5278a44d57d1d05a86de67cec5f7370e540600d11816744a620addb967"}, - {file = "gradio_client-1.8.0.tar.gz", hash = "sha256:a58c520c73fa7ff8bef54e41b19df2cd9071fd9d0cc00475eb397842baed19c8"}, + {file = "gradio_client-1.11.0-py3-none-any.whl", hash = "sha256:afb714aea50224f6f04679fe2ce79c1be75011012d0dc3b3ee575610a0dc8eb2"}, + {file = "gradio_client-1.11.0.tar.gz", hash = "sha256:377c31d8082173663b230dad341614b127b2460fe24d5fd72ed456fb3f0b3a9e"}, ] [[package]] @@ -409,7 +472,7 @@ name = "greenlet" version = "3.2.3" requires_python = ">=3.9" summary = "Lightweight in-process concurrent programming" -groups = ["all", "chat", "test", "web"] +groups = ["test"] files = [ {file = "greenlet-3.2.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:1afd685acd5597349ee6d7a88a8bec83ce13c106ac78c196ee9dde7c04fe87be"}, {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:761917cac215c61e9dc7324b2606107b3b292a8349bdebb31503ab4de3f559ac"}, @@ -473,136 +536,151 @@ files = [ [[package]] name = "grpcio" -version = "1.71.0" +version = "1.73.1" requires_python = ">=3.9" summary = "HTTP/2-based RPC framework" groups = ["default", "test"] files = [ - {file = "grpcio-1.71.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:c200cb6f2393468142eb50ab19613229dcc7829b5ccee8b658a36005f6669fdd"}, - {file = "grpcio-1.71.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b2266862c5ad664a380fbbcdbdb8289d71464c42a8c29053820ee78ba0119e5d"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:0ab8b2864396663a5b0b0d6d79495657ae85fa37dcb6498a2669d067c65c11ea"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c30f393f9d5ff00a71bb56de4aa75b8fe91b161aeb61d39528db6b768d7eac69"}, - {file = "grpcio-1.71.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f250ff44843d9a0615e350c77f890082102a0318d66a99540f54769c8766ab73"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e6d8de076528f7c43a2f576bc311799f89d795aa6c9b637377cc2b1616473804"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9b91879d6da1605811ebc60d21ab6a7e4bae6c35f6b63a061d61eb818c8168f6"}, - {file = "grpcio-1.71.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f71574afdf944e6652203cd1badcda195b2a27d9c83e6d88dc1ce3cfb73b31a5"}, - {file = "grpcio-1.71.0-cp310-cp310-win32.whl", hash = "sha256:8997d6785e93308f277884ee6899ba63baafa0dfb4729748200fcc537858a509"}, - {file = "grpcio-1.71.0-cp310-cp310-win_amd64.whl", hash = "sha256:7d6ac9481d9d0d129224f6d5934d5832c4b1cddb96b59e7eba8416868909786a"}, - {file = "grpcio-1.71.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:d6aa986318c36508dc1d5001a3ff169a15b99b9f96ef5e98e13522c506b37eef"}, - {file = "grpcio-1.71.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:d2c170247315f2d7e5798a22358e982ad6eeb68fa20cf7a820bb74c11f0736e7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:e6f83a583ed0a5b08c5bc7a3fe860bb3c2eac1f03f1f63e0bc2091325605d2b7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be74ddeeb92cc87190e0e376dbc8fc7736dbb6d3d454f2fa1f5be1dee26b9d7"}, - {file = "grpcio-1.71.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd0dfbe4d5eb1fcfec9490ca13f82b089a309dc3678e2edabc144051270a66e"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a2242d6950dc892afdf9e951ed7ff89473aaf744b7d5727ad56bdaace363722b"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0fa05ee31a20456b13ae49ad2e5d585265f71dd19fbd9ef983c28f926d45d0a7"}, - {file = "grpcio-1.71.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3d081e859fb1ebe176de33fc3adb26c7d46b8812f906042705346b314bde32c3"}, - {file = "grpcio-1.71.0-cp311-cp311-win32.whl", hash = "sha256:d6de81c9c00c8a23047136b11794b3584cdc1460ed7cbc10eada50614baa1444"}, - {file = "grpcio-1.71.0-cp311-cp311-win_amd64.whl", hash = "sha256:24e867651fc67717b6f896d5f0cac0ec863a8b5fb7d6441c2ab428f52c651c6b"}, - {file = "grpcio-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:0ff35c8d807c1c7531d3002be03221ff9ae15712b53ab46e2a0b4bb271f38537"}, - {file = "grpcio-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:b78a99cd1ece4be92ab7c07765a0b038194ded2e0a26fd654591ee136088d8d7"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:dc1a1231ed23caac1de9f943d031f1bc38d0f69d2a3b243ea0d664fc1fbd7fec"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6beeea5566092c5e3c4896c6d1d307fb46b1d4bdf3e70c8340b190a69198594"}, - {file = "grpcio-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5170929109450a2c031cfe87d6716f2fae39695ad5335d9106ae88cc32dc84c"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5b08d03ace7aca7b2fadd4baf291139b4a5f058805a8327bfe9aece7253b6d67"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f903017db76bf9cc2b2d8bdd37bf04b505bbccad6be8a81e1542206875d0e9db"}, - {file = "grpcio-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:469f42a0b410883185eab4689060a20488a1a0a00f8bbb3cbc1061197b4c5a79"}, - {file = "grpcio-1.71.0-cp312-cp312-win32.whl", hash = "sha256:ad9f30838550695b5eb302add33f21f7301b882937460dd24f24b3cc5a95067a"}, - {file = "grpcio-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:652350609332de6dac4ece254e5d7e1ff834e203d6afb769601f286886f6f3a8"}, - {file = "grpcio-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:cebc1b34ba40a312ab480ccdb396ff3c529377a2fce72c45a741f7215bfe8379"}, - {file = "grpcio-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:85da336e3649a3d2171e82f696b5cad2c6231fdd5bad52616476235681bee5b3"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f9a412f55bb6e8f3bb000e020dbc1e709627dcb3a56f6431fa7076b4c1aab0db"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47be9584729534660416f6d2a3108aaeac1122f6b5bdbf9fd823e11fe6fbaa29"}, - {file = "grpcio-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c9c80ac6091c916db81131d50926a93ab162a7e97e4428ffc186b6e80d6dda4"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:789d5e2a3a15419374b7b45cd680b1e83bbc1e52b9086e49308e2c0b5bbae6e3"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:1be857615e26a86d7363e8a163fade914595c81fec962b3d514a4b1e8760467b"}, - {file = "grpcio-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a76d39b5fafd79ed604c4be0a869ec3581a172a707e2a8d7a4858cb05a5a7637"}, - {file = "grpcio-1.71.0-cp313-cp313-win32.whl", hash = "sha256:74258dce215cb1995083daa17b379a1a5a87d275387b7ffe137f1d5131e2cfbb"}, - {file = "grpcio-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:22c3bc8d488c039a199f7a003a38cb7635db6656fa96437a8accde8322ce2366"}, - {file = "grpcio-1.71.0.tar.gz", hash = "sha256:2b85f7820475ad3edec209d3d89a7909ada16caab05d3f2e08a7e8ae3200a55c"}, + {file = "grpcio-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:2d70f4ddd0a823436c2624640570ed6097e40935c9194482475fe8e3d9754d55"}, + {file = "grpcio-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3841a8a5a66830261ab6a3c2a3dc539ed84e4ab019165f77b3eeb9f0ba621f26"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:628c30f8e77e0258ab788750ec92059fc3d6628590fb4b7cea8c102503623ed7"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67a0468256c9db6d5ecb1fde4bf409d016f42cef649323f0a08a72f352d1358b"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b84d65bbdebd5926eb5c53b0b9ec3b3f83408a30e4c20c373c5337b4219ec5"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c54796ca22b8349cc594d18b01099e39f2b7ffb586ad83217655781a350ce4da"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:75fc8e543962ece2f7ecd32ada2d44c0c8570ae73ec92869f9af8b944863116d"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6a6037891cd2b1dd1406b388660522e1565ed340b1fea2955b0234bdd941a862"}, + {file = "grpcio-1.73.1-cp310-cp310-win32.whl", hash = "sha256:cce7265b9617168c2d08ae570fcc2af4eaf72e84f8c710ca657cc546115263af"}, + {file = "grpcio-1.73.1-cp310-cp310-win_amd64.whl", hash = "sha256:6a2b372e65fad38842050943f42ce8fee00c6f2e8ea4f7754ba7478d26a356ee"}, + {file = "grpcio-1.73.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:ba2cea9f7ae4bc21f42015f0ec98f69ae4179848ad744b210e7685112fa507a1"}, + {file = "grpcio-1.73.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d74c3f4f37b79e746271aa6cdb3a1d7e4432aea38735542b23adcabaaee0c097"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5b9b1805a7d61c9e90541cbe8dfe0a593dfc8c5c3a43fe623701b6a01b01d710"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3215f69a0670a8cfa2ab53236d9e8026bfb7ead5d4baabe7d7dc11d30fda967"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5eccfd9577a5dc7d5612b2ba90cca4ad14c6d949216c68585fdec9848befb1"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dc7d7fd520614fce2e6455ba89791458020a39716951c7c07694f9dbae28e9c0"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:105492124828911f85127e4825d1c1234b032cb9d238567876b5515d01151379"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:610e19b04f452ba6f402ac9aa94eb3d21fbc94553368008af634812c4a85a99e"}, + {file = "grpcio-1.73.1-cp311-cp311-win32.whl", hash = "sha256:d60588ab6ba0ac753761ee0e5b30a29398306401bfbceffe7d68ebb21193f9d4"}, + {file = "grpcio-1.73.1-cp311-cp311-win_amd64.whl", hash = "sha256:6957025a4608bb0a5ff42abd75bfbb2ed99eda29d5992ef31d691ab54b753643"}, + {file = "grpcio-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:921b25618b084e75d424a9f8e6403bfeb7abef074bb6c3174701e0f2542debcf"}, + {file = "grpcio-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:277b426a0ed341e8447fbf6c1d6b68c952adddf585ea4685aa563de0f03df887"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:96c112333309493c10e118d92f04594f9055774757f5d101b39f8150f8c25582"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f48e862aed925ae987eb7084409a80985de75243389dc9d9c271dd711e589918"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83a6c2cce218e28f5040429835fa34a29319071079e3169f9543c3fbeff166d2"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:65b0458a10b100d815a8426b1442bd17001fdb77ea13665b2f7dc9e8587fdc6b"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0a9f3ea8dce9eae9d7cb36827200133a72b37a63896e0e61a9d5ec7d61a59ab1"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:de18769aea47f18e782bf6819a37c1c528914bfd5683b8782b9da356506190c8"}, + {file = "grpcio-1.73.1-cp312-cp312-win32.whl", hash = "sha256:24e06a5319e33041e322d32c62b1e728f18ab8c9dbc91729a3d9f9e3ed336642"}, + {file = "grpcio-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:303c8135d8ab176f8038c14cc10d698ae1db9c480f2b2823f7a987aa2a4c5646"}, + {file = "grpcio-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:b310824ab5092cf74750ebd8a8a8981c1810cb2b363210e70d06ef37ad80d4f9"}, + {file = "grpcio-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:8f5a6df3fba31a3485096ac85b2e34b9666ffb0590df0cd044f58694e6a1f6b5"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:052e28fe9c41357da42250a91926a3e2f74c046575c070b69659467ca5aa976b"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c0bf15f629b1497436596b1cbddddfa3234273490229ca29561209778ebe182"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab860d5bfa788c5a021fba264802e2593688cd965d1374d31d2b1a34cacd854"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ad1d958c31cc91ab050bd8a91355480b8e0683e21176522bacea225ce51163f2"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f43ffb3bd415c57224c7427bfb9e6c46a0b6e998754bfa0d00f408e1873dcbb5"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:686231cdd03a8a8055f798b2b54b19428cdf18fa1549bee92249b43607c42668"}, + {file = "grpcio-1.73.1-cp313-cp313-win32.whl", hash = "sha256:89018866a096e2ce21e05eabed1567479713ebe57b1db7cbb0f1e3b896793ba4"}, + {file = "grpcio-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:4a68f8c9966b94dff693670a5cf2b54888a48a5011c5d9ce2295a1a1465ee84f"}, + {file = "grpcio-1.73.1.tar.gz", hash = "sha256:7fce2cd1c0c1116cf3850564ebfc3264fba75d3c74a7414373f1238ea365ef87"}, ] [[package]] name = "grpcio-tools" -version = "1.71.0" +version = "1.73.1" requires_python = ">=3.9" summary = "Protobuf code generator for gRPC" groups = ["default"] dependencies = [ - "grpcio>=1.71.0", - "protobuf<6.0dev,>=5.26.1", + "grpcio>=1.73.1", + "protobuf<7.0.0,>=6.30.0", "setuptools", ] files = [ - {file = "grpcio_tools-1.71.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:f4ad7f0d756546902597053d70b3af2606fbd70d7972876cd75c1e241d22ae00"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:64bdb291df61cf570b5256777ad5fe2b1db6d67bc46e55dc56a0a862722ae329"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:8dd9795e982d77a4b496f7278b943c2563d9afde2069cdee78c111a40cc4d675"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1b5860c41a36b26fec4f52998f1a451d0525a5c9a4fb06b6ea3e9211abdb925"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3059c14035e5dc03d462f261e5900b9a077fd1a36976c3865b8507474520bad4"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f360981b215b1d5aff9235b37e7e1826246e35bbac32a53e41d4e990a37b8f4c"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bfe3888c3bbe16a5aa39409bc38744a31c0c3d2daa2b0095978c56e106c85b42"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:145985c0bf12131f0a1503e65763e0f060473f7f3928ed1ff3fb0e8aad5bc8ac"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-win32.whl", hash = "sha256:82c430edd939bb863550ee0fecf067d78feff828908a1b529bbe33cc57f2419c"}, - {file = "grpcio_tools-1.71.0-cp310-cp310-win_amd64.whl", hash = "sha256:83e90724e3f02415c628e4ead1d6ffe063820aaaa078d9a39176793df958cd5a"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:1f19b16b49afa5d21473f49c0966dd430c88d089cd52ac02404d8cef67134efb"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:459c8f5e00e390aecd5b89de67deb3ec7188a274bc6cb50e43cef35ab3a3f45d"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:edab7e6518de01196be37f96cb1e138c3819986bf5e2a6c9e1519b4d716b2f5a"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b93b9f6adc7491d4c10144c0643409db298e5e63c997106a804f6f0248dbaf4"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ae5f2efa9e644c10bf1021600bfc099dfbd8e02b184d2d25dc31fcd6c2bc59e"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:65aa082f4435571d65d5ce07fc444f23c3eff4f3e34abef599ef8c9e1f6f360f"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1331e726e08b7bdcbf2075fcf4b47dff07842b04845e6e220a08a4663e232d7f"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6693a7d3ba138b0e693b3d1f687cdd9db9e68976c3fa2b951c17a072fea8b583"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-win32.whl", hash = "sha256:6d11ed3ff7b6023b5c72a8654975324bb98c1092426ba5b481af406ff559df00"}, - {file = "grpcio_tools-1.71.0-cp311-cp311-win_amd64.whl", hash = "sha256:072b2a5805ac97e4623b3aa8f7818275f3fb087f4aa131b0fce00471065f6eaa"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:61c0409d5bdac57a7bd0ce0ab01c1c916728fe4c8a03d77a25135ad481eb505c"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:28784f39921d061d2164a9dcda5164a69d07bf29f91f0ea50b505958292312c9"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:192808cf553cedca73f0479cc61d5684ad61f24db7a5f3c4dfe1500342425866"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:989ee9da61098230d3d4c8f8f8e27c2de796f1ff21b1c90110e636d9acd9432b"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:541a756276c8a55dec991f6c0106ae20c8c8f5ce8d0bdbfcb01e2338d1a8192b"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:870c0097700d13c403e5517cb7750ab5b4a791ce3e71791c411a38c5468b64bd"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:abd57f615e88bf93c3c6fd31f923106e3beb12f8cd2df95b0d256fa07a7a0a57"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:753270e2d06d37e6d7af8967d1d059ec635ad215882041a36294f4e2fd502b2e"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-win32.whl", hash = "sha256:0e647794bd7138b8c215e86277a9711a95cf6a03ff6f9e555d54fdf7378b9f9d"}, - {file = "grpcio_tools-1.71.0-cp312-cp312-win_amd64.whl", hash = "sha256:48debc879570972d28bfe98e4970eff25bb26da3f383e0e49829b2d2cd35ad87"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:9a78d07d6c301a25ef5ede962920a522556a1dfee1ccc05795994ceb867f766c"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-macosx_10_14_universal2.whl", hash = "sha256:580ac88141c9815557e63c9c04f5b1cdb19b4db8d0cb792b573354bde1ee8b12"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:f7c678e68ece0ae908ecae1c4314a0c2c7f83e26e281738b9609860cc2c82d96"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56ecd6cc89b5e5eed1de5eb9cafce86c9c9043ee3840888cc464d16200290b53"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e52a041afc20ab2431d756b6295d727bd7adee813b21b06a3483f4a7a15ea15f"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2a1712f12102b60c8d92779b89d0504e0d6f3a59f2b933e5622b8583f5c02992"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:41878cb7a75477e62fdd45e7e9155b3af1b7a5332844021e2511deaf99ac9e6c"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:682e958b476049ccc14c71bedf3f979bced01f6e0c04852efc5887841a32ad6b"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-win32.whl", hash = "sha256:0ccfb837152b7b858b9f26bb110b3ae8c46675d56130f6c2f03605c4f129be13"}, - {file = "grpcio_tools-1.71.0-cp313-cp313-win_amd64.whl", hash = "sha256:ffff9bc5eacb34dd26b487194f7d44a3e64e752fc2cf049d798021bf25053b87"}, - {file = "grpcio_tools-1.71.0.tar.gz", hash = "sha256:38dba8e0d5e0fb23a034e09644fdc6ed862be2371887eee54901999e8f6792a8"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:0731b21a7f3988a9f8c244ffe3940a0579e5b5f2a99d08448459e0b49350d47a"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:15e47b19b70ce6100e9843570e16b0561045c37b5e9d390f1cb54292c99b51b6"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:fbe6cd3e863928b5c127d4956c60e44101f495ddcb69738290db6ef497ce505c"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71c35a6b4d125bec877daefaf7dedb566d37ed4e903a45b74e491683e006afa4"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9486235da85a80accaeaab5829c09e19b70ee96ff100d3f7b342ec9344d96134"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:86dfd562a9ebb74849aca345237cf87c2732067e410752ff809b8bfdf7aa5f49"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bde8101bc7a60de6297916a468bf7900be6e2c0f9965a1a6591aa06bd02e2df3"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b41e2417003b34bf672aa4ec5a48e22d9fc28f7de5f25d9a01fb1e3dcc86af6a"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-win32.whl", hash = "sha256:bb05d02ca7d603260555cc0bbec616b116f741561d5b5c78a65bc3fae5982d5e"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-win_amd64.whl", hash = "sha256:5f0cd287545c9430e3e395181ee11ca9b7bef4c41b1c28afa9174ea5a868dcda"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:2bc4a46177df43853b070a4b6b6106d9829a639bc8b9516a005a879d3e5da0f9"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:448b38ec72ed62c932d48e49e0facbb51e8045065dabf3bb63149810971a51e7"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:249be7616b323b8af72a02bd218bfbba388010e6ccb471c57d42e49b620686f7"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:129dd1e46386da74d78d588c5a7f5c51d8dc2ec40fea95f9a012f655767fd5f3"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d53cd62c30fbd9597c05066a45e5750a11ec566c5fe0d17878e169bd2c66157"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d8f4e2ee735dc6033b6f3379584759cc95259581c9bc58db5dd0e69cc71310f1"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2795d85da34846bbe6693f0da4c1f9bfa8a77e6cbd85cb83eb1231f1315a2ae"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:40834bf3551a6936151f4ba7eba4a37c8ff66eacb0bb5affa4630afbe78f061d"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-win32.whl", hash = "sha256:0b809d936463fabeda6999eb681b5d4869dd8e5fe4d2fb9dbfee0d2a4c0ce67a"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-win_amd64.whl", hash = "sha256:e0257401088f29315fe0ad7f388ad061cf5b57a89e9abf039f8d9c7a54e9580d"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:23af3de80c89ee803d0143c6293f8e979a851f0414702b5de973e205fca69db2"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fbf17ad6fff6c9002d28bc3632216eafb59631308b05c4cf80e72d21c33f7dc9"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:aa05ecd0b2ca583862d107eea4d9480a2d89987ae46bc02944cc450a122f833b"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:664fbec02f93d14bb74c442e06ba20a4448a20236ed3d6ac5d2c4ef82a33a8b4"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60aa528d7576c932f43172723188f53aaa7bdb307e52d22f2e5ab831a3667693"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3893517010bcdb8cb4949715786bc5953fe7df6b575f8b1725531ed492b1080c"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:654083a2d4e83679d4fb6ac46a2748c1b57ecf45be5cbe88d88a1a4aef6b3281"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cd8b1077849acd69923b08a8e5221050e5201eb65907487ee6d69aa06b583b46"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-win32.whl", hash = "sha256:0273f64c8db4a52a3a99fd34c83a1a1723bd3ac6806d3054a93f08044609fa65"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:0626266b0df489d6e8bdd4178b1c78cac9963fde4c5ba6b205b329e46696b334"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:4687200e18d316ef1e28824bf9c62c2c6a3a2aacf4e0d292306258ef05955587"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:b86daf2dba207aace486cf5752c9c5d35864cd67f1df1429f7341af3984dadc7"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:44ec622d210740ed6c4300ea51fc43faaa0c58f4e2c4b03e2fe5a452b8e440ce"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ceac9073030012596cb7923643552329e48fb911eea3225624b8ef34bae92e1"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43329b47e982798c9eb18f652fc10fef5d22f9df51001a10f1ece01d9d203c04"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f0afb000ff67f7665f3eedd797c23b403a6bdae829d6e610944aeb6959193698"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:40c5def66b69c8c8f8a6af8d47a5e6b5825055c7ef7cf2b1b58c57ddc86bf3be"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:9a0eb7d88c9f1992afb3021e45721971e49d612b03fa5d38cce6e4369509f32c"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-win32.whl", hash = "sha256:34480c6964d16b7fa0012b9fc574efa9e2f71c80f8bc9da0887c300abb7130f3"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:2b005373ad23dc0f25d8d6ec6d219fc3a6831b8d0f487be8f9bb2315307ba1c1"}, + {file = "grpcio_tools-1.73.1.tar.gz", hash = "sha256:6e06adec3b0870f5947953b0ef8dbdf2cebcdff61fb1fe08120cc7483c7978aa"}, ] [[package]] name = "h11" -version = "0.14.0" -requires_python = ">=3.7" +version = "0.16.0" +requires_python = ">=3.8" summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -groups = ["default", "all", "chat"] -dependencies = [ - "typing-extensions; python_version < \"3.8\"", +groups = ["default"] +files = [ + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, ] + +[[package]] +name = "hf-xet" +version = "1.1.5" +requires_python = ">=3.8" +summary = "Fast transfer of large files with the Hugging Face Hub." +groups = ["default"] +marker = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"" files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, + {file = "hf_xet-1.1.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f52c2fa3635b8c37c7764d8796dfa72706cc4eded19d638331161e82b0792e23"}, + {file = "hf_xet-1.1.5-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fa6e3ee5d61912c4a113e0708eaaef987047616465ac7aa30f7121a48fc1af8"}, + {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc874b5c843e642f45fd85cda1ce599e123308ad2901ead23d3510a47ff506d1"}, + {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dbba1660e5d810bd0ea77c511a99e9242d920790d0e63c0e4673ed36c4022d18"}, + {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ab34c4c3104133c495785d5d8bba3b1efc99de52c02e759cf711a91fd39d3a14"}, + {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:83088ecea236d5113de478acb2339f92c95b4fb0462acaa30621fac02f5a534a"}, + {file = "hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245"}, + {file = "hf_xet-1.1.5.tar.gz", hash = "sha256:69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694"}, ] [[package]] name = "httpcore" -version = "1.0.7" +version = "1.0.9" requires_python = ">=3.8" summary = "A minimal low-level HTTP client." groups = ["default"] dependencies = [ "certifi", - "h11<0.15,>=0.13", + "h11>=0.16", ] files = [ - {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, - {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, + {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, + {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, ] [[package]] @@ -624,13 +702,14 @@ files = [ [[package]] name = "huggingface-hub" -version = "0.30.1" +version = "0.33.4" requires_python = ">=3.8.0" summary = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" groups = ["default"] dependencies = [ "filelock", "fsspec>=2023.5.0", + "hf-xet<2.0.0,>=1.1.2; platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"", "packaging>=20.9", "pyyaml>=5.1", "requests", @@ -638,8 +717,8 @@ dependencies = [ "typing-extensions>=3.7.4.3", ] files = [ - {file = "huggingface_hub-0.30.1-py3-none-any.whl", hash = "sha256:0f6aa5ec5a4e68e5b9e45d556b4e5ea180c58f5a5ffa734e7f38c9d573028959"}, - {file = "huggingface_hub-0.30.1.tar.gz", hash = "sha256:f379e8b8d0791295602538856638460ae3cf679c7f304201eb80fb98c771950e"}, + {file = "huggingface_hub-0.33.4-py3-none-any.whl", hash = "sha256:09f9f4e7ca62547c70f8b82767eefadd2667f4e116acba2e3e62a5a81815a7bb"}, + {file = "huggingface_hub-0.33.4.tar.gz", hash = "sha256:6af13478deae120e765bfd92adad0ae1aec1ad8c439b46f23058ad5956cbca0a"}, ] [[package]] @@ -647,12 +726,28 @@ name = "idna" version = "3.10" requires_python = ">=3.6" summary = "Internationalized Domain Names in Applications (IDNA)" -groups = ["default", "all", "chat"] +groups = ["default"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[[package]] +name = "inflect" +version = "7.5.0" +requires_python = ">=3.9" +summary = "Correctly generate plurals, singular nouns, ordinals, indefinite articles" +groups = ["default"] +dependencies = [ + "more-itertools>=8.5.0", + "typeguard>=4.0.1", + "typing-extensions; python_version < \"3.9\"", +] +files = [ + {file = "inflect-7.5.0-py3-none-any.whl", hash = "sha256:2aea70e5e70c35d8350b8097396ec155ffd68def678c7ff97f51aa69c1d92344"}, + {file = "inflect-7.5.0.tar.gz", hash = "sha256:faf19801c3742ed5a05a8ce388e0d8fe1a07f8d095c82201eb904f5d27ad571f"}, +] + [[package]] name = "iniconfig" version = "2.1.0" @@ -664,6 +759,17 @@ files = [ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] +[[package]] +name = "isort" +version = "6.0.1" +requires_python = ">=3.9.0" +summary = "A Python utility / library to sort Python imports." +groups = ["default"] +files = [ + {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, + {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, +] + [[package]] name = "jinja2" version = "3.1.6" @@ -680,63 +786,76 @@ files = [ [[package]] name = "jiter" -version = "0.9.0" -requires_python = ">=3.8" +version = "0.10.0" +requires_python = ">=3.9" summary = "Fast iterable JSON parser." groups = ["default"] files = [ - {file = "jiter-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:816ec9b60fdfd1fec87da1d7ed46c66c44ffec37ab2ef7de5b147b2fce3fd5ad"}, - {file = "jiter-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b1d3086f8a3ee0194ecf2008cf81286a5c3e540d977fa038ff23576c023c0ea"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1339f839b91ae30b37c409bf16ccd3dc453e8b8c3ed4bd1d6a567193651a4a51"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ffba79584b3b670fefae66ceb3a28822365d25b7bf811e030609a3d5b876f538"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cfc7d0a8e899089d11f065e289cb5b2daf3d82fbe028f49b20d7b809193958d"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e00a1a2bbfaaf237e13c3d1592356eab3e9015d7efd59359ac8b51eb56390a12"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1d9870561eb26b11448854dce0ff27a9a27cb616b632468cafc938de25e9e51"}, - {file = "jiter-0.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9872aeff3f21e437651df378cb75aeb7043e5297261222b6441a620218b58708"}, - {file = "jiter-0.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1fd19112d1049bdd47f17bfbb44a2c0001061312dcf0e72765bfa8abd4aa30e5"}, - {file = "jiter-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6ef5da104664e526836070e4a23b5f68dec1cc673b60bf1edb1bfbe8a55d0678"}, - {file = "jiter-0.9.0-cp310-cp310-win32.whl", hash = "sha256:cb12e6d65ebbefe5518de819f3eda53b73187b7089040b2d17f5b39001ff31c4"}, - {file = "jiter-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:c43ca669493626d8672be3b645dbb406ef25af3f4b6384cfd306da7eb2e70322"}, - {file = "jiter-0.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6c4d99c71508912a7e556d631768dcdef43648a93660670986916b297f1c54af"}, - {file = "jiter-0.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f60fb8ce7df529812bf6c625635a19d27f30806885139e367af93f6e734ef58"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51c4e1a4f8ea84d98b7b98912aa4290ac3d1eabfde8e3c34541fae30e9d1f08b"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f4c677c424dc76684fea3e7285a7a2a7493424bea89ac441045e6a1fb1d7b3b"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2221176dfec87f3470b21e6abca056e6b04ce9bff72315cb0b243ca9e835a4b5"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c7adb66f899ffa25e3c92bfcb593391ee1947dbdd6a9a970e0d7e713237d572"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c98d27330fdfb77913c1097a7aab07f38ff2259048949f499c9901700789ac15"}, - {file = "jiter-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eda3f8cc74df66892b1d06b5d41a71670c22d95a1ca2cbab73654745ce9d0419"}, - {file = "jiter-0.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dd5ab5ddc11418dce28343123644a100f487eaccf1de27a459ab36d6cca31043"}, - {file = "jiter-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:42f8a68a69f047b310319ef8e2f52fdb2e7976fb3313ef27df495cf77bcad965"}, - {file = "jiter-0.9.0-cp311-cp311-win32.whl", hash = "sha256:a25519efb78a42254d59326ee417d6f5161b06f5da827d94cf521fed961b1ff2"}, - {file = "jiter-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:923b54afdd697dfd00d368b7ccad008cccfeb1efb4e621f32860c75e9f25edbd"}, - {file = "jiter-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7b46249cfd6c48da28f89eb0be3f52d6fdb40ab88e2c66804f546674e539ec11"}, - {file = "jiter-0.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:609cf3c78852f1189894383cf0b0b977665f54cb38788e3e6b941fa6d982c00e"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d726a3890a54561e55a9c5faea1f7655eda7f105bd165067575ace6e65f80bb2"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2e89dc075c1fef8fa9be219e249f14040270dbc507df4215c324a1839522ea75"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04e8ffa3c353b1bc4134f96f167a2082494351e42888dfcf06e944f2729cbe1d"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:203f28a72a05ae0e129b3ed1f75f56bc419d5f91dfacd057519a8bd137b00c42"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fca1a02ad60ec30bb230f65bc01f611c8608b02d269f998bc29cca8619a919dc"}, - {file = "jiter-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:237e5cee4d5d2659aaf91bbf8ec45052cc217d9446070699441a91b386ae27dc"}, - {file = "jiter-0.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:528b6b71745e7326eed73c53d4aa57e2a522242320b6f7d65b9c5af83cf49b6e"}, - {file = "jiter-0.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9f48e86b57bc711eb5acdfd12b6cb580a59cc9a993f6e7dcb6d8b50522dcd50d"}, - {file = "jiter-0.9.0-cp312-cp312-win32.whl", hash = "sha256:699edfde481e191d81f9cf6d2211debbfe4bd92f06410e7637dffb8dd5dfde06"}, - {file = "jiter-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:099500d07b43f61d8bd780466d429c45a7b25411b334c60ca875fa775f68ccb0"}, - {file = "jiter-0.9.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:2764891d3f3e8b18dce2cff24949153ee30c9239da7c00f032511091ba688ff7"}, - {file = "jiter-0.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:387b22fbfd7a62418d5212b4638026d01723761c75c1c8232a8b8c37c2f1003b"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d8da8629ccae3606c61d9184970423655fb4e33d03330bcdfe52d234d32f69"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1be73d8982bdc278b7b9377426a4b44ceb5c7952073dd7488e4ae96b88e1103"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2228eaaaa111ec54b9e89f7481bffb3972e9059301a878d085b2b449fbbde635"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:11509bfecbc319459647d4ac3fd391d26fdf530dad00c13c4dadabf5b81f01a4"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f22238da568be8bbd8e0650e12feeb2cfea15eda4f9fc271d3b362a4fa0604d"}, - {file = "jiter-0.9.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17f5d55eb856597607562257c8e36c42bc87f16bef52ef7129b7da11afc779f3"}, - {file = "jiter-0.9.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:6a99bed9fbb02f5bed416d137944419a69aa4c423e44189bc49718859ea83bc5"}, - {file = "jiter-0.9.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e057adb0cd1bd39606100be0eafe742de2de88c79df632955b9ab53a086b3c8d"}, - {file = "jiter-0.9.0-cp313-cp313-win32.whl", hash = "sha256:f7e6850991f3940f62d387ccfa54d1a92bd4bb9f89690b53aea36b4364bcab53"}, - {file = "jiter-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:c8ae3bf27cd1ac5e6e8b7a27487bf3ab5f82318211ec2e1346a5b058756361f7"}, - {file = "jiter-0.9.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f0b2827fb88dda2cbecbbc3e596ef08d69bda06c6f57930aec8e79505dc17001"}, - {file = "jiter-0.9.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062b756ceb1d40b0b28f326cba26cfd575a4918415b036464a52f08632731e5a"}, - {file = "jiter-0.9.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6f7838bc467ab7e8ef9f387bd6de195c43bad82a569c1699cb822f6609dd4cdf"}, - {file = "jiter-0.9.0.tar.gz", hash = "sha256:aadba0964deb424daa24492abc3d229c60c4a31bfee205aedbf1acc7639d7893"}, + {file = "jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303"}, + {file = "jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf"}, + {file = "jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90"}, + {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0"}, + {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee"}, + {file = "jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4"}, + {file = "jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5"}, + {file = "jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978"}, + {file = "jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5"}, + {file = "jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606"}, + {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605"}, + {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5"}, + {file = "jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7"}, + {file = "jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812"}, + {file = "jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b"}, + {file = "jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a"}, + {file = "jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95"}, + {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea"}, + {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b"}, + {file = "jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01"}, + {file = "jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49"}, + {file = "jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644"}, + {file = "jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041"}, + {file = "jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca"}, + {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4"}, + {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e"}, + {file = "jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d"}, + {file = "jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4"}, + {file = "jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca"}, + {file = "jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070"}, + {file = "jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca"}, + {file = "jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522"}, + {file = "jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9"}, + {file = "jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a"}, + {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853"}, + {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86"}, + {file = "jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357"}, + {file = "jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00"}, + {file = "jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5"}, + {file = "jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500"}, ] [[package]] @@ -836,70 +955,71 @@ files = [ ] [[package]] -name = "mss" -version = "10.0.0" +name = "more-itertools" +version = "10.7.0" requires_python = ">=3.9" -summary = "An ultra fast cross-platform multiple screenshots module in pure python using ctypes." -groups = ["all", "chat", "pynput"] +summary = "More routines for operating on iterables, beyond itertools" +groups = ["default"] files = [ - {file = "mss-10.0.0-py3-none-any.whl", hash = "sha256:82cf6460a53d09e79b7b6d871163c982e6c7e9649c426e7b7591b74956d5cb64"}, - {file = "mss-10.0.0.tar.gz", hash = "sha256:d903e0d51262bf0f8782841cf16eaa6d7e3e1f12eae35ab41c2e318837c6637f"}, + {file = "more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e"}, + {file = "more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3"}, ] [[package]] name = "mypy" -version = "1.15.0" +version = "1.17.0" requires_python = ">=3.9" summary = "Optional static typing for Python" groups = ["test"] dependencies = [ "mypy-extensions>=1.0.0", + "pathspec>=0.9.0", "tomli>=1.1.0; python_version < \"3.11\"", "typing-extensions>=4.6.0", ] files = [ - {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, - {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, - {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, - {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, - {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, - {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, - {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, - {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, - {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, - {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, - {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, - {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, - {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, - {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, - {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, - {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, - {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, - {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, - {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, + {file = "mypy-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8e08de6138043108b3b18f09d3f817a4783912e48828ab397ecf183135d84d6"}, + {file = "mypy-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce4a17920ec144647d448fc43725b5873548b1aae6c603225626747ededf582d"}, + {file = "mypy-1.17.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ff25d151cc057fdddb1cb1881ef36e9c41fa2a5e78d8dd71bee6e4dcd2bc05b"}, + {file = "mypy-1.17.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93468cf29aa9a132bceb103bd8475f78cacde2b1b9a94fd978d50d4bdf616c9a"}, + {file = "mypy-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:98189382b310f16343151f65dd7e6867386d3e35f7878c45cfa11383d175d91f"}, + {file = "mypy-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:c004135a300ab06a045c1c0d8e3f10215e71d7b4f5bb9a42ab80236364429937"}, + {file = "mypy-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d4fe5c72fd262d9c2c91c1117d16aac555e05f5beb2bae6a755274c6eec42be"}, + {file = "mypy-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d96b196e5c16f41b4f7736840e8455958e832871990c7ba26bf58175e357ed61"}, + {file = "mypy-1.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:73a0ff2dd10337ceb521c080d4147755ee302dcde6e1a913babd59473904615f"}, + {file = "mypy-1.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24cfcc1179c4447854e9e406d3af0f77736d631ec87d31c6281ecd5025df625d"}, + {file = "mypy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56f180ff6430e6373db7a1d569317675b0a451caf5fef6ce4ab365f5f2f6c3"}, + {file = "mypy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:eafaf8b9252734400f9b77df98b4eee3d2eecab16104680d51341c75702cad70"}, + {file = "mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb"}, + {file = "mypy-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:51e455a54d199dd6e931cd7ea987d061c2afbaf0960f7f66deef47c90d1b304d"}, + {file = "mypy-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3204d773bab5ff4ebbd1f8efa11b498027cd57017c003ae970f310e5b96be8d8"}, + {file = "mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1051df7ec0886fa246a530ae917c473491e9a0ba6938cfd0ec2abc1076495c3e"}, + {file = "mypy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f773c6d14dcc108a5b141b4456b0871df638eb411a89cd1c0c001fc4a9d08fc8"}, + {file = "mypy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1619a485fd0e9c959b943c7b519ed26b712de3002d7de43154a489a2d0fd817d"}, + {file = "mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06"}, + {file = "mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a"}, + {file = "mypy-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03ba330b76710f83d6ac500053f7727270b6b8553b0423348ffb3af6f2f7b889"}, + {file = "mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037bc0f0b124ce46bfde955c647f3e395c6174476a968c0f22c95a8d2f589bba"}, + {file = "mypy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c38876106cb6132259683632b287238858bd58de267d80defb6f418e9ee50658"}, + {file = "mypy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c"}, + {file = "mypy-1.17.0-py3-none-any.whl", hash = "sha256:15d9d0018237ab058e5de3d8fce61b6fa72cc59cc78fd91f1b474bce12abf496"}, + {file = "mypy-1.17.0.tar.gz", hash = "sha256:e5d7ccc08ba089c06e2f5629c660388ef1fee708444f1dee0b9203fa031dee03"}, ] [[package]] name = "mypy-extensions" -version = "1.0.0" -requires_python = ">=3.5" +version = "1.1.0" +requires_python = ">=3.8" summary = "Type system extensions for programs checked with the mypy type checker." -groups = ["test"] +groups = ["default", "test"] files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, + {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, + {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] [[package]] name = "openai" -version = "1.85.0" +version = "1.97.1" requires_python = ">=3.8" summary = "The official Python library for the openai API" groups = ["default"] @@ -914,269 +1034,317 @@ dependencies = [ "typing-extensions<5,>=4.11", ] files = [ - {file = "openai-1.85.0-py3-none-any.whl", hash = "sha256:7dc3e839cb8bb8747979a90c63ad4cb25a8e0cbec17b53eec009532c9965cecf"}, - {file = "openai-1.85.0.tar.gz", hash = "sha256:6ba76e4ebc5725f71f2f6126c7cb5169ca8de60dd5aa61f350f9448ad162c913"}, + {file = "openai-1.97.1-py3-none-any.whl", hash = "sha256:4e96bbdf672ec3d44968c9ea39d2c375891db1acc1794668d8149d5fa6000606"}, + {file = "openai-1.97.1.tar.gz", hash = "sha256:a744b27ae624e3d4135225da9b1c89c107a2a7e5bc4c93e5b7b5214772ce7a4e"}, ] [[package]] name = "packaging" -version = "24.2" +version = "25.0" requires_python = ">=3.8" summary = "Core utilities for Python packages" groups = ["default", "test"] files = [ - {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, - {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +requires_python = ">=3.8" +summary = "Utility library for gitignore style pattern matching of file paths." +groups = ["default", "test"] +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pillow" -version = "11.1.0" +version = "11.3.0" requires_python = ">=3.9" summary = "Python Imaging Library (Fork)" groups = ["default"] files = [ - {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, - {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, - {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, - {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, - {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, - {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, - {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, - {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, - {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, - {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, - {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, - {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, - {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, - {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, - {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, - {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, - {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, - {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, - {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, - {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, - {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, - {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, - {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, - {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, - {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, - {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, - {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, - {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, - {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, - {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, - {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, - {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, - {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, + {file = "pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860"}, + {file = "pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae"}, + {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9"}, + {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e"}, + {file = "pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6"}, + {file = "pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f"}, + {file = "pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f"}, + {file = "pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722"}, + {file = "pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f"}, + {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e"}, + {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94"}, + {file = "pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0"}, + {file = "pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac"}, + {file = "pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd"}, + {file = "pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4"}, + {file = "pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024"}, + {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809"}, + {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d"}, + {file = "pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149"}, + {file = "pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d"}, + {file = "pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f"}, + {file = "pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c"}, + {file = "pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8"}, + {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2"}, + {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b"}, + {file = "pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3"}, + {file = "pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51"}, + {file = "pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580"}, + {file = "pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e"}, + {file = "pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59"}, + {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe"}, + {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c"}, + {file = "pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788"}, + {file = "pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31"}, + {file = "pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e"}, + {file = "pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12"}, + {file = "pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77"}, + {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874"}, + {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a"}, + {file = "pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214"}, + {file = "pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635"}, + {file = "pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6"}, + {file = "pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae"}, + {file = "pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477"}, + {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50"}, + {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b"}, + {file = "pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12"}, + {file = "pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db"}, + {file = "pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8"}, + {file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"}, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +requires_python = ">=3.9" +summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +groups = ["default"] +files = [ + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [[package]] name = "playwright" -version = "1.53.0" +version = "1.54.0" requires_python = ">=3.9" summary = "A high-level API to automate web browsers" -groups = ["all", "chat", "test", "web"] +groups = ["test"] dependencies = [ "greenlet<4.0.0,>=3.1.1", "pyee<14,>=13", ] files = [ - {file = "playwright-1.53.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:48a1a15ce810f0ffe512b6050de9871ea193b41dd3cc1bbed87b8431012419ba"}, - {file = "playwright-1.53.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a701f9498a5b87e3f929ec01cea3109fbde75821b19c7ba4bba54f6127b94f76"}, - {file = "playwright-1.53.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:f765498341c4037b4c01e742ae32dd335622f249488ccd77ca32d301d7c82c61"}, - {file = "playwright-1.53.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:db19cb5b58f3b15cad3e2419f4910c053e889202fc202461ee183f1530d1db60"}, - {file = "playwright-1.53.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9276c9c935fc062f51f4f5107e56420afd6d9a524348dc437793dc2e34c742e3"}, - {file = "playwright-1.53.0-py3-none-win32.whl", hash = "sha256:36eedec101724ff5a000cddab87dd9a72a39f9b3e65a687169c465484e667c06"}, - {file = "playwright-1.53.0-py3-none-win_amd64.whl", hash = "sha256:d68975807a0fd997433537f1dcf2893cda95884a39dc23c6f591b8d5f691e9e8"}, - {file = "playwright-1.53.0-py3-none-win_arm64.whl", hash = "sha256:fcfd481f76568d7b011571160e801b47034edd9e2383c43d83a5fb3f35c67885"}, + {file = "playwright-1.54.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:bf3b845af744370f1bd2286c2a9536f474cc8a88dc995b72ea9a5be714c9a77d"}, + {file = "playwright-1.54.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:780928b3ca2077aea90414b37e54edd0c4bbb57d1aafc42f7aa0b3fd2c2fac02"}, + {file = "playwright-1.54.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:81d0b6f28843b27f288cfe438af0a12a4851de57998009a519ea84cee6fbbfb9"}, + {file = "playwright-1.54.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:09919f45cc74c64afb5432646d7fef0d19fff50990c862cb8d9b0577093f40cc"}, + {file = "playwright-1.54.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ae206c55737e8e3eae51fb385d61c0312eeef31535643bb6232741b41b6fdc"}, + {file = "playwright-1.54.0-py3-none-win32.whl", hash = "sha256:0b108622ffb6906e28566f3f31721cd57dda637d7e41c430287804ac01911f56"}, + {file = "playwright-1.54.0-py3-none-win_amd64.whl", hash = "sha256:9e5aee9ae5ab1fdd44cd64153313a2045b136fcbcfb2541cc0a3d909132671a2"}, + {file = "playwright-1.54.0-py3-none-win_arm64.whl", hash = "sha256:a975815971f7b8dca505c441a4c56de1aeb56a211290f8cc214eeef5524e8d75"}, ] [[package]] name = "pluggy" -version = "1.5.0" -requires_python = ">=3.8" +version = "1.6.0" +requires_python = ">=3.9" summary = "plugin and hook calling mechanisms for python" groups = ["test"] files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, + {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, + {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] [[package]] name = "protobuf" -version = "5.29.4" -requires_python = ">=3.8" +version = "6.31.1" +requires_python = ">=3.9" summary = "" groups = ["default"] files = [ - {file = "protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7"}, - {file = "protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d"}, - {file = "protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922"}, - {file = "protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862"}, - {file = "protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99"}, -] - -[[package]] -name = "pure-python-adb" -version = "0.3.0.dev0" -summary = "Pure python implementation of the adb client" -groups = ["all", "android", "chat"] -files = [ - {file = "pure-python-adb-0.3.0.dev0.tar.gz", hash = "sha256:0ecc89d780160cfe03260ba26df2c471a05263b2cad0318363573ee8043fb94d"}, + {file = "protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9"}, + {file = "protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447"}, + {file = "protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402"}, + {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39"}, + {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6"}, + {file = "protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e"}, + {file = "protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a"}, ] [[package]] name = "py-machineid" -version = "0.7.0" +version = "0.8.0" summary = "Get the unique machine ID of any host (without admin privileges)" groups = ["default"] dependencies = [ "winregistry<3.0.0,>=2.0.1; sys_platform == \"win32\"", ] files = [ - {file = "py-machineid-0.7.0.tar.gz", hash = "sha256:5a74a810e38b57b043b145c756c1e6ac161529cb7d83fe20099fcb986acc577b"}, - {file = "py_machineid-0.7.0-py3-none-any.whl", hash = "sha256:3dacc322b0511383d79f1e817a2710b19bcfb820a4c7cea34aaa329775fef468"}, + {file = "py-machineid-0.8.0.tar.gz", hash = "sha256:5515d5f9779073d0caa2e8aaf15a0fdd0ad4247fd0b86d9c447431c96d3e3467"}, + {file = "py_machineid-0.8.0-py3-none-any.whl", hash = "sha256:fddf06c5f4e87759a74128117c50e5604cddcef6bcc1728b697924c49b5f6e79"}, ] [[package]] name = "pydantic" -version = "2.11.2" +version = "2.11.7" requires_python = ">=3.9" summary = "Data validation using Python type hints" -groups = ["default", "all", "chat"] +groups = ["default"] dependencies = [ "annotated-types>=0.6.0", - "pydantic-core==2.33.1", + "pydantic-core==2.33.2", "typing-extensions>=4.12.2", "typing-inspection>=0.4.0", ] files = [ - {file = "pydantic-2.11.2-py3-none-any.whl", hash = "sha256:7f17d25846bcdf89b670a86cdfe7b29a9f1c9ca23dee154221c9aa81845cfca7"}, - {file = "pydantic-2.11.2.tar.gz", hash = "sha256:2138628e050bd7a1e70b91d4bf4a91167f4ad76fdb83209b107c8d84b854917e"}, + {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, + {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, ] [[package]] name = "pydantic-core" -version = "2.33.1" +version = "2.33.2" requires_python = ">=3.9" summary = "Core functionality for Pydantic validation and serialization" -groups = ["default", "all", "chat"] +groups = ["default"] dependencies = [ "typing-extensions!=4.7.0,>=4.6.0", ] files = [ - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, - {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5183e4f6a2d468787243ebcd70cf4098c247e60d73fb7d68d5bc1e1beaa0c4db"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:398a38d323f37714023be1e0285765f0a27243a8b1506b7b7de87b647b517e48"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3776f0001b43acebfa86f8c64019c043b55cc5a6a2e313d728b5c95b46969"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c566dd9c5f63d22226409553531f89de0cac55397f2ab8d97d6f06cfce6d947e"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d5f3acc81452c56895e90643a625302bd6be351e7010664151cc55b7b97f89"}, - {file = "pydantic_core-2.33.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3a07fadec2a13274a8d861d3d37c61e97a816beae717efccaa4b36dfcaadcde"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f99aeda58dce827f76963ee87a0ebe75e648c72ff9ba1174a253f6744f518f65"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:902dbc832141aa0ec374f4310f1e4e7febeebc3256f00dc359a9ac3f264a45dc"}, - {file = "pydantic_core-2.33.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fe44d56aa0b00d66640aa84a3cbe80b7a3ccdc6f0b1ca71090696a6d4777c091"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win32.whl", hash = "sha256:ed3eb16d51257c763539bde21e011092f127a2202692afaeaccb50db55a31383"}, - {file = "pydantic_core-2.33.1-cp310-cp310-win_amd64.whl", hash = "sha256:694ad99a7f6718c1a498dc170ca430687a39894a60327f548e02a9c7ee4b6504"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e966fc3caaf9f1d96b349b0341c70c8d6573bf1bac7261f7b0ba88f96c56c24"}, - {file = "pydantic_core-2.33.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bfd0adeee563d59c598ceabddf2c92eec77abcb3f4a391b19aa7366170bd9e30"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91815221101ad3c6b507804178a7bb5cb7b2ead9ecd600041669c8d805ebd595"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9fea9c1869bb4742d174a57b4700c6dadea951df8b06de40c2fedb4f02931c2e"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d20eb4861329bb2484c021b9d9a977566ab16d84000a57e28061151c62b349a"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb935c5591573ae3201640579f30128ccc10739b45663f93c06796854405505"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c964fd24e6166420d18fb53996d8c9fd6eac9bf5ae3ec3d03015be4414ce497f"}, - {file = "pydantic_core-2.33.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:681d65e9011f7392db5aa002b7423cc442d6a673c635668c227c6c8d0e5a4f77"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e100c52f7355a48413e2999bfb4e139d2977a904495441b374f3d4fb4a170961"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:048831bd363490be79acdd3232f74a0e9951b11b2b4cc058aeb72b22fdc3abe1"}, - {file = "pydantic_core-2.33.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bdc84017d28459c00db6f918a7272a5190bec3090058334e43a76afb279eac7c"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win32.whl", hash = "sha256:32cd11c5914d1179df70406427097c7dcde19fddf1418c787540f4b730289896"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_amd64.whl", hash = "sha256:2ea62419ba8c397e7da28a9170a16219d310d2cf4970dbc65c32faf20d828c83"}, - {file = "pydantic_core-2.33.1-cp311-cp311-win_arm64.whl", hash = "sha256:fc903512177361e868bc1f5b80ac8c8a6e05fcdd574a5fb5ffeac5a9982b9e89"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1293d7febb995e9d3ec3ea09caf1a26214eec45b0f29f6074abb004723fc1de8"}, - {file = "pydantic_core-2.33.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99b56acd433386c8f20be5c4000786d1e7ca0523c8eefc995d14d79c7a081498"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35a5ec3fa8c2fe6c53e1b2ccc2454398f95d5393ab398478f53e1afbbeb4d939"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b172f7b9d2f3abc0efd12e3386f7e48b576ef309544ac3a63e5e9cdd2e24585d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9097b9f17f91eea659b9ec58148c0747ec354a42f7389b9d50701610d86f812e"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc77ec5b7e2118b152b0d886c7514a4653bcb58c6b1d760134a9fab915f777b3"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3d15245b08fa4a84cefc6c9222e6f37c98111c8679fbd94aa145f9a0ae23d"}, - {file = "pydantic_core-2.33.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef99779001d7ac2e2461d8ab55d3373fe7315caefdbecd8ced75304ae5a6fc6b"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fc6bf8869e193855e8d91d91f6bf59699a5cdfaa47a404e278e776dd7f168b39"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:b1caa0bc2741b043db7823843e1bde8aaa58a55a58fda06083b0569f8b45693a"}, - {file = "pydantic_core-2.33.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ec259f62538e8bf364903a7d0d0239447059f9434b284f5536e8402b7dd198db"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win32.whl", hash = "sha256:e14f369c98a7c15772b9da98987f58e2b509a93235582838bd0d1d8c08b68fda"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_amd64.whl", hash = "sha256:1c607801d85e2e123357b3893f82c97a42856192997b95b4d8325deb1cd0c5f4"}, - {file = "pydantic_core-2.33.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d13f0276806ee722e70a1c93da19748594f19ac4299c7e41237fc791d1861ea"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:70af6a21237b53d1fe7b9325b20e65cbf2f0a848cf77bed492b029139701e66a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:282b3fe1bbbe5ae35224a0dbd05aed9ccabccd241e8e6b60370484234b456266"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b315e596282bbb5822d0c7ee9d255595bd7506d1cb20c2911a4da0b970187d3"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1dfae24cf9921875ca0ca6a8ecb4bb2f13c855794ed0d468d6abbec6e6dcd44a"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dd8ecfde08d8bfadaea669e83c63939af76f4cf5538a72597016edfa3fad516"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f593494876eae852dc98c43c6f260f45abdbfeec9e4324e31a481d948214764"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:948b73114f47fd7016088e5186d13faf5e1b2fe83f5e320e371f035557fd264d"}, - {file = "pydantic_core-2.33.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e11f3864eb516af21b01e25fac915a82e9ddad3bb0fb9e95a246067398b435a4"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:549150be302428b56fdad0c23c2741dcdb5572413776826c965619a25d9c6bde"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:495bc156026efafd9ef2d82372bd38afce78ddd82bf28ef5276c469e57c0c83e"}, - {file = "pydantic_core-2.33.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ec79de2a8680b1a67a07490bddf9636d5c2fab609ba8c57597e855fa5fa4dacd"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win32.whl", hash = "sha256:ee12a7be1742f81b8a65b36c6921022301d466b82d80315d215c4c691724986f"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_amd64.whl", hash = "sha256:ede9b407e39949d2afc46385ce6bd6e11588660c26f80576c11c958e6647bc40"}, - {file = "pydantic_core-2.33.1-cp313-cp313-win_arm64.whl", hash = "sha256:aa687a23d4b7871a00e03ca96a09cad0f28f443690d300500603bd0adba4b523"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c"}, - {file = "pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3da303ab5f378a268fa7d45f37d7d85c3ec19769f28d2cc0c61826a8de21fe"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25626fb37b3c543818c14821afe0fd3830bc327a43953bc88db924b68c5723f1"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ab2d36e20fbfcce8f02d73c33a8a7362980cff717926bbae030b93ae46b56c7"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2f9284e11c751b003fd4215ad92d325d92c9cb19ee6729ebd87e3250072cdcde"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:048c01eee07d37cbd066fc512b9d8b5ea88ceeb4e629ab94b3e56965ad655add"}, - {file = "pydantic_core-2.33.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5ccd429694cf26af7997595d627dd2637e7932214486f55b8a357edaac9dae8c"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3a371dc00282c4b84246509a5ddc808e61b9864aa1eae9ecc92bb1268b82db4a"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f59295ecc75a1788af8ba92f2e8c6eeaa5a94c22fc4d151e8d9638814f85c8fc"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08530b8ac922003033f399128505f513e30ca770527cc8bbacf75a84fcc2c74b"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bae370459da6a5466978c0eacf90690cb57ec9d533f8e63e564ef3822bfa04fe"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3de2777e3b9f4d603112f78006f4ae0acb936e95f06da6cb1a45fbad6bdb4b5"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3a64e81e8cba118e108d7126362ea30e021291b7805d47e4896e52c791be2761"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544"}, - {file = "pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5"}, - {file = "pydantic_core-2.33.1.tar.gz", hash = "sha256:bcc9c6fdb0ced789245b02b7d6603e17d1563064ddcfc36f046b61c0c05dd9df"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"}, + {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"}, ] [[package]] name = "pydantic-settings" -version = "2.9.1" +version = "2.10.1" requires_python = ">=3.9" summary = "Settings management using Pydantic" groups = ["default"] @@ -1186,8 +1354,8 @@ dependencies = [ "typing-inspection>=0.4.0", ] files = [ - {file = "pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef"}, - {file = "pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268"}, + {file = "pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796"}, + {file = "pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee"}, ] [[package]] @@ -1195,7 +1363,7 @@ name = "pyee" version = "13.0.0" requires_python = ">=3.8" summary = "A rough port of Node.js's EventEmitter to Python with a few tricks of its own" -groups = ["all", "chat", "test", "web"] +groups = ["test"] dependencies = [ "typing-extensions", ] @@ -1206,13 +1374,13 @@ files = [ [[package]] name = "pygments" -version = "2.19.1" +version = "2.19.2" requires_python = ">=3.8" summary = "Pygments is a syntax highlighting package written in Python." -groups = ["default"] +groups = ["default", "test"] files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [[package]] @@ -1226,122 +1394,6 @@ files = [ {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, ] -[[package]] -name = "pynput" -version = "1.8.1" -summary = "Monitor and control user input devices" -groups = ["all", "chat", "pynput"] -dependencies = [ - "enum34; python_version == \"2.7\"", - "evdev>=1.3; \"linux\" in sys_platform", - "pyobjc-framework-ApplicationServices>=8.0; sys_platform == \"darwin\"", - "pyobjc-framework-Quartz>=8.0; sys_platform == \"darwin\"", - "python-xlib>=0.17; \"linux\" in sys_platform", - "six", -] -files = [ - {file = "pynput-1.8.1-py2.py3-none-any.whl", hash = "sha256:42dfcf27404459ca16ca889c8fb8ffe42a9fe54f722fd1a3e130728e59e768d2"}, - {file = "pynput-1.8.1.tar.gz", hash = "sha256:70d7c8373ee98911004a7c938742242840a5628c004573d84ba849d4601df81e"}, -] - -[[package]] -name = "pyobjc-core" -version = "11.0" -requires_python = ">=3.8" -summary = "Python<->ObjC Interoperability Module" -groups = ["all", "chat", "pynput"] -marker = "sys_platform == \"darwin\"" -files = [ - {file = "pyobjc_core-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:10866b3a734d47caf48e456eea0d4815c2c9b21856157db5917b61dee06893a1"}, - {file = "pyobjc_core-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:50675c0bb8696fe960a28466f9baf6943df2928a1fd85625d678fa2f428bd0bd"}, - {file = "pyobjc_core-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a03061d4955c62ddd7754224a80cdadfdf17b6b5f60df1d9169a3b1b02923f0b"}, - {file = "pyobjc_core-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c338c1deb7ab2e9436d4175d1127da2eeed4a1b564b3d83b9f3ae4844ba97e86"}, - {file = "pyobjc_core-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b4e9dc4296110f251a4033ff3f40320b35873ea7f876bd29a1c9705bb5e08c59"}, - {file = "pyobjc_core-11.0.tar.gz", hash = "sha256:63bced211cb8a8fb5c8ff46473603da30e51112861bd02c438fbbbc8578d9a70"}, -] - -[[package]] -name = "pyobjc-framework-applicationservices" -version = "11.0" -requires_python = ">=3.9" -summary = "Wrappers for the framework ApplicationServices on macOS" -groups = ["all", "chat", "pynput"] -marker = "sys_platform == \"darwin\"" -dependencies = [ - "pyobjc-core>=11.0", - "pyobjc-framework-Cocoa>=11.0", - "pyobjc-framework-CoreText>=11.0", - "pyobjc-framework-Quartz>=11.0", -] -files = [ - {file = "pyobjc_framework_ApplicationServices-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bc8f34b5b59ffd3c210ae883d794345c1197558ff3da0f5800669cf16435271e"}, - {file = "pyobjc_framework_ApplicationServices-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61a99eef23abb704257310db4f5271137707e184768f6407030c01de4731b67b"}, - {file = "pyobjc_framework_ApplicationServices-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5fbeb425897d6129471d451ec61a29ddd5b1386eb26b1dd49cb313e34616ee21"}, - {file = "pyobjc_framework_ApplicationServices-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59becf3cd87a4f4cedf4be02ff6cf46ed736f5c1123ce629f788aaafad91eff0"}, - {file = "pyobjc_framework_ApplicationServices-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:44b466e8745fb49e8ac20f29f2ffd7895b45e97aa63a844b2a80a97c3a34346f"}, - {file = "pyobjc_framework_applicationservices-11.0.tar.gz", hash = "sha256:d6ea18dfc7d5626a3ecf4ac72d510405c0d3a648ca38cae8db841acdebecf4d2"}, -] - -[[package]] -name = "pyobjc-framework-cocoa" -version = "11.0" -requires_python = ">=3.9" -summary = "Wrappers for the Cocoa frameworks on macOS" -groups = ["all", "chat", "pynput"] -marker = "sys_platform == \"darwin\"" -dependencies = [ - "pyobjc-core>=11.0", -] -files = [ - {file = "pyobjc_framework_Cocoa-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fbc65f260d617d5463c7fb9dbaaffc23c9a4fabfe3b1a50b039b61870b8daefd"}, - {file = "pyobjc_framework_Cocoa-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3ea7be6e6dd801b297440de02d312ba3fa7fd3c322db747ae1cb237e975f5d33"}, - {file = "pyobjc_framework_Cocoa-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:280a577b83c68175a28b2b7138d1d2d3111f2b2b66c30e86f81a19c2b02eae71"}, - {file = "pyobjc_framework_Cocoa-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:15b2bd977ed340074f930f1330f03d42912d5882b697d78bd06f8ebe263ef92e"}, - {file = "pyobjc_framework_Cocoa-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5750001db544e67f2b66f02067d8f0da96bb2ef71732bde104f01b8628f9d7ea"}, - {file = "pyobjc_framework_cocoa-11.0.tar.gz", hash = "sha256:00346a8cb81ad7b017b32ff7bf596000f9faa905807b1bd234644ebd47f692c5"}, -] - -[[package]] -name = "pyobjc-framework-coretext" -version = "11.0" -requires_python = ">=3.9" -summary = "Wrappers for the framework CoreText on macOS" -groups = ["all", "chat", "pynput"] -marker = "sys_platform == \"darwin\"" -dependencies = [ - "pyobjc-core>=11.0", - "pyobjc-framework-Cocoa>=11.0", - "pyobjc-framework-Quartz>=11.0", -] -files = [ - {file = "pyobjc_framework_CoreText-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6939b4ea745b349b5c964823a2071f155f5defdc9b9fc3a13f036d859d7d0439"}, - {file = "pyobjc_framework_CoreText-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:56a4889858308b0d9f147d568b4d91c441cc0ffd332497cb4f709bb1990450c1"}, - {file = "pyobjc_framework_CoreText-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fb90e7f370b3fd7cb2fb442e3dc63fedf0b4af6908db1c18df694d10dc94669d"}, - {file = "pyobjc_framework_CoreText-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7947f755782456bd663e0b00c7905eeffd10f839f0bf2af031f68ded6a1ea360"}, - {file = "pyobjc_framework_CoreText-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5356116bae33ec49f1f212c301378a7d08000440a2d6a7281aab351945528ab9"}, - {file = "pyobjc_framework_coretext-11.0.tar.gz", hash = "sha256:a68437153e627847e3898754dd3f13ae0cb852246b016a91f9c9cbccb9f91a43"}, -] - -[[package]] -name = "pyobjc-framework-quartz" -version = "11.0" -requires_python = ">=3.9" -summary = "Wrappers for the Quartz frameworks on macOS" -groups = ["all", "chat", "pynput"] -marker = "sys_platform == \"darwin\"" -dependencies = [ - "pyobjc-core>=11.0", - "pyobjc-framework-Cocoa>=11.0", -] -files = [ - {file = "pyobjc_framework_Quartz-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da3ab13c9f92361959b41b0ad4cdd41ae872f90a6d8c58a9ed699bc08ab1c45c"}, - {file = "pyobjc_framework_Quartz-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d251696bfd8e8ef72fbc90eb29fec95cb9d1cc409008a183d5cc3246130ae8c2"}, - {file = "pyobjc_framework_Quartz-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb4a9f2d9d580ea15e25e6b270f47681afb5689cafc9e25712445ce715bcd18e"}, - {file = "pyobjc_framework_Quartz-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:973b4f9b8ab844574461a038bd5269f425a7368d6e677e3cc81fcc9b27b65498"}, - {file = "pyobjc_framework_Quartz-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:66ab58d65348863b8707e63b2ec5cdc54569ee8189d1af90d52f29f5fdf6272c"}, - {file = "pyobjc_framework_quartz-11.0.tar.gz", hash = "sha256:3205bf7795fb9ae34747f701486b3db6dfac71924894d1f372977c4d70c3c619"}, -] - [[package]] name = "pyperclip" version = "1.9.0" @@ -1353,41 +1405,43 @@ files = [ [[package]] name = "pytest" -version = "8.3.5" -requires_python = ">=3.8" +version = "8.4.1" +requires_python = ">=3.9" summary = "pytest: simple powerful testing with Python" groups = ["test"] dependencies = [ - "colorama; sys_platform == \"win32\"", - "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", - "iniconfig", - "packaging", + "colorama>=0.4; sys_platform == \"win32\"", + "exceptiongroup>=1; python_version < \"3.11\"", + "iniconfig>=1", + "packaging>=20", "pluggy<2,>=1.5", + "pygments>=2.7.2", "tomli>=1; python_version < \"3.11\"", ] files = [ - {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, - {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, + {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, + {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, ] [[package]] name = "pytest-cov" -version = "6.1.1" +version = "6.2.1" requires_python = ">=3.9" summary = "Pytest plugin for measuring coverage." groups = ["test"] dependencies = [ "coverage[toml]>=7.5", - "pytest>=4.6", + "pluggy>=1.2", + "pytest>=6.2.5", ] files = [ - {file = "pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde"}, - {file = "pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a"}, + {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, + {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, ] [[package]] name = "pytest-mock" -version = "3.14.0" +version = "3.14.1" requires_python = ">=3.8" summary = "Thin-wrapper around the mock package for easier use with pytest" groups = ["test"] @@ -1395,8 +1449,8 @@ dependencies = [ "pytest>=6.2.5", ] files = [ - {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, - {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, + {file = "pytest_mock-3.14.1-py3-none-any.whl", hash = "sha256:178aefcd11307d874b4cd3100344e7e2d888d9791a6a1d9bfe90fbc1b74fd1d0"}, + {file = "pytest_mock-3.14.1.tar.gz", hash = "sha256:159e9edac4c451ce77a5cdb9fc5d1100708d2dd4ba3c3df572f14097351af80e"}, ] [[package]] @@ -1415,8 +1469,8 @@ files = [ [[package]] name = "pytest-xdist" -version = "3.6.1" -requires_python = ">=3.8" +version = "3.8.0" +requires_python = ">=3.9" summary = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" groups = ["test"] dependencies = [ @@ -1424,8 +1478,8 @@ dependencies = [ "pytest>=7.0.0", ] files = [ - {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, - {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, + {file = "pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88"}, + {file = "pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1"}, ] [[package]] @@ -1444,27 +1498,13 @@ files = [ [[package]] name = "python-dotenv" -version = "1.1.0" +version = "1.1.1" requires_python = ">=3.9" summary = "Read key-value pairs from a .env file and set them as environment variables" groups = ["default"] files = [ - {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, - {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, -] - -[[package]] -name = "python-xlib" -version = "0.33" -summary = "Python X Library" -groups = ["all", "chat", "pynput"] -marker = "\"linux\" in sys_platform" -dependencies = [ - "six>=1.10.0", -] -files = [ - {file = "python-xlib-0.33.tar.gz", hash = "sha256:55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32"}, - {file = "python_xlib-0.33-py2.py3-none-any.whl", hash = "sha256:c3534038d42e0df2f1392a1b30a15a4ff5fdc2b86cfa94f072bf11b10a164398"}, + {file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"}, + {file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"}, ] [[package]] @@ -1515,7 +1555,7 @@ files = [ [[package]] name = "requests" -version = "2.32.3" +version = "2.32.4" requires_python = ">=3.8" summary = "Python HTTP for Humans." groups = ["default"] @@ -1526,8 +1566,8 @@ dependencies = [ "urllib3<3,>=1.21.1", ] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, + {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, ] [[package]] @@ -1548,29 +1588,29 @@ files = [ [[package]] name = "ruff" -version = "0.11.3" +version = "0.12.4" requires_python = ">=3.7" summary = "An extremely fast Python linter and code formatter, written in Rust." groups = ["test"] files = [ - {file = "ruff-0.11.3-py3-none-linux_armv6l.whl", hash = "sha256:cb893a5eedff45071d52565300a20cd4ac088869e156b25e0971cb98c06f5dd7"}, - {file = "ruff-0.11.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:58edd48af0e201e2f494789de80f5b2f2b46c9a2991a12ea031254865d5f6aa3"}, - {file = "ruff-0.11.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:520f6ade25cea98b2e5cb29eb0906f6a0339c6b8e28a024583b867f48295f1ed"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ca4405a93ebbc05e924358f872efceb1498c3d52a989ddf9476712a5480b16"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4341d38775a6be605ce7cd50e951b89de65cbd40acb0399f95b8e1524d604c8"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72bf5b49e4b546f4bea6c05448ab71919b09cf75363adf5e3bf5276124afd31c"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9fa791ee6c3629ba7f9ba2c8f2e76178b03f3eaefb920e426302115259819237"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c81d3fe718f4d303aaa4ccdcd0f43e23bb2127da3353635f718394ca9b26721"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4c38e9b6c01caaba46b6d8e732791f4c78389a9923319991d55b298017ce02"}, - {file = "ruff-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9686f5d1a2b4c918b5a6e9876bfe7f47498a990076624d41f57d17aadd02a4dd"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4800ddc4764d42d8961ce4cb972bcf5cc2730d11cca3f11f240d9f7360460408"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e63a2808879361aa9597d88d86380d8fb934953ef91f5ff3dafe18d9cb0b1e14"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8f8b1c4ae62638cc220df440140c21469232d8f2cb7f5059f395f7f48dcdb59e"}, - {file = "ruff-0.11.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3ea2026be50f6b1fbedd2d1757d004e1e58bd0f414efa2a6fa01235468d4c82a"}, - {file = "ruff-0.11.3-py3-none-win32.whl", hash = "sha256:73d8b90d12674a0c6e98cd9e235f2dcad09d1a80e559a585eac994bb536917a3"}, - {file = "ruff-0.11.3-py3-none-win_amd64.whl", hash = "sha256:faf1bfb0a51fb3a82aa1112cb03658796acef978e37c7f807d3ecc50b52ecbf6"}, - {file = "ruff-0.11.3-py3-none-win_arm64.whl", hash = "sha256:67f8b68d7ab909f08af1fb601696925a89d65083ae2bb3ab286e572b5dc456aa"}, - {file = "ruff-0.11.3.tar.gz", hash = "sha256:8d5fcdb3bb359adc12b757ed832ee743993e7474b9de714bb9ea13c4a8458bf9"}, + {file = "ruff-0.12.4-py3-none-linux_armv6l.whl", hash = "sha256:cb0d261dac457ab939aeb247e804125a5d521b21adf27e721895b0d3f83a0d0a"}, + {file = "ruff-0.12.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:55c0f4ca9769408d9b9bac530c30d3e66490bd2beb2d3dae3e4128a1f05c7442"}, + {file = "ruff-0.12.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a8224cc3722c9ad9044da7f89c4c1ec452aef2cfe3904365025dd2f51daeae0e"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9949d01d64fa3672449a51ddb5d7548b33e130240ad418884ee6efa7a229586"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:be0593c69df9ad1465e8a2d10e3defd111fdb62dcd5be23ae2c06da77e8fcffb"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7dea966bcb55d4ecc4cc3270bccb6f87a337326c9dcd3c07d5b97000dbff41c"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:afcfa3ab5ab5dd0e1c39bf286d829e042a15e966b3726eea79528e2e24d8371a"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c057ce464b1413c926cdb203a0f858cd52f3e73dcb3270a3318d1630f6395bb3"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64b90d1122dc2713330350626b10d60818930819623abbb56535c6466cce045"}, + {file = "ruff-0.12.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2abc48f3d9667fdc74022380b5c745873499ff827393a636f7a59da1515e7c57"}, + {file = "ruff-0.12.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2b2449dc0c138d877d629bea151bee8c0ae3b8e9c43f5fcaafcd0c0d0726b184"}, + {file = "ruff-0.12.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:56e45bb11f625db55f9b70477062e6a1a04d53628eda7784dce6e0f55fd549eb"}, + {file = "ruff-0.12.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:478fccdb82ca148a98a9ff43658944f7ab5ec41c3c49d77cd99d44da019371a1"}, + {file = "ruff-0.12.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0fc426bec2e4e5f4c4f182b9d2ce6a75c85ba9bcdbe5c6f2a74fcb8df437df4b"}, + {file = "ruff-0.12.4-py3-none-win32.whl", hash = "sha256:4de27977827893cdfb1211d42d84bc180fceb7b72471104671c59be37041cf93"}, + {file = "ruff-0.12.4-py3-none-win_amd64.whl", hash = "sha256:fe0b9e9eb23736b453143d72d2ceca5db323963330d5b7859d60d101147d461a"}, + {file = "ruff-0.12.4-py3-none-win_arm64.whl", hash = "sha256:0618ec4442a83ab545e5b71202a5c0ed7791e8471435b94e655b570a5031a98e"}, + {file = "ruff-0.12.4.tar.gz", hash = "sha256:13efa16df6c6eeb7d0f091abae50f58e9522f3843edb40d56ad52a5a4a4b6873"}, ] [[package]] @@ -1592,13 +1632,13 @@ files = [ [[package]] name = "setuptools" -version = "78.1.0" +version = "80.9.0" requires_python = ">=3.9" summary = "Easily download, build, install, upgrade, and uninstall Python packages" groups = ["default"] files = [ - {file = "setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8"}, - {file = "setuptools-78.1.0.tar.gz", hash = "sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54"}, + {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, + {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, ] [[package]] @@ -1606,7 +1646,7 @@ name = "six" version = "1.17.0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Python 2 and 3 compatibility utilities" -groups = ["default", "all", "chat", "pynput"] +groups = ["default"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -1617,27 +1657,12 @@ name = "sniffio" version = "1.3.1" requires_python = ">=3.7" summary = "Sniff out which async library your code is running under" -groups = ["default", "all", "chat"] +groups = ["default"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] -[[package]] -name = "starlette" -version = "0.46.2" -requires_python = ">=3.9" -summary = "The little ASGI library that shines." -groups = ["all", "chat"] -dependencies = [ - "anyio<5,>=3.6.2", - "typing-extensions>=3.10.0; python_version < \"3.10\"", -] -files = [ - {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, - {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, -] - [[package]] name = "tenacity" version = "9.1.2" @@ -1654,8 +1679,8 @@ name = "tomli" version = "2.2.1" requires_python = ">=3.8" summary = "A lil' TOML parser" -groups = ["test"] -marker = "python_version < \"3.11\"" +groups = ["default", "test"] +marker = "python_version <= \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -1705,6 +1730,21 @@ files = [ {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] +[[package]] +name = "typeguard" +version = "4.4.4" +requires_python = ">=3.9" +summary = "Run-time type checker for Python" +groups = ["default"] +dependencies = [ + "importlib-metadata>=3.6; python_version < \"3.10\"", + "typing-extensions>=4.14.0", +] +files = [ + {file = "typeguard-4.4.4-py3-none-any.whl", hash = "sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e"}, + {file = "typeguard-4.4.4.tar.gz", hash = "sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74"}, +] + [[package]] name = "types-pillow" version = "10.2.0.20240822" @@ -1718,13 +1758,13 @@ files = [ [[package]] name = "types-protobuf" -version = "5.29.1.20250403" +version = "6.30.2.20250703" requires_python = ">=3.9" summary = "Typing stubs for protobuf" groups = ["test"] files = [ - {file = "types_protobuf-5.29.1.20250403-py3-none-any.whl", hash = "sha256:c71de04106a2d54e5b2173d0a422058fae0ef2d058d70cf369fb797bf61ffa59"}, - {file = "types_protobuf-5.29.1.20250403.tar.gz", hash = "sha256:7ff44f15022119c9d7558ce16e78b2d485bf7040b4fadced4dd069bb5faf77a2"}, + {file = "types_protobuf-6.30.2.20250703-py3-none-any.whl", hash = "sha256:fa5aff9036e9ef432d703abbdd801b436a249b6802e4df5ef74513e272434e57"}, + {file = "types_protobuf-6.30.2.20250703.tar.gz", hash = "sha256:609a974754bbb71fa178fc641f51050395e8e1849f49d0420a6281ed8d1ddf46"}, ] [[package]] @@ -1751,18 +1791,18 @@ files = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20241206" -requires_python = ">=3.8" +version = "2.9.0.20250708" +requires_python = ">=3.9" summary = "Typing stubs for python-dateutil" groups = ["test"] files = [ - {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, - {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, + {file = "types_python_dateutil-2.9.0.20250708-py3-none-any.whl", hash = "sha256:4d6d0cc1cc4d24a2dc3816024e502564094497b713f7befda4d5bc7a8e3fd21f"}, + {file = "types_python_dateutil-2.9.0.20250708.tar.gz", hash = "sha256:ccdbd75dab2d6c9696c350579f34cffe2c281e4c5f27a585b2a2438dd1d5c8ab"}, ] [[package]] name = "types-requests" -version = "2.32.0.20250328" +version = "2.32.4.20250611" requires_python = ">=3.9" summary = "Typing stubs for requests" groups = ["test"] @@ -1770,60 +1810,44 @@ dependencies = [ "urllib3>=2", ] files = [ - {file = "types_requests-2.32.0.20250328-py3-none-any.whl", hash = "sha256:72ff80f84b15eb3aa7a8e2625fffb6a93f2ad5a0c20215fc1dcfa61117bcb2a2"}, - {file = "types_requests-2.32.0.20250328.tar.gz", hash = "sha256:c9e67228ea103bd811c96984fac36ed2ae8da87a36a633964a21f199d60baf32"}, + {file = "types_requests-2.32.4.20250611-py3-none-any.whl", hash = "sha256:ad2fe5d3b0cb3c2c902c8815a70e7fb2302c4b8c1f77bdcd738192cdb3878072"}, + {file = "types_requests-2.32.4.20250611.tar.gz", hash = "sha256:741c8777ed6425830bf51e54d6abe245f79b4dcb9019f1622b773463946bf826"}, ] [[package]] name = "typing-extensions" -version = "4.13.1" -requires_python = ">=3.8" -summary = "Backported and Experimental Type Hints for Python 3.8+" -groups = ["default", "all", "chat", "test", "web"] +version = "4.14.1" +requires_python = ">=3.9" +summary = "Backported and Experimental Type Hints for Python 3.9+" +groups = ["default", "test"] files = [ - {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"}, - {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"}, + {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, + {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] [[package]] name = "typing-inspection" -version = "0.4.0" +version = "0.4.1" requires_python = ">=3.9" summary = "Runtime typing introspection tools" -groups = ["default", "all", "chat"] +groups = ["default"] dependencies = [ "typing-extensions>=4.12.0", ] files = [ - {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, - {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, + {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, + {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, ] [[package]] name = "urllib3" -version = "2.3.0" +version = "2.5.0" requires_python = ">=3.9" summary = "HTTP library with thread-safe connection pooling, file post, and more." groups = ["default", "test"] files = [ - {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, - {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, -] - -[[package]] -name = "uvicorn" -version = "0.34.3" -requires_python = ">=3.9" -summary = "The lightning-fast ASGI server." -groups = ["all", "chat"] -dependencies = [ - "click>=7.0", - "h11>=0.8", - "typing-extensions>=4.0; python_version < \"3.11\"", -] -files = [ - {file = "uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885"}, - {file = "uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [[package]] @@ -1889,12 +1913,12 @@ files = [ [[package]] name = "winregistry" -version = "2.1.0" +version = "2.1.1" requires_python = ">=3.8" summary = "A Python library for interacting with the Windows registry" groups = ["default"] marker = "sys_platform == \"win32\"" files = [ - {file = "winregistry-2.1.0-py3-none-any.whl", hash = "sha256:7591bc93ba5513b389a0234dfa665ac0752e964bddf44757c266a3b754c941e1"}, - {file = "winregistry-2.1.0.tar.gz", hash = "sha256:370c2872f9cf9a512ed344039efae2a2943eb36355bc867336ff049e0f9d1db4"}, + {file = "winregistry-2.1.1-py3-none-any.whl", hash = "sha256:c42fac2f074b7f2898d07176c90118136b19da5f77e5b528a4699cc280c5a47b"}, + {file = "winregistry-2.1.1.tar.gz", hash = "sha256:8233c4261a9d937cd8f0670da0d1e61fd7b86712c39b1af08cb83e91316195a7"}, ] diff --git a/pyproject.toml b/pyproject.toml index 9d61df65..a4561303 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,7 @@ dependencies = [ "segment-analytics-python>=2.3.4", "tenacity>=9.1.2", "jsonref>=1.1.0", + "datamodel-code-generator>=0.31.2", ] requires-python = ">=3.10" readme = "README.md" @@ -63,6 +64,7 @@ typecheck = "mypy" "lint:fix", ] } "grpc:gen" = "bash scripts/grpc-gen.sh" +"json:gen" = "datamodel-codegen --output-model-type pydantic_v2.BaseModel --input src/askui/tools/askui/askui_ui_controller_grpc/json_schema/ --input-file-type jsonschema --output src/askui/tools/askui/askui_ui_controller_grpc/generated/" [dependency-groups] test = [ diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Request_2501.py b/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Request_2501.py new file mode 100644 index 00000000..ff4393bb --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Request_2501.py @@ -0,0 +1,169 @@ +# generated by datamodel-codegen: +# filename: AgentOS-Send-Request-2501.json +# timestamp: 2025-07-15T14:07:45+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, confloat, constr, conint + + +class Name(Enum): + GetMousePosition = 'GetMousePosition' + + +class Command(BaseModel): + name: Name + parameters: Optional[List] = None + + +class Name1(Enum): + SetMousePosition = 'SetMousePosition' + + +class Command1(BaseModel): + name: Name1 + parameters: List = Field(..., max_length=1, min_length=1) + + +class Name2(Enum): + AddRenderObject = 'AddRenderObject' + + +class Command2(BaseModel): + name: Name2 + parameters: List + + +class Name3(Enum): + UpdateRenderObject = 'UpdateRenderObject' + + +class Command3(BaseModel): + name: Name3 + parameters: List + + +class Name4(Enum): + DeleteRenderObject = 'DeleteRenderObject' + + +class Command4(BaseModel): + name: Name4 + parameters: List + + +class Name5(Enum): + ClearRenderObjects = 'ClearRenderObjects' + + +class Command5(BaseModel): + name: Name5 + parameters: Optional[List] = None + + +class Guid( + RootModel[ + constr( + pattern=r'^\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}$' + ) + ] +): + root: constr( + pattern=r'^\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}$' + ) + + +class Length(RootModel[Union[constr(pattern=r'^(\d+(\.\d+)?(px|%)|auto)$'), int, float]]): + root: Union[constr(pattern=r'^(\d+(\.\d+)?(px|%)|auto)$'), int, float] + + +class Color( + RootModel[ + Union[ + constr(pattern=r'^#([0-9a-fA-F]{6})$'), + constr(pattern=r'^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$'), + ] + ] +): + root: Union[ + constr(pattern=r'^#([0-9a-fA-F]{6})$'), + constr(pattern=r'^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$'), + ] + + +class Location2(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + x: Length + y: Length + + +class RenderObjectType(Enum): + Quad = 'Quad' + Line = 'Line' + Texture = 'Texture' + Image = 'Image' + + +class RenderObjectId(RootModel[conint(ge=0, le=18446744073709551615)]): + root: conint(ge=0, le=18446744073709551615) + + +class RenderObjectStyle(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + top: Optional[Length] = None + left: Optional[Length] = None + bottom: Optional[Length] = None + right: Optional[Length] = None + width: Optional[Length] = None + height: Optional[Length] = None + color: Optional[Color] = None + font_size: Optional[Length] = Field(None, alias='font-size') + opacity: Optional[confloat(ge=0.0, le=1.0)] = None + visible: Optional[bool] = None + line_width: Optional[Length] = Field(None, alias='line-width') + + +class RenderLinePoints(RootModel[List[Location2]]): + root: List[Location2] = Field(..., max_length=64, min_length=2) + + +class RenderImage( + RootModel[ + constr( + pattern=r'^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' + ) + ] +): + root: constr( + pattern=r'^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$' + ) = Field(..., description='A Base64-encoded image') + + +class RenderText(RootModel[constr(pattern=r'^[\u0020-\u007F]*$')]): + root: constr(pattern=r'^[\u0020-\u007F]*$') + + +class Header(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + authentication: Guid + + +class Message(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + header: Header + command: Union[Command, Command1, Command2, Command3, Command4, Command5] + + +class AskuiAgentosSendRequestSchema(BaseModel): + message: Message diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Response_2501.py b/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Response_2501.py new file mode 100644 index 00000000..0ec62635 --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/AgentOS_Send_Response_2501.py @@ -0,0 +1,108 @@ +# generated by datamodel-codegen: +# filename: AgentOS-Send-Response-2501.json +# timestamp: 2025-07-15T14:07:45+00:00 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel, ConfigDict, RootModel, conint, constr + + +class Name(Enum): + GetMousePosition = 'GetMousePosition' + + +class Name7(Enum): + SetMousePosition = 'SetMousePosition' + + +class Name8(Enum): + AddRenderObject = 'AddRenderObject' + + +class Name9(Enum): + UpdateRenderObject = 'UpdateRenderObject' + + +class Name10(Enum): + DeleteRenderObject = 'DeleteRenderObject' + + +class Name11(Enum): + ClearRenderObjects = 'ClearRenderObjects' + + +class Length(RootModel[Union[constr(pattern=r'^(\d+(\.\d+)?(px|%)|auto)$'), int, float]]): + root: Union[constr(pattern=r'^(\d+(\.\d+)?(px|%)|auto)$'), int, float] + + +class Location2(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + x: Length + y: Length + + +class RenderObjectId(RootModel[conint(ge=0, le=18446744073709551615)]): + root: conint(ge=0, le=18446744073709551615) + + +class ActionId(RootModel[conint(ge=0, le=2147483647)]): + root: conint(ge=0, le=2147483647) + + +class Response(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + position: Location2 + + +class Command(BaseModel): + name: Name + actionId: ActionId + response: Response + + +class Command7(BaseModel): + name: Name7 + actionId: ActionId + + +class Response1(BaseModel): + model_config = ConfigDict( + extra='forbid', + ) + id: RenderObjectId + + +class Command8(BaseModel): + name: Name8 + actionId: ActionId + response: Response1 + + +class Command9(BaseModel): + name: Name9 + actionId: ActionId + + +class Command10(BaseModel): + name: Name10 + actionId: ActionId + + +class Command11(BaseModel): + name: Name11 + actionId: ActionId + + +class Message(BaseModel): + command: Union[Command, Command7, Command8, Command9, Command10, Command11] + + +class AskuiAgentosSendResponseSchema(BaseModel): + message: Message diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/generated/__init__.py b/src/askui/tools/askui/askui_ui_controller_grpc/generated/__init__.py new file mode 100644 index 00000000..9d9728fc --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/generated/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: json_schema +# timestamp: 2025-07-15T14:07:45+00:00 diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Request-2501.json b/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Request-2501.json new file mode 100644 index 00000000..4151888f --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Request-2501.json @@ -0,0 +1,354 @@ +{ + "title": "AskUI AgentOS Send Request Schema", + "description": "Defines the schema for the controller gRPC API Send request.", + "type": "object", + "definitions": { + "guid": { + "type": "string", + "pattern": "^\\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\}$" + }, + "length": { + "anyOf": [ + { + "type": "string", + "pattern": "^(\\d+(\\.\\d+)?(px|%)|auto)$", + "default": "0px" + }, + { + "type": "number", + "default": 0.0 + } + ] + }, + "color": { + "type": "string", + "anyOf": [ + { + "pattern": "^#([0-9a-fA-F]{6})$" + }, + { + "pattern": "^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$" + } + ] + }, + "location2": { + "type": "object", + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/length" + }, + "y": { + "$ref": "#/definitions/length" + } + }, + "required": ["x", "y"] + }, + "renderObjectType": { + "type": "string", + "enum": ["Quad", "Line", "Texture", "Image"] + }, + "renderObjectId": { + "type": "number", + "minimum": 0, + "maximum": 18446744073709551615 + }, + "renderObjectStyle": { + "type": "object", + "properties": { + "top": { + "$ref": "#/definitions/length" + }, + "left": { + "$ref": "#/definitions/length" + }, + "bottom": { + "$ref": "#/definitions/length" + }, + "right": { + "$ref": "#/definitions/length" + }, + "width": { + "$ref": "#/definitions/length" + }, + "height": { + "$ref": "#/definitions/length" + }, + "color": { + "$ref": "#/definitions/color" + }, + "font-size": { + "$ref": "#/definitions/length" + }, + "opacity": { + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "visible": { + "type": "boolean" + }, + "line-width": { + "$ref": "#/definitions/length" + } + }, + "additionalProperties": false + }, + "renderLinePoints": { + "type": "array", + "minItems": 2, + "maxItems": 64, + "items": { + "$ref": "#/definitions/location2" + } + }, + "renderImage": { + "type": "string", + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", + "description": "A Base64-encoded image" + }, + "renderText": { + "type": "string", + "pattern": "^[\\u0020-\\u007F]*$" + } + }, + "properties": { + "message": { + "type": "object", + "additionalProperties": false, + "properties": { + "header": { + "type": "object", + "additionalProperties": false, + "properties": { + "authentication": { + "$ref": "#/definitions/guid" + } + }, + "required": ["authentication"] + }, + "command": { + "type": "object", + "oneOf": [ + { + "properties": { + "name": { + "type": "string", + "enum": ["GetMousePosition"] + }, + "parameters": { + "type": "array" + } + }, + "required": ["name"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["SetMousePosition"] + }, + "parameters": { + "type": "array", + "prefixItems": [ + { + "$ref": "#/definitions/location2" + } + ], + "minItems": 1, + "maxItems": 1 + } + }, + "required": ["name", "parameters"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["AddRenderObject"] + }, + "parameters": { + "type": "array", + "anyOf": [ + { + "prefixItems": [ + { + "type": "string", + "enum": ["Quad"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + } + ], + "minItems": 2, + "maxItems": 2 + }, + { + "prefixItems": [ + { + "type": "string", + "enum": ["Line"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderLinePoints" + } + ], + "minItems": 3, + "maxItems": 3 + }, + { + "prefixItems": [ + { + "type": "string", + "enum": ["Image"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderImage" + } + ], + "minItems": 3, + "maxItems": 3 + }, + { + "prefixItems": [ + { + "type": "string", + "enum": ["Text"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderText" + } + ], + "minItems": 3, + "maxItems": 3 + } + ] + } + }, + "required": ["name", "parameters"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["UpdateRenderObject"] + }, + "parameters": { + "type": "array", + "anyOf": [ + { + "prefixItems": [ + { + "$ref": "#/definitions/renderObjectId" + }, + { + "$ref": "#/definitions/renderObjectStyle" + } + ], + "minItems": 2, + "maxItems": 2 + }, + { + "prefixItems": [ + { + "$ref": "#/definitions/renderObjectId" + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderLinePoints" + } + ], + "minItems": 3, + "maxItems": 3 + }, + { + "prefixItems": [ + { + "type": "string", + "enum": ["Image"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderImage" + } + ], + "minItems": 3, + "maxItems": 3 + }, + { + "prefixItems": [ + { + "type": "string", + "enum": ["Text"] + }, + { + "$ref": "#/definitions/renderObjectStyle" + }, + { + "$ref": "#/definitions/renderText" + } + ], + "minItems": 3, + "maxItems": 3 + } + ] + } + }, + "required": ["name", "parameters"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["DeleteRenderObject"] + }, + "parameters": { + "type": "array", + "anyOf": [ + { + "prefixItems": [ + { + "$ref": "#/definitions/renderObjectId" + } + ], + "minItems": 1, + "maxItems": 1 + } + ] + } + }, + "required": ["name", "parameters"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["ClearRenderObjects"] + }, + "parameters": { + "type": "array" + } + }, + "required": ["name"] + } + ] + } + }, + "required": ["header", "command"] + } + }, + "required": ["message"] +} diff --git a/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Response-2501.json b/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Response-2501.json new file mode 100644 index 00000000..864551a8 --- /dev/null +++ b/src/askui/tools/askui/askui_ui_controller_grpc/json_schema/AgentOS-Send-Response-2501.json @@ -0,0 +1,149 @@ +{ + "title": "AskUI AgentOS Send Response Schema", + "description": "Defines the schema for the controller gRPC API Send response.", + "type": "object", + "definitions": { + "length": { + "anyOf": [ + { + "type": "string", + "pattern": "^(\\d+(\\.\\d+)?(px|%)|auto)$", + "default": "0px" + }, + { + "type": "number", + "default": 0.0 + } + ] + }, + "location2": { + "type": "object", + "additionalProperties": false, + "properties": { + "x": { + "$ref": "#/definitions/length" + }, + "y": { + "$ref": "#/definitions/length" + } + }, + "required": ["x", "y"] + }, + "renderObjectId": { + "type": "integer", + "minimum": 0, + "maximum": 18446744073709551615 + }, + "actionId": { + "type": "integer", + "minimum": 0, + "maximum": 2147483647 + } + }, + "properties": { + "message": { + "type": "object", + "properties": { + "command": { + "type": "object", + "oneOf": [ + { + "properties": { + "name": { + "type": "string", + "enum": ["GetMousePosition"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + }, + "response": { + "type": "object", + "additionalProperties": false, + "properties": { + "position": { + "$ref": "#/definitions/location2" + } + }, + "required": ["position"] + } + }, + "required": ["name", "actionId", "response"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["SetMousePosition"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + } + }, + "required": ["name", "actionId"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["AddRenderObject"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + }, + "response": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "$ref": "#/definitions/renderObjectId" + } + }, + "required": ["id"] + } + }, + "required": ["name", "actionId", "response"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["UpdateRenderObject"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + } + }, + "required": ["name", "actionId"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["DeleteRenderObject"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + } + }, + "required": ["name", "actionId"] + }, + { + "properties": { + "name": { + "type": "string", + "enum": ["ClearRenderObjects"] + }, + "actionId": { + "$ref": "#/definitions/actionId" + } + }, + "required": ["name", "actionId"] + } + ] + } + }, + "required": ["command"] + } + }, + "required": ["message"] +} From 4bdcc099bef17cdf71525d5f1c5a5c699ace4baf Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:07:18 +0200 Subject: [PATCH 13/23] feat: introduce helper functions for json api --- src/askui/tools/askui/command_helpers.py | 200 +++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 src/askui/tools/askui/command_helpers.py diff --git a/src/askui/tools/askui/command_helpers.py b/src/askui/tools/askui/command_helpers.py new file mode 100644 index 00000000..6597b4b8 --- /dev/null +++ b/src/askui/tools/askui/command_helpers.py @@ -0,0 +1,200 @@ +from pydantic import Field, constr +from typing_extensions import Annotated, Union + +from askui.tools.agent_os import Coordinate +from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Request_2501 import ( # noqa: E501 + AskuiAgentosSendRequestSchema, + Command, + Command1, + Command2, + Command3, + Command4, + Command5, + Guid, + Header, + Length, + Location2, + Message, + Name, + Name1, + Name2, + Name3, + Name4, + Name5, + RenderImage, + RenderLinePoints, + RenderObjectId, + RenderObjectStyle, + RenderText, +) + +LengthType = Union[ + Annotated[str, constr(pattern=r"^(\d+(\.\d+)?(px|%)|auto)$")], int, float +] + +ColorType = Union[ + Annotated[str, constr(pattern=r"^#([0-9a-fA-F]{6})$")], # Hex color like #RRGGBB + Annotated[ + str, constr(pattern=r"^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$") + ], # RGB color like rgb(255, 0, 128) +] + + +def create_style( + top: LengthType | None = None, + left: LengthType | None = None, + bottom: LengthType | None = None, + right: LengthType | None = None, + width: LengthType | None = None, + height: LengthType | None = None, + color: ColorType | None = None, + opacity: Annotated[float, Field(ge=0.0, le=1.0)] | None = None, + visible: bool | None = None, + font_size: LengthType | None = None, + line_width: LengthType | None = None, +) -> RenderObjectStyle: + """Create a style object with the specified properties.""" + + return RenderObjectStyle.model_validate( + { + "top": top, + "left": left, + "bottom": bottom, + "right": right, + "width": width, + "height": height, + "color": color, + "opacity": opacity, + "visible": visible, + "font-size": font_size, + "line-width": line_width, + } + ) + + +def create_get_mouse_position_command( + session_guid: str, +) -> AskuiAgentosSendRequestSchema: + command = Command(name=Name.GetMousePosition) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + return AskuiAgentosSendRequestSchema(message=message) + + +def create_set_mouse_position_command( + x: int, y: int, session_guid: str +) -> AskuiAgentosSendRequestSchema: + location = Location2(x=Length(root=x), y=Length(root=y)) + command = Command1(name=Name1.SetMousePosition, parameters=[location]) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + return AskuiAgentosSendRequestSchema(message=message) + + +def create_quad_command( + style: RenderObjectStyle, session_guid: str +) -> AskuiAgentosSendRequestSchema: + renderStyle = RenderObjectStyle(**style.model_dump(exclude_none=True)) + command = Command2(name=Name2.AddRenderObject, parameters=["Quad", renderStyle]) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_line_command( + style: RenderObjectStyle, points: list[Coordinate], session_guid: str +) -> AskuiAgentosSendRequestSchema: + command = Command2( + name=Name2.AddRenderObject, + parameters=["Line", style, create_render_line_points(points)], + ) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_image_command( + style: RenderObjectStyle, image_data: str, session_guid: str +) -> AskuiAgentosSendRequestSchema: + image_obj = create_render_image(image_data) + command = Command2( + name=Name2.AddRenderObject, parameters=["Image", style, image_obj] + ) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_text_command( + style: RenderObjectStyle, text_content: RenderText, session_guid: str +) -> AskuiAgentosSendRequestSchema: + command = Command2( + name=Name2.AddRenderObject, parameters=["Text", style, text_content] + ) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_render_line_points(points: list[Coordinate]) -> RenderLinePoints: + location_points = [ + Location2(x=Length(root=point.x), y=Length(root=point.y)) for point in points + ] + + return RenderLinePoints(location_points) + + +def create_render_image(base64_data: str) -> RenderImage: + return RenderImage(root=base64_data) + + +def create_render_text(text: str) -> RenderText: + return RenderText(root=text) + + +def create_render_object_id(object_id: int) -> RenderObjectId: + return RenderObjectId(root=object_id) + + +def create_update_render_object_command( + object_id: int, style: RenderObjectStyle, session_guid: str +) -> AskuiAgentosSendRequestSchema: + command = Command3(name=Name3.UpdateRenderObject, parameters=[object_id, style]) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_delete_render_object_command( + object_id: int, session_guid: str +) -> AskuiAgentosSendRequestSchema: + render_object_id = create_render_object_id(object_id) + command = Command4(name=Name4.DeleteRenderObject, parameters=[render_object_id]) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) + + +def create_clear_render_objects_command( + session_guid: str, +) -> AskuiAgentosSendRequestSchema: + command = Command5(name=Name5.ClearRenderObjects, parameters=[]) + + header = Header(authentication=Guid(root=session_guid)) + message = Message(header=header, command=command) + + return AskuiAgentosSendRequestSchema(message=message) From 56a35afb4ba450a832224b53a841b5632f1e43ae Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:08:31 +0200 Subject: [PATCH 14/23] feat: update controller to support new commands --- src/askui/tools/__init__.py | 5 +- src/askui/tools/agent_os.py | 115 ++++++++- src/askui/tools/askui/askui_controller.py | 294 ++++++++++++++++------ 3 files changed, 334 insertions(+), 80 deletions(-) diff --git a/src/askui/tools/__init__.py b/src/askui/tools/__init__.py index e6232162..57c6fb4c 100644 --- a/src/askui/tools/__init__.py +++ b/src/askui/tools/__init__.py @@ -1,9 +1,12 @@ -from .agent_os import AgentOs, ModifierKey, PcKey +from .agent_os import AgentOs, Coordinate, ModifierKey, PcKey from .toolbox import AgentToolbox +from .askui.command_helpers import create_style __all__ = [ "AgentOs", "AgentToolbox", "ModifierKey", "PcKey", + "Coordinate", + "create_style", ] diff --git a/src/askui/tools/agent_os.py b/src/askui/tools/agent_os.py index bd845130..2953f44f 100644 --- a/src/askui/tools/agent_os.py +++ b/src/askui/tools/agent_os.py @@ -1,9 +1,15 @@ from abc import ABC, abstractmethod -from typing import Literal +from typing import TYPE_CHECKING, Literal from PIL import Image from pydantic import BaseModel +if TYPE_CHECKING: + from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Request_2501 import ( # noqa: E501 + RenderObjectStyle, + ) + + ModifierKey = Literal[ "command", "alt", @@ -148,6 +154,11 @@ class ClickEvent(BaseModel): timestamp: float +class Coordinate(BaseModel): + x: int + y: int + + InputEvent = ClickEvent @@ -359,3 +370,105 @@ def stop_listening(self) -> None: change in the future. """ raise NotImplementedError + + def get_mouse_position(self) -> Coordinate: + """ + Get the current mouse cursor position. + + Returns: + The current mouse position data. + """ + raise NotImplementedError + + def set_mouse_position(self, x: int, y: int) -> None: + """ + Set the mouse cursor position to specific coordinates. + + Args: + x (int): The horizontal coordinate (in pixels) to set the cursor to. + y (int): The vertical coordinate (in pixels) to set the cursor to. + + """ + raise NotImplementedError + + def render_quad(self, style: "RenderObjectStyle") -> int: + """ + Render a quad object to the display. + + Args: + style (RenderObjectStyle): The style properties for the quad. + + Returns: + Response containing the render object ID. + """ + raise NotImplementedError + + def render_line(self, style: "RenderObjectStyle", points: list[Coordinate]) -> int: + """ + Render a line object to the display. + + Args: + style: The style properties for the line. + points (list[Coordinate]): The points defining the line. + + Returns: + Response containing the render object ID. + """ + raise NotImplementedError + + def render_image(self, style: "RenderObjectStyle", image_data: str) -> int: + """ + Render an image object to the display. + + Args: + style: The style properties for the image. + image_data (str): The image data to display. + + Returns: + Response containing the render object ID. + """ + raise NotImplementedError + + def render_text(self, style: "RenderObjectStyle", content: str) -> int: + """ + Render a text object to the display. + + Args: + style: The style properties for the text. + text_content (str): The text content to display. + + Returns: + Response containing the render object ID. + """ + raise NotImplementedError + + def update_render_object(self, object_id: int, style: "RenderObjectStyle") -> None: + """ + Update styling properties of an existing render object. + + Args: + object_id (int): The ID of the render object to update. + style: The new style properties. + """ + raise NotImplementedError + + def delete_render_object(self, object_id: int) -> None: + """ + Delete an existing render object from the display. + + Args: + object_id (int): The ID of the render object to delete. + + Returns: + Response confirming the deletion. + """ + raise NotImplementedError + + def clear_render_objects(self) -> None: + """ + Clear all render objects from the display. + + Returns: + Response confirming the clearing. + """ + raise NotImplementedError diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index 7021047e..939e1563 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -15,13 +15,31 @@ from askui.container import telemetry from askui.logger import logger from askui.reporting import Reporter -from askui.tools.agent_os import AgentOs, ModifierKey, PcKey +from askui.tools.agent_os import AgentOs, Coordinate, ModifierKey, PcKey from askui.tools.askui.askui_ui_controller_grpc.generated import ( Controller_V1_pb2 as controller_v1_pbs, ) from askui.tools.askui.askui_ui_controller_grpc.generated import ( Controller_V1_pb2_grpc as controller_v1, ) +from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Request_2501 import ( + RenderObjectStyle, # noqa: E501 +) +from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Response_2501 import ( + AskuiAgentosSendResponseSchema, # noqa: E501; noqa: E501 +) +from askui.tools.askui.command_helpers import ( + create_clear_render_objects_command, + create_delete_render_object_command, + create_get_mouse_position_command, + create_image_command, + create_line_command, + create_quad_command, + create_render_text, + create_set_mouse_position_command, + create_text_command, + create_update_render_object_command, +) from askui.utils.image_utils import draw_point_on_image from ..utils import process_exists, wait_for_port @@ -248,6 +266,7 @@ def __init__( self._display = display self._reporter = reporter self._controller_server = controller_server or AskUiControllerServer() + self._session_guid = "{" + str(uuid.uuid4()) + "}" @telemetry.record_call() @override @@ -363,7 +382,7 @@ def _start_session(self) -> None: ) response = self._stub.StartSession( controller_v1_pbs.Request_StartSession( - sessionGUID="{" + str(uuid.uuid4()) + "}", immediateExecution=True + sessionGUID=self._session_guid, immediateExecution=True ) ) self._session_info = response.sessionInfo @@ -737,9 +756,6 @@ def get_display_information( controller_v1_pbs.Response_GetDisplayInformation: - displays: List of DisplayInformation objects - virtualScreenRectangle: Overall virtual screen bounds - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -753,31 +769,6 @@ def get_display_information( return response - @telemetry.record_call() - def get_mouse_position(self) -> controller_v1_pbs.Response_GetMousePosition: - """ - Get the current mouse cursor position. - - Returns: - controller_v1_pbs.Response_GetMousePosition: Mouse position containing: - - x: Horizontal coordinate - - y: Vertical coordinate - - Raises: - AssertionError: If the gRPC stub is not initialized. - """ - assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( - "Stub is not initialized" - ) - - self._reporter.add_message("AgentOS", "get_mouse_position()") - - response: controller_v1_pbs.Response_GetMousePosition = ( - self._stub.GetMousePosition(controller_v1_pbs.Request_Void()) - ) - - return response - @telemetry.record_call() def get_process_list( self, get_extended_info: bool = False @@ -793,9 +784,6 @@ def get_process_list( Returns: controller_v1_pbs.Response_GetProcessList: Process list response containing: - processes: List of ProcessInfo objects - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -822,9 +810,6 @@ def get_window_list( Returns: controller_v1_pbs.Response_GetWindowList: Window list response containing: - windows: List of WindowInfo objects with ID and name - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -849,9 +834,6 @@ def get_automation_target_list( controller_v1_pbs.Response_GetAutomationTargetList: Automation target list response: - targets: List of AutomationTarget objects - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -884,9 +866,6 @@ def set_test_configuration( Defaults to `0`. keyboard_delay_ms (int, optional): Keyboard delay in milliseconds. Defaults to `0`. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -921,9 +900,6 @@ def set_mouse_delay(self, delay_ms: int) -> None: Args: delay_ms (int): The delay in milliseconds to set for mouse actions. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -944,9 +920,6 @@ def set_keyboard_delay(self, delay_ms: int) -> None: Args: delay_ms (int): The delay in milliseconds to set for keyboard actions. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -968,9 +941,6 @@ def set_active_window(self, process_id: int, window_id: int) -> None: Args: process_id (int): The ID of the process that owns the window. window_id (int): The ID of the window to set as active. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -993,9 +963,6 @@ def set_active_automation_target(self, target_id: int) -> None: Args: target_id (int): The ID of the automation target to set as active. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1027,9 +994,6 @@ def schedule_batched_action( Returns: controller_v1_pbs.Response_ScheduleBatchedAction: Response containing the scheduled action ID. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1056,9 +1020,6 @@ def schedule_batched_action( def start_batch_run(self) -> None: """ Start executing batched actions. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1074,9 +1035,6 @@ def start_batch_run(self) -> None: def stop_batch_run(self) -> None: """ Stop executing batched actions. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1096,9 +1054,6 @@ def get_action_count(self) -> controller_v1_pbs.Response_GetActionCount: Returns: controller_v1_pbs.Response_GetActionCount: Response containing the action count. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1125,9 +1080,6 @@ def get_action(self, action_index: int) -> controller_v1_pbs.Response_GetAction: - actionID: The action ID - actionClassID: The action class ID - actionParameters: The action parameters - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1150,9 +1102,6 @@ def remove_action(self, action_id: int) -> None: Args: action_id (int): The ID of the action to remove. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1170,9 +1119,6 @@ def remove_action(self, action_id: int) -> None: def remove_all_actions(self) -> None: """ Clear all recorded or batched actions. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1195,9 +1141,6 @@ def send_message(self, message: str) -> controller_v1_pbs.Response_Send: Returns: controller_v1_pbs.Response_Send: Response containing the message from the controller. - - Raises: - AssertionError: If the gRPC stub is not initialized. """ assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( "Stub is not initialized" @@ -1210,3 +1153,198 @@ def send_message(self, message: str) -> controller_v1_pbs.Response_Send: ) return response + + @telemetry.record_call() + def get_mouse_position(self) -> Coordinate: + """ + Get the mouse cursor position + + Returns: + Coordinate: Response containing the result of the mouse position change. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + req_json = create_get_mouse_position_command( + self._session_guid + ).model_dump_json(exclude_unset=True) + self._reporter.add_message("AgentOS", "get_mouse_position()") + res = self.send_message(req_json) + parsed_res = AskuiAgentosSendResponseSchema.model_validate_json(res.message) + return Coordinate( + x=parsed_res.message.command.response.position.x.root, # type: ignore[union-attr] + y=parsed_res.message.command.response.position.y.root, # type: ignore[union-attr] + ) + + @telemetry.record_call() + def set_mouse_position(self, x: int, y: int) -> None: + """ + Set the mouse cursor position to specific coordinates. + + Args: + x (int): The horizontal coordinate (in pixels) to set the cursor to. + y (int): The vertical coordinate (in pixels) to set the cursor to. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + req_json = create_set_mouse_position_command( + x, y, self._session_guid + ).model_dump_json(exclude_unset=True) + self._reporter.add_message("AgentOS", f"set_mouse_position({x},{y})") + self.send_message(req_json) + + @telemetry.record_call() + def render_quad(self, style: RenderObjectStyle) -> int: + """ + Render a quad object to the display. + + Args: + style (RenderObjectStyle): The style properties for the quad. + + Returns: + int: Object ID. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", f"render_quad({style})") + req_json = create_quad_command(style, self._session_guid).model_dump_json( + exclude_unset=True, by_alias=True + ) + res = self.send_message(req_json) + parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( + res.message + ) + return int(parsed_response.message.command.response.id.root) # type: ignore[union-attr] + + @telemetry.record_call() + def render_line(self, style: RenderObjectStyle, points: list[Coordinate]) -> int: + """ + Render a line object to the display. + + Args: + style (RenderObjectStyle): The style properties for the line. + points (list[Coordinates]): The points defining the line. + + Returns: + int: Object ID. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", f"render_line({style}, {points})") + req = create_line_command(style, points, self._session_guid).model_dump_json( + exclude_unset=True, by_alias=True + ) + res = self.send_message(req) + parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( + res.message + ) + return int(parsed_response.message.command.response.id.root) # type: ignore[union-attr] + + @telemetry.record_call(exclude={"image_data"}) + def render_image(self, style: RenderObjectStyle, image_data: str) -> int: + """ + Render an image object to the display. + + Args: + style (RenderObjectStyle): The style properties for the image. + image_data (str): The base64-encoded image data. + + Returns: + int: Object ID. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", f"render_image({style}, [image_data])") + req = create_image_command( + style, image_data, self._session_guid + ).model_dump_json(exclude_unset=True, by_alias=True) + res = self.send_message(req) + + parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( + res.message + ) + return int(parsed_response.message.command.response.id.root) # type: ignore[union-attr] + + @telemetry.record_call() + def render_text(self, style: RenderObjectStyle, content: str) -> int: + """ + Render a text object to the display. + + Args: + style (RenderObjectStyle): The style properties for the text. + content (str): The text content to display. + + Returns: + int: Object ID. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", f"render_text({style}, {content})") + text_obj = create_render_text(content) + req = create_text_command(style, text_obj, self._session_guid).model_dump_json( + exclude_unset=True, by_alias=True + ) + res = self.send_message(req) + parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( + res.message + ) + return int(parsed_response.message.command.response.id.root) # type: ignore[union-attr] + + @telemetry.record_call() + def update_render_object(self, object_id: int, style: RenderObjectStyle) -> None: + """ + Update styling properties of an existing render object. + + Args: + object_id (float): The ID of the render object to update. + style (RenderObjectStyle): The new style properties. + + Returns: + int: Object ID. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message( + "AgentOS", f"update_render_object({object_id}, {style})" + ) + req = create_update_render_object_command( + object_id, style, self._session_guid + ).model_dump_json(exclude_unset=True, by_alias=True) + self.send_message(req) + + @telemetry.record_call() + def delete_render_object(self, object_id: int) -> None: + """ + Delete an existing render object from the display. + + Args: + object_id (RenderObjectId): The ID of the render object to delete. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", f"delete_render_object({object_id})") + req = create_delete_render_object_command( + object_id, self._session_guid + ).model_dump_json(exclude_unset=True, by_alias=True) + self.send_message(req) + + @telemetry.record_call() + def clear_render_objects(self) -> None: + """ + Clear all render objects from the display. + """ + assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( + "Stub is not initialized" + ) + self._reporter.add_message("AgentOS", "clear_render_objects()") + req = create_clear_render_objects_command(self._session_guid).model_dump_json( + exclude_unset=True, by_alias=True + ) + self.send_message(req) From 0c30f81fdf624ae83ce4597a7da0f7e88e14d900 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:10:17 +0200 Subject: [PATCH 15/23] test: add tests for newly added controller commands --- tests/conftest.py | 7 + .../e2e/tools/askui/test_askui_controller.py | 197 +++++++++++++++++- tests/fixtures/images/logo.bmp | Bin 0 -> 634938 bytes 3 files changed, 194 insertions(+), 10 deletions(-) create mode 100644 tests/fixtures/images/logo.bmp diff --git a/tests/conftest.py b/tests/conftest.py index 83e27bce..e84c3007 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -67,3 +67,10 @@ def disable_telemetry() -> None: from askui.container import telemetry telemetry.set_processors([]) + + +@pytest.fixture +def askui_logo_bmp(path_fixtures: pathlib.Path) -> Image.Image: + """Fixture providing askui logo as BMP.""" + screenshot_path = path_fixtures / "images" / "logo.bmp" + return Image.open(screenshot_path) diff --git a/tests/e2e/tools/askui/test_askui_controller.py b/tests/e2e/tools/askui/test_askui_controller.py index fb940a18..28fbe87f 100644 --- a/tests/e2e/tools/askui/test_askui_controller.py +++ b/tests/e2e/tools/askui/test_askui_controller.py @@ -1,3 +1,5 @@ +import base64 +import io from pathlib import Path from typing import Literal @@ -5,10 +7,14 @@ from PIL import Image from askui.reporting import CompositeReporter +from askui.tools.agent_os import Coordinate from askui.tools.askui.askui_controller import ( AskUiControllerClient, AskUiControllerServer, ) +from askui.tools.askui.command_helpers import ( + create_style, +) @pytest.fixture @@ -132,15 +138,6 @@ def test_get_display_information(controller_client: AskUiControllerClient) -> No assert display_info is not None -def test_get_mouse_position(controller_client: AskUiControllerClient) -> None: - """Test getting current mouse coordinates""" - with controller_client: - position = controller_client.get_mouse_position() - assert position is not None - assert hasattr(position, "x") - assert hasattr(position, "y") - - def test_get_process_list(controller_client: AskUiControllerClient) -> None: """Test retrieving running processes""" with controller_client: @@ -179,7 +176,7 @@ def test_set_keyboard_delay(controller_client: AskUiControllerClient) -> None: def test_run_command(controller_client: AskUiControllerClient) -> None: """Test executing shell commands""" with controller_client: - controller_client.run_command("echo test") + controller_client.run_command("echo test", 0) def test_get_action_count(controller_client: AskUiControllerClient) -> None: @@ -202,3 +199,183 @@ def test_invalid_coordinates(controller_client: AskUiControllerClient) -> None: with controller_client: controller_client.mouse_move(-1, -1) controller_client.mouse_move(9999, 9999) + + +def test_set_mouse_position(controller_client: AskUiControllerClient) -> None: + with controller_client: + controller_client.set_mouse_position(100, 100) + + +def test_get_mouse_position(controller_client: AskUiControllerClient) -> None: + """Test getting current mouse coordinates""" + with controller_client: + position = controller_client.get_mouse_position() + assert position is not None + assert hasattr(position, "x") + assert hasattr(position, "y") + + +def test_render_quad(controller_client: AskUiControllerClient) -> None: + """Test adding a quad render object to the display""" + with controller_client: + style = create_style( + width=0.9, + height=100, + top="200px", + left="10%", + color="#ff0000", + opacity=1, + ) + + response = controller_client.render_quad(style) + + assert response is not None + + +def test_render_line(controller_client: AskUiControllerClient) -> None: + """Test rendering a line object to the display""" + with controller_client: + style = create_style( + color="#00ff00", + line_width=4, + opacity=0.8, + ) + points = [Coordinate(x=100, y=100), Coordinate(x=500, y=500)] + + response = controller_client.render_line(style, points) + assert response is not None + + +def test_render_image( + controller_client: AskUiControllerClient, + askui_logo_bmp: Image.Image, +) -> None: + """Test rendering an image object to the display""" + with controller_client: + style = create_style( + width=200, + height=200, + top=200, + left=200, + opacity=0.9, + ) + + img_buffer = io.BytesIO() + askui_logo_bmp.save(img_buffer, format="BMP") + img_bytes = img_buffer.getvalue() + base64_image = base64.b64encode(img_bytes).decode("utf-8") + + response = controller_client.render_image(style, base64_image) + assert response is not None + + +def test_render_text(controller_client: AskUiControllerClient) -> None: + """Test rendering a text object to the display""" + with controller_client: + style = create_style( + width=300, + height=50, + top=100, + left=100, + color="#0000ff", + font_size=33, + opacity=0.9, + ) + + response = controller_client.render_text(style, "Hello World!") + assert response is not None + + +def test_update_render_object(controller_client: AskUiControllerClient) -> None: + """Test updating an existing render object""" + with controller_client: + style = create_style( + width=0.9, + height=100, + top="200px", + left="10%", + color="#ff0000", + opacity=1, + ) + + object_id = controller_client.render_quad(style) + assert object_id is not None + + update_style = create_style( + width=0.5, + height=100, + top="200px", + left="10%", + color="#ff0000", + opacity=1, + ) + + controller_client.update_render_object(object_id, update_style) + + +def test_update_text_object(controller_client: AskUiControllerClient) -> None: + """Test updating an existing render object""" + with controller_client: + style = create_style( + width=300, + height=50, + top=100, + left=100, + color="#0000ff", + font_size=33, + opacity=0.9, + ) + + object_id = controller_client.render_text(style, "Hello World!") + assert object_id is not None + + update_style = create_style( + width=0.5, + height=100, + top="200px", + left="10%", + color="#ff0000", + opacity=1, + ) + + controller_client.update_render_object(object_id, update_style) + + +def test_delete_render_object(controller_client: AskUiControllerClient) -> None: + """Test deleting an existing render object""" + with controller_client: + style = create_style( + width=1.0, + height=100, + color="#ff0000", + top=100, + left=0, + ) + quad_id = controller_client.render_quad(style) + assert quad_id is not None + + controller_client.delete_render_object(quad_id) + + +def test_clear_render_objects(controller_client: AskUiControllerClient) -> None: + """Test clearing all render objects""" + with controller_client: + style1 = create_style( + width=100, + height=50, + color="#ff0000", + top=100, + left=100, + ) + style2 = create_style( + width=200, + height=100, + color="#00ff00", + top=200, + left=200, + ) + + controller_client.render_quad(style1) + controller_client.render_quad(style2) + + controller_client.clear_render_objects() diff --git a/tests/fixtures/images/logo.bmp b/tests/fixtures/images/logo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5b6a07b437a3b0dfce5c963f938848ee95077c07 GIT binary patch literal 634938 zcmeI5O{iQ)dWJnD1SZ=M$ZD2G2{Vgp-7!IC@Mt86)ZORwC~##E!di$KOTq?Sf^!EE zGz=GEV+$sh(L!Fx0z>45q(~q!!CJ*D8v@$NEAO za6KHIKBs=3`o6cTtG=rGRdwL*k6&v3_ksTVH~sfNKN|h_qnG}!x&6}J{~Ue({XfS4 z_xz=oMt{wn=fC==fBu(0e)+%qj{Vn9{`M!AzWdSs{rmssx4-@E%lhxHu3fwK<6r#s zH-EA3pwy~o%4UtjG%ygazGJ-Bh9y0WRidh1m4clP-3 zWVPV0K7ZoHlb6ouExq0(a%Wo!HYq>3nP8PE5(FRs0p|opLMrte>1QLG2VeX3%liWS zDWm$_aY=C_!jj*Im(gD5?Ms3XfPhy5O{ekEC;cx!8rIDR!?&w<-WYBi86G?^ zJn(7&A?=XGaR1uy$m=R(b#|k=^p=XP!mA4UIyn0D*3oAVyb>dE2tWV=3kXPv)F)Ku za5y~NLElWgqN=Has%E3Q&%fXg0uX?JZvqY?wFkMvgk zTPD#Q+8#+kAa4Tdo=IALt5bgI*Qbxsv(4Kzs2v1WA)tt+W&$fzJXL-gJF1a-w)Lem z5?h9CSFuLkg+Mk0UPvng0KnLv7rUXYwW>GmtT$GZ27)D*|#T?Yf`0Zcw|W2q=fvV1!i@_hdk1xgKt}>Q_q45Rb?J-_r!Gn~sB8xUT8&$6y{RM1 zS&G}y-S!%$BiYOd&~fdcGrS@KbZaw{0;=PlfWig{$|^f-VD&Ex1s)t_<3zfq5ZH}C zeR8n6i;)5Zbb6!v4!~{}OD+(wLZFGuVo5ALSa$^UgQ)lTQ!DmQIU(Sc0C8FLJUtQ6 zw5eCqC2sSZ4@J)a)T7QmA$_Wx^y04sF=x*%M zw?O5Q{`VUlumbms1Oid9$vHKFZ%jcCi&LUo>V3^d4Vle87h?kfuWdGEr89b?!v*VnhPfjSCJP zfutbdl>h;>5w(J>I}l)ffmcBwaUTR&c-z6#c_jjYoqILM8ZrQDlR&dhfqfCp4o*gp zyWp(Yf51ooiZnwKXohE*1q&`6CCKCIbwpr8N&$KKBfu=!>S{m=&I$Cs{cO0-*<1Vk zIX)?eB%oEdGHK^-LV^(JOh7x&hjan*f`D%V9H!7&4S3Nx0ipsMqJ_wn-n6oD;XUflKx?WTszBC|dS5Jg~D6DYZJ0^0b=rU=T1t3)(H^MRjeL5uef5ct-Ax|hky?PoCxMzZOTlLm0UjDvrU>B_p2_R))xJP zhnIEk(jNqd#q&XtMAvK01E^<+|*5Kf4 zIF2U*`sF^jy&bEGrL+tkcxqWC+sG^%8npY;kL3a>m!K9)G$3J0F!sfItFI z8f&6Iqd7QF)h{_&!VF4N(Z%)En$42k!BgF}%5^dJbUsy4JwYfrS-Dj@O-xB563~L6 zk{!WU-PhN8-`$GXtjlHn^cG7_d{{zn$u-f-wHi@UCJ5;C!~QRQSXaqu*5@|NEv{tg zv=57|`v;GvH{FSnha8p1e#ziw$*YyP@u(A zc1>cktZvINYzg~;hj&=%?_0<4*J?moX(q?Y|r zf=TaS#K66gu$6&{P^*;-$(mU&z7ub|!bxFtd(HYUAEv@q-fpcl!PHpN<=k;Hh$Wb3 zs7!u2w-!RV<{4Wa_X*Z=?lMX+o2jl@Bd06t!(iC_aMsfDxWi%(jqF_=;(^Z(SQ1gDSrFqOj76jk%K(P9==2Z$Hm z&_1ePpB%82K{oC~G^`IFQJR^>Yt1uw#c_E8Sa`B*emKwMY~3ds){`S=KN34>=X_0j zvLe>lPMVp?>t_#GGwaJcN;Ww3T zn=*QKb$!Sa%)*l`@cTNtF}o@Nvt9n2w?4b!s+p{$qbmF3S$N9Kd|B~=ACyz)$go4K z>m6dpQc&RUJI<~hx4!cWc9;EucC9c26*3(TW^(QblL?wWw5yvPs>+iDxOPi`O$@r3 zWvsV2=D@A}&!#pgDR66K#)F#|XE|`kA%UVIRbpwQlYE=qm6@LKHcBw^ss5inaMD)GPtHEwQpDJc1=Tv)1eUPXDV+j_zu2(yFp^j3hWkpgwoJeT(p96as8u zIAye+{)xtV0!y;l@8lLm7#(IxCpL_e>c}34t!5%APALjwT5J@PvOCa;4dVsM1&s}c zy1BI)}M>IAV>H;%j2k$gBmQHL)XY4)tBuz8$S1QH|LK+xdS$~$?Ib}Mr zAzh%rIWIIeq=C_u?W}~JUZfKn(*Bi~HjVVul*uNG#)h^r_B>2!Q7xU=(Dr}-{ba?^ zQ^C;Kz&2LYK^vZo)>X1}Vgnn$vg_a8cGY}V(m`V*nAz9GEpt7@|9!thu^eppllvPW20D_PEyOpgiKb1BN09C{W8z3 z>eI(e8q5ll2x#m)WAJ^SjbbAD8ryXEHt%`q50AVavE8F&jmFM12H*D!491RP;k#za zw#mNDdv5wa`{}MNlJQM6cCIma{xMbHX2t3FQFZ=Atac|~g>$512?0ui#>TSw`rJl< z_9cs532^LeEVEa>rOo-Gv9XLzZoaGgbJI5g!eV3D{3zejRy(4x5$%m*Xnf1*uIcM& z)QF8v)*?{UZ~+<{(dJA0(X^}Lg}%wr-kv8K+Bj5EmXF4^F$rJKtgrQU?u8ba6(apI zD5|C!eYIu++GVI}<@|_4W8<17yB!ABZPw4mHTZGvgO4`@H+`(^(AaUKN4a2&n2?q~ zxc`2XRwmO~0>k}l{WA8TLt|%KKkyya)drK<;rd$O#wEK21QcLU!iWJHyTAs*d{kN} zOE5*9%7~DyF!sDuE+tHUp|MMugr|p#3T2s+zF_|(WXqHFu9$50U0F1CMGJBAdI{g= z!L)Suj0o9EHS8h#-*ITH6Omjok?hTEcijsZMaDqEiYDsy^}J&Y&{(g=(?0P+=2&Bi zt$r!AZwsCbPhgO5i~$-O-kf&Lk>LW5^2Uv1_~USXqcoj`$31shB2F#xv&_)xyAa|oCQQe4p|R=M(x@a^ zhOao3&83neq98T%?p7X+8`zzyKx4Z#y2rOzjNoX+1Q7)ut+d^;0=EUwuM&$RX=tol zGjNic-LLGWI+?y7uC8o4X$}%eihza=Y=s=4u}Rs_s4x---}+NR`V7VW84QP8!{9A{_GN;46TAU}F57ck2j?Q`2{-;zrV+4nt!Xw_~hN9f*vhQB9*IVK6q9 z=?2bM@m-0FEgBoxBwA)?=%-McBFtcHOH0e?F@+y!(+_oS8}~_OnHU<5Tok;7f{YY%JC|{gqcJ6BJXT5P`l``<|t^`d_i%W)*`mtx{AT0kS2p<#yQ`n>d2>aL z9XGDN@0wPiXX`FthAq3t*0t=#aCm4>%eVf3Mj8X}v)cdff2Tv+!E9V=so(RrOor$n1EtF^RpjK?kD(#+jM9d z72InICXB|8?7ta3Kxy}Ckx6}!T#TiIi!VKf2S1x-UQe#I3 zfYP>aBdr7p?={wQ)WVtegwuag%YPDY5se$rcUoXb;Wc(-FzReDY`&mfMjuHo68EnJ zi(rk1T;>C@G*)f&VmgfRocW^%)rW7-8Z&nm6R6H^Qlw*>e%i);5)2EM2&r69y@pSi?}|2LVGwktXCdMRqwo!loOdKOdhKa zjjr;OFX!QU4r>u#WB(kB(!c+n!+PbBl;pyMtR+>*40hZ~d6H|7wtn`2F~BMDNk?PV zb~;O)P>{(6lDY0-(trMj;;}IS?Pxd2(A>2KHpg|bc+o@}FaS6)0GO1<%A(Xj%u$YI zL7Pch^s=~R9@DdUp>Ngn4^P>%ee(;STg8@A)7Vk-v5Eb-P4~2C9+)Jcv!Tc6EMBCu zl53J`hwH4OJ0?1%9gHeXja8engk;p3>>|6AgKKKLgBK+7is50{nK3Ix4KXk~va4h@ zR-V-i>=eKCL^d6prKGa+!*+kA<}pez*>HB-!tHl%${O3qZ1GD-WT=yN%k^Rcc1M}A z{4!->g5)}JjU72u$zwYlp14?4r#>}$0)pmwrz(=iKlM}8ZJ*F$Y9=&R_GY(#vZ7UR z8p2X)qy4E?1Rmw}EIYBIhNCNMMPt=o^~pgL`;VJxu05Qkl(YTA7T0p-G}X0BOKG^T z&j0A21u9`kV~;+)rIX4R)FsQ0G!?Ro-Ofzo^2~^UIU6XUeG4Bku%xly3rm5MmFQ|AB^{>yD_G%8YHY&$Z#!(b0=q`zpHvn#wltY# z8A3~E*UZt_u&rE_a@57nJu5BZyqrcgwkVm+c+$D0c(#1ZVrNNXl`U&${V}56w8j>)CR)ZB-9bzg zU~uEY*sx7p6cw0PY;=KXjg{l8;j-V;fTdn772e!rsJ;|hRxOXm$~?i=y2i@(EY5T+ z)yqO-TPlpXHP@xhW|q0;D+7&{1Dfl=ET^%T&a@Pn!XGoYSwRNdaW7?Z<_2??^3!<_ z=b^EU%;r1)#g+vv9od$~maxKWs^PN#$+@e{W}~qg56q&mQ?5GipY>Tw8^Y*l?|Bu; z_P$P3EbsW~Y&2G8+57gh;V=Gi*RK-OH|x{KvUNJA8!y;euvuofh{a8NR#cCiG*&`1 zxc2UfKoWets0g1`zD>~BRp^CzH~T1{SpmsRW3!CGLt|UIzb%a|bNSxz$m_Ezl=q#? zG*-@-UwjA}i^jGjkp5#5oV*ovws!exY<`npXlzUApdZ^3RK&;7*og2QW}Vr}Xf(E^ zZJ@C&K}CEFjg1K3ZPqyrt)sCmZ3B&M2`b`aXlz9IZnM^2RkH&lM(?1pEo}phZ3!yk zV`ywd_|CJo<#7x2AB}Bk8@5`!%q=U?*p|j@;<0SvxX{>^_GU|COWSm7)QD(oOJlb3 zSRQd)XlzS+(}K7KKL=9#sKm9j&%Z!pTN<;O$9C>!5c8~M_-24RT^qY>t!?cIQx6X> zTfq#TM`JT+#HlJ|u+#HrR zmd#^mY&K0fSrO|?5+ogy)!}*`0drfm7dY*O#?G@|>-SABN#LxRmgZ+pV|5&M%c^Db z7#f>RQ%+UHbbvvDy`8D%Yxz%mKUj43chp(J@VTS0;hBfY(R8eAnVUIxFbs=}`(&9N zYHIftG}dn0?OAeL0qT>%oM`NxjXQe4Vhl-XtG&?Jmd0%HF?&BGU*0!T+A=qD?qFm6 z$JZynn@n7nHV}lyb}(!!uh<fh(W{Xc69WJnlI#!u22I&oM{yrA2@cE*#;h6``QQH^n zUmJHJOkC)!(CT-%Pv~@sBwdU-@7MCGR+F|ySUuf*C(PnnX+)9M(ozA&|O-h!zYmFH6cJ4W6 zl1_qXY&vb>t0d1J*z!AH9E`_kEx@8^H(O0SRoc8~Inme!rkl-2hK@y0G;cQ8gH^=h zGK49a9ppPOi^c|Xgoqg#T2ZS5A0vV?nsvQ#WJTFq?GVR)4%ibJ(_;xxi zxME3$>#t-OBDv{o6&XVRzf^{VzY7Csuav%VP70n?+;YT6?moSqUwW zTqMgd*@Br{%GXl)wLBq%Q-{#lWF5zC!8Fd<(y-$`)_Z*2ZN*DS&D>JHrEE;5Yq~>= z#+KlNs-u-1@Ot0n7P=G0z?M=ia}O)n!0twfXlxi4h@Oj;X_2GP9zgja@^w~t zjnG;gIzVGBI#h=;Ycs3PwjJ!ndU&`))p$h&s;yJOnkjBZ=9CtVEyP1j>@u47-XLBr z&C2f-SNg0Il&lQWqOo2rKb^!)Xe_&PcQzR7yU2FaUiE3UPCW5-VQ6e;tG4x`361T4 z^QkSWNtIUH>2y=74BpaqZNrTtS|C6*4*o=vU7|ixH1N@TdcR-pZ) zTxB#i<<=>sZ0npw`-LlwwX%t2DYpIcJ~XzRwobOD492<=Sfx|iqS|DwdR#Cxc8r3H zSOjuC^x2_uwofYWy<}sV=qmZ5v8&MIT_*&3Pd;z2Aw0P!0WB$Y(k>+8ga8`r1S5%b zCZG+J_7n{sSc(AA1)Z(Y$BSsJ52~cuo&XUAOX+9Jhpik#+}=*?K8eQKZMz&wPDH_T zXAuRH@>|Z9-RXM)8k>F_Wn4lw<(?Eqhu0>Ky~x;vOxpkO4n3>SDe;C8##ps|TGM1jR%pkS)!>Gq!t7bN0SXlx=4 zQD89`C~zyPv#Bv$kb+yGu_?4diDh7*z~?~0NN*V~NWrtv*c4i!z%o>q&dm0^xZ{=p zixE=rEHpNSRw%Fx3>3JP(|M_}7$LfIp|R1Mpu_^O^uYf>!AN!cx3^0)uy!;4VaTAd zVK|e^B!T|@_vZDxxbK_*hkQ-iUifP?Hazpfb7Z$z=PJ55L3Wgl>v3poT>b^-&Tg@b zCDHw-JNF3Uis)!)Y()4aW=+UesFB!7ttN;oqOYN`5#bk@H6dG*(iiNS!x19-8X6lB zet}sNvK35Mr!pdlE0(*Vv9ZV(n6KP?%JKPUFaq^i4xrf=#p%%4DA>!)v^swxn52-= z6ah^&mT7g-YmLT6Z-R0PP+i%aa(w<7j6naZtL0c)QZ+?mlWLB<3)B1RYA{J5qiF&= zck{NcWNU}UCfhW*6-?`ApFNm%{1|~u#g>6}wNZQujg5l6z)S}>FBU6q=~SFR+3>E1 z#)fBJV2-SxO+;qd?J&Iep|Rna7nmbqv59D`ioq5!fgKQy4Gg@%?C8X%Bd{t7=X?eB zK{Pfn@B*`=6PuLAHeK0+2MV;qSXD-2W05Z;Upld=39QP)ZigYg4~-2;yTH8Y#3rb* zbY(+&A{rZ#c4>LhiA_^r>B@%mL^L)e?b7n16Pv8Y(v=P7jA(2y)TL!aCpKk)RoV0n zSei{nsjqg5NZb;f7mv*`!dM!eSm&neJi+?h@i4|vaxQ3W$*u3N?sQ_E>!Ftfckb5p zA%A8-$|6wUDa`#peL&NDB_Oxe;U-=*fjwkg6W|ycufEV|?9Jbo<_m0A?ANGtDk1{w zS_!>6srL2tYZ5QVIe;LMN)5`}Hd$3p1b&vqDA1z33SfZ5^_|GdFMrNhT|6D25tGV7 zRrbfT^prW;+f)yB?3k?l^5?nrxs5UBLM}Kw&YwAH9HtN}%CDNk{cHXVqvVu_^`ZQ% zWpRz_jUy$uxWBq{?CfI0OZ?O7(p&y)qvVu_2VPCQ>75sk?`uy6Uv0hVys=0y7yvlR!-KEoYFcz+-CIlUKYViah4%Gg#K5`ND8Vd8WmPF3tO`%F|IPLG-pZ3k2{2;d z+|AXM%`J{==iYFg%`O~o;7K&BQO)d7Yz5{y*O|f-tnwOUQ*{b&Q0LVr8n%N{*?ooG zWu1GF63k|@n5i!J=D{%sX5+&<>pW|0o%>NHBL*5JIQW`#IE5#eaqvlJ2`b@5eh)f# zd>smG-ExQ}aBdZYyvC8NTX@Lw_t=%o!>MG0k2ga$qT9Txk2jqwOyLPCTC%ru&uuf2 znk53-%Ao(t!o9$G^|ipi_w8qv%;5PKDzFaFagL(!1c&`!vMGTrNAOYF{#REEcLX2R zAFjW0^yw`h?d2uSr?-gI@?i$-zwO0b4Njj8hlhL^Sm9|JI=hxLXMNZz8^0j1V*-S7 z`EW6%X=43Xb>o7k>X)2sGYtFW=Geu!fI#o@^^!fpU)>X*0%MZPQ`56%7Ezrgz?n^+ z+^zcEsT60Hckb0&r#w};@MKvtJ1Z~T84+MB15e_hsQ#o@foXRI78-bJYocM1)5Qd; zbH_c|9?9y5c?um`#s~bFBAXH{mKQ!10Tw3sb3mmWw?nHrIJ&R?+Lz@9NN7s}gc6`%jX;7h z#+*|w&EiT9efF@S!K56i^HZNcF}SkX|MH_IobuTNCnlt%`VTK_c3aD1mBnO^TstRV zap|-ZGb0fv1c)?n?ve`<)Cyb;BS;(dJ7U?{F%3R^FRI6t$bu~R$SnbVKRR(V5-FKL zeRAN|EJ>{;0nJa<7f)-VN`I2j>A&xLs#*rCHJdFHka6W@q*FM7iUmQQ2WIoooT6$Wrzl(&sJ>eQtW79NK&b3u0vQ~5;Z`3=ZFK_8 z+61;hq&EuzEhHHpUUo)ubq6Gc5(pr(i~BZwS^@zCwgjz$axn%QU3p3?00CW7Zpc4#B|w-~Y2ubn zeHDYvDzIFIg?fpA%$u`i(-E9vOTwN8$WfLA*o&Z8O-r!i?9i2^$dp_unRJ4VMv;mo zpp6jOZ?#UVAhb?590=CUm! zfo(QRfBpr35J;1NLT7a}=dy;)^AJdZ070;6stTo=B~V>DlY+}o1_-n#Kor5OBXcKZ z0y_7ky?OH_1mY5qxu)z*lnnyA5?~fAu5OTf8v@L5?drVTv_hbn1!LFQ@@9_Oh+7KJ zG~2u|!^H%jeF8cWtnMF7!KWw#1V#jg{e!))u3G7fGCQCtD@4EUma`6xT_E6 zB25U4324CrN}IkIIxnGuvefirGvERO5b#O>rFAZ1$tK9$mRDCIaR@9RfYK%_j7|!M zx-Kw&K7v3n0w}E$K}#wT4F_pE_h2SOMi79&o&-?Zq(riFVXCcDYRWyEn+G5OfhYt9 zH!l)N+gabDzu4z2n09M(qBs|sLf{2~XAg9&^We()>ih{-<3^Xw#RX6U)n_-fny)#D zo3mmOSO^#-pdX&v2At0AVyz4OshUG$0xTt%tBg=avv%Sfu#sEJ=@dATxm`@ z>1anR1_YL}G#-XP$pjQuG>SuD7-7NJgy2Y8n>c|dH%qn_>J9-2tU^HDGwr&spd<8l zq_;v*UD>49x{6WpE(9PjOJFo?+vx3)*BA8eviwL@MptJ|f;$j^fF}a|Z>|sSY&S6p z!^2sMsw$(X^G5aI+bXsSuPXE&eZu(a-i>Z>T{)G4K*j``NwkNT)%Ddc zZuNdORV0ZEqrHugo~)FqvQ_~!j!M5YV@soI5P-lW0co%PnrXE=+s)sN3sORDV$~n60_fO^-A;N_bMte9|dT>t<8 literal 0 HcmV?d00001 From bea60602864fbe11b672ea69e00efa375f28ef82 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:11:39 +0200 Subject: [PATCH 16/23] style: reorganise imports --- src/askui/tools/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/askui/tools/__init__.py b/src/askui/tools/__init__.py index 57c6fb4c..24510a63 100644 --- a/src/askui/tools/__init__.py +++ b/src/askui/tools/__init__.py @@ -1,6 +1,6 @@ from .agent_os import AgentOs, Coordinate, ModifierKey, PcKey -from .toolbox import AgentToolbox from .askui.command_helpers import create_style +from .toolbox import AgentToolbox __all__ = [ "AgentOs", From 5bd4a219ab459c2d7a5f78dba2add27b6afb01c3 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:18:27 +0200 Subject: [PATCH 17/23] style: update docstring for style annotations --- src/askui/tools/agent_os.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/askui/tools/agent_os.py b/src/askui/tools/agent_os.py index 2953f44f..00b8902a 100644 --- a/src/askui/tools/agent_os.py +++ b/src/askui/tools/agent_os.py @@ -408,7 +408,7 @@ def render_line(self, style: "RenderObjectStyle", points: list[Coordinate]) -> i Render a line object to the display. Args: - style: The style properties for the line. + style (RenderObjectStyle): The style properties for the line. points (list[Coordinate]): The points defining the line. Returns: @@ -421,7 +421,7 @@ def render_image(self, style: "RenderObjectStyle", image_data: str) -> int: Render an image object to the display. Args: - style: The style properties for the image. + style (RenderObjectStyle): The style properties for the image. image_data (str): The image data to display. Returns: @@ -434,7 +434,7 @@ def render_text(self, style: "RenderObjectStyle", content: str) -> int: Render a text object to the display. Args: - style: The style properties for the text. + style (RenderObjectStyle): The style properties for the text. text_content (str): The text content to display. Returns: @@ -448,7 +448,7 @@ def update_render_object(self, object_id: int, style: "RenderObjectStyle") -> No Args: object_id (int): The ID of the render object to update. - style: The new style properties. + style (RenderObjectStyle): The new style properties. """ raise NotImplementedError From dff67d5c9e1369021e9aa8097192da6dc47d9b54 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Mon, 21 Jul 2025 10:05:55 +0200 Subject: [PATCH 18/23] chore: create a dev dep group and move dev deps --- pdm.lock | 250 +------------------------------------------------ pyproject.toml | 6 +- 2 files changed, 9 insertions(+), 247 deletions(-) diff --git a/pdm.lock b/pdm.lock index 9521b8a2..a103e772 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "test"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:3f1210874dcb559b27dbb933798fe3fad3a956fde20d6ad049af00dbfb182e4b" +content_hash = "sha256:77f62857d49e7ace12aee8cc90c03ebac806aa42e499d4b9353af9a1f3657974" [[metadata.targets]] requires_python = ">=3.10" @@ -61,17 +61,6 @@ files = [ {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] -[[package]] -name = "argcomplete" -version = "3.6.2" -requires_python = ">=3.8" -summary = "Bash tab completion for argparse" -groups = ["default"] -files = [ - {file = "argcomplete-3.6.2-py3-none-any.whl", hash = "sha256:65b3133a29ad53fb42c48cf5114752c7ab66c1c38544fdf6460f450c09b42591"}, - {file = "argcomplete-3.6.2.tar.gz", hash = "sha256:d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf"}, -] - [[package]] name = "backoff" version = "2.2.1" @@ -83,42 +72,6 @@ files = [ {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, ] -[[package]] -name = "black" -version = "25.1.0" -requires_python = ">=3.9" -summary = "The uncompromising code formatter." -groups = ["default"] -dependencies = [ - "click>=8.0.0", - "mypy-extensions>=0.4.3", - "packaging>=22.0", - "pathspec>=0.9.0", - "platformdirs>=2", - "tomli>=1.1.0; python_version < \"3.11\"", - "typing-extensions>=4.0.1; python_version < \"3.11\"", -] -files = [ - {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, - {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, - {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, - {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, - {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, - {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, - {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, - {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, - {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, - {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, - {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, - {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, - {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, - {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, - {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, - {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, - {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, - {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, -] - [[package]] name = "certifi" version = "2025.7.14" @@ -193,20 +146,6 @@ files = [ {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, ] -[[package]] -name = "click" -version = "8.2.1" -requires_python = ">=3.10" -summary = "Composable command line interface toolkit" -groups = ["default"] -dependencies = [ - "colorama; platform_system == \"Windows\"", -] -files = [ - {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"}, - {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"}, -] - [[package]] name = "colorama" version = "0.4.6" @@ -356,29 +295,6 @@ files = [ {file = "coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b"}, ] -[[package]] -name = "datamodel-code-generator" -version = "0.31.2" -requires_python = ">=3.9" -summary = "Datamodel Code Generator" -groups = ["default"] -dependencies = [ - "argcomplete<4,>=2.10.1", - "black>=19.10b0", - "genson<2,>=1.2.1", - "inflect<8,>=4.1", - "isort<7,>=4.3.21", - "jinja2<4,>=2.10.1", - "packaging", - "pydantic>=1.5", - "pyyaml>=6.0.1", - "tomli<3,>=2.2.1; python_version <= \"3.11\"", -] -files = [ - {file = "datamodel_code_generator-0.31.2-py3-none-any.whl", hash = "sha256:78f200a9e673ee4d041e96e82a835273baf4ce15e446d46501c0433d82af3ef5"}, - {file = "datamodel_code_generator-0.31.2.tar.gz", hash = "sha256:47887b8aa6fd69865e07e2893c1e76e34dae753b9a97f1020357af8337bc4cdb"}, -] - [[package]] name = "distro" version = "1.9.0" @@ -438,16 +354,6 @@ files = [ {file = "fsspec-2025.7.0.tar.gz", hash = "sha256:786120687ffa54b8283d942929540d8bc5ccfa820deb555a2b5d0ed2b737bf58"}, ] -[[package]] -name = "genson" -version = "1.3.0" -summary = "GenSON is a powerful, user-friendly JSON Schema generator." -groups = ["default"] -files = [ - {file = "genson-1.3.0-py3-none-any.whl", hash = "sha256:468feccd00274cc7e4c09e84b08704270ba8d95232aa280f65b986139cec67f7"}, - {file = "genson-1.3.0.tar.gz", hash = "sha256:e02db9ac2e3fd29e65b5286f7135762e2cd8a986537c075b06fc5f1517308e37"}, -] - [[package]] name = "gradio-client" version = "1.11.0" @@ -584,61 +490,6 @@ files = [ {file = "grpcio-1.73.1.tar.gz", hash = "sha256:7fce2cd1c0c1116cf3850564ebfc3264fba75d3c74a7414373f1238ea365ef87"}, ] -[[package]] -name = "grpcio-tools" -version = "1.73.1" -requires_python = ">=3.9" -summary = "Protobuf code generator for gRPC" -groups = ["default"] -dependencies = [ - "grpcio>=1.73.1", - "protobuf<7.0.0,>=6.30.0", - "setuptools", -] -files = [ - {file = "grpcio_tools-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:0731b21a7f3988a9f8c244ffe3940a0579e5b5f2a99d08448459e0b49350d47a"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:15e47b19b70ce6100e9843570e16b0561045c37b5e9d390f1cb54292c99b51b6"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:fbe6cd3e863928b5c127d4956c60e44101f495ddcb69738290db6ef497ce505c"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71c35a6b4d125bec877daefaf7dedb566d37ed4e903a45b74e491683e006afa4"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9486235da85a80accaeaab5829c09e19b70ee96ff100d3f7b342ec9344d96134"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:86dfd562a9ebb74849aca345237cf87c2732067e410752ff809b8bfdf7aa5f49"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bde8101bc7a60de6297916a468bf7900be6e2c0f9965a1a6591aa06bd02e2df3"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b41e2417003b34bf672aa4ec5a48e22d9fc28f7de5f25d9a01fb1e3dcc86af6a"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-win32.whl", hash = "sha256:bb05d02ca7d603260555cc0bbec616b116f741561d5b5c78a65bc3fae5982d5e"}, - {file = "grpcio_tools-1.73.1-cp310-cp310-win_amd64.whl", hash = "sha256:5f0cd287545c9430e3e395181ee11ca9b7bef4c41b1c28afa9174ea5a868dcda"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:2bc4a46177df43853b070a4b6b6106d9829a639bc8b9516a005a879d3e5da0f9"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:448b38ec72ed62c932d48e49e0facbb51e8045065dabf3bb63149810971a51e7"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:249be7616b323b8af72a02bd218bfbba388010e6ccb471c57d42e49b620686f7"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:129dd1e46386da74d78d588c5a7f5c51d8dc2ec40fea95f9a012f655767fd5f3"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d53cd62c30fbd9597c05066a45e5750a11ec566c5fe0d17878e169bd2c66157"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d8f4e2ee735dc6033b6f3379584759cc95259581c9bc58db5dd0e69cc71310f1"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2795d85da34846bbe6693f0da4c1f9bfa8a77e6cbd85cb83eb1231f1315a2ae"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:40834bf3551a6936151f4ba7eba4a37c8ff66eacb0bb5affa4630afbe78f061d"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-win32.whl", hash = "sha256:0b809d936463fabeda6999eb681b5d4869dd8e5fe4d2fb9dbfee0d2a4c0ce67a"}, - {file = "grpcio_tools-1.73.1-cp311-cp311-win_amd64.whl", hash = "sha256:e0257401088f29315fe0ad7f388ad061cf5b57a89e9abf039f8d9c7a54e9580d"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:23af3de80c89ee803d0143c6293f8e979a851f0414702b5de973e205fca69db2"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fbf17ad6fff6c9002d28bc3632216eafb59631308b05c4cf80e72d21c33f7dc9"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:aa05ecd0b2ca583862d107eea4d9480a2d89987ae46bc02944cc450a122f833b"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:664fbec02f93d14bb74c442e06ba20a4448a20236ed3d6ac5d2c4ef82a33a8b4"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60aa528d7576c932f43172723188f53aaa7bdb307e52d22f2e5ab831a3667693"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3893517010bcdb8cb4949715786bc5953fe7df6b575f8b1725531ed492b1080c"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:654083a2d4e83679d4fb6ac46a2748c1b57ecf45be5cbe88d88a1a4aef6b3281"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cd8b1077849acd69923b08a8e5221050e5201eb65907487ee6d69aa06b583b46"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-win32.whl", hash = "sha256:0273f64c8db4a52a3a99fd34c83a1a1723bd3ac6806d3054a93f08044609fa65"}, - {file = "grpcio_tools-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:0626266b0df489d6e8bdd4178b1c78cac9963fde4c5ba6b205b329e46696b334"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:4687200e18d316ef1e28824bf9c62c2c6a3a2aacf4e0d292306258ef05955587"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:b86daf2dba207aace486cf5752c9c5d35864cd67f1df1429f7341af3984dadc7"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:44ec622d210740ed6c4300ea51fc43faaa0c58f4e2c4b03e2fe5a452b8e440ce"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ceac9073030012596cb7923643552329e48fb911eea3225624b8ef34bae92e1"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43329b47e982798c9eb18f652fc10fef5d22f9df51001a10f1ece01d9d203c04"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f0afb000ff67f7665f3eedd797c23b403a6bdae829d6e610944aeb6959193698"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:40c5def66b69c8c8f8a6af8d47a5e6b5825055c7ef7cf2b1b58c57ddc86bf3be"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:9a0eb7d88c9f1992afb3021e45721971e49d612b03fa5d38cce6e4369509f32c"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-win32.whl", hash = "sha256:34480c6964d16b7fa0012b9fc574efa9e2f71c80f8bc9da0887c300abb7130f3"}, - {file = "grpcio_tools-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:2b005373ad23dc0f25d8d6ec6d219fc3a6831b8d0f487be8f9bb2315307ba1c1"}, - {file = "grpcio_tools-1.73.1.tar.gz", hash = "sha256:6e06adec3b0870f5947953b0ef8dbdf2cebcdff61fb1fe08120cc7483c7978aa"}, -] - [[package]] name = "h11" version = "0.16.0" @@ -732,22 +583,6 @@ files = [ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] -[[package]] -name = "inflect" -version = "7.5.0" -requires_python = ">=3.9" -summary = "Correctly generate plurals, singular nouns, ordinals, indefinite articles" -groups = ["default"] -dependencies = [ - "more-itertools>=8.5.0", - "typeguard>=4.0.1", - "typing-extensions; python_version < \"3.9\"", -] -files = [ - {file = "inflect-7.5.0-py3-none-any.whl", hash = "sha256:2aea70e5e70c35d8350b8097396ec155ffd68def678c7ff97f51aa69c1d92344"}, - {file = "inflect-7.5.0.tar.gz", hash = "sha256:faf19801c3742ed5a05a8ce388e0d8fe1a07f8d095c82201eb904f5d27ad571f"}, -] - [[package]] name = "iniconfig" version = "2.1.0" @@ -759,17 +594,6 @@ files = [ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] -[[package]] -name = "isort" -version = "6.0.1" -requires_python = ">=3.9.0" -summary = "A Python utility / library to sort Python imports." -groups = ["default"] -files = [ - {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, - {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, -] - [[package]] name = "jinja2" version = "3.1.6" @@ -954,17 +778,6 @@ files = [ {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] -[[package]] -name = "more-itertools" -version = "10.7.0" -requires_python = ">=3.9" -summary = "More routines for operating on iterables, beyond itertools" -groups = ["default"] -files = [ - {file = "more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e"}, - {file = "more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3"}, -] - [[package]] name = "mypy" version = "1.17.0" @@ -1011,7 +824,7 @@ name = "mypy-extensions" version = "1.1.0" requires_python = ">=3.8" summary = "Type system extensions for programs checked with the mypy type checker." -groups = ["default", "test"] +groups = ["test"] files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, @@ -1054,7 +867,7 @@ name = "pathspec" version = "0.12.1" requires_python = ">=3.8" summary = "Utility library for gitignore style pattern matching of file paths." -groups = ["default", "test"] +groups = ["test"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -1164,17 +977,6 @@ files = [ {file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"}, ] -[[package]] -name = "platformdirs" -version = "4.3.8" -requires_python = ">=3.9" -summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -groups = ["default"] -files = [ - {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, - {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, -] - [[package]] name = "playwright" version = "1.54.0" @@ -1207,22 +1009,6 @@ files = [ {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] -[[package]] -name = "protobuf" -version = "6.31.1" -requires_python = ">=3.9" -summary = "" -groups = ["default"] -files = [ - {file = "protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9"}, - {file = "protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447"}, - {file = "protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402"}, - {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39"}, - {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6"}, - {file = "protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e"}, - {file = "protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a"}, -] - [[package]] name = "py-machineid" version = "0.8.0" @@ -1630,17 +1416,6 @@ files = [ {file = "segment_analytics_python-2.3.4.tar.gz", hash = "sha256:f188e864cc0fed9fb141aff73c21bfaab783a1dd1b97ab1eff44340aed68f50b"}, ] -[[package]] -name = "setuptools" -version = "80.9.0" -requires_python = ">=3.9" -summary = "Easily download, build, install, upgrade, and uninstall Python packages" -groups = ["default"] -files = [ - {file = "setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922"}, - {file = "setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c"}, -] - [[package]] name = "six" version = "1.17.0" @@ -1679,8 +1454,8 @@ name = "tomli" version = "2.2.1" requires_python = ">=3.8" summary = "A lil' TOML parser" -groups = ["default", "test"] -marker = "python_version <= \"3.11\"" +groups = ["test"] +marker = "python_version < \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -1730,21 +1505,6 @@ files = [ {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] -[[package]] -name = "typeguard" -version = "4.4.4" -requires_python = ">=3.9" -summary = "Run-time type checker for Python" -groups = ["default"] -dependencies = [ - "importlib-metadata>=3.6; python_version < \"3.10\"", - "typing-extensions>=4.14.0", -] -files = [ - {file = "typeguard-4.4.4-py3-none-any.whl", hash = "sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e"}, - {file = "typeguard-4.4.4.tar.gz", hash = "sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74"}, -] - [[package]] name = "types-pillow" version = "10.2.0.20240822" diff --git a/pyproject.toml b/pyproject.toml index a4561303..b5d24316 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,6 @@ authors = [ dependencies = [ "anthropic>=0.54.0", "gradio-client>=1.4.3", - "grpcio-tools>=1.67.0", "grpcio>=1.67.0", "httpx>=0.28.1", "Jinja2>=3.1.4", @@ -23,7 +22,6 @@ dependencies = [ "segment-analytics-python>=2.3.4", "tenacity>=9.1.2", "jsonref>=1.1.0", - "datamodel-code-generator>=0.31.2", ] requires-python = ">=3.10" readme = "README.md" @@ -220,3 +218,7 @@ pynput = [ web = [ "playwright>=1.41.0", ] +dev = [ + "datamodel-code-generator>=0.31.2", + "grpcio-tools>=1.73.1", +] From 85d21a8b7e64437403cf28258b1200707b5de27b Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:27:51 +0200 Subject: [PATCH 19/23] refactor: remove wrapper functions for RenderImage and RenderText --- src/askui/tools/askui/askui_controller.py | 13 ++++++------- src/askui/tools/askui/command_helpers.py | 21 +++++---------------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index 939e1563..f9cb8d6e 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -22,11 +22,11 @@ from askui.tools.askui.askui_ui_controller_grpc.generated import ( Controller_V1_pb2_grpc as controller_v1, ) -from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Request_2501 import ( - RenderObjectStyle, # noqa: E501 +from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Request_2501 import ( # noqa: E501 + RenderObjectStyle, ) -from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Response_2501 import ( - AskuiAgentosSendResponseSchema, # noqa: E501; noqa: E501 +from askui.tools.askui.askui_ui_controller_grpc.generated.AgentOS_Send_Response_2501 import ( # noqa: E501 + AskuiAgentosSendResponseSchema, ) from askui.tools.askui.command_helpers import ( create_clear_render_objects_command, @@ -35,7 +35,6 @@ create_image_command, create_line_command, create_quad_command, - create_render_text, create_set_mouse_position_command, create_text_command, create_update_render_object_command, @@ -1285,8 +1284,8 @@ def render_text(self, style: RenderObjectStyle, content: str) -> int: "Stub is not initialized" ) self._reporter.add_message("AgentOS", f"render_text({style}, {content})") - text_obj = create_render_text(content) - req = create_text_command(style, text_obj, self._session_guid).model_dump_json( + + req = create_text_command(style, content, self._session_guid).model_dump_json( exclude_unset=True, by_alias=True ) res = self.send_message(req) diff --git a/src/askui/tools/askui/command_helpers.py b/src/askui/tools/askui/command_helpers.py index 6597b4b8..8e250ff5 100644 --- a/src/askui/tools/askui/command_helpers.py +++ b/src/askui/tools/askui/command_helpers.py @@ -122,10 +122,8 @@ def create_line_command( def create_image_command( style: RenderObjectStyle, image_data: str, session_guid: str ) -> AskuiAgentosSendRequestSchema: - image_obj = create_render_image(image_data) - command = Command2( - name=Name2.AddRenderObject, parameters=["Image", style, image_obj] - ) + image = RenderImage(root=image_data) + command = Command2(name=Name2.AddRenderObject, parameters=["Image", style, image]) header = Header(authentication=Guid(root=session_guid)) message = Message(header=header, command=command) @@ -134,11 +132,10 @@ def create_image_command( def create_text_command( - style: RenderObjectStyle, text_content: RenderText, session_guid: str + style: RenderObjectStyle, text_content: str, session_guid: str ) -> AskuiAgentosSendRequestSchema: - command = Command2( - name=Name2.AddRenderObject, parameters=["Text", style, text_content] - ) + text = RenderText(root=text_content) + command = Command2(name=Name2.AddRenderObject, parameters=["Text", style, text]) header = Header(authentication=Guid(root=session_guid)) message = Message(header=header, command=command) @@ -154,14 +151,6 @@ def create_render_line_points(points: list[Coordinate]) -> RenderLinePoints: return RenderLinePoints(location_points) -def create_render_image(base64_data: str) -> RenderImage: - return RenderImage(root=base64_data) - - -def create_render_text(text: str) -> RenderText: - return RenderText(root=text) - - def create_render_object_id(object_id: int) -> RenderObjectId: return RenderObjectId(root=object_id) From dcecf0945564759d416795f608c50a4f86de2882 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:28:07 +0200 Subject: [PATCH 20/23] refactor: fix type error --- src/askui/mcp/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/askui/mcp/__init__.py b/src/askui/mcp/__init__.py index f6878350..0019dca5 100644 --- a/src/askui/mcp/__init__.py +++ b/src/askui/mcp/__init__.py @@ -4,6 +4,7 @@ from typing import Any from fastmcp import FastMCP +from fastmcp.tools.tool import Tool from askui.agent import VisionAgent @@ -16,7 +17,7 @@ class AppContext: @asynccontextmanager async def mcp_lifespan(server: FastMCP[Any]) -> AsyncIterator[AppContext]: # noqa: ARG001 with VisionAgent(display=2) as vision_agent: - server.add_tool(vision_agent.click) + server.add_tool(Tool.from_function(vision_agent.click)) yield AppContext(vision_agent=vision_agent) From 83125721487561661cfadea6d5c449efbf945326 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:37:51 +0200 Subject: [PATCH 21/23] refactor: make send_massage private and remove telemetry --- src/askui/tools/askui/askui_controller.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index f9cb8d6e..19b21f2c 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -1129,8 +1129,7 @@ def remove_all_actions(self) -> None: controller_v1_pbs.Request_RemoveAllActions(sessionInfo=self._session_info) ) - @telemetry.record_call(exclude={"message"}) - def send_message(self, message: str) -> controller_v1_pbs.Response_Send: + def _send_message(self, message: str) -> controller_v1_pbs.Response_Send: """ Send a general message to the controller. @@ -1168,7 +1167,7 @@ def get_mouse_position(self) -> Coordinate: self._session_guid ).model_dump_json(exclude_unset=True) self._reporter.add_message("AgentOS", "get_mouse_position()") - res = self.send_message(req_json) + res = self._send_message(req_json) parsed_res = AskuiAgentosSendResponseSchema.model_validate_json(res.message) return Coordinate( x=parsed_res.message.command.response.position.x.root, # type: ignore[union-attr] @@ -1191,7 +1190,7 @@ def set_mouse_position(self, x: int, y: int) -> None: x, y, self._session_guid ).model_dump_json(exclude_unset=True) self._reporter.add_message("AgentOS", f"set_mouse_position({x},{y})") - self.send_message(req_json) + self._send_message(req_json) @telemetry.record_call() def render_quad(self, style: RenderObjectStyle) -> int: @@ -1211,7 +1210,7 @@ def render_quad(self, style: RenderObjectStyle) -> int: req_json = create_quad_command(style, self._session_guid).model_dump_json( exclude_unset=True, by_alias=True ) - res = self.send_message(req_json) + res = self._send_message(req_json) parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( res.message ) @@ -1236,7 +1235,7 @@ def render_line(self, style: RenderObjectStyle, points: list[Coordinate]) -> int req = create_line_command(style, points, self._session_guid).model_dump_json( exclude_unset=True, by_alias=True ) - res = self.send_message(req) + res = self._send_message(req) parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( res.message ) @@ -1261,7 +1260,7 @@ def render_image(self, style: RenderObjectStyle, image_data: str) -> int: req = create_image_command( style, image_data, self._session_guid ).model_dump_json(exclude_unset=True, by_alias=True) - res = self.send_message(req) + res = self._send_message(req) parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( res.message @@ -1288,7 +1287,7 @@ def render_text(self, style: RenderObjectStyle, content: str) -> int: req = create_text_command(style, content, self._session_guid).model_dump_json( exclude_unset=True, by_alias=True ) - res = self.send_message(req) + res = self._send_message(req) parsed_response = AskuiAgentosSendResponseSchema.model_validate_json( res.message ) @@ -1315,7 +1314,7 @@ def update_render_object(self, object_id: int, style: RenderObjectStyle) -> None req = create_update_render_object_command( object_id, style, self._session_guid ).model_dump_json(exclude_unset=True, by_alias=True) - self.send_message(req) + self._send_message(req) @telemetry.record_call() def delete_render_object(self, object_id: int) -> None: @@ -1332,7 +1331,7 @@ def delete_render_object(self, object_id: int) -> None: req = create_delete_render_object_command( object_id, self._session_guid ).model_dump_json(exclude_unset=True, by_alias=True) - self.send_message(req) + self._send_message(req) @telemetry.record_call() def clear_render_objects(self) -> None: @@ -1346,4 +1345,4 @@ def clear_render_objects(self) -> None: req = create_clear_render_objects_command(self._session_guid).model_dump_json( exclude_unset=True, by_alias=True ) - self.send_message(req) + self._send_message(req) From 8011e3e77e56f722f8e64c2d4129fbd66535d31b Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Wed, 23 Jul 2025 09:13:27 +0200 Subject: [PATCH 22/23] refactor: remove unused set_test_configuration --- src/askui/tools/askui/askui_controller.py | 46 ------------------- .../e2e/tools/askui/test_askui_controller.py | 4 +- 2 files changed, 1 insertion(+), 49 deletions(-) diff --git a/src/askui/tools/askui/askui_controller.py b/src/askui/tools/askui/askui_controller.py index 19b21f2c..2ff1f2d8 100644 --- a/src/askui/tools/askui/askui_controller.py +++ b/src/askui/tools/askui/askui_controller.py @@ -846,52 +846,6 @@ def get_automation_target_list( return response - @telemetry.record_call() - def set_test_configuration( - self, - default_capture_parameters: controller_v1_pbs.CaptureParameters | None = None, - mouse_delay_ms: int = 0, - keyboard_delay_ms: int = 0, - ) -> None: - """ - Configure test settings including default capture parameters and delays. - - Args: - default_capture_parameters - (controller_v1_pbs.CaptureParameters | None, optional): - Default capture parameters with displayID and captureArea. - Defaults to `None`. - mouse_delay_ms (int, optional): Mouse delay in milliseconds. - Defaults to `0`. - keyboard_delay_ms (int, optional): Keyboard delay in milliseconds. - Defaults to `0`. - """ - assert isinstance(self._stub, controller_v1.ControllerAPIStub), ( - "Stub is not initialized" - ) - - self._reporter.add_message( - "AgentOS", - f"set_test_configuration(" - f"{default_capture_parameters}, " - f"{mouse_delay_ms}, " - f"{keyboard_delay_ms})", - ) - - # Use provided capture parameters or create empty one - capture_params = ( - default_capture_parameters or controller_v1_pbs.CaptureParameters() - ) - - self._stub.SetTestConfiguration( - controller_v1_pbs.Reuqest_SetTestConfiguration( - sessionInfo=self._session_info, - defaultCaptureParameters=capture_params, - mouseDelayInMilliseconds=mouse_delay_ms, - keyboardDelayInMilliseconds=keyboard_delay_ms, - ) - ) - @telemetry.record_call() def set_mouse_delay(self, delay_ms: int) -> None: """ diff --git a/tests/e2e/tools/askui/test_askui_controller.py b/tests/e2e/tools/askui/test_askui_controller.py index 28fbe87f..982a553f 100644 --- a/tests/e2e/tools/askui/test_askui_controller.py +++ b/tests/e2e/tools/askui/test_askui_controller.py @@ -12,9 +12,7 @@ AskUiControllerClient, AskUiControllerServer, ) -from askui.tools.askui.command_helpers import ( - create_style, -) +from askui.tools.askui.command_helpers import create_style @pytest.fixture From 6fc726b920d69e925ff0879a34eb778d1d3b2789 Mon Sep 17 00:00:00 2001 From: onur-askui <210008309+onur-askui@users.noreply.github.com> Date: Wed, 23 Jul 2025 11:18:19 +0200 Subject: [PATCH 23/23] chore: fix dev deps and groups --- pdm.lock | 2001 +++++++++++++++++++++++++++++++++++------------- pyproject.toml | 8 +- 2 files changed, 1460 insertions(+), 549 deletions(-) diff --git a/pdm.lock b/pdm.lock index a103e772..90e89af4 100644 --- a/pdm.lock +++ b/pdm.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "test"] +groups = ["default", "all", "android", "chat", "dev", "mcp", "pynput", "test", "web"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:77f62857d49e7ace12aee8cc90c03ebac806aa42e499d4b9353af9a1f3657974" +content_hash = "sha256:ecb4a5b9f12fc5d3cf4c6e98a65c9bb90df5c523ba9c8f335e5e40b8a4e9b9d1" [[metadata.targets]] requires_python = ">=3.10" @@ -15,7 +15,7 @@ name = "annotated-types" version = "0.7.0" requires_python = ">=3.8" summary = "Reusable constraint types to use with typing.Annotated" -groups = ["default"] +groups = ["default", "all", "chat", "dev", "mcp"] dependencies = [ "typing-extensions>=4.0.0; python_version < \"3.9\"", ] @@ -26,7 +26,7 @@ files = [ [[package]] name = "anthropic" -version = "0.58.2" +version = "0.54.0" requires_python = ">=3.8" summary = "The official Python library for the anthropic API" groups = ["default"] @@ -40,8 +40,8 @@ dependencies = [ "typing-extensions<5,>=4.10", ] files = [ - {file = "anthropic-0.58.2-py3-none-any.whl", hash = "sha256:3742181c634c725f337b71096839b6404145e33a8e190c75387c4028b825864d"}, - {file = "anthropic-0.58.2.tar.gz", hash = "sha256:86396cc45530a83acea25ae6bca9f86656af81e3d598b4d22a1300e0e4cf8df8"}, + {file = "anthropic-0.54.0-py3-none-any.whl", hash = "sha256:c1062a0a905daeec17ca9c06c401e4b3f24cb0495841d29d752568a1d4018d56"}, + {file = "anthropic-0.54.0.tar.gz", hash = "sha256:5e6f997d97ce8e70eac603c3ec2e7f23addeff953fbbb76b19430562bb6ba815"}, ] [[package]] @@ -49,7 +49,7 @@ name = "anyio" version = "4.9.0" requires_python = ">=3.9" summary = "High level compatibility layer for multiple asynchronous event loop implementations" -groups = ["default"] +groups = ["default", "all", "chat", "mcp"] dependencies = [ "exceptiongroup>=1.0.2; python_version < \"3.11\"", "idna>=2.8", @@ -61,6 +61,42 @@ files = [ {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, ] +[[package]] +name = "argcomplete" +version = "3.6.2" +requires_python = ">=3.8" +summary = "Bash tab completion for argparse" +groups = ["dev"] +files = [ + {file = "argcomplete-3.6.2-py3-none-any.whl", hash = "sha256:65b3133a29ad53fb42c48cf5114752c7ab66c1c38544fdf6460f450c09b42591"}, + {file = "argcomplete-3.6.2.tar.gz", hash = "sha256:d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf"}, +] + +[[package]] +name = "attrs" +version = "25.3.0" +requires_python = ">=3.8" +summary = "Classes Without Boilerplate" +groups = ["all", "mcp"] +files = [ + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, +] + +[[package]] +name = "authlib" +version = "1.6.1" +requires_python = ">=3.9" +summary = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." +groups = ["all", "mcp"] +dependencies = [ + "cryptography", +] +files = [ + {file = "authlib-1.6.1-py2.py3-none-any.whl", hash = "sha256:e9d2031c34c6309373ab845afc24168fe9e93dc52d252631f52642f21f5ed06e"}, + {file = "authlib-1.6.1.tar.gz", hash = "sha256:4dffdbb1460ba6ec8c17981a4c67af7d8af131231b5a36a88a1e8c80c111cdfd"}, +] + [[package]] name = "backoff" version = "2.2.1" @@ -72,78 +108,189 @@ files = [ {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, ] +[[package]] +name = "black" +version = "25.1.0" +requires_python = ">=3.9" +summary = "The uncompromising code formatter." +groups = ["dev"] +dependencies = [ + "click>=8.0.0", + "mypy-extensions>=0.4.3", + "packaging>=22.0", + "pathspec>=0.9.0", + "platformdirs>=2", + "tomli>=1.1.0; python_version < \"3.11\"", + "typing-extensions>=4.0.1; python_version < \"3.11\"", +] +files = [ + {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"}, + {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"}, + {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"}, + {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"}, + {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"}, + {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"}, + {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"}, + {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"}, + {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"}, + {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"}, + {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"}, + {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"}, + {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"}, + {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"}, + {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"}, + {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"}, + {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"}, + {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"}, +] + [[package]] name = "certifi" -version = "2025.7.14" -requires_python = ">=3.7" +version = "2025.1.31" +requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." -groups = ["default"] +groups = ["default", "all", "mcp"] files = [ - {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"}, - {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"}, + {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, + {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +requires_python = ">=3.8" +summary = "Foreign Function Interface for Python calling C code." +groups = ["all", "mcp"] +marker = "platform_python_implementation != \"PyPy\"" +dependencies = [ + "pycparser", +] +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [[package]] name = "charset-normalizer" -version = "3.4.2" +version = "3.4.1" requires_python = ">=3.7" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." groups = ["default"] files = [ - {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, - {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, - {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, - {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, - {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, - {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, - {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +requires_python = ">=3.7" +summary = "Composable command line interface toolkit" +groups = ["all", "chat", "dev", "mcp"] +dependencies = [ + "colorama; platform_system == \"Windows\"", + "importlib-metadata; python_version < \"3.8\"", +] +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, ] [[package]] @@ -151,7 +298,7 @@ name = "colorama" version = "0.4.6" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Cross-platform colored terminal text." -groups = ["default", "test"] +groups = ["default", "all", "chat", "dev", "mcp", "test"] marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, @@ -160,139 +307,222 @@ files = [ [[package]] name = "coverage" -version = "7.9.2" +version = "7.8.0" requires_python = ">=3.9" summary = "Code coverage measurement for Python" groups = ["test"] files = [ - {file = "coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912"}, - {file = "coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f22627c1fe2745ee98d3ab87679ca73a97e75ca75eb5faee48660d060875465f"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b1c2d8363247b46bd51f393f86c94096e64a1cf6906803fa8d5a9d03784bdbf"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10c882b114faf82dbd33e876d0cbd5e1d1ebc0d2a74ceef642c6152f3f4d547"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de3c0378bdf7066c3988d66cd5232d161e933b87103b014ab1b0b4676098fa45"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1e2f097eae0e5991e7623958a24ced3282676c93c013dde41399ff63e230fcf2"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28dc1f67e83a14e7079b6cea4d314bc8b24d1aed42d3582ff89c0295f09b181e"}, - {file = "coverage-7.9.2-cp310-cp310-win32.whl", hash = "sha256:bf7d773da6af9e10dbddacbf4e5cab13d06d0ed93561d44dae0188a42c65be7e"}, - {file = "coverage-7.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:0c0378ba787681ab1897f7c89b415bd56b0b2d9a47e5a3d8dc0ea55aac118d6c"}, - {file = "coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba"}, - {file = "coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74"}, - {file = "coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6"}, - {file = "coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7"}, - {file = "coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62"}, - {file = "coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0"}, - {file = "coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d"}, - {file = "coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355"}, - {file = "coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0"}, - {file = "coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b"}, - {file = "coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038"}, - {file = "coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdd612e59baed2a93c8843c9a7cb902260f181370f1d772f4842987535071d14"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:256ea87cb2a1ed992bcdfc349d8042dcea1b80436f4ddf6e246d6bee4b5d73b6"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f44ae036b63c8ea432f610534a2668b0c3aee810e7037ab9d8ff6883de480f5b"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82d76ad87c932935417a19b10cfe7abb15fd3f923cfe47dbdaa74ef4e503752d"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:619317bb86de4193debc712b9e59d5cffd91dc1d178627ab2a77b9870deb2868"}, - {file = "coverage-7.9.2-cp313-cp313-win32.whl", hash = "sha256:0a07757de9feb1dfafd16ab651e0f628fd7ce551604d1bf23e47e1ddca93f08a"}, - {file = "coverage-7.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:115db3d1f4d3f35f5bb021e270edd85011934ff97c8797216b62f461dd69374b"}, - {file = "coverage-7.9.2-cp313-cp313-win_arm64.whl", hash = "sha256:48f82f889c80af8b2a7bb6e158d95a3fbec6a3453a1004d04e4f3b5945a02694"}, - {file = "coverage-7.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:55a28954545f9d2f96870b40f6c3386a59ba8ed50caf2d949676dac3ecab99f5"}, - {file = "coverage-7.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cdef6504637731a63c133bb2e6f0f0214e2748495ec15fe42d1e219d1b133f0b"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd5ebe66c7a97273d5d2ddd4ad0ed2e706b39630ed4b53e713d360626c3dbb3"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9303aed20872d7a3c9cb39c5d2b9bdbe44e3a9a1aecb52920f7e7495410dfab8"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc18ea9e417a04d1920a9a76fe9ebd2f43ca505b81994598482f938d5c315f46"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6406cff19880aaaadc932152242523e892faff224da29e241ce2fca329866584"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d0d4f6ecdf37fcc19c88fec3e2277d5dee740fb51ffdd69b9579b8c31e4232e"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c33624f50cf8de418ab2b4d6ca9eda96dc45b2c4231336bac91454520e8d1fac"}, - {file = "coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926"}, - {file = "coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd"}, - {file = "coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb"}, - {file = "coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050"}, - {file = "coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4"}, - {file = "coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b"}, + {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, + {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, + {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, + {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, + {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, + {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, + {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, + {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, + {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, + {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, + {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, + {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, + {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, + {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, + {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, + {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, + {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, + {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, + {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, + {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, + {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, + {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, + {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, ] [[package]] name = "coverage" -version = "7.9.2" +version = "7.8.0" extras = ["toml"] requires_python = ">=3.9" summary = "Code coverage measurement for Python" groups = ["test"] dependencies = [ - "coverage==7.9.2", + "coverage==7.8.0", "tomli; python_full_version <= \"3.11.0a6\"", ] files = [ - {file = "coverage-7.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:66283a192a14a3854b2e7f3418d7db05cdf411012ab7ff5db98ff3b181e1f912"}, - {file = "coverage-7.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4e01d138540ef34fcf35c1aa24d06c3de2a4cffa349e29a10056544f35cca15f"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f22627c1fe2745ee98d3ab87679ca73a97e75ca75eb5faee48660d060875465f"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b1c2d8363247b46bd51f393f86c94096e64a1cf6906803fa8d5a9d03784bdbf"}, - {file = "coverage-7.9.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c10c882b114faf82dbd33e876d0cbd5e1d1ebc0d2a74ceef642c6152f3f4d547"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de3c0378bdf7066c3988d66cd5232d161e933b87103b014ab1b0b4676098fa45"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1e2f097eae0e5991e7623958a24ced3282676c93c013dde41399ff63e230fcf2"}, - {file = "coverage-7.9.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28dc1f67e83a14e7079b6cea4d314bc8b24d1aed42d3582ff89c0295f09b181e"}, - {file = "coverage-7.9.2-cp310-cp310-win32.whl", hash = "sha256:bf7d773da6af9e10dbddacbf4e5cab13d06d0ed93561d44dae0188a42c65be7e"}, - {file = "coverage-7.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:0c0378ba787681ab1897f7c89b415bd56b0b2d9a47e5a3d8dc0ea55aac118d6c"}, - {file = "coverage-7.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a7a56a2964a9687b6aba5b5ced6971af308ef6f79a91043c05dd4ee3ebc3e9ba"}, - {file = "coverage-7.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123d589f32c11d9be7fe2e66d823a236fe759b0096f5db3fb1b75b2fa414a4fa"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:333b2e0ca576a7dbd66e85ab402e35c03b0b22f525eed82681c4b866e2e2653a"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:326802760da234baf9f2f85a39e4a4b5861b94f6c8d95251f699e4f73b1835dc"}, - {file = "coverage-7.9.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19e7be4cfec248df38ce40968c95d3952fbffd57b400d4b9bb580f28179556d2"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0b4a4cb73b9f2b891c1788711408ef9707666501ba23684387277ededab1097c"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2c8937fa16c8c9fbbd9f118588756e7bcdc7e16a470766a9aef912dd3f117dbd"}, - {file = "coverage-7.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:42da2280c4d30c57a9b578bafd1d4494fa6c056d4c419d9689e66d775539be74"}, - {file = "coverage-7.9.2-cp311-cp311-win32.whl", hash = "sha256:14fa8d3da147f5fdf9d298cacc18791818f3f1a9f542c8958b80c228320e90c6"}, - {file = "coverage-7.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:549cab4892fc82004f9739963163fd3aac7a7b0df430669b75b86d293d2df2a7"}, - {file = "coverage-7.9.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2667a2b913e307f06aa4e5677f01a9746cd08e4b35e14ebcde6420a9ebb4c62"}, - {file = "coverage-7.9.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ae9eb07f1cfacd9cfe8eaee6f4ff4b8a289a668c39c165cd0c8548484920ffc0"}, - {file = "coverage-7.9.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9ce85551f9a1119f02adc46d3014b5ee3f765deac166acf20dbb851ceb79b6f3"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8f6389ac977c5fb322e0e38885fbbf901743f79d47f50db706e7644dcdcb6e1"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff0d9eae8cdfcd58fe7893b88993723583a6ce4dfbfd9f29e001922544f95615"}, - {file = "coverage-7.9.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fae939811e14e53ed8a9818dad51d434a41ee09df9305663735f2e2d2d7d959b"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:31991156251ec202c798501e0a42bbdf2169dcb0f137b1f5c0f4267f3fc68ef9"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d0d67963f9cbfc7c7f96d4ac74ed60ecbebd2ea6eeb51887af0f8dce205e545f"}, - {file = "coverage-7.9.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49b752a2858b10580969ec6af6f090a9a440a64a301ac1528d7ca5f7ed497f4d"}, - {file = "coverage-7.9.2-cp312-cp312-win32.whl", hash = "sha256:88d7598b8ee130f32f8a43198ee02edd16d7f77692fa056cb779616bbea1b355"}, - {file = "coverage-7.9.2-cp312-cp312-win_amd64.whl", hash = "sha256:9dfb070f830739ee49d7c83e4941cc767e503e4394fdecb3b54bfdac1d7662c0"}, - {file = "coverage-7.9.2-cp312-cp312-win_arm64.whl", hash = "sha256:4e2c058aef613e79df00e86b6d42a641c877211384ce5bd07585ed7ba71ab31b"}, - {file = "coverage-7.9.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:985abe7f242e0d7bba228ab01070fde1d6c8fa12f142e43debe9ed1dde686038"}, - {file = "coverage-7.9.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c3939264a76d44fde7f213924021ed31f55ef28111a19649fec90c0f109e6d"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae5d563e970dbe04382f736ec214ef48103d1b875967c89d83c6e3f21706d5b3"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdd612e59baed2a93c8843c9a7cb902260f181370f1d772f4842987535071d14"}, - {file = "coverage-7.9.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:256ea87cb2a1ed992bcdfc349d8042dcea1b80436f4ddf6e246d6bee4b5d73b6"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f44ae036b63c8ea432f610534a2668b0c3aee810e7037ab9d8ff6883de480f5b"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:82d76ad87c932935417a19b10cfe7abb15fd3f923cfe47dbdaa74ef4e503752d"}, - {file = "coverage-7.9.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:619317bb86de4193debc712b9e59d5cffd91dc1d178627ab2a77b9870deb2868"}, - {file = "coverage-7.9.2-cp313-cp313-win32.whl", hash = "sha256:0a07757de9feb1dfafd16ab651e0f628fd7ce551604d1bf23e47e1ddca93f08a"}, - {file = "coverage-7.9.2-cp313-cp313-win_amd64.whl", hash = "sha256:115db3d1f4d3f35f5bb021e270edd85011934ff97c8797216b62f461dd69374b"}, - {file = "coverage-7.9.2-cp313-cp313-win_arm64.whl", hash = "sha256:48f82f889c80af8b2a7bb6e158d95a3fbec6a3453a1004d04e4f3b5945a02694"}, - {file = "coverage-7.9.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:55a28954545f9d2f96870b40f6c3386a59ba8ed50caf2d949676dac3ecab99f5"}, - {file = "coverage-7.9.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cdef6504637731a63c133bb2e6f0f0214e2748495ec15fe42d1e219d1b133f0b"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd5ebe66c7a97273d5d2ddd4ad0ed2e706b39630ed4b53e713d360626c3dbb3"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9303aed20872d7a3c9cb39c5d2b9bdbe44e3a9a1aecb52920f7e7495410dfab8"}, - {file = "coverage-7.9.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc18ea9e417a04d1920a9a76fe9ebd2f43ca505b81994598482f938d5c315f46"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6406cff19880aaaadc932152242523e892faff224da29e241ce2fca329866584"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d0d4f6ecdf37fcc19c88fec3e2277d5dee740fb51ffdd69b9579b8c31e4232e"}, - {file = "coverage-7.9.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c33624f50cf8de418ab2b4d6ca9eda96dc45b2c4231336bac91454520e8d1fac"}, - {file = "coverage-7.9.2-cp313-cp313t-win32.whl", hash = "sha256:1df6b76e737c6a92210eebcb2390af59a141f9e9430210595251fbaf02d46926"}, - {file = "coverage-7.9.2-cp313-cp313t-win_amd64.whl", hash = "sha256:f5fd54310b92741ebe00d9c0d1d7b2b27463952c022da6d47c175d246a98d1bd"}, - {file = "coverage-7.9.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c48c2375287108c887ee87d13b4070a381c6537d30e8487b24ec721bf2a781cb"}, - {file = "coverage-7.9.2-pp39.pp310.pp311-none-any.whl", hash = "sha256:8a1166db2fb62473285bcb092f586e081e92656c7dfa8e9f62b4d39d7e6b5050"}, - {file = "coverage-7.9.2-py3-none-any.whl", hash = "sha256:e425cd5b00f6fc0ed7cdbd766c70be8baab4b7839e4d4fe5fac48581dd968ea4"}, - {file = "coverage-7.9.2.tar.gz", hash = "sha256:997024fa51e3290264ffd7492ec97d0690293ccd2b45a6cd7d82d945a4a80c8b"}, + {file = "coverage-7.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2931f66991175369859b5fd58529cd4b73582461877ecfd859b6549869287ffe"}, + {file = "coverage-7.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:52a523153c568d2c0ef8826f6cc23031dc86cffb8c6aeab92c4ff776e7951b28"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c8a5c139aae4c35cbd7cadca1df02ea8cf28a911534fc1b0456acb0b14234f3"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a26c0c795c3e0b63ec7da6efded5f0bc856d7c0b24b2ac84b4d1d7bc578d676"}, + {file = "coverage-7.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821f7bcbaa84318287115d54becb1915eece6918136c6f91045bb84e2f88739d"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a321c61477ff8ee705b8a5fed370b5710c56b3a52d17b983d9215861e37b642a"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:ed2144b8a78f9d94d9515963ed273d620e07846acd5d4b0a642d4849e8d91a0c"}, + {file = "coverage-7.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:042e7841a26498fff7a37d6fda770d17519982f5b7d8bf5278d140b67b61095f"}, + {file = "coverage-7.8.0-cp310-cp310-win32.whl", hash = "sha256:f9983d01d7705b2d1f7a95e10bbe4091fabc03a46881a256c2787637b087003f"}, + {file = "coverage-7.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a570cd9bd20b85d1a0d7b009aaf6c110b52b5755c17be6962f8ccd65d1dbd23"}, + {file = "coverage-7.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7ac22a0bb2c7c49f441f7a6d46c9c80d96e56f5a8bc6972529ed43c8b694e27"}, + {file = "coverage-7.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf13d564d310c156d1c8e53877baf2993fb3073b2fc9f69790ca6a732eb4bfea"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5761c70c017c1b0d21b0815a920ffb94a670c8d5d409d9b38857874c21f70d7"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ff52d790c7e1628241ffbcaeb33e07d14b007b6eb00a19320c7b8a7024c040"}, + {file = "coverage-7.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d39fc4817fd67b3915256af5dda75fd4ee10621a3d484524487e33416c6f3543"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b44674870709017e4b4036e3d0d6c17f06a0e6d4436422e0ad29b882c40697d2"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f99eb72bf27cbb167b636eb1726f590c00e1ad375002230607a844d9e9a2318"}, + {file = "coverage-7.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b571bf5341ba8c6bc02e0baeaf3b061ab993bf372d982ae509807e7f112554e9"}, + {file = "coverage-7.8.0-cp311-cp311-win32.whl", hash = "sha256:e75a2ad7b647fd8046d58c3132d7eaf31b12d8a53c0e4b21fa9c4d23d6ee6d3c"}, + {file = "coverage-7.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:3043ba1c88b2139126fc72cb48574b90e2e0546d4c78b5299317f61b7f718b78"}, + {file = "coverage-7.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbb5cc845a0292e0c520656d19d7ce40e18d0e19b22cb3e0409135a575bf79fc"}, + {file = "coverage-7.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4dfd9a93db9e78666d178d4f08a5408aa3f2474ad4d0e0378ed5f2ef71640cb6"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f017a61399f13aa6d1039f75cd467be388d157cd81f1a119b9d9a68ba6f2830d"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0915742f4c82208ebf47a2b154a5334155ed9ef9fe6190674b8a46c2fb89cb05"}, + {file = "coverage-7.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a40fcf208e021eb14b0fac6bdb045c0e0cab53105f93ba0d03fd934c956143a"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a1f406a8e0995d654b2ad87c62caf6befa767885301f3b8f6f73e6f3c31ec3a6"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:77af0f6447a582fdc7de5e06fa3757a3ef87769fbb0fdbdeba78c23049140a47"}, + {file = "coverage-7.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f2d32f95922927186c6dbc8bc60df0d186b6edb828d299ab10898ef3f40052fe"}, + {file = "coverage-7.8.0-cp312-cp312-win32.whl", hash = "sha256:769773614e676f9d8e8a0980dd7740f09a6ea386d0f383db6821df07d0f08545"}, + {file = "coverage-7.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:e5d2b9be5b0693cf21eb4ce0ec8d211efb43966f6657807f6859aab3814f946b"}, + {file = "coverage-7.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5ac46d0c2dd5820ce93943a501ac5f6548ea81594777ca585bf002aa8854cacd"}, + {file = "coverage-7.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:771eb7587a0563ca5bb6f622b9ed7f9d07bd08900f7589b4febff05f469bea00"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42421e04069fb2cbcbca5a696c4050b84a43b05392679d4068acbe65449b5c64"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:554fec1199d93ab30adaa751db68acec2b41c5602ac944bb19187cb9a41a8067"}, + {file = "coverage-7.8.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aaeb00761f985007b38cf463b1d160a14a22c34eb3f6a39d9ad6fc27cb73008"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:581a40c7b94921fffd6457ffe532259813fc68eb2bdda60fa8cc343414ce3733"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f319bae0321bc838e205bf9e5bc28f0a3165f30c203b610f17ab5552cff90323"}, + {file = "coverage-7.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04bfec25a8ef1c5f41f5e7e5c842f6b615599ca8ba8391ec33a9290d9d2db3a3"}, + {file = "coverage-7.8.0-cp313-cp313-win32.whl", hash = "sha256:dd19608788b50eed889e13a5d71d832edc34fc9dfce606f66e8f9f917eef910d"}, + {file = "coverage-7.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:a9abbccd778d98e9c7e85038e35e91e67f5b520776781d9a1e2ee9d400869487"}, + {file = "coverage-7.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:18c5ae6d061ad5b3e7eef4363fb27a0576012a7447af48be6c75b88494c6cf25"}, + {file = "coverage-7.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95aa6ae391a22bbbce1b77ddac846c98c5473de0372ba5c463480043a07bff42"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e013b07ba1c748dacc2a80e69a46286ff145935f260eb8c72df7185bf048f502"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d766a4f0e5aa1ba056ec3496243150698dc0481902e2b8559314368717be82b1"}, + {file = "coverage-7.8.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad80e6b4a0c3cb6f10f29ae4c60e991f424e6b14219d46f1e7d442b938ee68a4"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b87eb6fc9e1bb8f98892a2458781348fa37e6925f35bb6ceb9d4afd54ba36c73"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d1ba00ae33be84066cfbe7361d4e04dec78445b2b88bdb734d0d1cbab916025a"}, + {file = "coverage-7.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f3c38e4e5ccbdc9198aecc766cedbb134b2d89bf64533973678dfcf07effd883"}, + {file = "coverage-7.8.0-cp313-cp313t-win32.whl", hash = "sha256:379fe315e206b14e21db5240f89dc0774bdd3e25c3c58c2c733c99eca96f1ada"}, + {file = "coverage-7.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2e4b6b87bb0c846a9315e3ab4be2d52fac905100565f4b92f02c445c8799e257"}, + {file = "coverage-7.8.0-pp39.pp310.pp311-none-any.whl", hash = "sha256:b8194fb8e50d556d5849753de991d390c5a1edeeba50f68e3a9253fbd8bf8ccd"}, + {file = "coverage-7.8.0-py3-none-any.whl", hash = "sha256:dbf364b4c5e7bae9250528167dfe40219b62e2d573c854d74be213e1e52069f7"}, + {file = "coverage-7.8.0.tar.gz", hash = "sha256:7a3d62b3b03b4b6fd41a085f3574874cf946cb4604d2b4d3e8dca8cd570ca501"}, +] + +[[package]] +name = "cryptography" +version = "45.0.5" +requires_python = "!=3.9.0,!=3.9.1,>=3.7" +summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +groups = ["all", "mcp"] +dependencies = [ + "cffi>=1.14; platform_python_implementation != \"PyPy\"", +] +files = [ + {file = "cryptography-45.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:101ee65078f6dd3e5a028d4f19c07ffa4dd22cce6a20eaa160f8b5219911e7d8"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3a264aae5f7fbb089dbc01e0242d3b67dffe3e6292e1f5182122bdf58e65215d"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e74d30ec9c7cb2f404af331d5b4099a9b322a8a6b25c4632755c8757345baac5"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3af26738f2db354aafe492fb3869e955b12b2ef2e16908c8b9cb928128d42c57"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e6c00130ed423201c5bc5544c23359141660b07999ad82e34e7bb8f882bb78e0"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:dd420e577921c8c2d31289536c386aaa30140b473835e97f83bc71ea9d2baf2d"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:d05a38884db2ba215218745f0781775806bde4f32e07b135348355fe8e4991d9"}, + {file = "cryptography-45.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ad0caded895a00261a5b4aa9af828baede54638754b51955a0ac75576b831b27"}, + {file = "cryptography-45.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9024beb59aca9d31d36fcdc1604dd9bbeed0a55bface9f1908df19178e2f116e"}, + {file = "cryptography-45.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:91098f02ca81579c85f66df8a588c78f331ca19089763d733e34ad359f474174"}, + {file = "cryptography-45.0.5-cp311-abi3-win32.whl", hash = "sha256:926c3ea71a6043921050eaa639137e13dbe7b4ab25800932a8498364fc1abec9"}, + {file = "cryptography-45.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:b85980d1e345fe769cfc57c57db2b59cff5464ee0c045d52c0df087e926fbe63"}, + {file = "cryptography-45.0.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:f3562c2f23c612f2e4a6964a61d942f891d29ee320edb62ff48ffb99f3de9ae8"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3fcfbefc4a7f332dece7272a88e410f611e79458fab97b5efe14e54fe476f4fd"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:460f8c39ba66af7db0545a8c6f2eabcbc5a5528fc1cf6c3fa9a1e44cec33385e"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9b4cf6318915dccfe218e69bbec417fdd7c7185aa7aab139a2c0beb7468c89f0"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2089cc8f70a6e454601525e5bf2779e665d7865af002a5dec8d14e561002e135"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0027d566d65a38497bc37e0dd7c2f8ceda73597d2ac9ba93810204f56f52ebc7"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:be97d3a19c16a9be00edf79dca949c8fa7eff621763666a145f9f9535a5d7f42"}, + {file = "cryptography-45.0.5-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:7760c1c2e1a7084153a0f68fab76e754083b126a47d0117c9ed15e69e2103492"}, + {file = "cryptography-45.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6ff8728d8d890b3dda5765276d1bc6fb099252915a2cd3aff960c4c195745dd0"}, + {file = "cryptography-45.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7259038202a47fdecee7e62e0fd0b0738b6daa335354396c6ddebdbe1206af2a"}, + {file = "cryptography-45.0.5-cp37-abi3-win32.whl", hash = "sha256:1e1da5accc0c750056c556a93c3e9cb828970206c68867712ca5805e46dc806f"}, + {file = "cryptography-45.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:90cb0a7bb35959f37e23303b7eed0a32280510030daba3f7fdfbb65defde6a97"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:206210d03c1193f4e1ff681d22885181d47efa1ab3018766a7b32a7b3d6e6afd"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c648025b6840fe62e57107e0a25f604db740e728bd67da4f6f060f03017d5097"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b8fa8b0a35a9982a3c60ec79905ba5bb090fc0b9addcfd3dc2dd04267e45f25e"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:14d96584701a887763384f3c47f0ca7c1cce322aa1c31172680eb596b890ec30"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:57c816dfbd1659a367831baca4b775b2a5b43c003daf52e9d57e1d30bc2e1b0e"}, + {file = "cryptography-45.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b9e38e0a83cd51e07f5a48ff9691cae95a79bea28fe4ded168a8e5c6c77e819d"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8c4a6ff8a30e9e3d38ac0539e9a9e02540ab3f827a3394f8852432f6b0ea152e"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bd4c45986472694e5121084c6ebbd112aa919a25e783b87eb95953c9573906d6"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:982518cd64c54fcada9d7e5cf28eabd3ee76bd03ab18e08a48cad7e8b6f31b18"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:12e55281d993a793b0e883066f590c1ae1e802e3acb67f8b442e721e475e6463"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:5aa1e32983d4443e310f726ee4b071ab7569f58eedfdd65e9675484a4eb67bd1"}, + {file = "cryptography-45.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e357286c1b76403dd384d938f93c46b2b058ed4dfcdce64a770f0537ed3feb6f"}, + {file = "cryptography-45.0.5.tar.gz", hash = "sha256:72e76caa004ab63accdf26023fccd1d087f6d90ec6048ff33ad0445abf7f605a"}, +] + +[[package]] +name = "cyclopts" +version = "3.22.2" +requires_python = ">=3.9" +summary = "Intuitive, easy CLIs based on type hints." +groups = ["all", "mcp"] +dependencies = [ + "attrs>=23.1.0", + "docstring-parser>=0.15; python_version < \"4.0\"", + "importlib-metadata>=4.4; python_version < \"3.10\"", + "rich-rst<2.0.0,>=1.3.1", + "rich>=13.6.0", + "typing-extensions>=4.8.0; python_version < \"3.11\"", +] +files = [ + {file = "cyclopts-3.22.2-py3-none-any.whl", hash = "sha256:6681b0815fa2de2bccc364468fd25b15aa9617cb505c0b16ca62e2b18a57619e"}, + {file = "cyclopts-3.22.2.tar.gz", hash = "sha256:d3495231af6ae86479579777d212ddf77b113200f828badeaf401162ed87227d"}, +] + +[[package]] +name = "datamodel-code-generator" +version = "0.31.2" +requires_python = ">=3.9" +summary = "Datamodel Code Generator" +groups = ["dev"] +dependencies = [ + "argcomplete<4,>=2.10.1", + "black>=19.10b0", + "genson<2,>=1.2.1", + "inflect<8,>=4.1", + "isort<7,>=4.3.21", + "jinja2<4,>=2.10.1", + "packaging", + "pydantic>=1.5", + "pyyaml>=6.0.1", + "tomli<3,>=2.2.1; python_version <= \"3.11\"", +] +files = [ + {file = "datamodel_code_generator-0.31.2-py3-none-any.whl", hash = "sha256:78f200a9e673ee4d041e96e82a835273baf4ce15e446d46501c0433d82af3ef5"}, + {file = "datamodel_code_generator-0.31.2.tar.gz", hash = "sha256:47887b8aa6fd69865e07e2893c1e76e34dae753b9a97f1020357af8337bc4cdb"}, ] [[package]] @@ -306,19 +536,75 @@ files = [ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, ] +[[package]] +name = "dnspython" +version = "2.7.0" +requires_python = ">=3.9" +summary = "DNS toolkit" +groups = ["all", "mcp"] +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[[package]] +name = "docstring-parser" +version = "0.17.0" +requires_python = ">=3.8" +summary = "Parse Python docstrings in reST, Google and Numpydoc format" +groups = ["all", "mcp"] +marker = "python_version < \"4.0\"" +files = [ + {file = "docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708"}, + {file = "docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912"}, +] + +[[package]] +name = "docutils" +version = "0.21.2" +requires_python = ">=3.9" +summary = "Docutils -- Python Documentation Utilities" +groups = ["all", "mcp"] +files = [ + {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, + {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, +] + +[[package]] +name = "email-validator" +version = "2.2.0" +requires_python = ">=3.8" +summary = "A robust email address syntax and deliverability validation library." +groups = ["all", "mcp"] +dependencies = [ + "dnspython>=2.0.0", + "idna>=2.0.0", +] +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[[package]] +name = "evdev" +version = "1.9.2" +requires_python = ">=3.8" +summary = "Bindings to the Linux input handling subsystem" +groups = ["all", "chat", "pynput"] +marker = "\"linux\" in sys_platform" +files = [ + {file = "evdev-1.9.2.tar.gz", hash = "sha256:5d3278892ce1f92a74d6bf888cc8525d9f68af85dbe336c95d1c87fb8f423069"}, +] + [[package]] name = "exceptiongroup" -version = "1.3.0" +version = "1.2.2" requires_python = ">=3.7" summary = "Backport of PEP 654 (exception groups)" -groups = ["default", "test"] -marker = "python_version < \"3.11\"" -dependencies = [ - "typing-extensions>=4.6.0; python_version < \"3.13\"", -] +groups = ["default", "all", "chat", "mcp", "test"] files = [ - {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, - {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [[package]] @@ -332,6 +618,45 @@ files = [ {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] +[[package]] +name = "fastapi" +version = "0.115.12" +requires_python = ">=3.8" +summary = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +groups = ["all", "chat"] +dependencies = [ + "pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4", + "starlette<0.47.0,>=0.40.0", + "typing-extensions>=4.8.0", +] +files = [ + {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, + {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, +] + +[[package]] +name = "fastmcp" +version = "2.10.6" +requires_python = ">=3.10" +summary = "The fast, Pythonic way to build MCP servers and clients." +groups = ["all", "mcp"] +dependencies = [ + "authlib>=1.5.2", + "cyclopts>=3.0.0", + "exceptiongroup>=1.2.2", + "httpx>=0.28.1", + "mcp>=1.10.0", + "openapi-pydantic>=0.5.1", + "pydantic[email]>=2.11.7", + "pyperclip>=1.9.0", + "python-dotenv>=1.1.0", + "rich>=13.9.4", +] +files = [ + {file = "fastmcp-2.10.6-py3-none-any.whl", hash = "sha256:9782416a8848cc0f4cfcc578e5c17834da620bef8ecf4d0daabf5dd1272411a2"}, + {file = "fastmcp-2.10.6.tar.gz", hash = "sha256:5a7b3301f9f1b64610430caef743ac70175c4b812e1949f037e4db65b0a42c5a"}, +] + [[package]] name = "filelock" version = "3.18.0" @@ -345,18 +670,28 @@ files = [ [[package]] name = "fsspec" -version = "2025.7.0" +version = "2025.3.2" requires_python = ">=3.9" summary = "File-system specification" groups = ["default"] files = [ - {file = "fsspec-2025.7.0-py3-none-any.whl", hash = "sha256:8b012e39f63c7d5f10474de957f3ab793b47b45ae7d39f2fb735f8bbe25c0e21"}, - {file = "fsspec-2025.7.0.tar.gz", hash = "sha256:786120687ffa54b8283d942929540d8bc5ccfa820deb555a2b5d0ed2b737bf58"}, + {file = "fsspec-2025.3.2-py3-none-any.whl", hash = "sha256:2daf8dc3d1dfa65b6aa37748d112773a7a08416f6c70d96b264c96476ecaf711"}, + {file = "fsspec-2025.3.2.tar.gz", hash = "sha256:e52c77ef398680bbd6a98c0e628fbc469491282981209907bbc8aea76a04fdc6"}, +] + +[[package]] +name = "genson" +version = "1.3.0" +summary = "GenSON is a powerful, user-friendly JSON Schema generator." +groups = ["dev"] +files = [ + {file = "genson-1.3.0-py3-none-any.whl", hash = "sha256:468feccd00274cc7e4c09e84b08704270ba8d95232aa280f65b986139cec67f7"}, + {file = "genson-1.3.0.tar.gz", hash = "sha256:e02db9ac2e3fd29e65b5286f7135762e2cd8a986537c075b06fc5f1517308e37"}, ] [[package]] name = "gradio-client" -version = "1.11.0" +version = "1.8.0" requires_python = ">=3.10" summary = "Python library for easily interacting with trained machine learning models" groups = ["default"] @@ -369,8 +704,8 @@ dependencies = [ "websockets<16.0,>=10.0", ] files = [ - {file = "gradio_client-1.11.0-py3-none-any.whl", hash = "sha256:afb714aea50224f6f04679fe2ce79c1be75011012d0dc3b3ee575610a0dc8eb2"}, - {file = "gradio_client-1.11.0.tar.gz", hash = "sha256:377c31d8082173663b230dad341614b127b2460fe24d5fd72ed456fb3f0b3a9e"}, + {file = "gradio_client-1.8.0-py3-none-any.whl", hash = "sha256:27a3ab5278a44d57d1d05a86de67cec5f7370e540600d11816744a620addb967"}, + {file = "gradio_client-1.8.0.tar.gz", hash = "sha256:a58c520c73fa7ff8bef54e41b19df2cd9071fd9d0cc00475eb397842baed19c8"}, ] [[package]] @@ -378,7 +713,7 @@ name = "greenlet" version = "3.2.3" requires_python = ">=3.9" summary = "Lightweight in-process concurrent programming" -groups = ["test"] +groups = ["all", "chat", "test", "web"] files = [ {file = "greenlet-3.2.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:1afd685acd5597349ee6d7a88a8bec83ce13c106ac78c196ee9dde7c04fe87be"}, {file = "greenlet-3.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:761917cac215c61e9dc7324b2606107b3b292a8349bdebb31503ab4de3f559ac"}, @@ -445,7 +780,7 @@ name = "grpcio" version = "1.73.1" requires_python = ">=3.9" summary = "HTTP/2-based RPC framework" -groups = ["default", "test"] +groups = ["default", "dev", "test"] files = [ {file = "grpcio-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:2d70f4ddd0a823436c2624640570ed6097e40935c9194482475fe8e3d9754d55"}, {file = "grpcio-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3841a8a5a66830261ab6a3c2a3dc539ed84e4ab019165f77b3eeb9f0ba621f26"}, @@ -491,47 +826,87 @@ files = [ ] [[package]] -name = "h11" -version = "0.16.0" -requires_python = ">=3.8" -summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -groups = ["default"] -files = [ - {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, - {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, +name = "grpcio-tools" +version = "1.73.1" +requires_python = ">=3.9" +summary = "Protobuf code generator for gRPC" +groups = ["dev"] +dependencies = [ + "grpcio>=1.73.1", + "protobuf<7.0.0,>=6.30.0", + "setuptools", +] +files = [ + {file = "grpcio_tools-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:0731b21a7f3988a9f8c244ffe3940a0579e5b5f2a99d08448459e0b49350d47a"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:15e47b19b70ce6100e9843570e16b0561045c37b5e9d390f1cb54292c99b51b6"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:fbe6cd3e863928b5c127d4956c60e44101f495ddcb69738290db6ef497ce505c"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:71c35a6b4d125bec877daefaf7dedb566d37ed4e903a45b74e491683e006afa4"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9486235da85a80accaeaab5829c09e19b70ee96ff100d3f7b342ec9344d96134"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:86dfd562a9ebb74849aca345237cf87c2732067e410752ff809b8bfdf7aa5f49"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bde8101bc7a60de6297916a468bf7900be6e2c0f9965a1a6591aa06bd02e2df3"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b41e2417003b34bf672aa4ec5a48e22d9fc28f7de5f25d9a01fb1e3dcc86af6a"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-win32.whl", hash = "sha256:bb05d02ca7d603260555cc0bbec616b116f741561d5b5c78a65bc3fae5982d5e"}, + {file = "grpcio_tools-1.73.1-cp310-cp310-win_amd64.whl", hash = "sha256:5f0cd287545c9430e3e395181ee11ca9b7bef4c41b1c28afa9174ea5a868dcda"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:2bc4a46177df43853b070a4b6b6106d9829a639bc8b9516a005a879d3e5da0f9"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:448b38ec72ed62c932d48e49e0facbb51e8045065dabf3bb63149810971a51e7"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:249be7616b323b8af72a02bd218bfbba388010e6ccb471c57d42e49b620686f7"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:129dd1e46386da74d78d588c5a7f5c51d8dc2ec40fea95f9a012f655767fd5f3"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d53cd62c30fbd9597c05066a45e5750a11ec566c5fe0d17878e169bd2c66157"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d8f4e2ee735dc6033b6f3379584759cc95259581c9bc58db5dd0e69cc71310f1"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2795d85da34846bbe6693f0da4c1f9bfa8a77e6cbd85cb83eb1231f1315a2ae"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:40834bf3551a6936151f4ba7eba4a37c8ff66eacb0bb5affa4630afbe78f061d"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-win32.whl", hash = "sha256:0b809d936463fabeda6999eb681b5d4869dd8e5fe4d2fb9dbfee0d2a4c0ce67a"}, + {file = "grpcio_tools-1.73.1-cp311-cp311-win_amd64.whl", hash = "sha256:e0257401088f29315fe0ad7f388ad061cf5b57a89e9abf039f8d9c7a54e9580d"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:23af3de80c89ee803d0143c6293f8e979a851f0414702b5de973e205fca69db2"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fbf17ad6fff6c9002d28bc3632216eafb59631308b05c4cf80e72d21c33f7dc9"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:aa05ecd0b2ca583862d107eea4d9480a2d89987ae46bc02944cc450a122f833b"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:664fbec02f93d14bb74c442e06ba20a4448a20236ed3d6ac5d2c4ef82a33a8b4"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60aa528d7576c932f43172723188f53aaa7bdb307e52d22f2e5ab831a3667693"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3893517010bcdb8cb4949715786bc5953fe7df6b575f8b1725531ed492b1080c"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:654083a2d4e83679d4fb6ac46a2748c1b57ecf45be5cbe88d88a1a4aef6b3281"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cd8b1077849acd69923b08a8e5221050e5201eb65907487ee6d69aa06b583b46"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-win32.whl", hash = "sha256:0273f64c8db4a52a3a99fd34c83a1a1723bd3ac6806d3054a93f08044609fa65"}, + {file = "grpcio_tools-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:0626266b0df489d6e8bdd4178b1c78cac9963fde4c5ba6b205b329e46696b334"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:4687200e18d316ef1e28824bf9c62c2c6a3a2aacf4e0d292306258ef05955587"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:b86daf2dba207aace486cf5752c9c5d35864cd67f1df1429f7341af3984dadc7"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:44ec622d210740ed6c4300ea51fc43faaa0c58f4e2c4b03e2fe5a452b8e440ce"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ceac9073030012596cb7923643552329e48fb911eea3225624b8ef34bae92e1"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43329b47e982798c9eb18f652fc10fef5d22f9df51001a10f1ece01d9d203c04"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f0afb000ff67f7665f3eedd797c23b403a6bdae829d6e610944aeb6959193698"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:40c5def66b69c8c8f8a6af8d47a5e6b5825055c7ef7cf2b1b58c57ddc86bf3be"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:9a0eb7d88c9f1992afb3021e45721971e49d612b03fa5d38cce6e4369509f32c"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-win32.whl", hash = "sha256:34480c6964d16b7fa0012b9fc574efa9e2f71c80f8bc9da0887c300abb7130f3"}, + {file = "grpcio_tools-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:2b005373ad23dc0f25d8d6ec6d219fc3a6831b8d0f487be8f9bb2315307ba1c1"}, + {file = "grpcio_tools-1.73.1.tar.gz", hash = "sha256:6e06adec3b0870f5947953b0ef8dbdf2cebcdff61fb1fe08120cc7483c7978aa"}, ] [[package]] -name = "hf-xet" -version = "1.1.5" -requires_python = ">=3.8" -summary = "Fast transfer of large files with the Hugging Face Hub." -groups = ["default"] -marker = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"" +name = "h11" +version = "0.14.0" +requires_python = ">=3.7" +summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +groups = ["default", "all", "chat", "mcp"] +dependencies = [ + "typing-extensions; python_version < \"3.8\"", +] files = [ - {file = "hf_xet-1.1.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f52c2fa3635b8c37c7764d8796dfa72706cc4eded19d638331161e82b0792e23"}, - {file = "hf_xet-1.1.5-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fa6e3ee5d61912c4a113e0708eaaef987047616465ac7aa30f7121a48fc1af8"}, - {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc874b5c843e642f45fd85cda1ce599e123308ad2901ead23d3510a47ff506d1"}, - {file = "hf_xet-1.1.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dbba1660e5d810bd0ea77c511a99e9242d920790d0e63c0e4673ed36c4022d18"}, - {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ab34c4c3104133c495785d5d8bba3b1efc99de52c02e759cf711a91fd39d3a14"}, - {file = "hf_xet-1.1.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:83088ecea236d5113de478acb2339f92c95b4fb0462acaa30621fac02f5a534a"}, - {file = "hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245"}, - {file = "hf_xet-1.1.5.tar.gz", hash = "sha256:69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694"}, + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] [[package]] name = "httpcore" -version = "1.0.9" +version = "1.0.7" requires_python = ">=3.8" summary = "A minimal low-level HTTP client." -groups = ["default"] +groups = ["default", "all", "mcp"] dependencies = [ "certifi", - "h11>=0.16", + "h11<0.15,>=0.13", ] files = [ - {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"}, - {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"}, + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, ] [[package]] @@ -539,7 +914,7 @@ name = "httpx" version = "0.28.1" requires_python = ">=3.8" summary = "The next generation HTTP client." -groups = ["default"] +groups = ["default", "all", "mcp"] dependencies = [ "anyio", "certifi", @@ -551,16 +926,26 @@ files = [ {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, ] +[[package]] +name = "httpx-sse" +version = "0.4.1" +requires_python = ">=3.9" +summary = "Consume Server-Sent Event (SSE) messages with HTTPX." +groups = ["all", "mcp"] +files = [ + {file = "httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37"}, + {file = "httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e"}, +] + [[package]] name = "huggingface-hub" -version = "0.33.4" +version = "0.30.1" requires_python = ">=3.8.0" summary = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" groups = ["default"] dependencies = [ "filelock", "fsspec>=2023.5.0", - "hf-xet<2.0.0,>=1.1.2; platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"", "packaging>=20.9", "pyyaml>=5.1", "requests", @@ -568,8 +953,8 @@ dependencies = [ "typing-extensions>=3.7.4.3", ] files = [ - {file = "huggingface_hub-0.33.4-py3-none-any.whl", hash = "sha256:09f9f4e7ca62547c70f8b82767eefadd2667f4e116acba2e3e62a5a81815a7bb"}, - {file = "huggingface_hub-0.33.4.tar.gz", hash = "sha256:6af13478deae120e765bfd92adad0ae1aec1ad8c439b46f23058ad5956cbca0a"}, + {file = "huggingface_hub-0.30.1-py3-none-any.whl", hash = "sha256:0f6aa5ec5a4e68e5b9e45d556b4e5ea180c58f5a5ffa734e7f38c9d573028959"}, + {file = "huggingface_hub-0.30.1.tar.gz", hash = "sha256:f379e8b8d0791295602538856638460ae3cf679c7f304201eb80fb98c771950e"}, ] [[package]] @@ -577,12 +962,28 @@ name = "idna" version = "3.10" requires_python = ">=3.6" summary = "Internationalized Domain Names in Applications (IDNA)" -groups = ["default"] +groups = ["default", "all", "chat", "mcp"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, ] +[[package]] +name = "inflect" +version = "7.5.0" +requires_python = ">=3.9" +summary = "Correctly generate plurals, singular nouns, ordinals, indefinite articles" +groups = ["dev"] +dependencies = [ + "more-itertools>=8.5.0", + "typeguard>=4.0.1", + "typing-extensions; python_version < \"3.9\"", +] +files = [ + {file = "inflect-7.5.0-py3-none-any.whl", hash = "sha256:2aea70e5e70c35d8350b8097396ec155ffd68def678c7ff97f51aa69c1d92344"}, + {file = "inflect-7.5.0.tar.gz", hash = "sha256:faf19801c3742ed5a05a8ce388e0d8fe1a07f8d095c82201eb904f5d27ad571f"}, +] + [[package]] name = "iniconfig" version = "2.1.0" @@ -594,12 +995,23 @@ files = [ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] +[[package]] +name = "isort" +version = "6.0.1" +requires_python = ">=3.9.0" +summary = "A Python utility / library to sort Python imports." +groups = ["dev"] +files = [ + {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, + {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, +] + [[package]] name = "jinja2" version = "3.1.6" requires_python = ">=3.7" summary = "A very fast and expressive template engine." -groups = ["default"] +groups = ["default", "dev"] dependencies = [ "MarkupSafe>=2.0", ] @@ -610,76 +1022,63 @@ files = [ [[package]] name = "jiter" -version = "0.10.0" -requires_python = ">=3.9" +version = "0.9.0" +requires_python = ">=3.8" summary = "Fast iterable JSON parser." groups = ["default"] files = [ - {file = "jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303"}, - {file = "jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf"}, - {file = "jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90"}, - {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0"}, - {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee"}, - {file = "jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4"}, - {file = "jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5"}, - {file = "jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978"}, - {file = "jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5"}, - {file = "jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606"}, - {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605"}, - {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5"}, - {file = "jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7"}, - {file = "jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812"}, - {file = "jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b"}, - {file = "jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a"}, - {file = "jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95"}, - {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea"}, - {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b"}, - {file = "jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01"}, - {file = "jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49"}, - {file = "jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644"}, - {file = "jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041"}, - {file = "jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca"}, - {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4"}, - {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e"}, - {file = "jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d"}, - {file = "jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4"}, - {file = "jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca"}, - {file = "jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070"}, - {file = "jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca"}, - {file = "jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522"}, - {file = "jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9"}, - {file = "jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a"}, - {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853"}, - {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86"}, - {file = "jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357"}, - {file = "jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00"}, - {file = "jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5"}, - {file = "jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500"}, + {file = "jiter-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:816ec9b60fdfd1fec87da1d7ed46c66c44ffec37ab2ef7de5b147b2fce3fd5ad"}, + {file = "jiter-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b1d3086f8a3ee0194ecf2008cf81286a5c3e540d977fa038ff23576c023c0ea"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1339f839b91ae30b37c409bf16ccd3dc453e8b8c3ed4bd1d6a567193651a4a51"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ffba79584b3b670fefae66ceb3a28822365d25b7bf811e030609a3d5b876f538"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cfc7d0a8e899089d11f065e289cb5b2daf3d82fbe028f49b20d7b809193958d"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e00a1a2bbfaaf237e13c3d1592356eab3e9015d7efd59359ac8b51eb56390a12"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1d9870561eb26b11448854dce0ff27a9a27cb616b632468cafc938de25e9e51"}, + {file = "jiter-0.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9872aeff3f21e437651df378cb75aeb7043e5297261222b6441a620218b58708"}, + {file = "jiter-0.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1fd19112d1049bdd47f17bfbb44a2c0001061312dcf0e72765bfa8abd4aa30e5"}, + {file = "jiter-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6ef5da104664e526836070e4a23b5f68dec1cc673b60bf1edb1bfbe8a55d0678"}, + {file = "jiter-0.9.0-cp310-cp310-win32.whl", hash = "sha256:cb12e6d65ebbefe5518de819f3eda53b73187b7089040b2d17f5b39001ff31c4"}, + {file = "jiter-0.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:c43ca669493626d8672be3b645dbb406ef25af3f4b6384cfd306da7eb2e70322"}, + {file = "jiter-0.9.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6c4d99c71508912a7e556d631768dcdef43648a93660670986916b297f1c54af"}, + {file = "jiter-0.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f60fb8ce7df529812bf6c625635a19d27f30806885139e367af93f6e734ef58"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51c4e1a4f8ea84d98b7b98912aa4290ac3d1eabfde8e3c34541fae30e9d1f08b"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f4c677c424dc76684fea3e7285a7a2a7493424bea89ac441045e6a1fb1d7b3b"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2221176dfec87f3470b21e6abca056e6b04ce9bff72315cb0b243ca9e835a4b5"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c7adb66f899ffa25e3c92bfcb593391ee1947dbdd6a9a970e0d7e713237d572"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c98d27330fdfb77913c1097a7aab07f38ff2259048949f499c9901700789ac15"}, + {file = "jiter-0.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eda3f8cc74df66892b1d06b5d41a71670c22d95a1ca2cbab73654745ce9d0419"}, + {file = "jiter-0.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dd5ab5ddc11418dce28343123644a100f487eaccf1de27a459ab36d6cca31043"}, + {file = "jiter-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:42f8a68a69f047b310319ef8e2f52fdb2e7976fb3313ef27df495cf77bcad965"}, + {file = "jiter-0.9.0-cp311-cp311-win32.whl", hash = "sha256:a25519efb78a42254d59326ee417d6f5161b06f5da827d94cf521fed961b1ff2"}, + {file = "jiter-0.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:923b54afdd697dfd00d368b7ccad008cccfeb1efb4e621f32860c75e9f25edbd"}, + {file = "jiter-0.9.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7b46249cfd6c48da28f89eb0be3f52d6fdb40ab88e2c66804f546674e539ec11"}, + {file = "jiter-0.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:609cf3c78852f1189894383cf0b0b977665f54cb38788e3e6b941fa6d982c00e"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d726a3890a54561e55a9c5faea1f7655eda7f105bd165067575ace6e65f80bb2"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2e89dc075c1fef8fa9be219e249f14040270dbc507df4215c324a1839522ea75"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04e8ffa3c353b1bc4134f96f167a2082494351e42888dfcf06e944f2729cbe1d"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:203f28a72a05ae0e129b3ed1f75f56bc419d5f91dfacd057519a8bd137b00c42"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fca1a02ad60ec30bb230f65bc01f611c8608b02d269f998bc29cca8619a919dc"}, + {file = "jiter-0.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:237e5cee4d5d2659aaf91bbf8ec45052cc217d9446070699441a91b386ae27dc"}, + {file = "jiter-0.9.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:528b6b71745e7326eed73c53d4aa57e2a522242320b6f7d65b9c5af83cf49b6e"}, + {file = "jiter-0.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9f48e86b57bc711eb5acdfd12b6cb580a59cc9a993f6e7dcb6d8b50522dcd50d"}, + {file = "jiter-0.9.0-cp312-cp312-win32.whl", hash = "sha256:699edfde481e191d81f9cf6d2211debbfe4bd92f06410e7637dffb8dd5dfde06"}, + {file = "jiter-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:099500d07b43f61d8bd780466d429c45a7b25411b334c60ca875fa775f68ccb0"}, + {file = "jiter-0.9.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:2764891d3f3e8b18dce2cff24949153ee30c9239da7c00f032511091ba688ff7"}, + {file = "jiter-0.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:387b22fbfd7a62418d5212b4638026d01723761c75c1c8232a8b8c37c2f1003b"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d8da8629ccae3606c61d9184970423655fb4e33d03330bcdfe52d234d32f69"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1be73d8982bdc278b7b9377426a4b44ceb5c7952073dd7488e4ae96b88e1103"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2228eaaaa111ec54b9e89f7481bffb3972e9059301a878d085b2b449fbbde635"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:11509bfecbc319459647d4ac3fd391d26fdf530dad00c13c4dadabf5b81f01a4"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f22238da568be8bbd8e0650e12feeb2cfea15eda4f9fc271d3b362a4fa0604d"}, + {file = "jiter-0.9.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17f5d55eb856597607562257c8e36c42bc87f16bef52ef7129b7da11afc779f3"}, + {file = "jiter-0.9.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:6a99bed9fbb02f5bed416d137944419a69aa4c423e44189bc49718859ea83bc5"}, + {file = "jiter-0.9.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e057adb0cd1bd39606100be0eafe742de2de88c79df632955b9ab53a086b3c8d"}, + {file = "jiter-0.9.0-cp313-cp313-win32.whl", hash = "sha256:f7e6850991f3940f62d387ccfa54d1a92bd4bb9f89690b53aea36b4364bcab53"}, + {file = "jiter-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:c8ae3bf27cd1ac5e6e8b7a27487bf3ab5f82318211ec2e1346a5b058756361f7"}, + {file = "jiter-0.9.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f0b2827fb88dda2cbecbbc3e596ef08d69bda06c6f57930aec8e79505dc17001"}, + {file = "jiter-0.9.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062b756ceb1d40b0b28f326cba26cfd575a4918415b036464a52f08632731e5a"}, + {file = "jiter-0.9.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6f7838bc467ab7e8ef9f387bd6de195c43bad82a569c1699cb822f6609dd4cdf"}, + {file = "jiter-0.9.0.tar.gz", hash = "sha256:aadba0964deb424daa24492abc3d229c60c4a31bfee205aedbf1acc7639d7893"}, ] [[package]] @@ -693,12 +1092,43 @@ files = [ {file = "jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552"}, ] +[[package]] +name = "jsonschema" +version = "4.25.0" +requires_python = ">=3.9" +summary = "An implementation of JSON Schema validation for Python" +groups = ["all", "mcp"] +dependencies = [ + "attrs>=22.2.0", + "jsonschema-specifications>=2023.03.6", + "referencing>=0.28.4", + "rpds-py>=0.7.1", +] +files = [ + {file = "jsonschema-4.25.0-py3-none-any.whl", hash = "sha256:24c2e8da302de79c8b9382fee3e76b355e44d2a4364bb207159ce10b517bd716"}, + {file = "jsonschema-4.25.0.tar.gz", hash = "sha256:e63acf5c11762c0e6672ffb61482bdf57f0876684d8d249c0fe2d730d48bc55f"}, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +requires_python = ">=3.9" +summary = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +groups = ["all", "mcp"] +dependencies = [ + "referencing>=0.31.0", +] +files = [ + {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, + {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, +] + [[package]] name = "markdown-it-py" version = "3.0.0" requires_python = ">=3.8" summary = "Python port of markdown-it. Markdown parsing, done right!" -groups = ["default"] +groups = ["default", "all", "mcp"] dependencies = [ "mdurl~=0.1", ] @@ -712,7 +1142,7 @@ name = "markupsafe" version = "3.0.2" requires_python = ">=3.9" summary = "Safely add untrusted strings to HTML/XML markup." -groups = ["default"] +groups = ["default", "dev"] files = [ {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, @@ -767,72 +1197,117 @@ files = [ {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, ] +[[package]] +name = "mcp" +version = "1.12.1" +requires_python = ">=3.10" +summary = "Model Context Protocol SDK" +groups = ["all", "mcp"] +dependencies = [ + "anyio>=4.5", + "httpx-sse>=0.4", + "httpx>=0.27", + "jsonschema>=4.20.0", + "pydantic-settings>=2.5.2", + "pydantic<3.0.0,>=2.8.0", + "python-multipart>=0.0.9", + "pywin32>=310; sys_platform == \"win32\"", + "sse-starlette>=1.6.1", + "starlette>=0.27", + "uvicorn>=0.23.1; sys_platform != \"emscripten\"", +] +files = [ + {file = "mcp-1.12.1-py3-none-any.whl", hash = "sha256:34147f62891417f8b000c39718add844182ba424c8eb2cea250b4267bda4b08b"}, + {file = "mcp-1.12.1.tar.gz", hash = "sha256:d1d0bdeb09e4b17c1a72b356248bf3baf75ab10db7008ef865c4afbeb0eb810e"}, +] + [[package]] name = "mdurl" version = "0.1.2" requires_python = ">=3.7" summary = "Markdown URL utilities" -groups = ["default"] +groups = ["default", "all", "mcp"] files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] +[[package]] +name = "more-itertools" +version = "10.7.0" +requires_python = ">=3.9" +summary = "More routines for operating on iterables, beyond itertools" +groups = ["dev"] +files = [ + {file = "more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e"}, + {file = "more_itertools-10.7.0.tar.gz", hash = "sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3"}, +] + +[[package]] +name = "mss" +version = "10.0.0" +requires_python = ">=3.9" +summary = "An ultra fast cross-platform multiple screenshots module in pure python using ctypes." +groups = ["all", "chat", "pynput"] +files = [ + {file = "mss-10.0.0-py3-none-any.whl", hash = "sha256:82cf6460a53d09e79b7b6d871163c982e6c7e9649c426e7b7591b74956d5cb64"}, + {file = "mss-10.0.0.tar.gz", hash = "sha256:d903e0d51262bf0f8782841cf16eaa6d7e3e1f12eae35ab41c2e318837c6637f"}, +] + [[package]] name = "mypy" -version = "1.17.0" +version = "1.15.0" requires_python = ">=3.9" summary = "Optional static typing for Python" groups = ["test"] dependencies = [ "mypy-extensions>=1.0.0", - "pathspec>=0.9.0", "tomli>=1.1.0; python_version < \"3.11\"", "typing-extensions>=4.6.0", ] files = [ - {file = "mypy-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8e08de6138043108b3b18f09d3f817a4783912e48828ab397ecf183135d84d6"}, - {file = "mypy-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce4a17920ec144647d448fc43725b5873548b1aae6c603225626747ededf582d"}, - {file = "mypy-1.17.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ff25d151cc057fdddb1cb1881ef36e9c41fa2a5e78d8dd71bee6e4dcd2bc05b"}, - {file = "mypy-1.17.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93468cf29aa9a132bceb103bd8475f78cacde2b1b9a94fd978d50d4bdf616c9a"}, - {file = "mypy-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:98189382b310f16343151f65dd7e6867386d3e35f7878c45cfa11383d175d91f"}, - {file = "mypy-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:c004135a300ab06a045c1c0d8e3f10215e71d7b4f5bb9a42ab80236364429937"}, - {file = "mypy-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d4fe5c72fd262d9c2c91c1117d16aac555e05f5beb2bae6a755274c6eec42be"}, - {file = "mypy-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d96b196e5c16f41b4f7736840e8455958e832871990c7ba26bf58175e357ed61"}, - {file = "mypy-1.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:73a0ff2dd10337ceb521c080d4147755ee302dcde6e1a913babd59473904615f"}, - {file = "mypy-1.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:24cfcc1179c4447854e9e406d3af0f77736d631ec87d31c6281ecd5025df625d"}, - {file = "mypy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56f180ff6430e6373db7a1d569317675b0a451caf5fef6ce4ab365f5f2f6c3"}, - {file = "mypy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:eafaf8b9252734400f9b77df98b4eee3d2eecab16104680d51341c75702cad70"}, - {file = "mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb"}, - {file = "mypy-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:51e455a54d199dd6e931cd7ea987d061c2afbaf0960f7f66deef47c90d1b304d"}, - {file = "mypy-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3204d773bab5ff4ebbd1f8efa11b498027cd57017c003ae970f310e5b96be8d8"}, - {file = "mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1051df7ec0886fa246a530ae917c473491e9a0ba6938cfd0ec2abc1076495c3e"}, - {file = "mypy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f773c6d14dcc108a5b141b4456b0871df638eb411a89cd1c0c001fc4a9d08fc8"}, - {file = "mypy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1619a485fd0e9c959b943c7b519ed26b712de3002d7de43154a489a2d0fd817d"}, - {file = "mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06"}, - {file = "mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a"}, - {file = "mypy-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03ba330b76710f83d6ac500053f7727270b6b8553b0423348ffb3af6f2f7b889"}, - {file = "mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037bc0f0b124ce46bfde955c647f3e395c6174476a968c0f22c95a8d2f589bba"}, - {file = "mypy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c38876106cb6132259683632b287238858bd58de267d80defb6f418e9ee50658"}, - {file = "mypy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c"}, - {file = "mypy-1.17.0-py3-none-any.whl", hash = "sha256:15d9d0018237ab058e5de3d8fce61b6fa72cc59cc78fd91f1b474bce12abf496"}, - {file = "mypy-1.17.0.tar.gz", hash = "sha256:e5d7ccc08ba089c06e2f5629c660388ef1fee708444f1dee0b9203fa031dee03"}, + {file = "mypy-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:979e4e1a006511dacf628e36fadfecbcc0160a8af6ca7dad2f5025529e082c13"}, + {file = "mypy-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c4bb0e1bd29f7d34efcccd71cf733580191e9a264a2202b0239da95984c5b559"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be68172e9fd9ad8fb876c6389f16d1c1b5f100ffa779f77b1fb2176fcc9ab95b"}, + {file = "mypy-1.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7be1e46525adfa0d97681432ee9fcd61a3964c2446795714699a998d193f1a3"}, + {file = "mypy-1.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2e2c2e6d3593f6451b18588848e66260ff62ccca522dd231cd4dd59b0160668b"}, + {file = "mypy-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:6983aae8b2f653e098edb77f893f7b6aca69f6cffb19b2cc7443f23cce5f4828"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2922d42e16d6de288022e5ca321cd0618b238cfc5570e0263e5ba0a77dbef56f"}, + {file = "mypy-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2ee2d57e01a7c35de00f4634ba1bbf015185b219e4dc5909e281016df43f5ee5"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:973500e0774b85d9689715feeffcc980193086551110fd678ebe1f4342fb7c5e"}, + {file = "mypy-1.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a95fb17c13e29d2d5195869262f8125dfdb5c134dc8d9a9d0aecf7525b10c2c"}, + {file = "mypy-1.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1905f494bfd7d85a23a88c5d97840888a7bd516545fc5aaedff0267e0bb54e2f"}, + {file = "mypy-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:c9817fa23833ff189db061e6d2eff49b2f3b6ed9856b4a0a73046e41932d744f"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aea39e0583d05124836ea645f412e88a5c7d0fd77a6d694b60d9b6b2d9f184fd"}, + {file = "mypy-1.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f2147ab812b75e5b5499b01ade1f4a81489a147c01585cda36019102538615f"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce436f4c6d218a070048ed6a44c0bbb10cd2cc5e272b29e7845f6a2f57ee4464"}, + {file = "mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8023ff13985661b50a5928fc7a5ca15f3d1affb41e5f0a9952cb68ef090b31ee"}, + {file = "mypy-1.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1124a18bc11a6a62887e3e137f37f53fbae476dc36c185d549d4f837a2a6a14e"}, + {file = "mypy-1.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:171a9ca9a40cd1843abeca0e405bc1940cd9b305eaeea2dda769ba096932bb22"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:93faf3fdb04768d44bf28693293f3904bbb555d076b781ad2530214ee53e3445"}, + {file = "mypy-1.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:811aeccadfb730024c5d3e326b2fbe9249bb7413553f15499a4050f7c30e801d"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:98b7b9b9aedb65fe628c62a6dc57f6d5088ef2dfca37903a7d9ee374d03acca5"}, + {file = "mypy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c43a7682e24b4f576d93072216bf56eeff70d9140241f9edec0c104d0c515036"}, + {file = "mypy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:baefc32840a9f00babd83251560e0ae1573e2f9d1b067719479bfb0e987c6357"}, + {file = "mypy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:b9378e2c00146c44793c98b8d5a61039a048e31f429fb0eb546d93f4b000bedf"}, + {file = "mypy-1.15.0-py3-none-any.whl", hash = "sha256:5469affef548bd1895d86d3bf10ce2b44e33d86923c29e4d675b3e323437ea3e"}, + {file = "mypy-1.15.0.tar.gz", hash = "sha256:404534629d51d3efea5c800ee7c42b72a6554d6c400e6a79eafe15d11341fd43"}, ] [[package]] name = "mypy-extensions" -version = "1.1.0" -requires_python = ">=3.8" +version = "1.0.0" +requires_python = ">=3.5" summary = "Type system extensions for programs checked with the mypy type checker." -groups = ["test"] +groups = ["dev", "test"] files = [ - {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, - {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] name = "openai" -version = "1.97.1" +version = "1.85.0" requires_python = ">=3.8" summary = "The official Python library for the openai API" groups = ["default"] @@ -847,19 +1322,33 @@ dependencies = [ "typing-extensions<5,>=4.11", ] files = [ - {file = "openai-1.97.1-py3-none-any.whl", hash = "sha256:4e96bbdf672ec3d44968c9ea39d2c375891db1acc1794668d8149d5fa6000606"}, - {file = "openai-1.97.1.tar.gz", hash = "sha256:a744b27ae624e3d4135225da9b1c89c107a2a7e5bc4c93e5b7b5214772ce7a4e"}, + {file = "openai-1.85.0-py3-none-any.whl", hash = "sha256:7dc3e839cb8bb8747979a90c63ad4cb25a8e0cbec17b53eec009532c9965cecf"}, + {file = "openai-1.85.0.tar.gz", hash = "sha256:6ba76e4ebc5725f71f2f6126c7cb5169ca8de60dd5aa61f350f9448ad162c913"}, +] + +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +requires_python = "<4.0,>=3.8" +summary = "Pydantic OpenAPI schema implementation" +groups = ["all", "mcp"] +dependencies = [ + "pydantic>=1.8", +] +files = [ + {file = "openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146"}, + {file = "openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d"}, ] [[package]] name = "packaging" -version = "25.0" +version = "24.2" requires_python = ">=3.8" summary = "Core utilities for Python packages" -groups = ["default", "test"] +groups = ["default", "dev", "test"] files = [ - {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, - {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, ] [[package]] @@ -867,7 +1356,7 @@ name = "pathspec" version = "0.12.1" requires_python = ">=3.8" summary = "Utility library for gitignore style pattern matching of file paths." -groups = ["test"] +groups = ["dev"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, @@ -875,151 +1364,164 @@ files = [ [[package]] name = "pillow" -version = "11.3.0" +version = "11.1.0" requires_python = ">=3.9" summary = "Python Imaging Library (Fork)" groups = ["default"] files = [ - {file = "pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860"}, - {file = "pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50"}, - {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae"}, - {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9"}, - {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e"}, - {file = "pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6"}, - {file = "pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f"}, - {file = "pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f"}, - {file = "pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722"}, - {file = "pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58"}, - {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f"}, - {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e"}, - {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94"}, - {file = "pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0"}, - {file = "pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac"}, - {file = "pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd"}, - {file = "pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4"}, - {file = "pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7"}, - {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024"}, - {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809"}, - {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d"}, - {file = "pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149"}, - {file = "pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d"}, - {file = "pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8"}, - {file = "pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f"}, - {file = "pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c"}, - {file = "pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805"}, - {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8"}, - {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2"}, - {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b"}, - {file = "pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3"}, - {file = "pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51"}, - {file = "pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580"}, - {file = "pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e"}, - {file = "pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8"}, - {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59"}, - {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe"}, - {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c"}, - {file = "pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788"}, - {file = "pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31"}, - {file = "pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e"}, - {file = "pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12"}, - {file = "pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027"}, - {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77"}, - {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874"}, - {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a"}, - {file = "pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214"}, - {file = "pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635"}, - {file = "pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6"}, - {file = "pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae"}, - {file = "pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b"}, - {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477"}, - {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50"}, - {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b"}, - {file = "pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12"}, - {file = "pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db"}, - {file = "pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a"}, - {file = "pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7"}, - {file = "pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8"}, - {file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +requires_python = ">=3.9" +summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +groups = ["dev"] +files = [ + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, ] [[package]] name = "playwright" -version = "1.54.0" +version = "1.53.0" requires_python = ">=3.9" summary = "A high-level API to automate web browsers" -groups = ["test"] +groups = ["all", "chat", "test", "web"] dependencies = [ "greenlet<4.0.0,>=3.1.1", "pyee<14,>=13", ] files = [ - {file = "playwright-1.54.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:bf3b845af744370f1bd2286c2a9536f474cc8a88dc995b72ea9a5be714c9a77d"}, - {file = "playwright-1.54.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:780928b3ca2077aea90414b37e54edd0c4bbb57d1aafc42f7aa0b3fd2c2fac02"}, - {file = "playwright-1.54.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:81d0b6f28843b27f288cfe438af0a12a4851de57998009a519ea84cee6fbbfb9"}, - {file = "playwright-1.54.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:09919f45cc74c64afb5432646d7fef0d19fff50990c862cb8d9b0577093f40cc"}, - {file = "playwright-1.54.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ae206c55737e8e3eae51fb385d61c0312eeef31535643bb6232741b41b6fdc"}, - {file = "playwright-1.54.0-py3-none-win32.whl", hash = "sha256:0b108622ffb6906e28566f3f31721cd57dda637d7e41c430287804ac01911f56"}, - {file = "playwright-1.54.0-py3-none-win_amd64.whl", hash = "sha256:9e5aee9ae5ab1fdd44cd64153313a2045b136fcbcfb2541cc0a3d909132671a2"}, - {file = "playwright-1.54.0-py3-none-win_arm64.whl", hash = "sha256:a975815971f7b8dca505c441a4c56de1aeb56a211290f8cc214eeef5524e8d75"}, + {file = "playwright-1.53.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:48a1a15ce810f0ffe512b6050de9871ea193b41dd3cc1bbed87b8431012419ba"}, + {file = "playwright-1.53.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a701f9498a5b87e3f929ec01cea3109fbde75821b19c7ba4bba54f6127b94f76"}, + {file = "playwright-1.53.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:f765498341c4037b4c01e742ae32dd335622f249488ccd77ca32d301d7c82c61"}, + {file = "playwright-1.53.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:db19cb5b58f3b15cad3e2419f4910c053e889202fc202461ee183f1530d1db60"}, + {file = "playwright-1.53.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9276c9c935fc062f51f4f5107e56420afd6d9a524348dc437793dc2e34c742e3"}, + {file = "playwright-1.53.0-py3-none-win32.whl", hash = "sha256:36eedec101724ff5a000cddab87dd9a72a39f9b3e65a687169c465484e667c06"}, + {file = "playwright-1.53.0-py3-none-win_amd64.whl", hash = "sha256:d68975807a0fd997433537f1dcf2893cda95884a39dc23c6f591b8d5f691e9e8"}, + {file = "playwright-1.53.0-py3-none-win_arm64.whl", hash = "sha256:fcfd481f76568d7b011571160e801b47034edd9e2383c43d83a5fb3f35c67885"}, ] [[package]] name = "pluggy" -version = "1.6.0" -requires_python = ">=3.9" +version = "1.5.0" +requires_python = ">=3.8" summary = "plugin and hook calling mechanisms for python" groups = ["test"] files = [ - {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, - {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[[package]] +name = "protobuf" +version = "6.31.1" +requires_python = ">=3.9" +summary = "" +groups = ["dev"] +files = [ + {file = "protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9"}, + {file = "protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447"}, + {file = "protobuf-6.31.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:6f1227473dc43d44ed644425268eb7c2e488ae245d51c6866d19fe158e207402"}, + {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:a40fc12b84c154884d7d4c4ebd675d5b3b5283e155f324049ae396b95ddebc39"}, + {file = "protobuf-6.31.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:4ee898bf66f7a8b0bd21bce523814e6fbd8c6add948045ce958b73af7e8878c6"}, + {file = "protobuf-6.31.1-py3-none-any.whl", hash = "sha256:720a6c7e6b77288b85063569baae8536671b39f15cc22037ec7045658d80489e"}, + {file = "protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a"}, +] + +[[package]] +name = "pure-python-adb" +version = "0.3.0.dev0" +summary = "Pure python implementation of the adb client" +groups = ["all", "android", "chat"] +files = [ + {file = "pure-python-adb-0.3.0.dev0.tar.gz", hash = "sha256:0ecc89d780160cfe03260ba26df2c471a05263b2cad0318363573ee8043fb94d"}, ] [[package]] name = "py-machineid" -version = "0.8.0" +version = "0.7.0" summary = "Get the unique machine ID of any host (without admin privileges)" groups = ["default"] dependencies = [ "winregistry<3.0.0,>=2.0.1; sys_platform == \"win32\"", ] files = [ - {file = "py-machineid-0.8.0.tar.gz", hash = "sha256:5515d5f9779073d0caa2e8aaf15a0fdd0ad4247fd0b86d9c447431c96d3e3467"}, - {file = "py_machineid-0.8.0-py3-none-any.whl", hash = "sha256:fddf06c5f4e87759a74128117c50e5604cddcef6bcc1728b697924c49b5f6e79"}, + {file = "py-machineid-0.7.0.tar.gz", hash = "sha256:5a74a810e38b57b043b145c756c1e6ac161529cb7d83fe20099fcb986acc577b"}, + {file = "py_machineid-0.7.0-py3-none-any.whl", hash = "sha256:3dacc322b0511383d79f1e817a2710b19bcfb820a4c7cea34aaa329775fef468"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +requires_python = ">=3.8" +summary = "C parser in Python" +groups = ["all", "mcp"] +marker = "platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] @@ -1027,7 +1529,7 @@ name = "pydantic" version = "2.11.7" requires_python = ">=3.9" summary = "Data validation using Python type hints" -groups = ["default"] +groups = ["default", "all", "chat", "dev", "mcp"] dependencies = [ "annotated-types>=0.6.0", "pydantic-core==2.33.2", @@ -1044,7 +1546,7 @@ name = "pydantic-core" version = "2.33.2" requires_python = ">=3.9" summary = "Core functionality for Pydantic validation and serialization" -groups = ["default"] +groups = ["default", "all", "chat", "dev", "mcp"] dependencies = [ "typing-extensions!=4.7.0,>=4.6.0", ] @@ -1130,18 +1632,34 @@ files = [ [[package]] name = "pydantic-settings" -version = "2.10.1" +version = "2.9.1" requires_python = ">=3.9" summary = "Settings management using Pydantic" -groups = ["default"] +groups = ["default", "all", "mcp"] dependencies = [ "pydantic>=2.7.0", "python-dotenv>=0.21.0", "typing-inspection>=0.4.0", ] files = [ - {file = "pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796"}, - {file = "pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee"}, + {file = "pydantic_settings-2.9.1-py3-none-any.whl", hash = "sha256:59b4f431b1defb26fe620c71a7d3968a710d719f5f4cdbbdb7926edeb770f6ef"}, + {file = "pydantic_settings-2.9.1.tar.gz", hash = "sha256:c509bf79d27563add44e8446233359004ed85066cd096d8b510f715e6ef5d268"}, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +extras = ["email"] +requires_python = ">=3.9" +summary = "Data validation using Python type hints" +groups = ["all", "mcp"] +dependencies = [ + "email-validator>=2.0.0", + "pydantic==2.11.7", +] +files = [ + {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"}, + {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"}, ] [[package]] @@ -1149,7 +1667,7 @@ name = "pyee" version = "13.0.0" requires_python = ">=3.8" summary = "A rough port of Node.js's EventEmitter to Python with a few tricks of its own" -groups = ["test"] +groups = ["all", "chat", "test", "web"] dependencies = [ "typing-extensions", ] @@ -1160,13 +1678,13 @@ files = [ [[package]] name = "pygments" -version = "2.19.2" +version = "2.19.1" requires_python = ">=3.8" summary = "Pygments is a syntax highlighting package written in Python." -groups = ["default", "test"] +groups = ["default", "all", "mcp"] files = [ - {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, - {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, ] [[package]] @@ -1180,54 +1698,168 @@ files = [ {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, ] +[[package]] +name = "pynput" +version = "1.8.1" +summary = "Monitor and control user input devices" +groups = ["all", "chat", "pynput"] +dependencies = [ + "enum34; python_version == \"2.7\"", + "evdev>=1.3; \"linux\" in sys_platform", + "pyobjc-framework-ApplicationServices>=8.0; sys_platform == \"darwin\"", + "pyobjc-framework-Quartz>=8.0; sys_platform == \"darwin\"", + "python-xlib>=0.17; \"linux\" in sys_platform", + "six", +] +files = [ + {file = "pynput-1.8.1-py2.py3-none-any.whl", hash = "sha256:42dfcf27404459ca16ca889c8fb8ffe42a9fe54f722fd1a3e130728e59e768d2"}, + {file = "pynput-1.8.1.tar.gz", hash = "sha256:70d7c8373ee98911004a7c938742242840a5628c004573d84ba849d4601df81e"}, +] + +[[package]] +name = "pyobjc-core" +version = "11.0" +requires_python = ">=3.8" +summary = "Python<->ObjC Interoperability Module" +groups = ["all", "chat", "pynput"] +marker = "sys_platform == \"darwin\"" +files = [ + {file = "pyobjc_core-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:10866b3a734d47caf48e456eea0d4815c2c9b21856157db5917b61dee06893a1"}, + {file = "pyobjc_core-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:50675c0bb8696fe960a28466f9baf6943df2928a1fd85625d678fa2f428bd0bd"}, + {file = "pyobjc_core-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a03061d4955c62ddd7754224a80cdadfdf17b6b5f60df1d9169a3b1b02923f0b"}, + {file = "pyobjc_core-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c338c1deb7ab2e9436d4175d1127da2eeed4a1b564b3d83b9f3ae4844ba97e86"}, + {file = "pyobjc_core-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b4e9dc4296110f251a4033ff3f40320b35873ea7f876bd29a1c9705bb5e08c59"}, + {file = "pyobjc_core-11.0.tar.gz", hash = "sha256:63bced211cb8a8fb5c8ff46473603da30e51112861bd02c438fbbbc8578d9a70"}, +] + +[[package]] +name = "pyobjc-framework-applicationservices" +version = "11.0" +requires_python = ">=3.9" +summary = "Wrappers for the framework ApplicationServices on macOS" +groups = ["all", "chat", "pynput"] +marker = "sys_platform == \"darwin\"" +dependencies = [ + "pyobjc-core>=11.0", + "pyobjc-framework-Cocoa>=11.0", + "pyobjc-framework-CoreText>=11.0", + "pyobjc-framework-Quartz>=11.0", +] +files = [ + {file = "pyobjc_framework_ApplicationServices-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bc8f34b5b59ffd3c210ae883d794345c1197558ff3da0f5800669cf16435271e"}, + {file = "pyobjc_framework_ApplicationServices-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61a99eef23abb704257310db4f5271137707e184768f6407030c01de4731b67b"}, + {file = "pyobjc_framework_ApplicationServices-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5fbeb425897d6129471d451ec61a29ddd5b1386eb26b1dd49cb313e34616ee21"}, + {file = "pyobjc_framework_ApplicationServices-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:59becf3cd87a4f4cedf4be02ff6cf46ed736f5c1123ce629f788aaafad91eff0"}, + {file = "pyobjc_framework_ApplicationServices-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:44b466e8745fb49e8ac20f29f2ffd7895b45e97aa63a844b2a80a97c3a34346f"}, + {file = "pyobjc_framework_applicationservices-11.0.tar.gz", hash = "sha256:d6ea18dfc7d5626a3ecf4ac72d510405c0d3a648ca38cae8db841acdebecf4d2"}, +] + +[[package]] +name = "pyobjc-framework-cocoa" +version = "11.0" +requires_python = ">=3.9" +summary = "Wrappers for the Cocoa frameworks on macOS" +groups = ["all", "chat", "pynput"] +marker = "sys_platform == \"darwin\"" +dependencies = [ + "pyobjc-core>=11.0", +] +files = [ + {file = "pyobjc_framework_Cocoa-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fbc65f260d617d5463c7fb9dbaaffc23c9a4fabfe3b1a50b039b61870b8daefd"}, + {file = "pyobjc_framework_Cocoa-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3ea7be6e6dd801b297440de02d312ba3fa7fd3c322db747ae1cb237e975f5d33"}, + {file = "pyobjc_framework_Cocoa-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:280a577b83c68175a28b2b7138d1d2d3111f2b2b66c30e86f81a19c2b02eae71"}, + {file = "pyobjc_framework_Cocoa-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:15b2bd977ed340074f930f1330f03d42912d5882b697d78bd06f8ebe263ef92e"}, + {file = "pyobjc_framework_Cocoa-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5750001db544e67f2b66f02067d8f0da96bb2ef71732bde104f01b8628f9d7ea"}, + {file = "pyobjc_framework_cocoa-11.0.tar.gz", hash = "sha256:00346a8cb81ad7b017b32ff7bf596000f9faa905807b1bd234644ebd47f692c5"}, +] + +[[package]] +name = "pyobjc-framework-coretext" +version = "11.0" +requires_python = ">=3.9" +summary = "Wrappers for the framework CoreText on macOS" +groups = ["all", "chat", "pynput"] +marker = "sys_platform == \"darwin\"" +dependencies = [ + "pyobjc-core>=11.0", + "pyobjc-framework-Cocoa>=11.0", + "pyobjc-framework-Quartz>=11.0", +] +files = [ + {file = "pyobjc_framework_CoreText-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6939b4ea745b349b5c964823a2071f155f5defdc9b9fc3a13f036d859d7d0439"}, + {file = "pyobjc_framework_CoreText-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:56a4889858308b0d9f147d568b4d91c441cc0ffd332497cb4f709bb1990450c1"}, + {file = "pyobjc_framework_CoreText-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fb90e7f370b3fd7cb2fb442e3dc63fedf0b4af6908db1c18df694d10dc94669d"}, + {file = "pyobjc_framework_CoreText-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7947f755782456bd663e0b00c7905eeffd10f839f0bf2af031f68ded6a1ea360"}, + {file = "pyobjc_framework_CoreText-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5356116bae33ec49f1f212c301378a7d08000440a2d6a7281aab351945528ab9"}, + {file = "pyobjc_framework_coretext-11.0.tar.gz", hash = "sha256:a68437153e627847e3898754dd3f13ae0cb852246b016a91f9c9cbccb9f91a43"}, +] + +[[package]] +name = "pyobjc-framework-quartz" +version = "11.0" +requires_python = ">=3.9" +summary = "Wrappers for the Quartz frameworks on macOS" +groups = ["all", "chat", "pynput"] +marker = "sys_platform == \"darwin\"" +dependencies = [ + "pyobjc-core>=11.0", + "pyobjc-framework-Cocoa>=11.0", +] +files = [ + {file = "pyobjc_framework_Quartz-11.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da3ab13c9f92361959b41b0ad4cdd41ae872f90a6d8c58a9ed699bc08ab1c45c"}, + {file = "pyobjc_framework_Quartz-11.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d251696bfd8e8ef72fbc90eb29fec95cb9d1cc409008a183d5cc3246130ae8c2"}, + {file = "pyobjc_framework_Quartz-11.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:cb4a9f2d9d580ea15e25e6b270f47681afb5689cafc9e25712445ce715bcd18e"}, + {file = "pyobjc_framework_Quartz-11.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:973b4f9b8ab844574461a038bd5269f425a7368d6e677e3cc81fcc9b27b65498"}, + {file = "pyobjc_framework_Quartz-11.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:66ab58d65348863b8707e63b2ec5cdc54569ee8189d1af90d52f29f5fdf6272c"}, + {file = "pyobjc_framework_quartz-11.0.tar.gz", hash = "sha256:3205bf7795fb9ae34747f701486b3db6dfac71924894d1f372977c4d70c3c619"}, +] + [[package]] name = "pyperclip" version = "1.9.0" summary = "A cross-platform clipboard module for Python. (Only handles plain text for now.)" -groups = ["default"] +groups = ["default", "all", "mcp"] files = [ {file = "pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310"}, ] [[package]] name = "pytest" -version = "8.4.1" -requires_python = ">=3.9" +version = "8.3.5" +requires_python = ">=3.8" summary = "pytest: simple powerful testing with Python" groups = ["test"] dependencies = [ - "colorama>=0.4; sys_platform == \"win32\"", - "exceptiongroup>=1; python_version < \"3.11\"", - "iniconfig>=1", - "packaging>=20", + "colorama; sys_platform == \"win32\"", + "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", + "iniconfig", + "packaging", "pluggy<2,>=1.5", - "pygments>=2.7.2", "tomli>=1; python_version < \"3.11\"", ] files = [ - {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, - {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, + {file = "pytest-8.3.5-py3-none-any.whl", hash = "sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820"}, + {file = "pytest-8.3.5.tar.gz", hash = "sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845"}, ] [[package]] name = "pytest-cov" -version = "6.2.1" +version = "6.1.1" requires_python = ">=3.9" summary = "Pytest plugin for measuring coverage." groups = ["test"] dependencies = [ "coverage[toml]>=7.5", - "pluggy>=1.2", - "pytest>=6.2.5", + "pytest>=4.6", ] files = [ - {file = "pytest_cov-6.2.1-py3-none-any.whl", hash = "sha256:f5bc4c23f42f1cdd23c70b1dab1bbaef4fc505ba950d53e0081d0730dd7e86d5"}, - {file = "pytest_cov-6.2.1.tar.gz", hash = "sha256:25cc6cc0a5358204b8108ecedc51a9b57b34cc6b8c967cc2c01a4e00d8a67da2"}, + {file = "pytest_cov-6.1.1-py3-none-any.whl", hash = "sha256:bddf29ed2d0ab6f4df17b4c55b0a657287db8684af9c42ea546b21b1041b3dde"}, + {file = "pytest_cov-6.1.1.tar.gz", hash = "sha256:46935f7aaefba760e716c2ebfbe1c216240b9592966e7da99ea8292d4d3e2a0a"}, ] [[package]] name = "pytest-mock" -version = "3.14.1" +version = "3.14.0" requires_python = ">=3.8" summary = "Thin-wrapper around the mock package for easier use with pytest" groups = ["test"] @@ -1235,8 +1867,8 @@ dependencies = [ "pytest>=6.2.5", ] files = [ - {file = "pytest_mock-3.14.1-py3-none-any.whl", hash = "sha256:178aefcd11307d874b4cd3100344e7e2d888d9791a6a1d9bfe90fbc1b74fd1d0"}, - {file = "pytest_mock-3.14.1.tar.gz", hash = "sha256:159e9edac4c451ce77a5cdb9fc5d1100708d2dd4ba3c3df572f14097351af80e"}, + {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, + {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, ] [[package]] @@ -1255,8 +1887,8 @@ files = [ [[package]] name = "pytest-xdist" -version = "3.8.0" -requires_python = ">=3.9" +version = "3.6.1" +requires_python = ">=3.8" summary = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" groups = ["test"] dependencies = [ @@ -1264,8 +1896,8 @@ dependencies = [ "pytest>=7.0.0", ] files = [ - {file = "pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88"}, - {file = "pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1"}, + {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, + {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, ] [[package]] @@ -1284,13 +1916,62 @@ files = [ [[package]] name = "python-dotenv" -version = "1.1.1" +version = "1.1.0" requires_python = ">=3.9" summary = "Read key-value pairs from a .env file and set them as environment variables" -groups = ["default"] +groups = ["default", "all", "mcp"] files = [ - {file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"}, - {file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"}, + {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, + {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +requires_python = ">=3.8" +summary = "A streaming multipart parser for Python" +groups = ["all", "mcp"] +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "python-xlib" +version = "0.33" +summary = "Python X Library" +groups = ["all", "chat", "pynput"] +marker = "\"linux\" in sys_platform" +dependencies = [ + "six>=1.10.0", +] +files = [ + {file = "python-xlib-0.33.tar.gz", hash = "sha256:55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32"}, + {file = "python_xlib-0.33-py2.py3-none-any.whl", hash = "sha256:c3534038d42e0df2f1392a1b30a15a4ff5fdc2b86cfa94f072bf11b10a164398"}, +] + +[[package]] +name = "pywin32" +version = "311" +summary = "Python for Window Extensions" +groups = ["all", "mcp"] +marker = "sys_platform == \"win32\"" +files = [ + {file = "pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3"}, + {file = "pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b"}, + {file = "pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b"}, + {file = "pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151"}, + {file = "pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503"}, + {file = "pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2"}, + {file = "pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31"}, + {file = "pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067"}, + {file = "pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852"}, + {file = "pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d"}, + {file = "pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d"}, + {file = "pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a"}, + {file = "pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee"}, + {file = "pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87"}, + {file = "pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42"}, ] [[package]] @@ -1298,7 +1979,7 @@ name = "pyyaml" version = "6.0.2" requires_python = ">=3.8" summary = "YAML parser and emitter for Python" -groups = ["default"] +groups = ["default", "dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -1339,9 +2020,25 @@ files = [ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, ] +[[package]] +name = "referencing" +version = "0.36.2" +requires_python = ">=3.9" +summary = "JSON Referencing + Python" +groups = ["all", "mcp"] +dependencies = [ + "attrs>=22.2.0", + "rpds-py>=0.7.0", + "typing-extensions>=4.4.0; python_version < \"3.13\"", +] +files = [ + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, +] + [[package]] name = "requests" -version = "2.32.4" +version = "2.32.3" requires_python = ">=3.8" summary = "Python HTTP for Humans." groups = ["default"] @@ -1352,8 +2049,8 @@ dependencies = [ "urllib3<3,>=1.21.1", ] files = [ - {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, - {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [[package]] @@ -1361,7 +2058,7 @@ name = "rich" version = "14.0.0" requires_python = ">=3.8.0" summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -groups = ["default"] +groups = ["default", "all", "mcp"] dependencies = [ "markdown-it-py>=2.2.0", "pygments<3.0.0,>=2.13.0", @@ -1372,31 +2069,174 @@ files = [ {file = "rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725"}, ] +[[package]] +name = "rich-rst" +version = "1.3.1" +requires_python = ">=3.6" +summary = "A beautiful reStructuredText renderer for rich" +groups = ["all", "mcp"] +dependencies = [ + "docutils", + "rich>=12.0.0", +] +files = [ + {file = "rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1"}, + {file = "rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383"}, +] + +[[package]] +name = "rpds-py" +version = "0.26.0" +requires_python = ">=3.9" +summary = "Python bindings to Rust's persistent data structures (rpds)" +groups = ["all", "mcp"] +files = [ + {file = "rpds_py-0.26.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4c70c70f9169692b36307a95f3d8c0a9fcd79f7b4a383aad5eaa0e9718b79b37"}, + {file = "rpds_py-0.26.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:777c62479d12395bfb932944e61e915741e364c843afc3196b694db3d669fcd0"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec671691e72dff75817386aa02d81e708b5a7ec0dec6669ec05213ff6b77e1bd"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a1cb5d6ce81379401bbb7f6dbe3d56de537fb8235979843f0d53bc2e9815a79"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f789e32fa1fb6a7bf890e0124e7b42d1e60d28ebff57fe806719abb75f0e9a3"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c55b0a669976cf258afd718de3d9ad1b7d1fe0a91cd1ab36f38b03d4d4aeaaf"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70d9ec912802ecfd6cd390dadb34a9578b04f9bcb8e863d0a7598ba5e9e7ccc"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3021933c2cb7def39d927b9862292e0f4c75a13d7de70eb0ab06efed4c508c19"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8a7898b6ca3b7d6659e55cdac825a2e58c638cbf335cde41f4619e290dd0ad11"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:12bff2ad9447188377f1b2794772f91fe68bb4bbfa5a39d7941fbebdbf8c500f"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:191aa858f7d4902e975d4cf2f2d9243816c91e9605070aeb09c0a800d187e323"}, + {file = "rpds_py-0.26.0-cp310-cp310-win32.whl", hash = "sha256:b37a04d9f52cb76b6b78f35109b513f6519efb481d8ca4c321f6a3b9580b3f45"}, + {file = "rpds_py-0.26.0-cp310-cp310-win_amd64.whl", hash = "sha256:38721d4c9edd3eb6670437d8d5e2070063f305bfa2d5aa4278c51cedcd508a84"}, + {file = "rpds_py-0.26.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9e8cb77286025bdb21be2941d64ac6ca016130bfdcd228739e8ab137eb4406ed"}, + {file = "rpds_py-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e09330b21d98adc8ccb2dbb9fc6cb434e8908d4c119aeaa772cb1caab5440a0"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9c1b92b774b2e68d11193dc39620d62fd8ab33f0a3c77ecdabe19c179cdbc1"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:824e6d3503ab990d7090768e4dfd9e840837bae057f212ff9f4f05ec6d1975e7"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ad7fd2258228bf288f2331f0a6148ad0186b2e3643055ed0db30990e59817a6"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0dc23bbb3e06ec1ea72d515fb572c1fea59695aefbffb106501138762e1e915e"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80bf832ac7b1920ee29a426cdca335f96a2b5caa839811803e999b41ba9030d"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0919f38f5542c0a87e7b4afcafab6fd2c15386632d249e9a087498571250abe3"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d422b945683e409000c888e384546dbab9009bb92f7c0b456e217988cf316107"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a7711fa562ba2da1aa757e11024ad6d93bad6ad7ede5afb9af144623e5f76a"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:238e8c8610cb7c29460e37184f6799547f7e09e6a9bdbdab4e8edb90986a2318"}, + {file = "rpds_py-0.26.0-cp311-cp311-win32.whl", hash = "sha256:893b022bfbdf26d7bedb083efeea624e8550ca6eb98bf7fea30211ce95b9201a"}, + {file = "rpds_py-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:87a5531de9f71aceb8af041d72fc4cab4943648d91875ed56d2e629bef6d4c03"}, + {file = "rpds_py-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:de2713f48c1ad57f89ac25b3cb7daed2156d8e822cf0eca9b96a6f990718cc41"}, + {file = "rpds_py-0.26.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:894514d47e012e794f1350f076c427d2347ebf82f9b958d554d12819849a369d"}, + {file = "rpds_py-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc921b96fa95a097add244da36a1d9e4f3039160d1d30f1b35837bf108c21136"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1157659470aa42a75448b6e943c895be8c70531c43cb78b9ba990778955582"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:521ccf56f45bb3a791182dc6b88ae5f8fa079dd705ee42138c76deb1238e554e"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9def736773fd56b305c0eef698be5192c77bfa30d55a0e5885f80126c4831a15"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdad4ea3b4513b475e027be79e5a0ceac8ee1c113a1a11e5edc3c30c29f964d8"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82b165b07f416bdccf5c84546a484cc8f15137ca38325403864bfdf2b5b72f6a"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d04cab0a54b9dba4d278fe955a1390da3cf71f57feb78ddc7cb67cbe0bd30323"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:79061ba1a11b6a12743a2b0f72a46aa2758613d454aa6ba4f5a265cc48850158"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f405c93675d8d4c5ac87364bb38d06c988e11028a64b52a47158a355079661f3"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dafd4c44b74aa4bed4b250f1aed165b8ef5de743bcca3b88fc9619b6087093d2"}, + {file = "rpds_py-0.26.0-cp312-cp312-win32.whl", hash = "sha256:3da5852aad63fa0c6f836f3359647870e21ea96cf433eb393ffa45263a170d44"}, + {file = "rpds_py-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf47cfdabc2194a669dcf7a8dbba62e37a04c5041d2125fae0233b720da6f05c"}, + {file = "rpds_py-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:20ab1ae4fa534f73647aad289003f1104092890849e0266271351922ed5574f8"}, + {file = "rpds_py-0.26.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:696764a5be111b036256c0b18cd29783fab22154690fc698062fc1b0084b511d"}, + {file = "rpds_py-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6c15d2080a63aaed876e228efe4f814bc7889c63b1e112ad46fdc8b368b9e1"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390e3170babf42462739a93321e657444f0862c6d722a291accc46f9d21ed04e"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7da84c2c74c0f5bc97d853d9e17bb83e2dcafcff0dc48286916001cc114379a1"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c5fe114a6dd480a510b6d3661d09d67d1622c4bf20660a474507aaee7eeeee9"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3100b3090269f3a7ea727b06a6080d4eb7439dca4c0e91a07c5d133bb1727ea7"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c03c9b0c64afd0320ae57de4c982801271c0c211aa2d37f3003ff5feb75bb04"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5963b72ccd199ade6ee493723d18a3f21ba7d5b957017607f815788cef50eaf1"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9da4e873860ad5bab3291438525cae80169daecbfafe5657f7f5fb4d6b3f96b9"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5afaddaa8e8c7f1f7b4c5c725c0070b6eed0228f705b90a1732a48e84350f4e9"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4916dc96489616a6f9667e7526af8fa693c0fdb4f3acb0e5d9f4400eb06a47ba"}, + {file = "rpds_py-0.26.0-cp313-cp313-win32.whl", hash = "sha256:2a343f91b17097c546b93f7999976fd6c9d5900617aa848c81d794e062ab302b"}, + {file = "rpds_py-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:0a0b60701f2300c81b2ac88a5fb893ccfa408e1c4a555a77f908a2596eb875a5"}, + {file = "rpds_py-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:257d011919f133a4746958257f2c75238e3ff54255acd5e3e11f3ff41fd14256"}, + {file = "rpds_py-0.26.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:529c8156d7506fba5740e05da8795688f87119cce330c244519cf706a4a3d618"}, + {file = "rpds_py-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f53ec51f9d24e9638a40cabb95078ade8c99251945dad8d57bf4aabe86ecee35"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab504c4d654e4a29558eaa5bb8cea5fdc1703ea60a8099ffd9c758472cf913f"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd0641abca296bc1a00183fe44f7fced8807ed49d501f188faa642d0e4975b83"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b312fecc1d017b5327afa81d4da1480f51c68810963a7336d92203dbb3d4f1"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c741107203954f6fc34d3066d213d0a0c40f7bb5aafd698fb39888af277c70d8"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3e55a7db08dc9a6ed5fb7103019d2c1a38a349ac41901f9f66d7f95750942f"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e851920caab2dbcae311fd28f4313c6953993893eb5c1bb367ec69d9a39e7ed"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dfbf280da5f876d0b00c81f26bedce274e72a678c28845453885a9b3c22ae632"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1cc81d14ddfa53d7f3906694d35d54d9d3f850ef8e4e99ee68bc0d1e5fed9a9c"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dca83c498b4650a91efcf7b88d669b170256bf8017a5db6f3e06c2bf031f57e0"}, + {file = "rpds_py-0.26.0-cp313-cp313t-win32.whl", hash = "sha256:4d11382bcaf12f80b51d790dee295c56a159633a8e81e6323b16e55d81ae37e9"}, + {file = "rpds_py-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff110acded3c22c033e637dd8896e411c7d3a11289b2edf041f86663dbc791e9"}, + {file = "rpds_py-0.26.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:da619979df60a940cd434084355c514c25cf8eb4cf9a508510682f6c851a4f7a"}, + {file = "rpds_py-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ea89a2458a1a75f87caabefe789c87539ea4e43b40f18cff526052e35bbb4fdf"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feac1045b3327a45944e7dcbeb57530339f6b17baff154df51ef8b0da34c8c12"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b818a592bd69bfe437ee8368603d4a2d928c34cffcdf77c2e761a759ffd17d20"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a8b0dd8648709b62d9372fc00a57466f5fdeefed666afe3fea5a6c9539a0331"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d3498ad0df07d81112aa6ec6c95a7e7b1ae00929fb73e7ebee0f3faaeabad2f"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24a4146ccb15be237fdef10f331c568e1b0e505f8c8c9ed5d67759dac58ac246"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9a63785467b2d73635957d32a4f6e73d5e4df497a16a6392fa066b753e87387"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:de4ed93a8c91debfd5a047be327b7cc8b0cc6afe32a716bbbc4aedca9e2a83af"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:caf51943715b12af827696ec395bfa68f090a4c1a1d2509eb4e2cb69abbbdb33"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4a59e5bc386de021f56337f757301b337d7ab58baa40174fb150accd480bc953"}, + {file = "rpds_py-0.26.0-cp314-cp314-win32.whl", hash = "sha256:92c8db839367ef16a662478f0a2fe13e15f2227da3c1430a782ad0f6ee009ec9"}, + {file = "rpds_py-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:b0afb8cdd034150d4d9f53926226ed27ad15b7f465e93d7468caaf5eafae0d37"}, + {file = "rpds_py-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:ca3f059f4ba485d90c8dc75cb5ca897e15325e4e609812ce57f896607c1c0867"}, + {file = "rpds_py-0.26.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5afea17ab3a126006dc2f293b14ffc7ef3c85336cf451564a0515ed7648033da"}, + {file = "rpds_py-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:69f0c0a3df7fd3a7eec50a00396104bb9a843ea6d45fcc31c2d5243446ffd7a7"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:801a71f70f9813e82d2513c9a96532551fce1e278ec0c64610992c49c04c2dad"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:df52098cde6d5e02fa75c1f6244f07971773adb4a26625edd5c18fee906fa84d"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bc596b30f86dc6f0929499c9e574601679d0341a0108c25b9b358a042f51bca"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dfbe56b299cf5875b68eb6f0ebaadc9cac520a1989cac0db0765abfb3709c19"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac64f4b2bdb4ea622175c9ab7cf09444e412e22c0e02e906978b3b488af5fde8"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:181ef9b6bbf9845a264f9aa45c31836e9f3c1f13be565d0d010e964c661d1e2b"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:49028aa684c144ea502a8e847d23aed5e4c2ef7cadfa7d5eaafcb40864844b7a"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e5d524d68a474a9688336045bbf76cb0def88549c1b2ad9dbfec1fb7cfbe9170"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c1851f429b822831bd2edcbe0cfd12ee9ea77868f8d3daf267b189371671c80e"}, + {file = "rpds_py-0.26.0-cp314-cp314t-win32.whl", hash = "sha256:7bdb17009696214c3b66bb3590c6d62e14ac5935e53e929bcdbc5a495987a84f"}, + {file = "rpds_py-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f14440b9573a6f76b4ee4770c13f0b5921f71dde3b6fcb8dabbefd13b7fe05d7"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3c0909c5234543ada2515c05dc08595b08d621ba919629e94427e8e03539c958"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c1fb0cda2abcc0ac62f64e2ea4b4e64c57dfd6b885e693095460c61bde7bb18e"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84d142d2d6cf9b31c12aa4878d82ed3b2324226270b89b676ac62ccd7df52d08"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a547e21c5610b7e9093d870be50682a6a6cf180d6da0f42c47c306073bfdbbf6"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35e9a70a0f335371275cdcd08bc5b8051ac494dd58bff3bbfb421038220dc871"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0dfa6115c6def37905344d56fb54c03afc49104e2ca473d5dedec0f6606913b4"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:313cfcd6af1a55a286a3c9a25f64af6d0e46cf60bc5798f1db152d97a216ff6f"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f7bf2496fa563c046d05e4d232d7b7fd61346e2402052064b773e5c378bf6f73"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:aa81873e2c8c5aa616ab8e017a481a96742fdf9313c40f14338ca7dbf50cb55f"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:68ffcf982715f5b5b7686bdd349ff75d422e8f22551000c24b30eaa1b7f7ae84"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6188de70e190847bb6db3dc3981cbadff87d27d6fe9b4f0e18726d55795cee9b"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1c962145c7473723df9722ba4c058de12eb5ebedcb4e27e7d902920aa3831ee8"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f61a9326f80ca59214d1cceb0a09bb2ece5b2563d4e0cd37bfd5515c28510674"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:183f857a53bcf4b1b42ef0f57ca553ab56bdd170e49d8091e96c51c3d69ca696"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:941c1cfdf4799d623cf3aa1d326a6b4fdb7a5799ee2687f3516738216d2262fb"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72a8d9564a717ee291f554eeb4bfeafe2309d5ec0aa6c475170bdab0f9ee8e88"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:511d15193cbe013619dd05414c35a7dedf2088fcee93c6bbb7c77859765bd4e8"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aea1f9741b603a8d8fedb0ed5502c2bc0accbc51f43e2ad1337fe7259c2b77a5"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4019a9d473c708cf2f16415688ef0b4639e07abaa569d72f74745bbeffafa2c7"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:093d63b4b0f52d98ebae33b8c50900d3d67e0666094b1be7a12fffd7f65de74b"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2abe21d8ba64cded53a2a677e149ceb76dcf44284202d737178afe7ba540c1eb"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:4feb7511c29f8442cbbc28149a92093d32e815a28aa2c50d333826ad2a20fdf0"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e99685fc95d386da368013e7fb4269dd39c30d99f812a8372d62f244f662709c"}, + {file = "rpds_py-0.26.0.tar.gz", hash = "sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0"}, +] + [[package]] name = "ruff" -version = "0.12.4" +version = "0.11.3" requires_python = ">=3.7" summary = "An extremely fast Python linter and code formatter, written in Rust." groups = ["test"] files = [ - {file = "ruff-0.12.4-py3-none-linux_armv6l.whl", hash = "sha256:cb0d261dac457ab939aeb247e804125a5d521b21adf27e721895b0d3f83a0d0a"}, - {file = "ruff-0.12.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:55c0f4ca9769408d9b9bac530c30d3e66490bd2beb2d3dae3e4128a1f05c7442"}, - {file = "ruff-0.12.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a8224cc3722c9ad9044da7f89c4c1ec452aef2cfe3904365025dd2f51daeae0e"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9949d01d64fa3672449a51ddb5d7548b33e130240ad418884ee6efa7a229586"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:be0593c69df9ad1465e8a2d10e3defd111fdb62dcd5be23ae2c06da77e8fcffb"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7dea966bcb55d4ecc4cc3270bccb6f87a337326c9dcd3c07d5b97000dbff41c"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:afcfa3ab5ab5dd0e1c39bf286d829e042a15e966b3726eea79528e2e24d8371a"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c057ce464b1413c926cdb203a0f858cd52f3e73dcb3270a3318d1630f6395bb3"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64b90d1122dc2713330350626b10d60818930819623abbb56535c6466cce045"}, - {file = "ruff-0.12.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2abc48f3d9667fdc74022380b5c745873499ff827393a636f7a59da1515e7c57"}, - {file = "ruff-0.12.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2b2449dc0c138d877d629bea151bee8c0ae3b8e9c43f5fcaafcd0c0d0726b184"}, - {file = "ruff-0.12.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:56e45bb11f625db55f9b70477062e6a1a04d53628eda7784dce6e0f55fd549eb"}, - {file = "ruff-0.12.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:478fccdb82ca148a98a9ff43658944f7ab5ec41c3c49d77cd99d44da019371a1"}, - {file = "ruff-0.12.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0fc426bec2e4e5f4c4f182b9d2ce6a75c85ba9bcdbe5c6f2a74fcb8df437df4b"}, - {file = "ruff-0.12.4-py3-none-win32.whl", hash = "sha256:4de27977827893cdfb1211d42d84bc180fceb7b72471104671c59be37041cf93"}, - {file = "ruff-0.12.4-py3-none-win_amd64.whl", hash = "sha256:fe0b9e9eb23736b453143d72d2ceca5db323963330d5b7859d60d101147d461a"}, - {file = "ruff-0.12.4-py3-none-win_arm64.whl", hash = "sha256:0618ec4442a83ab545e5b71202a5c0ed7791e8471435b94e655b570a5031a98e"}, - {file = "ruff-0.12.4.tar.gz", hash = "sha256:13efa16df6c6eeb7d0f091abae50f58e9522f3843edb40d56ad52a5a4a4b6873"}, + {file = "ruff-0.11.3-py3-none-linux_armv6l.whl", hash = "sha256:cb893a5eedff45071d52565300a20cd4ac088869e156b25e0971cb98c06f5dd7"}, + {file = "ruff-0.11.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:58edd48af0e201e2f494789de80f5b2f2b46c9a2991a12ea031254865d5f6aa3"}, + {file = "ruff-0.11.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:520f6ade25cea98b2e5cb29eb0906f6a0339c6b8e28a024583b867f48295f1ed"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ca4405a93ebbc05e924358f872efceb1498c3d52a989ddf9476712a5480b16"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4341d38775a6be605ce7cd50e951b89de65cbd40acb0399f95b8e1524d604c8"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72bf5b49e4b546f4bea6c05448ab71919b09cf75363adf5e3bf5276124afd31c"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9fa791ee6c3629ba7f9ba2c8f2e76178b03f3eaefb920e426302115259819237"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c81d3fe718f4d303aaa4ccdcd0f43e23bb2127da3353635f718394ca9b26721"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4c38e9b6c01caaba46b6d8e732791f4c78389a9923319991d55b298017ce02"}, + {file = "ruff-0.11.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9686f5d1a2b4c918b5a6e9876bfe7f47498a990076624d41f57d17aadd02a4dd"}, + {file = "ruff-0.11.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4800ddc4764d42d8961ce4cb972bcf5cc2730d11cca3f11f240d9f7360460408"}, + {file = "ruff-0.11.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e63a2808879361aa9597d88d86380d8fb934953ef91f5ff3dafe18d9cb0b1e14"}, + {file = "ruff-0.11.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8f8b1c4ae62638cc220df440140c21469232d8f2cb7f5059f395f7f48dcdb59e"}, + {file = "ruff-0.11.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3ea2026be50f6b1fbedd2d1757d004e1e58bd0f414efa2a6fa01235468d4c82a"}, + {file = "ruff-0.11.3-py3-none-win32.whl", hash = "sha256:73d8b90d12674a0c6e98cd9e235f2dcad09d1a80e559a585eac994bb536917a3"}, + {file = "ruff-0.11.3-py3-none-win_amd64.whl", hash = "sha256:faf1bfb0a51fb3a82aa1112cb03658796acef978e37c7f807d3ecc50b52ecbf6"}, + {file = "ruff-0.11.3-py3-none-win_arm64.whl", hash = "sha256:67f8b68d7ab909f08af1fb601696925a89d65083ae2bb3ab286e572b5dc456aa"}, + {file = "ruff-0.11.3.tar.gz", hash = "sha256:8d5fcdb3bb359adc12b757ed832ee743993e7474b9de714bb9ea13c4a8458bf9"}, ] [[package]] @@ -1416,12 +2256,23 @@ files = [ {file = "segment_analytics_python-2.3.4.tar.gz", hash = "sha256:f188e864cc0fed9fb141aff73c21bfaab783a1dd1b97ab1eff44340aed68f50b"}, ] +[[package]] +name = "setuptools" +version = "78.1.0" +requires_python = ">=3.9" +summary = "Easily download, build, install, upgrade, and uninstall Python packages" +groups = ["dev"] +files = [ + {file = "setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8"}, + {file = "setuptools-78.1.0.tar.gz", hash = "sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54"}, +] + [[package]] name = "six" version = "1.17.0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Python 2 and 3 compatibility utilities" -groups = ["default"] +groups = ["default", "all", "chat", "pynput"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -1432,12 +2283,41 @@ name = "sniffio" version = "1.3.1" requires_python = ">=3.7" summary = "Sniff out which async library your code is running under" -groups = ["default"] +groups = ["default", "all", "chat", "mcp"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] +[[package]] +name = "sse-starlette" +version = "2.4.1" +requires_python = ">=3.9" +summary = "SSE plugin for Starlette" +groups = ["all", "mcp"] +dependencies = [ + "anyio>=4.7.0", +] +files = [ + {file = "sse_starlette-2.4.1-py3-none-any.whl", hash = "sha256:08b77ea898ab1a13a428b2b6f73cfe6d0e607a7b4e15b9bb23e4a37b087fd39a"}, + {file = "sse_starlette-2.4.1.tar.gz", hash = "sha256:7c8a800a1ca343e9165fc06bbda45c78e4c6166320707ae30b416c42da070926"}, +] + +[[package]] +name = "starlette" +version = "0.46.2" +requires_python = ">=3.9" +summary = "The little ASGI library that shines." +groups = ["all", "chat", "mcp"] +dependencies = [ + "anyio<5,>=3.6.2", + "typing-extensions>=3.10.0; python_version < \"3.10\"", +] +files = [ + {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, + {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, +] + [[package]] name = "tenacity" version = "9.1.2" @@ -1454,8 +2334,8 @@ name = "tomli" version = "2.2.1" requires_python = ">=3.8" summary = "A lil' TOML parser" -groups = ["test"] -marker = "python_version < \"3.11\"" +groups = ["dev", "test"] +marker = "python_version <= \"3.11\"" files = [ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, @@ -1505,6 +2385,21 @@ files = [ {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] +[[package]] +name = "typeguard" +version = "4.4.4" +requires_python = ">=3.9" +summary = "Run-time type checker for Python" +groups = ["dev"] +dependencies = [ + "importlib-metadata>=3.6; python_version < \"3.10\"", + "typing-extensions>=4.14.0", +] +files = [ + {file = "typeguard-4.4.4-py3-none-any.whl", hash = "sha256:b5f562281b6bfa1f5492470464730ef001646128b180769880468bd84b68b09e"}, + {file = "typeguard-4.4.4.tar.gz", hash = "sha256:3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74"}, +] + [[package]] name = "types-pillow" version = "10.2.0.20240822" @@ -1518,13 +2413,13 @@ files = [ [[package]] name = "types-protobuf" -version = "6.30.2.20250703" +version = "5.29.1.20250403" requires_python = ">=3.9" summary = "Typing stubs for protobuf" groups = ["test"] files = [ - {file = "types_protobuf-6.30.2.20250703-py3-none-any.whl", hash = "sha256:fa5aff9036e9ef432d703abbdd801b436a249b6802e4df5ef74513e272434e57"}, - {file = "types_protobuf-6.30.2.20250703.tar.gz", hash = "sha256:609a974754bbb71fa178fc641f51050395e8e1849f49d0420a6281ed8d1ddf46"}, + {file = "types_protobuf-5.29.1.20250403-py3-none-any.whl", hash = "sha256:c71de04106a2d54e5b2173d0a422058fae0ef2d058d70cf369fb797bf61ffa59"}, + {file = "types_protobuf-5.29.1.20250403.tar.gz", hash = "sha256:7ff44f15022119c9d7558ce16e78b2d485bf7040b4fadced4dd069bb5faf77a2"}, ] [[package]] @@ -1551,18 +2446,18 @@ files = [ [[package]] name = "types-python-dateutil" -version = "2.9.0.20250708" -requires_python = ">=3.9" +version = "2.9.0.20241206" +requires_python = ">=3.8" summary = "Typing stubs for python-dateutil" groups = ["test"] files = [ - {file = "types_python_dateutil-2.9.0.20250708-py3-none-any.whl", hash = "sha256:4d6d0cc1cc4d24a2dc3816024e502564094497b713f7befda4d5bc7a8e3fd21f"}, - {file = "types_python_dateutil-2.9.0.20250708.tar.gz", hash = "sha256:ccdbd75dab2d6c9696c350579f34cffe2c281e4c5f27a585b2a2438dd1d5c8ab"}, + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, ] [[package]] name = "types-requests" -version = "2.32.4.20250611" +version = "2.32.0.20250328" requires_python = ">=3.9" summary = "Typing stubs for requests" groups = ["test"] @@ -1570,8 +2465,8 @@ dependencies = [ "urllib3>=2", ] files = [ - {file = "types_requests-2.32.4.20250611-py3-none-any.whl", hash = "sha256:ad2fe5d3b0cb3c2c902c8815a70e7fb2302c4b8c1f77bdcd738192cdb3878072"}, - {file = "types_requests-2.32.4.20250611.tar.gz", hash = "sha256:741c8777ed6425830bf51e54d6abe245f79b4dcb9019f1622b773463946bf826"}, + {file = "types_requests-2.32.0.20250328-py3-none-any.whl", hash = "sha256:72ff80f84b15eb3aa7a8e2625fffb6a93f2ad5a0c20215fc1dcfa61117bcb2a2"}, + {file = "types_requests-2.32.0.20250328.tar.gz", hash = "sha256:c9e67228ea103bd811c96984fac36ed2ae8da87a36a633964a21f199d60baf32"}, ] [[package]] @@ -1579,7 +2474,7 @@ name = "typing-extensions" version = "4.14.1" requires_python = ">=3.9" summary = "Backported and Experimental Type Hints for Python 3.9+" -groups = ["default", "test"] +groups = ["default", "all", "chat", "dev", "mcp", "test", "web"] files = [ {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, @@ -1587,27 +2482,43 @@ files = [ [[package]] name = "typing-inspection" -version = "0.4.1" +version = "0.4.0" requires_python = ">=3.9" summary = "Runtime typing introspection tools" -groups = ["default"] +groups = ["default", "all", "chat", "dev", "mcp"] dependencies = [ "typing-extensions>=4.12.0", ] files = [ - {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"}, - {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"}, + {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, + {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, ] [[package]] name = "urllib3" -version = "2.5.0" +version = "2.3.0" requires_python = ">=3.9" summary = "HTTP library with thread-safe connection pooling, file post, and more." groups = ["default", "test"] files = [ - {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, - {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[[package]] +name = "uvicorn" +version = "0.34.3" +requires_python = ">=3.9" +summary = "The lightning-fast ASGI server." +groups = ["all", "chat", "mcp"] +dependencies = [ + "click>=7.0", + "h11>=0.8", + "typing-extensions>=4.0; python_version < \"3.11\"", +] +files = [ + {file = "uvicorn-0.34.3-py3-none-any.whl", hash = "sha256:16246631db62bdfbf069b0645177d6e8a77ba950cfedbfd093acef9444e4d885"}, + {file = "uvicorn-0.34.3.tar.gz", hash = "sha256:35919a9a979d7a59334b6b10e05d77c1d0d574c50e0fc98b8b1a0f165708b55a"}, ] [[package]] @@ -1673,12 +2584,12 @@ files = [ [[package]] name = "winregistry" -version = "2.1.1" +version = "2.1.0" requires_python = ">=3.8" summary = "A Python library for interacting with the Windows registry" groups = ["default"] marker = "sys_platform == \"win32\"" files = [ - {file = "winregistry-2.1.1-py3-none-any.whl", hash = "sha256:c42fac2f074b7f2898d07176c90118136b19da5f77e5b528a4699cc280c5a47b"}, - {file = "winregistry-2.1.1.tar.gz", hash = "sha256:8233c4261a9d937cd8f0670da0d1e61fd7b86712c39b1af08cb83e91316195a7"}, + {file = "winregistry-2.1.0-py3-none-any.whl", hash = "sha256:7591bc93ba5513b389a0234dfa665ac0752e964bddf44757c266a3b754c941e1"}, + {file = "winregistry-2.1.0.tar.gz", hash = "sha256:370c2872f9cf9a512ed344039efae2a2943eb36355bc867336ff049e0f9d1db4"}, ] diff --git a/pyproject.toml b/pyproject.toml index b5d24316..75d8baa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,6 +82,10 @@ test = [ "types-pynput>=1.8.1.20250318", "playwright>=1.41.0", ] +dev = [ + "datamodel-code-generator>=0.31.2", + "grpcio-tools>=1.73.1", +] [tool.pytest.ini_options] @@ -218,7 +222,3 @@ pynput = [ web = [ "playwright>=1.41.0", ] -dev = [ - "datamodel-code-generator>=0.31.2", - "grpcio-tools>=1.73.1", -]