cua-computer 0.4.2__py3-none-any.whl → 0.4.4__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.
- computer/__init__.py +0 -4
- computer/computer.py +18 -7
- {cua_computer-0.4.2.dist-info → cua_computer-0.4.4.dist-info}/METADATA +1 -1
- {cua_computer-0.4.2.dist-info → cua_computer-0.4.4.dist-info}/RECORD +6 -7
- computer/telemetry.py +0 -116
- {cua_computer-0.4.2.dist-info → cua_computer-0.4.4.dist-info}/WHEEL +0 -0
- {cua_computer-0.4.2.dist-info → cua_computer-0.4.4.dist-info}/entry_points.txt +0 -0
computer/__init__.py
CHANGED
@@ -12,7 +12,6 @@ logger = logging.getLogger("computer")
|
|
12
12
|
try:
|
13
13
|
# Import from core telemetry
|
14
14
|
from core.telemetry import (
|
15
|
-
flush,
|
16
15
|
is_telemetry_enabled,
|
17
16
|
record_event,
|
18
17
|
)
|
@@ -30,9 +29,6 @@ try:
|
|
30
29
|
"python_version": sys.version,
|
31
30
|
},
|
32
31
|
)
|
33
|
-
|
34
|
-
# Flush events to ensure they're sent
|
35
|
-
flush()
|
36
32
|
else:
|
37
33
|
logger.info("Telemetry is disabled")
|
38
34
|
except ImportError as e:
|
computer/computer.py
CHANGED
@@ -9,10 +9,18 @@ import re
|
|
9
9
|
from .logger import Logger, LogLevel
|
10
10
|
import json
|
11
11
|
import logging
|
12
|
-
from .telemetry import
|
12
|
+
from core.telemetry import is_telemetry_enabled, record_event
|
13
13
|
import os
|
14
14
|
from . import helpers
|
15
15
|
|
16
|
+
import platform
|
17
|
+
|
18
|
+
SYSTEM_INFO = {
|
19
|
+
"os": platform.system().lower(),
|
20
|
+
"os_version": platform.release(),
|
21
|
+
"python_version": platform.python_version(),
|
22
|
+
}
|
23
|
+
|
16
24
|
# Import provider related modules
|
17
25
|
from .providers.base import VMProviderType
|
18
26
|
from .providers.factory import VMProviderFactory
|
@@ -88,10 +96,11 @@ class Computer:
|
|
88
96
|
self.logger = Logger("computer", verbosity)
|
89
97
|
self.logger.info("Initializing Computer...")
|
90
98
|
|
91
|
-
if
|
92
|
-
|
93
|
-
|
94
|
-
|
99
|
+
if not image:
|
100
|
+
if os_type == "macos":
|
101
|
+
image = "macos-sequoia-cua:latest"
|
102
|
+
elif os_type == "linux":
|
103
|
+
image = "trycua/cua-ubuntu:latest"
|
95
104
|
image = str(image)
|
96
105
|
|
97
106
|
# Store original parameters
|
@@ -151,6 +160,8 @@ class Computer:
|
|
151
160
|
if not name:
|
152
161
|
# Normalize the name to be used for the VM
|
153
162
|
name = image.replace(":", "_")
|
163
|
+
# Remove any forward slashes
|
164
|
+
name = name.replace("/", "_")
|
154
165
|
|
155
166
|
# Convert display parameter to Display object
|
156
167
|
if isinstance(display, str):
|
@@ -189,8 +200,8 @@ class Computer:
|
|
189
200
|
self.use_host_computer_server = use_host_computer_server
|
190
201
|
|
191
202
|
# Record initialization in telemetry (if enabled)
|
192
|
-
if telemetry_enabled:
|
193
|
-
|
203
|
+
if telemetry_enabled and is_telemetry_enabled():
|
204
|
+
record_event("computer_initialized", SYSTEM_INFO)
|
194
205
|
else:
|
195
206
|
self.logger.debug("Telemetry disabled - skipping initialization tracking")
|
196
207
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
computer/__init__.py,sha256=
|
2
|
-
computer/computer.py,sha256=
|
1
|
+
computer/__init__.py,sha256=HG8dhCmSPjuQ4G-NGAoiXEhzhO37kwrHHmyboNhGWOA,1159
|
2
|
+
computer/computer.py,sha256=AjPqUAv1hF2AgK1eODRrQCvMikyxeuE6gxlwsnwNB-s,42701
|
3
3
|
computer/diorama_computer.py,sha256=jOP7_eXxxU6SMIoE25ni0YXPK0E7p5sZeLKmkYLh6G8,3871
|
4
4
|
computer/helpers.py,sha256=iHkO2WhuCLc15g67kfMnpQWxfNRlz2YeJNEvYaL9jlM,1826
|
5
5
|
computer/interface/__init__.py,sha256=xQvYjq5PMn9ZJOmRR5mWtONTl_0HVd8ACvW6AQnzDdw,262
|
@@ -27,13 +27,12 @@ computer/providers/lumier/provider.py,sha256=BDgnTuik42H9OuCmnd-1TxM8p4vl_ahfrhN
|
|
27
27
|
computer/providers/winsandbox/__init__.py,sha256=WsMVBBa_qFfqVHPQzg6j4PegQwLiIudkzUedpYkrfXU,244
|
28
28
|
computer/providers/winsandbox/provider.py,sha256=vduDKUB1OuimvjJdUus9RQY8gv3XQfFgVS8fKOzHVME,19306
|
29
29
|
computer/providers/winsandbox/setup_script.ps1,sha256=8aGwR7PEvqnYzCNyXTDKIwJ6pYrwyWYLRjmNT_jYIwQ,4623
|
30
|
-
computer/telemetry.py,sha256=jHM3LJAgO2ltN3wlQ6mqCPUcmlS8F955KI70no-T3xA,3730
|
31
30
|
computer/ui/__init__.py,sha256=pmo05ek9qiB_x7DPeE6Vf_8RsIOqTD0w1dBLMHfoOnY,45
|
32
31
|
computer/ui/__main__.py,sha256=Jwy2oC_mGZLN0fX7WLqpjaQkbXMeM3ISrUc8WSRUG0c,284
|
33
32
|
computer/ui/gradio/__init__.py,sha256=5_KimixM48-X74FCsLw7LbSt39MQfUMEL8-M9amK3Cw,117
|
34
33
|
computer/ui/gradio/app.py,sha256=_V6FI-g0GJGMEk-C2iPFtxPO1Gn0juCaeCrWsBtjC4E,70395
|
35
34
|
computer/utils.py,sha256=zY50NXB7r51GNLQ6l7lhG_qv0_ufpQ8n0-SDhCei8m4,2838
|
36
|
-
cua_computer-0.4.
|
37
|
-
cua_computer-0.4.
|
38
|
-
cua_computer-0.4.
|
39
|
-
cua_computer-0.4.
|
35
|
+
cua_computer-0.4.4.dist-info/METADATA,sha256=17a2ljQZ5SZzcx_krdjSXDzoePmFvEInJA3gHzgOUbo,5802
|
36
|
+
cua_computer-0.4.4.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
|
37
|
+
cua_computer-0.4.4.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
38
|
+
cua_computer-0.4.4.dist-info/RECORD,,
|
computer/telemetry.py
DELETED
@@ -1,116 +0,0 @@
|
|
1
|
-
"""Computer telemetry for tracking anonymous usage and feature usage."""
|
2
|
-
|
3
|
-
import logging
|
4
|
-
import platform
|
5
|
-
from typing import Any
|
6
|
-
|
7
|
-
# Import the core telemetry module
|
8
|
-
TELEMETRY_AVAILABLE = False
|
9
|
-
|
10
|
-
try:
|
11
|
-
from core.telemetry import (
|
12
|
-
increment,
|
13
|
-
is_telemetry_enabled,
|
14
|
-
is_telemetry_globally_disabled,
|
15
|
-
record_event,
|
16
|
-
)
|
17
|
-
|
18
|
-
def increment_counter(counter_name: str, value: int = 1) -> None:
|
19
|
-
"""Wrapper for increment to maintain backward compatibility."""
|
20
|
-
if is_telemetry_enabled():
|
21
|
-
increment(counter_name, value)
|
22
|
-
|
23
|
-
def set_dimension(name: str, value: Any) -> None:
|
24
|
-
"""Set a dimension that will be attached to all events."""
|
25
|
-
logger = logging.getLogger("computer.telemetry")
|
26
|
-
logger.debug(f"Setting dimension {name}={value}")
|
27
|
-
|
28
|
-
TELEMETRY_AVAILABLE = True
|
29
|
-
logger = logging.getLogger("computer.telemetry")
|
30
|
-
logger.info("Successfully imported telemetry")
|
31
|
-
except ImportError as e:
|
32
|
-
logger = logging.getLogger("computer.telemetry")
|
33
|
-
logger.warning(f"Could not import telemetry: {e}")
|
34
|
-
TELEMETRY_AVAILABLE = False
|
35
|
-
|
36
|
-
|
37
|
-
# Local fallbacks in case core telemetry isn't available
|
38
|
-
def _noop(*args: Any, **kwargs: Any) -> None:
|
39
|
-
"""No-op function for when telemetry is not available."""
|
40
|
-
pass
|
41
|
-
|
42
|
-
|
43
|
-
logger = logging.getLogger("computer.telemetry")
|
44
|
-
|
45
|
-
# If telemetry isn't available, use no-op functions
|
46
|
-
if not TELEMETRY_AVAILABLE:
|
47
|
-
logger.debug("Telemetry not available, using no-op functions")
|
48
|
-
record_event = _noop # type: ignore
|
49
|
-
increment_counter = _noop # type: ignore
|
50
|
-
set_dimension = _noop # type: ignore
|
51
|
-
get_telemetry_client = lambda: None # type: ignore
|
52
|
-
flush = _noop # type: ignore
|
53
|
-
is_telemetry_enabled = lambda: False # type: ignore
|
54
|
-
is_telemetry_globally_disabled = lambda: True # type: ignore
|
55
|
-
|
56
|
-
# Get system info once to use in telemetry
|
57
|
-
SYSTEM_INFO = {
|
58
|
-
"os": platform.system().lower(),
|
59
|
-
"os_version": platform.release(),
|
60
|
-
"python_version": platform.python_version(),
|
61
|
-
}
|
62
|
-
|
63
|
-
|
64
|
-
def enable_telemetry() -> bool:
|
65
|
-
"""Enable telemetry if available.
|
66
|
-
|
67
|
-
Returns:
|
68
|
-
bool: True if telemetry was successfully enabled, False otherwise
|
69
|
-
"""
|
70
|
-
global TELEMETRY_AVAILABLE
|
71
|
-
|
72
|
-
# Check if globally disabled using core function
|
73
|
-
if TELEMETRY_AVAILABLE and is_telemetry_globally_disabled():
|
74
|
-
logger.info("Telemetry is globally disabled via environment variable - cannot enable")
|
75
|
-
return False
|
76
|
-
|
77
|
-
# Already enabled
|
78
|
-
if TELEMETRY_AVAILABLE:
|
79
|
-
return True
|
80
|
-
|
81
|
-
# Try to import and enable
|
82
|
-
try:
|
83
|
-
# Verify we can import core telemetry
|
84
|
-
from core.telemetry import record_event # type: ignore
|
85
|
-
|
86
|
-
TELEMETRY_AVAILABLE = True
|
87
|
-
logger.info("Telemetry successfully enabled")
|
88
|
-
return True
|
89
|
-
except ImportError as e:
|
90
|
-
logger.warning(f"Could not enable telemetry: {e}")
|
91
|
-
return False
|
92
|
-
|
93
|
-
|
94
|
-
def is_telemetry_enabled() -> bool:
|
95
|
-
"""Check if telemetry is enabled.
|
96
|
-
|
97
|
-
Returns:
|
98
|
-
bool: True if telemetry is enabled, False otherwise
|
99
|
-
"""
|
100
|
-
# Use the core function if available, otherwise use our local flag
|
101
|
-
if TELEMETRY_AVAILABLE:
|
102
|
-
from core.telemetry import is_telemetry_enabled as core_is_enabled
|
103
|
-
|
104
|
-
return core_is_enabled()
|
105
|
-
return False
|
106
|
-
|
107
|
-
|
108
|
-
def record_computer_initialization() -> None:
|
109
|
-
"""Record when a computer instance is initialized."""
|
110
|
-
if TELEMETRY_AVAILABLE and is_telemetry_enabled():
|
111
|
-
record_event("computer_initialized", SYSTEM_INFO)
|
112
|
-
|
113
|
-
# Set dimensions that will be attached to all events
|
114
|
-
set_dimension("os", SYSTEM_INFO["os"])
|
115
|
-
set_dimension("os_version", SYSTEM_INFO["os_version"])
|
116
|
-
set_dimension("python_version", SYSTEM_INFO["python_version"])
|
File without changes
|
File without changes
|