uipath 2.1.118__py3-none-any.whl → 2.1.121__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/_evals/_progress_reporter.py +10 -8
- uipath/_cli/_evals/_runtime.py +2 -0
- uipath/_cli/_utils/_constants.py +0 -2
- uipath/_cli/cli_eval.py +14 -3
- uipath/_cli/cli_init.py +2 -3
- uipath/_cli/cli_pack.py +3 -3
- uipath/_cli/cli_pull.py +2 -4
- uipath/_cli/cli_push.py +2 -5
- uipath/_config.py +38 -0
- uipath/_events/_events.py +1 -0
- uipath/_resources/CLI_REFERENCE.md +2 -0
- uipath/_resources/SDK_REFERENCE.md +9 -3
- uipath/_services/documents_service.py +466 -59
- uipath/_utils/constants.py +2 -0
- uipath/models/documents.py +64 -0
- uipath/tracing/_otel_exporters.py +58 -22
- uipath/tracing/_utils.py +64 -34
- {uipath-2.1.118.dist-info → uipath-2.1.121.dist-info}/METADATA +1 -1
- {uipath-2.1.118.dist-info → uipath-2.1.121.dist-info}/RECORD +22 -22
- {uipath-2.1.118.dist-info → uipath-2.1.121.dist-info}/WHEEL +0 -0
- {uipath-2.1.118.dist-info → uipath-2.1.121.dist-info}/entry_points.txt +0 -0
- {uipath-2.1.118.dist-info → uipath-2.1.121.dist-info}/licenses/LICENSE +0 -0
uipath/models/documents.py
CHANGED
|
@@ -151,3 +151,67 @@ class ValidatedResult(BaseModel):
|
|
|
151
151
|
|
|
152
152
|
document_id: str = Field(alias="DocumentId")
|
|
153
153
|
results_document: dict = Field(alias="ResultsDocument") # type: ignore
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class Reference(BaseModel):
|
|
157
|
+
model_config = ConfigDict(
|
|
158
|
+
serialize_by_alias=True,
|
|
159
|
+
validate_by_alias=True,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
text_start_index: int = Field(alias="TextStartIndex")
|
|
163
|
+
text_length: int = Field(alias="TextLength")
|
|
164
|
+
tokens: List[str] = Field(alias="Tokens")
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class DocumentBounds(BaseModel):
|
|
168
|
+
model_config = ConfigDict(
|
|
169
|
+
serialize_by_alias=True,
|
|
170
|
+
validate_by_alias=True,
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
start_page: int = Field(alias="StartPage")
|
|
174
|
+
page_count: int = Field(alias="PageCount")
|
|
175
|
+
text_start_index: int = Field(alias="TextStartIndex")
|
|
176
|
+
text_length: int = Field(alias="TextLength")
|
|
177
|
+
page_range: str = Field(alias="PageRange")
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class ClassificationResult(BaseModel):
|
|
181
|
+
"""A model representing the result of a document classification.
|
|
182
|
+
|
|
183
|
+
Attributes:
|
|
184
|
+
document_id (str): The ID of the classified document.
|
|
185
|
+
document_type_id (str): The ID of the predicted document type.
|
|
186
|
+
confidence (float): The confidence score of the classification.
|
|
187
|
+
ocr_confidence (float): The OCR confidence score of the document.
|
|
188
|
+
reference (Reference): The reference information for the classified document.
|
|
189
|
+
document_bounds (DocumentBounds): The bounds of the document in terms of pages and text.
|
|
190
|
+
classifier_name (str): The name of the classifier used.
|
|
191
|
+
project_id (str): The ID of the project associated with the classification.
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
model_config = ConfigDict(
|
|
195
|
+
serialize_by_alias=True,
|
|
196
|
+
validate_by_alias=True,
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
document_id: str = Field(alias="DocumentId")
|
|
200
|
+
document_type_id: str = Field(alias="DocumentTypeId")
|
|
201
|
+
confidence: float = Field(alias="Confidence")
|
|
202
|
+
ocr_confidence: float = Field(alias="OcrConfidence")
|
|
203
|
+
reference: Reference = Field(alias="Reference")
|
|
204
|
+
document_bounds: DocumentBounds = Field(alias="DocumentBounds")
|
|
205
|
+
classifier_name: str = Field(alias="ClassifierName")
|
|
206
|
+
project_id: str = Field(alias="ProjectId")
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class ClassificationResponse(BaseModel):
|
|
210
|
+
model_config = ConfigDict(
|
|
211
|
+
serialize_by_alias=True,
|
|
212
|
+
validate_by_alias=True,
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
classification_results: List[ClassificationResult] = Field(
|
|
216
|
+
alias="classificationResults"
|
|
217
|
+
)
|
|
@@ -32,20 +32,25 @@ def _get_llm_messages(attributes: Dict[str, Any], prefix: str) -> List[Dict[str,
|
|
|
32
32
|
"""Extracts and reconstructs LLM messages from flattened attributes."""
|
|
33
33
|
messages: dict[int, dict[str, Any]] = {}
|
|
34
34
|
message_prefix = f"{prefix}."
|
|
35
|
+
prefix_len = len(message_prefix)
|
|
35
36
|
|
|
36
37
|
for key, value in attributes.items():
|
|
37
38
|
if key.startswith(message_prefix):
|
|
38
|
-
|
|
39
|
+
# Avoid repeated string slicing and splits
|
|
40
|
+
parts = key[prefix_len:].split(".")
|
|
39
41
|
if len(parts) >= 2 and parts[0].isdigit():
|
|
40
42
|
index = int(parts[0])
|
|
41
43
|
if index not in messages:
|
|
42
44
|
messages[index] = {}
|
|
43
45
|
current: Any = messages[index]
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
# Traverse parts except the last one
|
|
48
|
+
parts_len = len(parts)
|
|
49
|
+
for i in range(1, parts_len - 1):
|
|
50
|
+
part = parts[i]
|
|
46
51
|
key_part: str | int = part
|
|
47
52
|
if part.isdigit() and (
|
|
48
|
-
i + 2 <
|
|
53
|
+
i + 2 < parts_len and parts[i + 2].isdigit()
|
|
49
54
|
):
|
|
50
55
|
key_part = int(part)
|
|
51
56
|
|
|
@@ -60,6 +65,10 @@ def _get_llm_messages(attributes: Dict[str, Any], prefix: str) -> List[Dict[str,
|
|
|
60
65
|
|
|
61
66
|
current[parts[-1]] = value
|
|
62
67
|
|
|
68
|
+
# Convert dict to list, ordered by index, avoid sorted() if we can use range
|
|
69
|
+
if not messages:
|
|
70
|
+
return []
|
|
71
|
+
|
|
63
72
|
# Convert dict to list, ordered by index
|
|
64
73
|
return [messages[i] for i in sorted(messages.keys())]
|
|
65
74
|
|
|
@@ -112,18 +121,30 @@ class LlmOpsHttpExporter(SpanExporter):
|
|
|
112
121
|
f"Exporting {len(spans)} spans to {self.base_url}/llmopstenant_/api/Traces/spans"
|
|
113
122
|
)
|
|
114
123
|
|
|
124
|
+
# Use optimized path: keep attributes as dict for processing
|
|
125
|
+
# Only serialize at the very end
|
|
115
126
|
span_list = [
|
|
116
127
|
_SpanUtils.otel_span_to_uipath_span(
|
|
117
|
-
span, custom_trace_id=self.trace_id
|
|
118
|
-
).to_dict()
|
|
128
|
+
span, custom_trace_id=self.trace_id, serialize_attributes=False
|
|
129
|
+
).to_dict(serialize_attributes=False)
|
|
119
130
|
for span in spans
|
|
120
131
|
]
|
|
132
|
+
|
|
121
133
|
url = self._build_url(span_list)
|
|
122
134
|
|
|
135
|
+
# Process spans in-place if needed - work directly with dict
|
|
123
136
|
if self._extra_process_spans:
|
|
124
|
-
|
|
137
|
+
for span_data in span_list:
|
|
138
|
+
self._process_span_attributes(span_data)
|
|
125
139
|
|
|
126
|
-
|
|
140
|
+
# Serialize attributes once at the very end
|
|
141
|
+
for span_data in span_list:
|
|
142
|
+
if isinstance(span_data.get("Attributes"), dict):
|
|
143
|
+
span_data["Attributes"] = json.dumps(span_data["Attributes"])
|
|
144
|
+
|
|
145
|
+
# Only serialize for logging if debug is enabled to avoid allocation
|
|
146
|
+
if logger.isEnabledFor(logging.DEBUG):
|
|
147
|
+
logger.debug("Payload: %s", json.dumps(span_list))
|
|
127
148
|
|
|
128
149
|
return self._send_with_retries(url, span_list)
|
|
129
150
|
|
|
@@ -133,7 +154,8 @@ class LlmOpsHttpExporter(SpanExporter):
|
|
|
133
154
|
|
|
134
155
|
def _map_llm_call_attributes(self, attributes: Dict[str, Any]) -> Dict[str, Any]:
|
|
135
156
|
"""Maps attributes for LLM calls, handling flattened keys."""
|
|
136
|
-
|
|
157
|
+
# Modify attributes in place to avoid copy
|
|
158
|
+
result = attributes
|
|
137
159
|
|
|
138
160
|
# Token Usage
|
|
139
161
|
token_keys = {
|
|
@@ -202,7 +224,8 @@ class LlmOpsHttpExporter(SpanExporter):
|
|
|
202
224
|
|
|
203
225
|
def _map_tool_call_attributes(self, attributes: Dict[str, Any]) -> Dict[str, Any]:
|
|
204
226
|
"""Maps attributes for tool calls."""
|
|
205
|
-
|
|
227
|
+
# Modify attributes in place to avoid copy
|
|
228
|
+
result = attributes
|
|
206
229
|
|
|
207
230
|
result["type"] = "toolCall"
|
|
208
231
|
result["callId"] = attributes.get("call_id") or attributes.get("id")
|
|
@@ -225,22 +248,32 @@ class LlmOpsHttpExporter(SpanExporter):
|
|
|
225
248
|
return self.Status.ERROR
|
|
226
249
|
return self.Status.SUCCESS
|
|
227
250
|
|
|
228
|
-
def _process_span_attributes(self, span_data: Dict[str, Any]) ->
|
|
229
|
-
"""Extracts, transforms, and maps attributes for a span.
|
|
251
|
+
def _process_span_attributes(self, span_data: Dict[str, Any]) -> None:
|
|
252
|
+
"""Extracts, transforms, and maps attributes for a span in-place.
|
|
253
|
+
|
|
254
|
+
Args:
|
|
255
|
+
span_data: Span dict with Attributes as dict or JSON string
|
|
256
|
+
|
|
257
|
+
Note:
|
|
258
|
+
Modifies span_data in-place. When optimized path is used (dict),
|
|
259
|
+
modifies dict directly. When legacy path is used (str), parse → modify → serialize.
|
|
260
|
+
"""
|
|
230
261
|
if "Attributes" not in span_data:
|
|
231
|
-
return
|
|
262
|
+
return
|
|
232
263
|
|
|
233
264
|
attributes_val = span_data["Attributes"]
|
|
234
265
|
if isinstance(attributes_val, str):
|
|
266
|
+
# Legacy path: parse JSON string
|
|
235
267
|
try:
|
|
236
268
|
attributes: Dict[str, Any] = json.loads(attributes_val)
|
|
237
269
|
except json.JSONDecodeError as e:
|
|
238
270
|
logger.warning(f"Failed to parse attributes JSON: {e}")
|
|
239
|
-
return
|
|
271
|
+
return
|
|
240
272
|
elif isinstance(attributes_val, dict):
|
|
273
|
+
# Optimized path: work directly with dict
|
|
241
274
|
attributes = attributes_val
|
|
242
275
|
else:
|
|
243
|
-
return
|
|
276
|
+
return
|
|
244
277
|
|
|
245
278
|
# Determine SpanType
|
|
246
279
|
if "openinference.span.kind" in attributes:
|
|
@@ -258,23 +291,23 @@ class LlmOpsHttpExporter(SpanExporter):
|
|
|
258
291
|
attributes[new_key] = attributes[old_key]
|
|
259
292
|
|
|
260
293
|
# Apply detailed mapping based on SpanType
|
|
294
|
+
# Modify attributes dict in place to avoid allocations
|
|
261
295
|
span_type = span_data.get("SpanType")
|
|
262
296
|
if span_type == "completion":
|
|
263
|
-
|
|
297
|
+
self._map_llm_call_attributes(attributes)
|
|
264
298
|
elif span_type == "toolCall":
|
|
265
|
-
|
|
266
|
-
else:
|
|
267
|
-
processed_attributes = attributes.copy()
|
|
299
|
+
self._map_tool_call_attributes(attributes)
|
|
268
300
|
|
|
269
|
-
|
|
301
|
+
# If attributes were a string (legacy path), serialize back
|
|
302
|
+
# If dict (optimized path), leave as dict - caller will serialize once at the end
|
|
303
|
+
if isinstance(attributes_val, str):
|
|
304
|
+
span_data["Attributes"] = json.dumps(attributes)
|
|
270
305
|
|
|
271
306
|
# Determine status based on error information
|
|
272
307
|
error = attributes.get("error") or attributes.get("exception.message")
|
|
273
308
|
status = self._determine_status(error)
|
|
274
309
|
span_data["Status"] = status
|
|
275
310
|
|
|
276
|
-
return span_data
|
|
277
|
-
|
|
278
311
|
def _build_url(self, span_list: list[Dict[str, Any]]) -> str:
|
|
279
312
|
"""Construct the URL for the API request."""
|
|
280
313
|
trace_id = str(span_list[0]["TraceId"])
|
|
@@ -323,7 +356,10 @@ class JsonLinesFileExporter(SpanExporter):
|
|
|
323
356
|
def export(self, spans: Sequence[ReadableSpan]) -> SpanExportResult:
|
|
324
357
|
try:
|
|
325
358
|
uipath_spans = [
|
|
326
|
-
_SpanUtils.otel_span_to_uipath_span(
|
|
359
|
+
_SpanUtils.otel_span_to_uipath_span(
|
|
360
|
+
span, serialize_attributes=True
|
|
361
|
+
).to_dict(serialize_attributes=True)
|
|
362
|
+
for span in spans
|
|
327
363
|
]
|
|
328
364
|
|
|
329
365
|
with open(self.file_path, "a") as f:
|
uipath/tracing/_utils.py
CHANGED
|
@@ -63,12 +63,15 @@ def _simple_serialize_defaults(obj):
|
|
|
63
63
|
|
|
64
64
|
@dataclass
|
|
65
65
|
class UiPathSpan:
|
|
66
|
-
"""Represents a span in the UiPath tracing system.
|
|
66
|
+
"""Represents a span in the UiPath tracing system.
|
|
67
|
+
|
|
68
|
+
Note: attributes can be either a JSON string (backwards compatible) or a dict (optimized).
|
|
69
|
+
"""
|
|
67
70
|
|
|
68
71
|
id: uuid.UUID
|
|
69
72
|
trace_id: uuid.UUID
|
|
70
73
|
name: str
|
|
71
|
-
attributes: str
|
|
74
|
+
attributes: str | Dict[str, Any] # Support both str (legacy) and dict (optimized)
|
|
72
75
|
parent_id: Optional[uuid.UUID] = None
|
|
73
76
|
start_time: str = field(default_factory=lambda: datetime.now().isoformat())
|
|
74
77
|
end_time: str = field(default_factory=lambda: datetime.now().isoformat())
|
|
@@ -96,16 +99,32 @@ class UiPathSpan:
|
|
|
96
99
|
|
|
97
100
|
job_key: Optional[str] = field(default_factory=lambda: env.get("UIPATH_JOB_KEY"))
|
|
98
101
|
|
|
99
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
100
|
-
"""Convert the Span to a dictionary suitable for JSON serialization.
|
|
102
|
+
def to_dict(self, serialize_attributes: bool = True) -> Dict[str, Any]:
|
|
103
|
+
"""Convert the Span to a dictionary suitable for JSON serialization.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
serialize_attributes: If True and attributes is a dict, serialize to JSON string.
|
|
107
|
+
If False, keep attributes as-is (dict or str).
|
|
108
|
+
Default True for backwards compatibility.
|
|
109
|
+
"""
|
|
110
|
+
# Cache UUID string conversions to avoid repeated str() calls
|
|
111
|
+
id_str = str(self.id)
|
|
112
|
+
trace_id_str = str(self.trace_id)
|
|
113
|
+
parent_id_str = str(self.parent_id) if self.parent_id else None
|
|
114
|
+
|
|
115
|
+
# Handle attributes serialization
|
|
116
|
+
attributes_out = self.attributes
|
|
117
|
+
if serialize_attributes and isinstance(self.attributes, dict):
|
|
118
|
+
attributes_out = json.dumps(self.attributes)
|
|
119
|
+
|
|
101
120
|
return {
|
|
102
|
-
"Id":
|
|
103
|
-
"TraceId":
|
|
104
|
-
"ParentId":
|
|
121
|
+
"Id": id_str,
|
|
122
|
+
"TraceId": trace_id_str,
|
|
123
|
+
"ParentId": parent_id_str,
|
|
105
124
|
"Name": self.name,
|
|
106
125
|
"StartTime": self.start_time,
|
|
107
126
|
"EndTime": self.end_time,
|
|
108
|
-
"Attributes":
|
|
127
|
+
"Attributes": attributes_out,
|
|
109
128
|
"Status": self.status,
|
|
110
129
|
"CreatedAt": self.created_at,
|
|
111
130
|
"UpdatedAt": self.updated_at,
|
|
@@ -168,9 +187,18 @@ class _SpanUtils:
|
|
|
168
187
|
|
|
169
188
|
@staticmethod
|
|
170
189
|
def otel_span_to_uipath_span(
|
|
171
|
-
otel_span: ReadableSpan,
|
|
190
|
+
otel_span: ReadableSpan,
|
|
191
|
+
custom_trace_id: Optional[str] = None,
|
|
192
|
+
serialize_attributes: bool = True,
|
|
172
193
|
) -> UiPathSpan:
|
|
173
|
-
"""Convert an OpenTelemetry span to a UiPathSpan.
|
|
194
|
+
"""Convert an OpenTelemetry span to a UiPathSpan.
|
|
195
|
+
|
|
196
|
+
Args:
|
|
197
|
+
otel_span: The OpenTelemetry span to convert
|
|
198
|
+
custom_trace_id: Optional custom trace ID to use
|
|
199
|
+
serialize_attributes: If True, serialize attributes to JSON string (backwards compatible).
|
|
200
|
+
If False, keep as dict for optimized processing. Default True.
|
|
201
|
+
"""
|
|
174
202
|
# Extract the context information from the OTel span
|
|
175
203
|
span_context = otel_span.get_span_context()
|
|
176
204
|
|
|
@@ -192,10 +220,11 @@ class _SpanUtils:
|
|
|
192
220
|
if parent_span_id_str:
|
|
193
221
|
parent_id = uuid.UUID(parent_span_id_str)
|
|
194
222
|
|
|
195
|
-
#
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
223
|
+
# Build attributes dict efficiently
|
|
224
|
+
# Use the otel attributes as base - we only add new keys, don't modify existing
|
|
225
|
+
otel_attrs = otel_span.attributes if otel_span.attributes else {}
|
|
226
|
+
# Only copy if we need to modify - we'll build attributes_dict lazily
|
|
227
|
+
attributes_dict: dict[str, Any] = dict(otel_attrs) if otel_attrs else {}
|
|
199
228
|
|
|
200
229
|
# Map status
|
|
201
230
|
status = 1 # Default to OK
|
|
@@ -203,32 +232,31 @@ class _SpanUtils:
|
|
|
203
232
|
status = 2 # Error
|
|
204
233
|
attributes_dict["error"] = otel_span.status.description
|
|
205
234
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
235
|
+
# Process inputs - avoid redundant parsing if already parsed
|
|
236
|
+
original_inputs = otel_attrs.get("input", None)
|
|
209
237
|
if original_inputs:
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
attributes_dict["input.value"] = json_inputs
|
|
238
|
+
if isinstance(original_inputs, str):
|
|
239
|
+
try:
|
|
240
|
+
attributes_dict["input.value"] = json.loads(original_inputs)
|
|
214
241
|
attributes_dict["input.mime_type"] = "application/json"
|
|
215
|
-
|
|
242
|
+
except Exception as e:
|
|
243
|
+
logger.warning(f"Error parsing inputs: {e}")
|
|
216
244
|
attributes_dict["input.value"] = original_inputs
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
attributes_dict["input.value"] = str(original_inputs)
|
|
245
|
+
else:
|
|
246
|
+
attributes_dict["input.value"] = original_inputs
|
|
220
247
|
|
|
248
|
+
# Process outputs - avoid redundant parsing if already parsed
|
|
249
|
+
original_outputs = otel_attrs.get("output", None)
|
|
221
250
|
if original_outputs:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
attributes_dict["output.value"] = json_outputs
|
|
251
|
+
if isinstance(original_outputs, str):
|
|
252
|
+
try:
|
|
253
|
+
attributes_dict["output.value"] = json.loads(original_outputs)
|
|
226
254
|
attributes_dict["output.mime_type"] = "application/json"
|
|
227
|
-
|
|
255
|
+
except Exception as e:
|
|
256
|
+
logger.warning(f"Error parsing output: {e}")
|
|
228
257
|
attributes_dict["output.value"] = original_outputs
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
attributes_dict["output.value"] = str(original_outputs)
|
|
258
|
+
else:
|
|
259
|
+
attributes_dict["output.value"] = original_outputs
|
|
232
260
|
|
|
233
261
|
# Add events as additional attributes if they exist
|
|
234
262
|
if otel_span.events:
|
|
@@ -275,7 +303,9 @@ class _SpanUtils:
|
|
|
275
303
|
trace_id=trace_id,
|
|
276
304
|
parent_id=parent_id,
|
|
277
305
|
name=otel_span.name,
|
|
278
|
-
attributes=json.dumps(attributes_dict)
|
|
306
|
+
attributes=json.dumps(attributes_dict)
|
|
307
|
+
if serialize_attributes
|
|
308
|
+
else attributes_dict,
|
|
279
309
|
start_time=start_time,
|
|
280
310
|
end_time=end_time_str,
|
|
281
311
|
status=status,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.121
|
|
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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
uipath/__init__.py,sha256=IaeKItOOQXMa95avueJ3dAq-XcRHyZVNjcCGwlSB000,634
|
|
2
|
-
uipath/_config.py,sha256=
|
|
2
|
+
uipath/_config.py,sha256=YEiLmpHeeT2K_CinSVWr9aIWU6txfkgAUPP-jqxa9R0,990
|
|
3
3
|
uipath/_execution_context.py,sha256=Qo8VMUFgtiL-40KsZrvul5bGv1CRERle_fCw1ORCggY,2374
|
|
4
4
|
uipath/_folder_context.py,sha256=D-bgxdwpwJP4b_QdVKcPODYh15kMDrOar2xNonmMSm4,1861
|
|
5
5
|
uipath/_uipath.py,sha256=ycu11bjIUx5priRkB3xSRcilugHuSmfSN4Nq6Yz88gk,3702
|
|
@@ -11,14 +11,14 @@ uipath/_cli/cli_auth.py,sha256=CzetSRqSUvMs02PtI4w5Vi_0fv_ETA307bB2vXalWzY,2628
|
|
|
11
11
|
uipath/_cli/cli_debug.py,sha256=-s6Nmy0DnDyITjZAf6f71hZ1YDDt0Yl57XklEkuL0FU,4068
|
|
12
12
|
uipath/_cli/cli_deploy.py,sha256=KPCmQ0c_NYD5JofSDao5r6QYxHshVCRxlWDVnQvlp5w,645
|
|
13
13
|
uipath/_cli/cli_dev.py,sha256=nEfpjw1PZ72O6jmufYWVrueVwihFxDPOeJakdvNHdOA,2146
|
|
14
|
-
uipath/_cli/cli_eval.py,sha256=
|
|
15
|
-
uipath/_cli/cli_init.py,sha256=
|
|
14
|
+
uipath/_cli/cli_eval.py,sha256=odAZtE8jfT9Yl3UyJgN6WJJcImt32iSJyi_uw1BTUtg,5404
|
|
15
|
+
uipath/_cli/cli_init.py,sha256=39sQnIHol46D5ce4MBJRrD_8KOqvK1IyYhgn42_XYIM,7545
|
|
16
16
|
uipath/_cli/cli_invoke.py,sha256=m-te-EjhDpk_fhFDkt-yQFzmjEHGo5lQDGEQWxSXisQ,4395
|
|
17
17
|
uipath/_cli/cli_new.py,sha256=9378NYUBc9j-qKVXV7oja-jahfJhXBg8zKVyaon7ctY,2102
|
|
18
|
-
uipath/_cli/cli_pack.py,sha256=
|
|
18
|
+
uipath/_cli/cli_pack.py,sha256=7mJgZahtpKM_4ZZEA3WNv61eJJeRwNv87FjBPmXRJ3c,11041
|
|
19
19
|
uipath/_cli/cli_publish.py,sha256=DgyfcZjvfV05Ldy0Pk5y_Le_nT9JduEE_x-VpIc_Kq0,6471
|
|
20
|
-
uipath/_cli/cli_pull.py,sha256=
|
|
21
|
-
uipath/_cli/cli_push.py,sha256=
|
|
20
|
+
uipath/_cli/cli_pull.py,sha256=nV-OCdue_7C6x4f8jRoTYSnM-BgsWVsZUVibkgnogDU,2117
|
|
21
|
+
uipath/_cli/cli_push.py,sha256=5J-dhDilsYrlYg1aV1eWOU84QC_PlwTi9tI3UZptg1k,3743
|
|
22
22
|
uipath/_cli/cli_register.py,sha256=5-Asb8DSTR4W6M3TDi4U-AKXYOCZ3l2vcTuMOybDHEo,1465
|
|
23
23
|
uipath/_cli/cli_run.py,sha256=9vbmSG_FzS0x8KNNzSrST37FKjUOzhXPjl8xTm2ZEqQ,4203
|
|
24
24
|
uipath/_cli/middlewares.py,sha256=tb0c4sU1SCYi0PNs956Qmk24NDk0C0mBfVQmTcyORE0,5000
|
|
@@ -54,8 +54,8 @@ uipath/_cli/_evals/_console_progress_reporter.py,sha256=RlfhtyEHq2QjyXRevyeAhtGT
|
|
|
54
54
|
uipath/_cli/_evals/_evaluate.py,sha256=yRVhZ6uV58EV5Fv5X_K6425ZGsseQslnLe6FpIKy-u8,833
|
|
55
55
|
uipath/_cli/_evals/_evaluator_factory.py,sha256=gPF9fRMZBOUPnJSM1fzQyXGHMGYQw_0VmHv-JOGbZf4,14348
|
|
56
56
|
uipath/_cli/_evals/_helpers.py,sha256=dYHgkWxy2fOuqqZDtOKWKsZ1Ri4dn8qMnuB6DE-1MUk,6661
|
|
57
|
-
uipath/_cli/_evals/_progress_reporter.py,sha256=
|
|
58
|
-
uipath/_cli/_evals/_runtime.py,sha256=
|
|
57
|
+
uipath/_cli/_evals/_progress_reporter.py,sha256=MbN6QWCl2o6ydmmG-bjf7pPy9guA3bODar6iBettp6k,33315
|
|
58
|
+
uipath/_cli/_evals/_runtime.py,sha256=Gy8O0UJxtCbHwVWdHzhi8u4gAEAJnx891_HSzgPkTCk,25708
|
|
59
59
|
uipath/_cli/_evals/_span_collection.py,sha256=RoKoeDFG2XODdlgI27ionCjU7LLD_C0LJJ3gu0wab10,779
|
|
60
60
|
uipath/_cli/_evals/_models/_evaluation_set.py,sha256=7P6zIkgerGKHXL6rD1YHXFFWpyxCUpNu7AX71bAaNoE,7270
|
|
61
61
|
uipath/_cli/_evals/_models/_evaluator.py,sha256=UXrN103gHJFw3MtVWlGwViQWAo2cICRR-n357zL6wTA,9369
|
|
@@ -88,7 +88,7 @@ uipath/_cli/_templates/main.py.template,sha256=QB62qX5HKDbW4lFskxj7h9uuxBITnTWqu
|
|
|
88
88
|
uipath/_cli/_templates/package.nuspec.template,sha256=YZyLc-u_EsmIoKf42JsLQ55OGeFmb8VkIU2VF7DFbtw,359
|
|
89
89
|
uipath/_cli/_utils/_common.py,sha256=fSZkps1sjOXRyWn8GqmQfGqYAZ_tVua6dgT18Lpscds,3467
|
|
90
90
|
uipath/_cli/_utils/_console.py,sha256=scvnrrFoFX6CE451K-PXKV7UN0DUkInbOtDZ5jAdPP0,10070
|
|
91
|
-
uipath/_cli/_utils/_constants.py,sha256=
|
|
91
|
+
uipath/_cli/_utils/_constants.py,sha256=AXeVidtHUFiODrkB2BCX_bqDL-bUzRg-Ieh1-2cCrGA,1374
|
|
92
92
|
uipath/_cli/_utils/_debug.py,sha256=zamzIR4VgbdKADAE4gbmjxDsbgF7wvdr7C5Dqp744Oc,1739
|
|
93
93
|
uipath/_cli/_utils/_eval_set.py,sha256=QsAtF_K0sKTn_5lcOnhmWbTrGpmlFn0HV7wG3mSuASU,3771
|
|
94
94
|
uipath/_cli/_utils/_folders.py,sha256=RsYrXzF0NA1sPxgBoLkLlUY3jDNLg1V-Y8j71Q8a8HY,1357
|
|
@@ -104,12 +104,12 @@ uipath/_cli/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
104
104
|
uipath/_cli/models/runtime_schema.py,sha256=Po1SYFwTBlWZdmwIG2GvFy0WYbZnT5U1aGjfWcd8ZAA,2181
|
|
105
105
|
uipath/_events/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
106
106
|
uipath/_events/_event_bus.py,sha256=4-VzstyX69cr7wT1EY7ywp-Ndyz2CyemD3Wk_-QmRpo,5496
|
|
107
|
-
uipath/_events/_events.py,sha256=
|
|
107
|
+
uipath/_events/_events.py,sha256=ShRoV_ARbJiDFFy0tHUQiC61V_CDzGhA6uCC9KpuUH4,4607
|
|
108
108
|
uipath/_resources/AGENTS.md,sha256=nRQNAVeEBaBvuMzXw8uXtMnGebLClUgwIMlgb8_qU9o,1039
|
|
109
109
|
uipath/_resources/CLAUDE.md,sha256=kYsckFWTVe948z_fNWLysCHvi9_YpchBXl3s1Ek03lU,10
|
|
110
|
-
uipath/_resources/CLI_REFERENCE.md,sha256=
|
|
110
|
+
uipath/_resources/CLI_REFERENCE.md,sha256=PNVZINTXDSW4XN8QtxV3kS2WLreR7UyLfSso1_VXWBg,6758
|
|
111
111
|
uipath/_resources/REQUIRED_STRUCTURE.md,sha256=3laqGiNa3kauJ7jRI1d7w_fWKUDkqYBjcTT_6_8FAGk,1417
|
|
112
|
-
uipath/_resources/SDK_REFERENCE.md,sha256=
|
|
112
|
+
uipath/_resources/SDK_REFERENCE.md,sha256=lvQxxdsHi-kzur2C1L4fJ6cEvjVdJPUNSX8UMofgqUQ,19485
|
|
113
113
|
uipath/_services/__init__.py,sha256=_LNy4u--VlhVtTO66bULbCoBjyJBTuyh9jnzjWrv-h4,1140
|
|
114
114
|
uipath/_services/_base_service.py,sha256=x9-9jhPzn9Z16KRdFHhJNvV-FZHvTniMsDfxlS4Cutk,5782
|
|
115
115
|
uipath/_services/actions_service.py,sha256=2RPMR-hFMsOlqEyjIf3aF7-lrf57jdrSD0pBjj0Kyko,16040
|
|
@@ -119,7 +119,7 @@ uipath/_services/attachments_service.py,sha256=NPQYK7CGjfBaNT_1S5vEAfODmOChTbQZf
|
|
|
119
119
|
uipath/_services/buckets_service.py,sha256=5s8tuivd7GUZYj774DDUYTa0axxlUuesc4EBY1V5sdk,18496
|
|
120
120
|
uipath/_services/connections_service.py,sha256=tKJHHOKQYKR6LkgB-V_2d0vFpLEdFeMzwj_xmBVHUDw,18416
|
|
121
121
|
uipath/_services/context_grounding_service.py,sha256=Pjx-QQQEiSKD-hY6ityj3QUSALN3fIcKLLHr_NZ0d_g,37117
|
|
122
|
-
uipath/_services/documents_service.py,sha256=
|
|
122
|
+
uipath/_services/documents_service.py,sha256=2mPZzmOl2r5i8RYvdeRSJtEFWSSsiXqIauTgNTW75s4,45341
|
|
123
123
|
uipath/_services/entities_service.py,sha256=QKCLE6wRgq3HZraF-M2mljy-8il4vsNHrQhUgkewVVk,14028
|
|
124
124
|
uipath/_services/external_application_service.py,sha256=gZhnGgLn7ZYUZzZF7AumB14QEPanVY-D_02FqEcAFtw,5478
|
|
125
125
|
uipath/_services/folder_service.py,sha256=9JqgjKhWD-G_KUnfUTP2BADxL6OK9QNZsBsWZHAULdE,2749
|
|
@@ -139,7 +139,7 @@ uipath/_utils/_request_spec.py,sha256=iCtBLqtbWUpFG5g1wtIZBzSupKsfaRLiQFoFc_4B70
|
|
|
139
139
|
uipath/_utils/_ssl_context.py,sha256=xSYitos0eJc9cPHzNtHISX9PBvL6D2vas5G_GiBdLp8,1783
|
|
140
140
|
uipath/_utils/_url.py,sha256=-4eluSrIZCUlnQ3qU17WPJkgaC2KwF9W5NeqGnTNGGo,2512
|
|
141
141
|
uipath/_utils/_user_agent.py,sha256=pVJkFYacGwaQBomfwWVAvBQgdBUo62e4n3-fLIajWUU,563
|
|
142
|
-
uipath/_utils/constants.py,sha256=
|
|
142
|
+
uipath/_utils/constants.py,sha256=qsnkTO7cw7VaN0sYM7q9-YJjHi1W6IT6TiJ2YCtcbIE,1903
|
|
143
143
|
uipath/agent/_utils.py,sha256=OwSwpTxhZSAeyofasWwckE07qfMDCHuk8bX6A_ZXDbo,5287
|
|
144
144
|
uipath/agent/conversation/__init__.py,sha256=5hK-Iz131mnd9m6ANnpZZffxXZLVFDQ9GTg5z9ik1oQ,5265
|
|
145
145
|
uipath/agent/conversation/async_stream.py,sha256=BA_8uU1DgE3VpU2KkJj0rkI3bAHLk_ZJKsajR0ipMpo,2055
|
|
@@ -205,7 +205,7 @@ uipath/models/buckets.py,sha256=N3Lj_dVCv709-ywhOOdyCSvsuLn41eGuAfSiik6Q6F8,1285
|
|
|
205
205
|
uipath/models/connections.py,sha256=jmzlfnddqlxjmiVhqsETRV6TQPH3fFqJGsygG0gUf7g,2745
|
|
206
206
|
uipath/models/context_grounding.py,sha256=3MaF2Fv2QYle8UUWvKGkCN5XGpx2T4a34fdbBqJ2fCs,1137
|
|
207
207
|
uipath/models/context_grounding_index.py,sha256=OhRyxZDHDSrEmBFK0-JLqMMMT64jir4XkHtQ54IKtc0,2683
|
|
208
|
-
uipath/models/documents.py,sha256=
|
|
208
|
+
uipath/models/documents.py,sha256=gh063bG0pl4YGThWQIgprwRCKxnKVoMOZrXDfDEVnQw,7337
|
|
209
209
|
uipath/models/entities.py,sha256=x6jbq4o_QhgL_pCgvHFsp9O8l333kQhn8e9ZCBs72UM,9823
|
|
210
210
|
uipath/models/errors.py,sha256=WCxxHBlLzLF17YxjqsFkkyBLwEQM_dc6fFU5qmBjD4A,597
|
|
211
211
|
uipath/models/exceptions.py,sha256=f71VsUyonK2uuH1Cs0tpP6f9dec6v6cffL1Z9EjTxm0,1870
|
|
@@ -219,14 +219,14 @@ uipath/telemetry/__init__.py,sha256=Wna32UFzZR66D-RzTKlPWlvji9i2HJb82NhHjCCXRjY,
|
|
|
219
219
|
uipath/telemetry/_constants.py,sha256=uRDuEZayBYtBA0tMx-2AS_D-oiVA7oKgp9zid9jNats,763
|
|
220
220
|
uipath/telemetry/_track.py,sha256=3RZgJtY8y28Y5rfVmC432OyRu7N3pSxPouwa82KWFso,4787
|
|
221
221
|
uipath/tracing/__init__.py,sha256=0oUuxJKOHE14iOL4SP93FOiEYRIFLTq-o0NwRcTB8Q4,317
|
|
222
|
-
uipath/tracing/_otel_exporters.py,sha256=
|
|
222
|
+
uipath/tracing/_otel_exporters.py,sha256=68wuAZyB_PScnSCW230PVs3qSqoJBNoArJJaE4UebNA,13956
|
|
223
223
|
uipath/tracing/_traced.py,sha256=yBIY05PCCrYyx50EIHZnwJaKNdHPNx-YTR1sHQl0a98,19901
|
|
224
|
-
uipath/tracing/_utils.py,sha256=
|
|
224
|
+
uipath/tracing/_utils.py,sha256=59XSCaH4Te9Jo3cqY8Wb2cNu9gPfVm8AMMSAg2OTXWo,16018
|
|
225
225
|
uipath/utils/__init__.py,sha256=VD-KXFpF_oWexFg6zyiWMkxl2HM4hYJMIUDZ1UEtGx0,105
|
|
226
226
|
uipath/utils/_endpoints_manager.py,sha256=tnF_FiCx8qI2XaJDQgYkMN_gl9V0VqNR1uX7iawuLp8,8230
|
|
227
227
|
uipath/utils/dynamic_schema.py,sha256=w0u_54MoeIAB-mf3GmwX1A_X8_HDrRy6p998PvX9evY,3839
|
|
228
|
-
uipath-2.1.
|
|
229
|
-
uipath-2.1.
|
|
230
|
-
uipath-2.1.
|
|
231
|
-
uipath-2.1.
|
|
232
|
-
uipath-2.1.
|
|
228
|
+
uipath-2.1.121.dist-info/METADATA,sha256=5MIPaAAsfFBU2ncAQrZJFW0QpfhYRAKV3JLNEHM0X6w,6626
|
|
229
|
+
uipath-2.1.121.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
230
|
+
uipath-2.1.121.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
|
|
231
|
+
uipath-2.1.121.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
|
|
232
|
+
uipath-2.1.121.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|