uipath 2.1.96__py3-none-any.whl → 2.1.98__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.
Potentially problematic release.
This version of uipath might be problematic. Click here for more details.
- uipath/_cli/__init__.py +2 -0
- uipath/_cli/_debug/_bridge.py +77 -28
- uipath/_cli/_debug/_runtime.py +2 -2
- uipath/_cli/_evals/_runtime.py +6 -6
- uipath/_cli/_runtime/_contracts.py +19 -2
- uipath/_cli/_runtime/_runtime.py +71 -2
- uipath/_cli/_runtime/_runtime_factory.py +21 -0
- uipath/_cli/cli_debug.py +0 -2
- uipath/_cli/cli_eval.py +12 -18
- uipath/_cli/cli_init.py +21 -60
- uipath/_cli/cli_run.py +16 -22
- uipath/_uipath.py +0 -2
- uipath/_utils/_logs.py +0 -1
- uipath/utils/_endpoints_manager.py +2 -6
- {uipath-2.1.96.dist-info → uipath-2.1.98.dist-info}/METADATA +1 -1
- {uipath-2.1.96.dist-info → uipath-2.1.98.dist-info}/RECORD +19 -18
- {uipath-2.1.96.dist-info → uipath-2.1.98.dist-info}/WHEEL +0 -0
- {uipath-2.1.96.dist-info → uipath-2.1.98.dist-info}/entry_points.txt +0 -0
- {uipath-2.1.96.dist-info → uipath-2.1.98.dist-info}/licenses/LICENSE +0 -0
uipath/_cli/__init__.py
CHANGED
|
@@ -3,6 +3,7 @@ import sys
|
|
|
3
3
|
|
|
4
4
|
import click
|
|
5
5
|
|
|
6
|
+
from .._utils._logs import setup_logging
|
|
6
7
|
from ._utils._common import add_cwd_to_path, load_environment_variables
|
|
7
8
|
from .cli_auth import auth as auth
|
|
8
9
|
from .cli_debug import debug as debug # type: ignore
|
|
@@ -47,6 +48,7 @@ def _get_safe_version() -> str:
|
|
|
47
48
|
def cli(lv: bool, v: bool) -> None:
|
|
48
49
|
load_environment_variables()
|
|
49
50
|
add_cwd_to_path()
|
|
51
|
+
setup_logging()
|
|
50
52
|
if lv:
|
|
51
53
|
try:
|
|
52
54
|
version = importlib.metadata.version("uipath-langchain")
|
uipath/_cli/_debug/_bridge.py
CHANGED
|
@@ -5,9 +5,11 @@ import os
|
|
|
5
5
|
from abc import ABC, abstractmethod
|
|
6
6
|
from typing import Any, Dict, Optional
|
|
7
7
|
|
|
8
|
+
from pydantic import BaseModel
|
|
8
9
|
from pysignalr.client import SignalRClient
|
|
9
10
|
from rich.console import Console
|
|
10
11
|
from rich.syntax import Syntax
|
|
12
|
+
from rich.tree import Tree
|
|
11
13
|
|
|
12
14
|
from uipath._cli._runtime._contracts import (
|
|
13
15
|
UiPathBreakpointResult,
|
|
@@ -115,7 +117,7 @@ class ConsoleDebugBridge(UiPathDebugBridge):
|
|
|
115
117
|
|
|
116
118
|
self.console.print(f"[yellow]●[/yellow] [bold]{state_event.node_name}[/bold]")
|
|
117
119
|
if state_event.payload:
|
|
118
|
-
self._print_json(state_event.payload, label="
|
|
120
|
+
self._print_json(state_event.payload, label="state")
|
|
119
121
|
|
|
120
122
|
async def emit_breakpoint_hit(
|
|
121
123
|
self, breakpoint_result: UiPathBreakpointResult
|
|
@@ -135,7 +137,7 @@ class ConsoleDebugBridge(UiPathDebugBridge):
|
|
|
135
137
|
|
|
136
138
|
# Display current state
|
|
137
139
|
if breakpoint_result.current_state:
|
|
138
|
-
self._print_json(breakpoint_result.current_state, label="
|
|
140
|
+
self._print_json(breakpoint_result.current_state, label="state")
|
|
139
141
|
|
|
140
142
|
async def emit_execution_completed(
|
|
141
143
|
self,
|
|
@@ -157,7 +159,7 @@ class ConsoleDebugBridge(UiPathDebugBridge):
|
|
|
157
159
|
|
|
158
160
|
self.console.print(f"[{color}]{symbol} END[/{color}]")
|
|
159
161
|
if runtime_result.output:
|
|
160
|
-
self._print_json(runtime_result.output, label="
|
|
162
|
+
self._print_json(runtime_result.output, label="output")
|
|
161
163
|
|
|
162
164
|
async def emit_execution_error(
|
|
163
165
|
self,
|
|
@@ -193,36 +195,83 @@ class ConsoleDebugBridge(UiPathDebugBridge):
|
|
|
193
195
|
self.console.print()
|
|
194
196
|
return user_input
|
|
195
197
|
|
|
196
|
-
def _print_json(self, data: Dict[str, Any], label: str = "
|
|
197
|
-
"""Print JSON data
|
|
198
|
+
def _print_json(self, data: Dict[str, Any], label: str = "data") -> None:
|
|
199
|
+
"""Print JSON data with enhanced hierarchy."""
|
|
198
200
|
try:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
201
|
+
# Create a tree for nested structure
|
|
202
|
+
tree = Tree(f"[bold cyan]{label}[/bold cyan]")
|
|
203
|
+
|
|
204
|
+
def process_value(
|
|
205
|
+
node: Tree, value: Any, key_label: str, depth: int
|
|
206
|
+
) -> None:
|
|
207
|
+
"""Process a single value and add it to the tree."""
|
|
208
|
+
if isinstance(value, BaseModel):
|
|
209
|
+
branch = node.add(
|
|
210
|
+
f"{key_label} [dim]({type(value).__name__})[/dim]"
|
|
211
|
+
)
|
|
212
|
+
add_to_tree(branch, value, depth + 1)
|
|
213
|
+
elif isinstance(value, dict):
|
|
214
|
+
branch = node.add(f"{key_label} [dim](dict)[/dim]")
|
|
215
|
+
add_to_tree(branch, value, depth + 1)
|
|
216
|
+
elif isinstance(value, list):
|
|
217
|
+
branch = node.add(
|
|
218
|
+
f"{key_label} [dim](list, {len(value)} items)[/dim]"
|
|
219
|
+
)
|
|
220
|
+
add_to_tree(branch, value, depth + 1)
|
|
221
|
+
else:
|
|
222
|
+
val_str = str(value)
|
|
223
|
+
if len(val_str) > 250:
|
|
224
|
+
val_str = val_str[:250] + "..."
|
|
225
|
+
node.add(f"{key_label}: [green]{val_str}[/green]")
|
|
226
|
+
|
|
227
|
+
def add_to_tree(node: Tree, payload: Any, depth: int = 0):
|
|
228
|
+
if depth > 10:
|
|
229
|
+
node.add("[dim]...[/dim]")
|
|
230
|
+
return
|
|
231
|
+
|
|
232
|
+
if isinstance(payload, BaseModel):
|
|
233
|
+
try:
|
|
234
|
+
payload = payload.model_dump() # Pydantic v2
|
|
235
|
+
except AttributeError:
|
|
236
|
+
payload = payload.dict() # Pydantic v1
|
|
237
|
+
add_to_tree(node, payload, depth)
|
|
238
|
+
|
|
239
|
+
elif isinstance(payload, dict):
|
|
240
|
+
for key, value in payload.items():
|
|
241
|
+
process_value(node, value, f"[yellow]{key}[/yellow]", depth)
|
|
242
|
+
|
|
243
|
+
elif isinstance(payload, list):
|
|
244
|
+
for i, item in enumerate(payload):
|
|
245
|
+
process_value(node, item, f"[cyan]#{i}[/cyan]", depth)
|
|
246
|
+
|
|
247
|
+
else:
|
|
248
|
+
val_str = str(payload)
|
|
249
|
+
if len(val_str) > 250:
|
|
250
|
+
val_str = val_str[:250] + "..."
|
|
251
|
+
node.add(f"[green]{val_str}[/green]")
|
|
252
|
+
|
|
253
|
+
add_to_tree(tree, data)
|
|
214
254
|
|
|
215
255
|
self.console.print()
|
|
216
|
-
|
|
217
|
-
self.console.print(f"[dim]{label}{truncated_text}:")
|
|
218
|
-
self.console.print(syntax)
|
|
256
|
+
self.console.print(tree)
|
|
219
257
|
self.console.print()
|
|
258
|
+
|
|
220
259
|
except Exception:
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
260
|
+
try:
|
|
261
|
+
json_str = json.dumps(data, indent=2, default=str)
|
|
262
|
+
if len(json_str) > 10000:
|
|
263
|
+
json_str = json_str[:10000] + "\n..."
|
|
264
|
+
|
|
265
|
+
syntax = Syntax(json_str, "json", theme="monokai", line_numbers=False)
|
|
266
|
+
self.console.print(f"\n[dim]{label}:")
|
|
267
|
+
self.console.print(syntax)
|
|
268
|
+
self.console.print()
|
|
269
|
+
except Exception:
|
|
270
|
+
# Fallback to simple print
|
|
271
|
+
self.console.print()
|
|
272
|
+
self.console.print(f"[dim]{label}:")
|
|
273
|
+
self.console.print(str(data))
|
|
274
|
+
self.console.print()
|
|
226
275
|
|
|
227
276
|
|
|
228
277
|
class SignalRDebugBridge(UiPathDebugBridge):
|
uipath/_cli/_debug/_runtime.py
CHANGED
|
@@ -56,7 +56,7 @@ class UiPathDebugRuntime(UiPathBaseRuntime, Generic[T, C]):
|
|
|
56
56
|
raise RuntimeError("Failed to create inner runtime")
|
|
57
57
|
|
|
58
58
|
await self.debug_bridge.emit_execution_started(
|
|
59
|
-
execution_id=self.context.
|
|
59
|
+
execution_id=self.context.job_id or "default"
|
|
60
60
|
)
|
|
61
61
|
|
|
62
62
|
# Try to stream events from inner runtime
|
|
@@ -78,7 +78,7 @@ class UiPathDebugRuntime(UiPathBaseRuntime, Generic[T, C]):
|
|
|
78
78
|
except Exception as e:
|
|
79
79
|
# Emit execution error
|
|
80
80
|
await self.debug_bridge.emit_execution_error(
|
|
81
|
-
execution_id=self.context.
|
|
81
|
+
execution_id=self.context.job_id or "default",
|
|
82
82
|
error=str(e),
|
|
83
83
|
)
|
|
84
84
|
raise
|
uipath/_cli/_evals/_runtime.py
CHANGED
|
@@ -451,12 +451,12 @@ class UiPathEvalRuntime(UiPathBaseRuntime, Generic[T, C]):
|
|
|
451
451
|
async def execute_runtime(
|
|
452
452
|
self, eval_item: EvaluationItem, execution_id: str
|
|
453
453
|
) -> UiPathEvalRunExecutionOutput:
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
)
|
|
454
|
+
context_args = self.context.model_dump()
|
|
455
|
+
context_args["execution_id"] = execution_id
|
|
456
|
+
context_args["input_json"] = eval_item.inputs
|
|
457
|
+
context_args["is_eval_run"] = True
|
|
458
|
+
context_args["log_handler"] = self._setup_execution_logging(execution_id)
|
|
459
|
+
runtime_context: C = self.factory.new_context(**context_args)
|
|
460
460
|
if runtime_context.execution_id is None:
|
|
461
461
|
raise ValueError("execution_id must be set for eval runs")
|
|
462
462
|
|
|
@@ -39,6 +39,7 @@ from uipath._events._events import UiPathRuntimeEvent
|
|
|
39
39
|
from uipath.agent.conversation import UiPathConversationEvent, UiPathConversationMessage
|
|
40
40
|
from uipath.tracing import TracingManager
|
|
41
41
|
|
|
42
|
+
from ..models.runtime_schema import BindingResource, Entrypoint
|
|
42
43
|
from ._logging import LogsInterceptor
|
|
43
44
|
|
|
44
45
|
logger = logging.getLogger(__name__)
|
|
@@ -516,6 +517,22 @@ class UiPathBaseRuntime(ABC):
|
|
|
516
517
|
runtime = cls(context)
|
|
517
518
|
return runtime
|
|
518
519
|
|
|
520
|
+
@property
|
|
521
|
+
def get_binding_resources(self) -> List[BindingResource]:
|
|
522
|
+
"""Get binding resources for this runtime.
|
|
523
|
+
|
|
524
|
+
Returns: A list of binding resources.
|
|
525
|
+
"""
|
|
526
|
+
raise NotImplementedError()
|
|
527
|
+
|
|
528
|
+
@property
|
|
529
|
+
def get_entrypoint(self) -> Entrypoint:
|
|
530
|
+
"""Get entrypoint for this runtime.
|
|
531
|
+
|
|
532
|
+
Returns: A entrypoint for this runtime.
|
|
533
|
+
"""
|
|
534
|
+
raise NotImplementedError()
|
|
535
|
+
|
|
519
536
|
async def __aenter__(self):
|
|
520
537
|
"""Async enter method called when entering the 'async with' block.
|
|
521
538
|
|
|
@@ -806,9 +823,9 @@ class UiPathRuntimeFactory(Generic[T, C]):
|
|
|
806
823
|
return self.context_generator(**kwargs)
|
|
807
824
|
return self.context_class(**kwargs)
|
|
808
825
|
|
|
809
|
-
def new_runtime(self) -> T:
|
|
826
|
+
def new_runtime(self, **kwargs) -> T:
|
|
810
827
|
"""Create a new runtime instance."""
|
|
811
|
-
context = self.new_context()
|
|
828
|
+
context = self.new_context(**kwargs)
|
|
812
829
|
if self.runtime_generator:
|
|
813
830
|
return self.runtime_generator(context)
|
|
814
831
|
return self.runtime_class.from_context(context)
|
uipath/_cli/_runtime/_runtime.py
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
"""Python script runtime implementation for executing and managing python scripts."""
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import os
|
|
5
|
+
import uuid
|
|
6
|
+
from functools import cached_property
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Any, Awaitable, Callable, List, Optional, TypeVar
|
|
9
|
+
|
|
10
|
+
from typing_extensions import override
|
|
11
|
+
|
|
12
|
+
from .._utils._console import ConsoleLogger
|
|
13
|
+
from .._utils._input_args import generate_args
|
|
14
|
+
from .._utils._parse_ast import generate_bindings # type: ignore[attr-defined]
|
|
15
|
+
from ..models.runtime_schema import BindingResource, Entrypoint
|
|
6
16
|
from ._contracts import (
|
|
7
17
|
UiPathBaseRuntime,
|
|
8
18
|
UiPathErrorCategory,
|
|
@@ -63,6 +73,36 @@ class UiPathRuntime(UiPathBaseRuntime):
|
|
|
63
73
|
) from e
|
|
64
74
|
|
|
65
75
|
|
|
76
|
+
console = ConsoleLogger()
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def get_user_script(directory: str, entrypoint: Optional[str] = None) -> Optional[str]:
|
|
80
|
+
"""Find the Python script to process."""
|
|
81
|
+
if entrypoint:
|
|
82
|
+
script_path = os.path.join(directory, entrypoint)
|
|
83
|
+
if not os.path.isfile(script_path):
|
|
84
|
+
console.error(
|
|
85
|
+
f"The {entrypoint} file does not exist in the current directory."
|
|
86
|
+
)
|
|
87
|
+
return None
|
|
88
|
+
return script_path
|
|
89
|
+
|
|
90
|
+
python_files = [f for f in os.listdir(directory) if f.endswith(".py")]
|
|
91
|
+
|
|
92
|
+
if not python_files:
|
|
93
|
+
console.error(
|
|
94
|
+
"No python files found in the current directory.\nPlease specify the entrypoint: `uipath init <entrypoint_path>`"
|
|
95
|
+
)
|
|
96
|
+
return None
|
|
97
|
+
elif len(python_files) == 1:
|
|
98
|
+
return os.path.join(directory, python_files[0])
|
|
99
|
+
else:
|
|
100
|
+
console.error(
|
|
101
|
+
"Multiple python files found in the current directory.\nPlease specify the entrypoint: `uipath init <entrypoint_path>`"
|
|
102
|
+
)
|
|
103
|
+
return None
|
|
104
|
+
|
|
105
|
+
|
|
66
106
|
class UiPathScriptRuntime(UiPathRuntime):
|
|
67
107
|
"""Runtime for executing Python scripts."""
|
|
68
108
|
|
|
@@ -74,3 +114,32 @@ class UiPathScriptRuntime(UiPathRuntime):
|
|
|
74
114
|
def from_context(cls, context: UiPathRuntimeContext):
|
|
75
115
|
"""Create runtime instance from context."""
|
|
76
116
|
return UiPathScriptRuntime(context, context.entrypoint or "")
|
|
117
|
+
|
|
118
|
+
@cached_property
|
|
119
|
+
@override
|
|
120
|
+
def get_binding_resources(self) -> List[BindingResource]:
|
|
121
|
+
"""Get binding resources for script runtime.
|
|
122
|
+
|
|
123
|
+
Returns: A list of binding resources.
|
|
124
|
+
"""
|
|
125
|
+
working_dir = self.context.runtime_dir or os.getcwd()
|
|
126
|
+
script_path = get_user_script(working_dir, entrypoint=self.context.entrypoint)
|
|
127
|
+
bindings = generate_bindings(script_path)
|
|
128
|
+
return bindings.resources
|
|
129
|
+
|
|
130
|
+
@cached_property
|
|
131
|
+
@override
|
|
132
|
+
def get_entrypoint(self) -> Entrypoint:
|
|
133
|
+
working_dir = self.context.runtime_dir or os.getcwd()
|
|
134
|
+
script_path = get_user_script(working_dir, entrypoint=self.context.entrypoint)
|
|
135
|
+
if not script_path:
|
|
136
|
+
raise ValueError("Entrypoint not found.")
|
|
137
|
+
relative_path = Path(script_path).relative_to(working_dir).as_posix()
|
|
138
|
+
args = generate_args(script_path)
|
|
139
|
+
return Entrypoint(
|
|
140
|
+
file_path=relative_path, # type: ignore[call-arg] # This exists
|
|
141
|
+
unique_id=str(uuid.uuid4()),
|
|
142
|
+
type="agent",
|
|
143
|
+
input=args["input"],
|
|
144
|
+
output=args["output"],
|
|
145
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from uipath._cli._runtime._contracts import (
|
|
2
|
+
UiPathBaseRuntime,
|
|
3
|
+
UiPathRuntimeContext,
|
|
4
|
+
UiPathRuntimeFactory,
|
|
5
|
+
)
|
|
6
|
+
from uipath._cli._runtime._runtime import UiPathScriptRuntime
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def generate_runtime_factory() -> UiPathRuntimeFactory[
|
|
10
|
+
UiPathBaseRuntime, UiPathRuntimeContext
|
|
11
|
+
]:
|
|
12
|
+
runtime_factory: UiPathRuntimeFactory[UiPathBaseRuntime, UiPathRuntimeContext] = (
|
|
13
|
+
UiPathRuntimeFactory(
|
|
14
|
+
UiPathScriptRuntime,
|
|
15
|
+
UiPathRuntimeContext,
|
|
16
|
+
context_generator=lambda **kwargs: UiPathRuntimeContext.with_defaults(
|
|
17
|
+
**kwargs
|
|
18
|
+
),
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
return runtime_factory
|
uipath/_cli/cli_debug.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# type: ignore
|
|
2
2
|
import asyncio
|
|
3
3
|
import os
|
|
4
|
-
import uuid
|
|
5
4
|
from os import environ as env
|
|
6
5
|
from typing import Optional
|
|
7
6
|
|
|
@@ -110,7 +109,6 @@ def debug(
|
|
|
110
109
|
execution_output_file=output_file,
|
|
111
110
|
debug=debug,
|
|
112
111
|
)
|
|
113
|
-
debug_context.execution_id = debug_context.job_id or str(uuid.uuid4())
|
|
114
112
|
|
|
115
113
|
runtime_factory = UiPathRuntimeFactory(
|
|
116
114
|
UiPathScriptRuntime,
|
uipath/_cli/cli_eval.py
CHANGED
|
@@ -12,11 +12,7 @@ from uipath._cli._evals._runtime import (
|
|
|
12
12
|
UiPathEvalContext,
|
|
13
13
|
UiPathEvalRuntime,
|
|
14
14
|
)
|
|
15
|
-
from uipath._cli._runtime.
|
|
16
|
-
UiPathRuntimeContext,
|
|
17
|
-
UiPathRuntimeFactory,
|
|
18
|
-
)
|
|
19
|
-
from uipath._cli._runtime._runtime import UiPathScriptRuntime
|
|
15
|
+
from uipath._cli._runtime._runtime_factory import generate_runtime_factory
|
|
20
16
|
from uipath._cli._utils._constants import UIPATH_PROJECT_ID
|
|
21
17
|
from uipath._cli._utils._folders import get_personal_workspace_key_async
|
|
22
18
|
from uipath._cli.middlewares import Middlewares
|
|
@@ -96,6 +92,15 @@ def eval(
|
|
|
96
92
|
workers: Number of parallel workers for running evaluations
|
|
97
93
|
no_report: Do not report the evaluation results
|
|
98
94
|
"""
|
|
95
|
+
context_args = {
|
|
96
|
+
"entrypoint": entrypoint or auto_discover_entrypoint(),
|
|
97
|
+
"eval_set": eval_set,
|
|
98
|
+
"eval_ids": eval_ids,
|
|
99
|
+
"workers": workers,
|
|
100
|
+
"no_report": no_report,
|
|
101
|
+
"output_file": output_file,
|
|
102
|
+
}
|
|
103
|
+
|
|
99
104
|
should_register_progress_reporter = setup_reporting_prereq(no_report)
|
|
100
105
|
|
|
101
106
|
result = Middlewares.next(
|
|
@@ -119,16 +124,9 @@ def eval(
|
|
|
119
124
|
progress_reporter = StudioWebProgressReporter(LlmOpsHttpExporter())
|
|
120
125
|
asyncio.run(progress_reporter.subscribe_to_eval_runtime_events(event_bus))
|
|
121
126
|
|
|
122
|
-
def generate_runtime_context(**context_kwargs) -> UiPathRuntimeContext:
|
|
123
|
-
runtime_context = UiPathRuntimeContext.with_defaults(**context_kwargs)
|
|
124
|
-
runtime_context.entrypoint = runtime_entrypoint
|
|
125
|
-
return runtime_context
|
|
126
|
-
|
|
127
|
-
runtime_entrypoint = entrypoint or auto_discover_entrypoint()
|
|
128
|
-
|
|
129
127
|
eval_context = UiPathEvalContext.with_defaults(
|
|
130
128
|
execution_output_file=output_file,
|
|
131
|
-
entrypoint=
|
|
129
|
+
entrypoint=context_args["entrypoint"],
|
|
132
130
|
)
|
|
133
131
|
|
|
134
132
|
eval_context.no_report = no_report
|
|
@@ -140,11 +138,7 @@ def eval(
|
|
|
140
138
|
asyncio.run(console_reporter.subscribe_to_eval_runtime_events(event_bus))
|
|
141
139
|
|
|
142
140
|
try:
|
|
143
|
-
runtime_factory =
|
|
144
|
-
UiPathScriptRuntime,
|
|
145
|
-
UiPathRuntimeContext,
|
|
146
|
-
context_generator=generate_runtime_context,
|
|
147
|
-
)
|
|
141
|
+
runtime_factory = generate_runtime_factory()
|
|
148
142
|
if eval_context.job_id:
|
|
149
143
|
runtime_factory.add_span_exporter(LlmOpsHttpExporter())
|
|
150
144
|
|
uipath/_cli/cli_init.py
CHANGED
|
@@ -5,7 +5,6 @@ import logging
|
|
|
5
5
|
import os
|
|
6
6
|
import shutil
|
|
7
7
|
import uuid
|
|
8
|
-
from pathlib import Path
|
|
9
8
|
from typing import Any, Dict, Optional
|
|
10
9
|
|
|
11
10
|
import click
|
|
@@ -13,11 +12,11 @@ import click
|
|
|
13
12
|
from .._utils.constants import ENV_TELEMETRY_ENABLED
|
|
14
13
|
from ..telemetry import track
|
|
15
14
|
from ..telemetry._constants import _PROJECT_KEY, _TELEMETRY_CONFIG_FILE
|
|
15
|
+
from ._runtime._runtime import get_user_script
|
|
16
|
+
from ._runtime._runtime_factory import generate_runtime_factory
|
|
16
17
|
from ._utils._console import ConsoleLogger
|
|
17
|
-
from ._utils._input_args import generate_args
|
|
18
|
-
from ._utils._parse_ast import generate_bindings
|
|
19
18
|
from .middlewares import Middlewares
|
|
20
|
-
from .models.runtime_schema import Bindings,
|
|
19
|
+
from .models.runtime_schema import Bindings, RuntimeSchema
|
|
21
20
|
|
|
22
21
|
console = ConsoleLogger()
|
|
23
22
|
logger = logging.getLogger(__name__)
|
|
@@ -126,33 +125,6 @@ def get_existing_settings(config_path: str) -> Optional[Dict[str, Any]]:
|
|
|
126
125
|
return None
|
|
127
126
|
|
|
128
127
|
|
|
129
|
-
def get_user_script(directory: str, entrypoint: Optional[str] = None) -> Optional[str]:
|
|
130
|
-
"""Find the Python script to process."""
|
|
131
|
-
if entrypoint:
|
|
132
|
-
script_path = os.path.join(directory, entrypoint)
|
|
133
|
-
if not os.path.isfile(script_path):
|
|
134
|
-
console.error(
|
|
135
|
-
f"The {entrypoint} file does not exist in the current directory."
|
|
136
|
-
)
|
|
137
|
-
return None
|
|
138
|
-
return script_path
|
|
139
|
-
|
|
140
|
-
python_files = [f for f in os.listdir(directory) if f.endswith(".py")]
|
|
141
|
-
|
|
142
|
-
if not python_files:
|
|
143
|
-
console.error(
|
|
144
|
-
"No python files found in the current directory.\nPlease specify the entrypoint: `uipath init <entrypoint_path>`"
|
|
145
|
-
)
|
|
146
|
-
return None
|
|
147
|
-
elif len(python_files) == 1:
|
|
148
|
-
return os.path.join(directory, python_files[0])
|
|
149
|
-
else:
|
|
150
|
-
console.error(
|
|
151
|
-
"Multiple python files found in the current directory.\nPlease specify the entrypoint: `uipath init <entrypoint_path>`"
|
|
152
|
-
)
|
|
153
|
-
return None
|
|
154
|
-
|
|
155
|
-
|
|
156
128
|
def write_config_file(config_data: Dict[str, Any] | RuntimeSchema) -> None:
|
|
157
129
|
existing_settings = get_existing_settings(CONFIG_PATH)
|
|
158
130
|
if existing_settings is not None:
|
|
@@ -205,39 +177,28 @@ def init(entrypoint: str, infer_bindings: bool) -> None:
|
|
|
205
177
|
|
|
206
178
|
generate_agent_md_files(current_directory)
|
|
207
179
|
script_path = get_user_script(current_directory, entrypoint=entrypoint)
|
|
208
|
-
|
|
209
180
|
if not script_path:
|
|
210
181
|
return
|
|
211
182
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
except Exception as e:
|
|
221
|
-
console.warning(f"Warning: Could not generate bindings: {str(e)}")
|
|
222
|
-
if bindings is None:
|
|
183
|
+
context_args = {
|
|
184
|
+
"runtime_dir": os.getcwd(),
|
|
185
|
+
"entrypoint": script_path,
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
def initialize() -> None:
|
|
189
|
+
try:
|
|
190
|
+
runtime = generate_runtime_factory().new_runtime(**context_args)
|
|
223
191
|
bindings = Bindings(
|
|
224
192
|
version="2.0",
|
|
225
|
-
resources=
|
|
193
|
+
resources=runtime.get_binding_resources,
|
|
226
194
|
)
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
)
|
|
236
|
-
],
|
|
237
|
-
bindings=bindings,
|
|
238
|
-
)
|
|
195
|
+
config_data = RuntimeSchema(
|
|
196
|
+
entryPoints=[runtime.get_entrypoint],
|
|
197
|
+
bindings=bindings,
|
|
198
|
+
)
|
|
199
|
+
config_path = write_config_file(config_data)
|
|
200
|
+
console.success(f"Created '{config_path}' file.")
|
|
201
|
+
except Exception as e:
|
|
202
|
+
console.error(f"Error creating configuration file:\n {str(e)}")
|
|
239
203
|
|
|
240
|
-
|
|
241
|
-
console.success(f"Created '{config_path}' file.")
|
|
242
|
-
except Exception as e:
|
|
243
|
-
console.error(f"Error creating configuration file:\n {str(e)}")
|
|
204
|
+
initialize()
|
uipath/_cli/cli_run.py
CHANGED
|
@@ -6,6 +6,7 @@ from typing import Optional
|
|
|
6
6
|
|
|
7
7
|
import click
|
|
8
8
|
|
|
9
|
+
from uipath._cli._runtime._runtime_factory import generate_runtime_factory
|
|
9
10
|
from uipath._cli._utils._debug import setup_debugging
|
|
10
11
|
from uipath.tracing import LlmOpsHttpExporter
|
|
11
12
|
|
|
@@ -13,12 +14,7 @@ from .._utils.constants import (
|
|
|
13
14
|
ENV_JOB_ID,
|
|
14
15
|
)
|
|
15
16
|
from ..telemetry import track
|
|
16
|
-
from ._runtime._contracts import
|
|
17
|
-
UiPathRuntimeContext,
|
|
18
|
-
UiPathRuntimeError,
|
|
19
|
-
UiPathRuntimeFactory,
|
|
20
|
-
)
|
|
21
|
-
from ._runtime._runtime import UiPathScriptRuntime
|
|
17
|
+
from ._runtime._contracts import UiPathRuntimeError
|
|
22
18
|
from ._utils._console import ConsoleLogger
|
|
23
19
|
from .middlewares import Middlewares
|
|
24
20
|
|
|
@@ -71,6 +67,14 @@ def run(
|
|
|
71
67
|
debug_port: int,
|
|
72
68
|
) -> None:
|
|
73
69
|
"""Execute the project."""
|
|
70
|
+
context_args = {
|
|
71
|
+
"entrypoint": entrypoint,
|
|
72
|
+
"input": input,
|
|
73
|
+
"resume": resume,
|
|
74
|
+
"input_file": file or input_file,
|
|
75
|
+
"execution_output_file": output_file,
|
|
76
|
+
"debug": debug,
|
|
77
|
+
}
|
|
74
78
|
input_file = file or input_file
|
|
75
79
|
# Setup debugging if requested
|
|
76
80
|
if not setup_debugging(debug, debug_port):
|
|
@@ -100,27 +104,17 @@ def run(
|
|
|
100
104
|
Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path>]`""")
|
|
101
105
|
|
|
102
106
|
try:
|
|
103
|
-
runtime_factory = UiPathRuntimeFactory(
|
|
104
|
-
UiPathScriptRuntime, UiPathRuntimeContext
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
context = UiPathRuntimeContext.with_defaults(
|
|
108
|
-
entrypoint=entrypoint,
|
|
109
|
-
input=input,
|
|
110
|
-
input_file=input_file,
|
|
111
|
-
resume=resume,
|
|
112
|
-
execution_output_file=output_file,
|
|
113
|
-
debug=debug,
|
|
114
|
-
)
|
|
115
|
-
if context.job_id:
|
|
116
|
-
runtime_factory.add_span_exporter(LlmOpsHttpExporter())
|
|
117
107
|
|
|
118
|
-
async def
|
|
108
|
+
async def execute() -> None:
|
|
109
|
+
runtime_factory = generate_runtime_factory()
|
|
110
|
+
context = runtime_factory.new_context(**context_args)
|
|
111
|
+
if context.job_id:
|
|
112
|
+
runtime_factory.add_span_exporter(LlmOpsHttpExporter())
|
|
119
113
|
result = await runtime_factory.execute(context)
|
|
120
114
|
if not context.job_id:
|
|
121
115
|
console.info(result.output)
|
|
122
116
|
|
|
123
|
-
asyncio.run(
|
|
117
|
+
asyncio.run(execute())
|
|
124
118
|
|
|
125
119
|
except UiPathRuntimeError as e:
|
|
126
120
|
console.error(f"{e.error_info.title} - {e.error_info.detail}")
|
uipath/_uipath.py
CHANGED
|
@@ -21,7 +21,6 @@ from ._services import (
|
|
|
21
21
|
UiPathLlmChatService,
|
|
22
22
|
UiPathOpenAIService,
|
|
23
23
|
)
|
|
24
|
-
from ._utils import setup_logging
|
|
25
24
|
from ._utils._auth import resolve_config
|
|
26
25
|
from .models.errors import BaseUrlMissingError, SecretMissingError
|
|
27
26
|
|
|
@@ -56,7 +55,6 @@ class UiPath:
|
|
|
56
55
|
self._attachments_service: Optional[AttachmentsService] = None
|
|
57
56
|
self._connections_service: Optional[ConnectionsService] = None
|
|
58
57
|
|
|
59
|
-
setup_logging(debug)
|
|
60
58
|
self._execution_context = ExecutionContext()
|
|
61
59
|
|
|
62
60
|
@property
|
uipath/_utils/_logs.py
CHANGED
|
@@ -11,5 +11,4 @@ def setup_logging(should_debug: Optional[bool] = None) -> None:
|
|
|
11
11
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
12
12
|
)
|
|
13
13
|
logger.setLevel(logging.DEBUG if should_debug else logging.INFO)
|
|
14
|
-
logger.removeHandler(logging.StreamHandler(sys.stdout))
|
|
15
14
|
logger.addHandler(logging.StreamHandler(sys.stderr))
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
-
import re
|
|
4
3
|
from enum import Enum
|
|
5
4
|
from typing import Optional
|
|
6
5
|
|
|
@@ -148,20 +147,17 @@ class EndpointManager:
|
|
|
148
147
|
return gw.value
|
|
149
148
|
|
|
150
149
|
# Determine fallback order based on environment hints
|
|
151
|
-
uipath_url = os.getenv("UIPATH_URL", "")
|
|
152
150
|
hdens_env = os.getenv("HDENS_ENV", "").lower()
|
|
153
151
|
|
|
154
|
-
is_cloud_url = re.match(r"https?://[^/]+\.uipath\.com", uipath_url)
|
|
155
|
-
|
|
156
152
|
# Default order: AgentHub -> Orchestrator
|
|
157
153
|
check_order = [
|
|
158
154
|
("ah", ah, cls.is_agenthub_available),
|
|
159
155
|
("orc", orc, cls.is_orchestrator_available),
|
|
160
156
|
]
|
|
161
157
|
|
|
162
|
-
# Prioritize Orchestrator if HDENS_ENV is 'sf'
|
|
158
|
+
# Prioritize Orchestrator if HDENS_ENV is 'sf'
|
|
163
159
|
# Note: The default order already prioritizes AgentHub
|
|
164
|
-
if hdens_env == "sf"
|
|
160
|
+
if hdens_env == "sf":
|
|
165
161
|
check_order.reverse()
|
|
166
162
|
|
|
167
163
|
# Execute fallback checks in the determined order
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.98
|
|
4
4
|
Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
|
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-python
|
|
@@ -2,23 +2,23 @@ uipath/__init__.py,sha256=IaeKItOOQXMa95avueJ3dAq-XcRHyZVNjcCGwlSB000,634
|
|
|
2
2
|
uipath/_config.py,sha256=pi3qxPzDTxMEstj_XkGOgKJqD6RTHHv7vYv8sS_-d5Q,92
|
|
3
3
|
uipath/_execution_context.py,sha256=Qo8VMUFgtiL-40KsZrvul5bGv1CRERle_fCw1ORCggY,2374
|
|
4
4
|
uipath/_folder_context.py,sha256=D-bgxdwpwJP4b_QdVKcPODYh15kMDrOar2xNonmMSm4,1861
|
|
5
|
-
uipath/_uipath.py,sha256=
|
|
5
|
+
uipath/_uipath.py,sha256=4WSnEEoE24DPX-gJJ6FQB1fS9frEDrRV0CiGd8iaZQ0,4837
|
|
6
6
|
uipath/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
uipath/_cli/README.md,sha256=GLtCfbeIKZKNnGTCsfSVqRQ27V1btT1i2bSAyW_xZl4,474
|
|
8
|
-
uipath/_cli/__init__.py,sha256=
|
|
8
|
+
uipath/_cli/__init__.py,sha256=aGym-NX6_5psRTm_fcCCh98E83OtufnKuGdQjw-sG9Y,2406
|
|
9
9
|
uipath/_cli/cli_auth.py,sha256=CzetSRqSUvMs02PtI4w5Vi_0fv_ETA307bB2vXalWzY,2628
|
|
10
|
-
uipath/_cli/cli_debug.py,sha256=-
|
|
10
|
+
uipath/_cli/cli_debug.py,sha256=-s6Nmy0DnDyITjZAf6f71hZ1YDDt0Yl57XklEkuL0FU,4068
|
|
11
11
|
uipath/_cli/cli_deploy.py,sha256=KPCmQ0c_NYD5JofSDao5r6QYxHshVCRxlWDVnQvlp5w,645
|
|
12
12
|
uipath/_cli/cli_dev.py,sha256=nEfpjw1PZ72O6jmufYWVrueVwihFxDPOeJakdvNHdOA,2146
|
|
13
|
-
uipath/_cli/cli_eval.py,sha256=
|
|
14
|
-
uipath/_cli/cli_init.py,sha256=
|
|
13
|
+
uipath/_cli/cli_eval.py,sha256=6evrUtaHnQ1NTEQKZKltgH7mpYOy6YP88L2LZcnnnfs,5139
|
|
14
|
+
uipath/_cli/cli_init.py,sha256=PpD9IwHClCqBD-hPWTxnaV39eWU0MPlwSOTu_GY843I,6411
|
|
15
15
|
uipath/_cli/cli_invoke.py,sha256=m-te-EjhDpk_fhFDkt-yQFzmjEHGo5lQDGEQWxSXisQ,4395
|
|
16
16
|
uipath/_cli/cli_new.py,sha256=9378NYUBc9j-qKVXV7oja-jahfJhXBg8zKVyaon7ctY,2102
|
|
17
17
|
uipath/_cli/cli_pack.py,sha256=U5rXVbUnHFgdEsXyhkjmWza8dfob1wU9lyl4yrYnUss,11076
|
|
18
18
|
uipath/_cli/cli_publish.py,sha256=DgyfcZjvfV05Ldy0Pk5y_Le_nT9JduEE_x-VpIc_Kq0,6471
|
|
19
19
|
uipath/_cli/cli_pull.py,sha256=muX2gR-W-bSrNI3pIO0zbhZAP0VBOSsOY2-yrq8HgAw,2433
|
|
20
20
|
uipath/_cli/cli_push.py,sha256=_JbjI45uJaobBDaz--NlzAXYJNwHX_XGLa8eC9wN-Cg,3166
|
|
21
|
-
uipath/_cli/cli_run.py,sha256=
|
|
21
|
+
uipath/_cli/cli_run.py,sha256=4XEvJQEcFafDLJHbgd94cuYxeioprNFe1qwL7JeAplg,3789
|
|
22
22
|
uipath/_cli/middlewares.py,sha256=tb0c4sU1SCYi0PNs956Qmk24NDk0C0mBfVQmTcyORE0,5000
|
|
23
23
|
uipath/_cli/spinner.py,sha256=bS-U_HA5yne11ejUERu7CQoXmWdabUD2bm62EfEdV8M,1107
|
|
24
24
|
uipath/_cli/_auth/_auth_server.py,sha256=v_b8KNwn0tAv8jxpeKdllOVzl31q9AcdwpE_koAK_w4,7235
|
|
@@ -32,8 +32,8 @@ uipath/_cli/_auth/auth_config.json,sha256=o8J5BBFwiEtjZLHpJ_64lvnTeYeRIHaJ-Bhg0Q
|
|
|
32
32
|
uipath/_cli/_auth/index.html,sha256=uGK0CDTP8Rys_p4O_Pbd2x4tz0frKNVcumjrXnal5Nc,22814
|
|
33
33
|
uipath/_cli/_auth/localhost.crt,sha256=oGl9oLLOiouHubAt39B4zEfylFvKEtbtr_43SIliXJc,1226
|
|
34
34
|
uipath/_cli/_auth/localhost.key,sha256=X31VYXD8scZtmGA837dGX5l6G-LXHLo5ItWJhZXaz3c,1679
|
|
35
|
-
uipath/_cli/_debug/_bridge.py,sha256=
|
|
36
|
-
uipath/_cli/_debug/_runtime.py,sha256=
|
|
35
|
+
uipath/_cli/_debug/_bridge.py,sha256=7_2IM4dhaYZ56dkNqPRQzdRojBDmDsJLa7zKs8KFZHg,16132
|
|
36
|
+
uipath/_cli/_debug/_runtime.py,sha256=h4WRBJn46dorTVXNZ32KIqg_-Z0mcLq5BvXGXqHAT_o,4934
|
|
37
37
|
uipath/_cli/_dev/_terminal/__init__.py,sha256=di_RiN9Mcp9wqyKRRqXag28vbSw8_78mCnQZNn9H-Ss,14027
|
|
38
38
|
uipath/_cli/_dev/_terminal/_components/_chat.py,sha256=NLRoy49QScHiI-q0FGykkaU8ajv1d23fx7issSALcFA,4119
|
|
39
39
|
uipath/_cli/_dev/_terminal/_components/_details.py,sha256=FbLYtJ56gqHV6CIrpzO_n9Sk_YNg4nzRKTSsbj-DBPQ,17257
|
|
@@ -49,7 +49,7 @@ uipath/_cli/_dev/_terminal/_utils/_logger.py,sha256=_ipTl_oAiMF9I7keGt2AAFAMz40D
|
|
|
49
49
|
uipath/_cli/_evals/_console_progress_reporter.py,sha256=HgB6pdMyoS6YVwuI3EpM2LBcH3U69nrdaTyNgPG8ssg,9304
|
|
50
50
|
uipath/_cli/_evals/_evaluator_factory.py,sha256=Gycv94VtGOpMir_Gba-UoiAyrSRfbSfe8_pTfjzcA9Q,3875
|
|
51
51
|
uipath/_cli/_evals/_progress_reporter.py,sha256=kX7rNSa-QCLXIzK-vb9Jjf-XLEtucdeiQPgPlSkpp2U,16778
|
|
52
|
-
uipath/_cli/_evals/_runtime.py,sha256=
|
|
52
|
+
uipath/_cli/_evals/_runtime.py,sha256=9XwdDIN33LTbCTjSQvq1tWOrWn1Q42nTbuh-f7LFXEg,20761
|
|
53
53
|
uipath/_cli/_evals/_span_collection.py,sha256=RoKoeDFG2XODdlgI27ionCjU7LLD_C0LJJ3gu0wab10,779
|
|
54
54
|
uipath/_cli/_evals/_models/_evaluation_set.py,sha256=0I83I3HNu_BrgFz9miar2QTyXKb0dAaEpYMQrKUHP0U,4958
|
|
55
55
|
uipath/_cli/_evals/_models/_evaluator.py,sha256=fuC3UOYwPD4d_wdynHeLSCzbu82golNAnnPnxC8Y4rk,3315
|
|
@@ -66,11 +66,12 @@ uipath/_cli/_evals/mocks/mocker_factory.py,sha256=V5QKSTtQxztTo4-fK1TyAaXw2Z3mHf
|
|
|
66
66
|
uipath/_cli/_evals/mocks/mockito_mocker.py,sha256=AO2BmFwA6hz3Lte-STVr7aJDPvMCqKNKa4j2jeNZ_U4,2677
|
|
67
67
|
uipath/_cli/_evals/mocks/mocks.py,sha256=HY0IaSqqO8hioBB3rp5XwAjSpQE4K5hoH6oJQ-sH72I,2207
|
|
68
68
|
uipath/_cli/_push/sw_file_handler.py,sha256=voZVfJeJTqkvf5aFZvxAHQ_qa7dX_Cz7wRsfhLKL9Ag,17884
|
|
69
|
-
uipath/_cli/_runtime/_contracts.py,sha256
|
|
69
|
+
uipath/_cli/_runtime/_contracts.py,sha256=WqHEMBo5jM5a-yV-KD0FeOkei4M3qq-hQwza2hCe9Rk,34318
|
|
70
70
|
uipath/_cli/_runtime/_escalation.py,sha256=x3vI98qsfRA-fL_tNkRVTFXioM5Gv2w0GFcXJJ5eQtg,7981
|
|
71
71
|
uipath/_cli/_runtime/_hitl.py,sha256=VKbM021nVg1HEDnTfucSLJ0LsDn83CKyUtVzofS2qTU,11369
|
|
72
72
|
uipath/_cli/_runtime/_logging.py,sha256=srjAi3Cy6g7b8WNHiYNjaZT4t40F3XRqquuoGd2kh4Y,14019
|
|
73
|
-
uipath/_cli/_runtime/_runtime.py,sha256=
|
|
73
|
+
uipath/_cli/_runtime/_runtime.py,sha256=in0mS-G_MDT2KnPHzjZta57GFGMJwSwJkUh06uaIMTU,4721
|
|
74
|
+
uipath/_cli/_runtime/_runtime_factory.py,sha256=8wbJeTTFQwCZ-Zm7tRec2YjBCJGhWdEwxl9yMkPwz6U,640
|
|
74
75
|
uipath/_cli/_runtime/_script_executor.py,sha256=PjbmEbyCMofGH2F85b8RFsxdV3Tqw0kVqdWOOk2ZLlI,9687
|
|
75
76
|
uipath/_cli/_templates/.psmdcp.template,sha256=C7pBJPt98ovEljcBvGtEUGoWjjQhu9jls1bpYjeLOKA,611
|
|
76
77
|
uipath/_cli/_templates/.rels.template,sha256=-fTcw7OA1AcymHr0LzBqbMAAtzZTRXLTNa_ljq087Jk,406
|
|
@@ -121,7 +122,7 @@ uipath/_utils/__init__.py,sha256=VdcpnENJIa0R6Y26NoxY64-wUVyvb4pKfTh1wXDQeMk,526
|
|
|
121
122
|
uipath/_utils/_auth.py,sha256=5R30ALuRrIatf_0Lk-AETJvt6ora7h0R7yeDdliW1Lg,2524
|
|
122
123
|
uipath/_utils/_endpoint.py,sha256=yYHwqbQuJIevpaTkdfYJS9CrtlFeEyfb5JQK5osTCog,2489
|
|
123
124
|
uipath/_utils/_infer_bindings.py,sha256=eCxfUjd37fOFZ6vOfKl2BhWVUt7iSSJ-VQ0-nDTBcaA,1836
|
|
124
|
-
uipath/_utils/_logs.py,sha256=
|
|
125
|
+
uipath/_utils/_logs.py,sha256=ZLH0jyPImy7xAqr81XW-As7bdeIcfJpReombBPh9HAg,450
|
|
125
126
|
uipath/_utils/_read_overwrites.py,sha256=OQgG9ycPpFnLub5ELQdX9V2Fyh6F9_zDR3xoYagJaMI,5287
|
|
126
127
|
uipath/_utils/_request_override.py,sha256=fIVHzgHVXITUlWcp8osNBwIafM1qm4_ejx0ng5UzfJ4,573
|
|
127
128
|
uipath/_utils/_request_spec.py,sha256=iCtBLqtbWUpFG5g1wtIZBzSupKsfaRLiQFoFc_4B70Q,747
|
|
@@ -185,10 +186,10 @@ uipath/tracing/_otel_exporters.py,sha256=c0GKU_oUrAwrOrqbyu64c55z1TR6xk01d3y5fLU
|
|
|
185
186
|
uipath/tracing/_traced.py,sha256=yBIY05PCCrYyx50EIHZnwJaKNdHPNx-YTR1sHQl0a98,19901
|
|
186
187
|
uipath/tracing/_utils.py,sha256=X-LFsyIxDeNOGuHPvkb6T5o9Y8ElYhr_rP3CEBJSu4s,13837
|
|
187
188
|
uipath/utils/__init__.py,sha256=VD-KXFpF_oWexFg6zyiWMkxl2HM4hYJMIUDZ1UEtGx0,105
|
|
188
|
-
uipath/utils/_endpoints_manager.py,sha256=
|
|
189
|
+
uipath/utils/_endpoints_manager.py,sha256=tnF_FiCx8qI2XaJDQgYkMN_gl9V0VqNR1uX7iawuLp8,8230
|
|
189
190
|
uipath/utils/dynamic_schema.py,sha256=w0u_54MoeIAB-mf3GmwX1A_X8_HDrRy6p998PvX9evY,3839
|
|
190
|
-
uipath-2.1.
|
|
191
|
-
uipath-2.1.
|
|
192
|
-
uipath-2.1.
|
|
193
|
-
uipath-2.1.
|
|
194
|
-
uipath-2.1.
|
|
191
|
+
uipath-2.1.98.dist-info/METADATA,sha256=jMCpjpybJ5VbSSuEyMJob7C8xMHNj3QKwVjpR7mc5Nw,6625
|
|
192
|
+
uipath-2.1.98.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
193
|
+
uipath-2.1.98.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
|
|
194
|
+
uipath-2.1.98.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
|
|
195
|
+
uipath-2.1.98.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|