windows-mcp 0.3.2__py3-none-any.whl → 0.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- main.py +263 -0
- src/desktop/__init__.py +0 -0
- src/desktop/config.py +21 -0
- src/desktop/service.py +454 -0
- src/desktop/views.py +58 -0
- src/tree/__init__.py +0 -0
- src/tree/config.py +51 -0
- src/tree/service.py +444 -0
- src/tree/views.py +102 -0
- {windows_mcp-0.3.2.dist-info → windows_mcp-0.5.0.dist-info}/METADATA +387 -363
- windows_mcp-0.5.0.dist-info/RECORD +15 -0
- {windows_mcp-0.3.2.dist-info → windows_mcp-0.5.0.dist-info}/WHEEL +1 -2
- desktop/__init__.py +0 -247
- desktop/config.py +0 -11
- desktop/views.py +0 -40
- tree/__init__.py +0 -303
- tree/config.py +0 -17
- tree/views.py +0 -70
- windows_mcp-0.3.2.dist-info/RECORD +0 -13
- windows_mcp-0.3.2.dist-info/top_level.txt +0 -3
- /__init__.py → /src/__init__.py +0 -0
- {tree → src/tree}/utils.py +0 -0
- {windows_mcp-0.3.2.dist-info → windows_mcp-0.5.0.dist-info}/licenses/LICENSE.md +0 -0
tree/views.py
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
from dataclasses import dataclass,field
|
|
2
|
-
|
|
3
|
-
@dataclass
|
|
4
|
-
class TreeState:
|
|
5
|
-
interactive_nodes:list['TreeElementNode']=field(default_factory=list)
|
|
6
|
-
informative_nodes:list['TextElementNode']=field(default_factory=list)
|
|
7
|
-
scrollable_nodes:list['ScrollElementNode']=field(default_factory=list)
|
|
8
|
-
|
|
9
|
-
def interactive_elements_to_string(self)->str:
|
|
10
|
-
return '\n'.join([f'Label: {index} App Name: {node.app_name} ControlType: {f'{node.control_type} Control'} Name: {node.name} Shortcut: {node.shortcut} Cordinates: {node.center.to_string()}' for index,node in enumerate(self.interactive_nodes)])
|
|
11
|
-
|
|
12
|
-
def informative_elements_to_string(self)->str:
|
|
13
|
-
return '\n'.join([f'App Name: {node.app_name} Name: {node.name}' for node in self.informative_nodes])
|
|
14
|
-
|
|
15
|
-
def scrollable_elements_to_string(self)->str:
|
|
16
|
-
n=len(self.interactive_nodes)
|
|
17
|
-
return '\n'.join([f'Label: {n+index} App Name: {node.app_name} ControlType: {f'{node.control_type} Control'} Name: {node.name} Cordinates: {node.center.to_string()} Horizontal Scrollable: {node.horizontal_scrollable} Vertical Scrollable: {node.vertical_scrollable}' for index,node in enumerate(self.scrollable_nodes)])
|
|
18
|
-
|
|
19
|
-
@dataclass
|
|
20
|
-
class BoundingBox:
|
|
21
|
-
left:int
|
|
22
|
-
top:int
|
|
23
|
-
right:int
|
|
24
|
-
bottom:int
|
|
25
|
-
width:int
|
|
26
|
-
height:int
|
|
27
|
-
|
|
28
|
-
def xywh_to_string(self):
|
|
29
|
-
return f'({self.left},{self.top},{self.width},{self.height})'
|
|
30
|
-
|
|
31
|
-
def xyxy_to_string(self):
|
|
32
|
-
x1,y1,x2,y2=self.convert_xywh_to_xyxy()
|
|
33
|
-
return f'({x1},{y1},{x2},{y2})'
|
|
34
|
-
|
|
35
|
-
def convert_xywh_to_xyxy(self)->tuple[int,int,int,int]:
|
|
36
|
-
x1,y1=self.left,self.top
|
|
37
|
-
x2,y2=self.left+self.width,self.top+self.height
|
|
38
|
-
return x1,y1,x2,y2
|
|
39
|
-
|
|
40
|
-
@dataclass
|
|
41
|
-
class Center:
|
|
42
|
-
x:int
|
|
43
|
-
y:int
|
|
44
|
-
|
|
45
|
-
def to_string(self)->str:
|
|
46
|
-
return f'({self.x},{self.y})'
|
|
47
|
-
|
|
48
|
-
@dataclass
|
|
49
|
-
class TreeElementNode:
|
|
50
|
-
name:str
|
|
51
|
-
control_type:str
|
|
52
|
-
shortcut:str
|
|
53
|
-
bounding_box:BoundingBox
|
|
54
|
-
center:Center
|
|
55
|
-
app_name:str
|
|
56
|
-
|
|
57
|
-
@dataclass
|
|
58
|
-
class TextElementNode:
|
|
59
|
-
name:str
|
|
60
|
-
app_name:str
|
|
61
|
-
|
|
62
|
-
@dataclass
|
|
63
|
-
class ScrollElementNode:
|
|
64
|
-
name:str
|
|
65
|
-
control_type:str
|
|
66
|
-
app_name:str
|
|
67
|
-
bounding_box:BoundingBox
|
|
68
|
-
center:Center
|
|
69
|
-
horizontal_scrollable:bool
|
|
70
|
-
vertical_scrollable:bool
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
desktop/__init__.py,sha256=7LXFkuy9gyX94MIEKEMl5kUnWfw1r7RG3mPgzy0ikTs,11121
|
|
3
|
-
desktop/config.py,sha256=p7eq__X38IqQmREdm5P1pSZVWSbNI6S-xVqiRaSRjY0,293
|
|
4
|
-
desktop/views.py,sha256=CsLh9K-juoEvdmmDRRt7LIY_iWVh1wdZR0WYvJ5Gy60,1002
|
|
5
|
-
tree/__init__.py,sha256=ALJ6vDlRzDDIIGhzzzVqaeHdB4gomSgktYxuoTawjC8,14807
|
|
6
|
-
tree/config.py,sha256=wlJvBY_7bHWgK11AGndjrp94mNOu2kXUed_b7UMwlg8,586
|
|
7
|
-
tree/utils.py,sha256=6hbxdIQPrAY-I3jcHsRqodHlxboTQj2GnLA71bf1lqY,911
|
|
8
|
-
tree/views.py,sha256=HPdq8rNwnxbeM6vB9v33cx-48JRWWzRWRogFQRhAcmA,2229
|
|
9
|
-
windows_mcp-0.3.2.dist-info/licenses/LICENSE.md,sha256=U1UM4Xi_IX-jHnHjGT0rETNia-Ck8gd92iSQMqQ6a8Y,1089
|
|
10
|
-
windows_mcp-0.3.2.dist-info/METADATA,sha256=mYZQHGLbM8rf2IWMx60K0vlMeC7xEivjsREPFHflBPw,11721
|
|
11
|
-
windows_mcp-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
12
|
-
windows_mcp-0.3.2.dist-info/top_level.txt,sha256=cE3tbc4LtiRWKBrK10Q4JK_yKJWkMwgOY78G1b6dhQY,22
|
|
13
|
-
windows_mcp-0.3.2.dist-info/RECORD,,
|
/__init__.py → /src/__init__.py
RENAMED
|
File without changes
|
{tree → src/tree}/utils.py
RENAMED
|
File without changes
|
|
File without changes
|