refactor: remove load_as_component and update doc #684
5 fail, 13 skipped, 285 pass in 31m 23s
Annotations
Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
1 out of 2 runs failed: test_basic_flow_run_bulk_without_env (tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure)
artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 5s]
Raw output
azure.core.exceptions.ResourceExistsError: The specified blob already exists.
RequestId:0955ca0f-001e-00fc-7439-03dc75000000
Time:2023-10-20T09:38:21.6209064Z
ErrorCode:BlobAlreadyExists
Content: <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobAlreadyExists</Code><Message>The specified blob already exists.
RequestId:0955ca0f-001e-00fc-7439-03dc75000000
Time:2023-10-20T09:38:21.6209064Z</Message></Error>
self = <sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure object at 0x11f41dcf0>
pf = <promptflow.azure._pf_client.PFClient object at 0x11f590550>
runtime = 'demo-mir'
def test_basic_flow_run_bulk_without_env(self, pf, runtime) -> None:
name = str(uuid.uuid4())
> run_pf_command(
"run",
"create",
"--flow",
f"{FLOWS_DIR}/web_classification",
"--data",
f"{DATAS_DIR}/webClassification3.jsonl",
"--name",
name,
pf=pf,
runtime=runtime,
)
tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py:47:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/sdk_cli_azure_test/e2etests/test_cli_with_azure.py:36: in run_pf_command
main()
promptflow/_cli/_pf_azure/entry.py:82: in main
entry(command_args)
promptflow/_cli/_pf_azure/entry.py:65: in entry
raise ex
promptflow/_cli/_pf_azure/entry.py:55: in entry
dispatch_run_commands(args)
promptflow/_cli/_pf_azure/_run.py:388: in dispatch_run_commands
create_run(
promptflow/_cli/_utils.py:363: in wrapper
raise e
promptflow/_cli/_utils.py:351: in wrapper
return func(*args, **kwargs)
promptflow/_cli/_pf/_run.py:608: in create_run
run = create_func(run=run, stream=stream)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:224: in create_or_update
rest_obj = self._resolve_dependencies_in_parallel(run=run, runtime=kwargs.get("runtime"), reset=reset)
promptflow/azure/operations/_run_operations.py:920: in _resolve_dependencies_in_parallel
task_results = [task.result() for task in tasks]
promptflow/azure/operations/_run_operations.py:920: in <listcomp>
task_results = [task.result() for task in tasks]
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:451: in result
return self.__get_result()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:403: in __get_result
raise self._exception
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
result = self.fn(*self.args, **self.kwargs)
promptflow/azure/operations/_run_operations.py:757: in _resolve_flow
self._flow_operations._resolve_arm_id_or_upload_dependencies(flow=flow, ignore_tools_json=True)
promptflow/azure/operations/_flow_operations.py:95: in _resolve_arm_id_or_upload_dependencies
self._try_resolve_code_for_flow(flow=flow, ops=ops, ignore_tools_json=ignore_tools_json)
promptflow/azure/operations/_flow_operations.py:156: in _try_resolve_code_for_flow
uploaded_code_asset, _ = _check_and_upload_path(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:497: in _check_and_upload_path
uploaded_artifact = _upload_to_datastore(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:382: in _upload_to_datastore
artifact = upload_artifact(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_artifact_utilities.py:241: in upload_artifact
artifact_info = storage_client.upload(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_artifacts/_blob_storage_helper.py:120: in upload
upload_directory(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_utils/_asset_utils.py:678: in upload_directory
future.result() # access result to propagate any exceptions
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:451: in result
return self.__get_result()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/_base.py:403: in __get_result
raise self._exception
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/concurrent/futures/thread.py:58: in run
result = self.fn(*self.args, **self.kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/ai/ml/_utils/_asset_utils.py:566: in upload_file
storage_client.container_client.upload_blob(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_container_client.py:1086: in upload_blob
blob.upload_blob(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_blob_client.py:756: in upload_blob
return upload_block_blob(**options)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_upload_helpers.py:195: in upload_block_blob
process_storage_error(error)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_shared/response_handlers.py:184: in process_storage_error
exec("raise error from None") # pylint: disable=exec-used # nosec
<string>:1: in <module>
???
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_upload_helpers.py:105: in upload_block_blob
response = client.upload(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/tracing/decorator.py:78: in wrapper_use_tracer
return func(*args, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/storage/blob/_generated/operations/_block_blob_operations.py:864: in upload
map_error(status_code=response.status_code, response=response, error_map=error_map)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
status_code = 409
response = <RequestsTransportResponse: 409 The specified blob already exists., Content-Type: application/xml>
error_map = {304: <class 'azure.core.exceptions.ResourceNotModifiedError'>, 401: <class 'azure.core.exceptions.ClientAuthenticatio..., 404: <class 'azure.core.exceptions.ResourceNotFoundError'>, 409: <class 'azure.core.exceptions.ResourceExistsError'>}
def map_error(
status_code: int, response: _HttpResponseCommonAPI, error_map: Mapping[int, Type[HttpResponseError]]
) -> None:
if not error_map:
return
error_type = error_map.get(status_code)
if not error_type:
return
error = error_type(response=response)
> raise error
E azure.core.exceptions.ResourceExistsError: The specified blob already exists.
E RequestId:0955ca0f-001e-00fc-7439-03dc75000000
E Time:2023-10-20T09:38:21.6209064Z
E ErrorCode:BlobAlreadyExists
E Content: <?xml version="1.0" encoding="utf-8"?><Error><Code>BlobAlreadyExists</Code><Message>The specified blob already exists.
E RequestId:0955ca0f-001e-00fc-7439-03dc75000000
E Time:2023-10-20T09:38:21.6209064Z</Message></Error>
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/azure/core/exceptions.py:165: ResourceExistsError
Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
1 out of 2 runs failed: test_basic_evaluation (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)
artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 1m 56s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12a794ca0>
conn = <urllib3.connection.HTTPSConnection object at 0x12a794f10>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "classification_accuracy_evaluation_variant_0_20231020_094046_673078", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '168'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x12a794f10>
preload_content = False, decode_content = False, enforce_content_length = True
def _make_request(
self,
conn: BaseHTTPConnection,
method: str,
url: str,
body: _TYPE_BODY | None = None,
headers: typing.Mapping[str, str] | None = None,
retries: Retry | None = None,
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
chunked: bool = False,
response_conn: BaseHTTPConnection | None = None,
preload_content: bool = True,
decode_content: bool = True,
enforce_content_length: bool = True,
) -> BaseHTTPResponse:
"""
Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param response_conn:
Set this to ``None`` if you will handle releasing the connection or
set the connection to have the response release it.
:param preload_content:
If True, the response's body will be preloaded during construction.
:param decode_content:
If True, will attempt to decode the body based on the
'content-encoding' header.
:param enforce_content_length:
Enforce content length checking. Body returned by server must match
value of Content-Length header, if present. Otherwise, raise error.
"""
self.num_requests += 1
timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
try:
# Trigger any extra validation we need to do.
try:
> self._validate_conn(conn)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False
@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E TimeoutError: [Errno 60] Operation timed out
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError
The above exception was the direct cause of the following exception:
self = <requests.adapters.HTTPAdapter object at 0x12a795240>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x12a794ca0>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None
def _raise_timeout(
self,
err: BaseSSLError | OSError | SocketTimeout,
url: str,
timeout_value: _TYPE_TIMEOUT | None,
) -> None:
"""Is the error actually a timeout? Will raise a ReadTimeout or pass"""
if isinstance(err, SocketTimeout):
> raise ReadTimeoutError(
self, url, f"Read timed out. (read timeout={timeout_value})"
) from err
E urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError
During handling of the above exception, another exception occurred:
self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x129fd19f0>
pf = <promptflow.azure._pf_client.PFClient object at 0x12a5117b0>
runtime = 'demo-mir'
def test_basic_evaluation(self, pf, runtime):
data_path = f"{DATAS_DIR}/webClassification3.jsonl"
run = pf.run(
flow=f"{FLOWS_DIR}/web_classification",
data=data_path,
column_mapping={"url": "${data.url}"},
variant="${summarize_text_content.variant_0}",
runtime=runtime,
)
assert isinstance(run, Run)
run = pf.runs.stream(run=run.name)
assert run.status == RunStatus.COMPLETED
> eval_run = pf.run(
flow=f"{FLOWS_DIR}/classification_accuracy_evaluation",
data=data_path,
run=run,
column_mapping={"groundtruth": "${data.answer}", "prediction": "${run.outputs.category}"},
runtime=runtime,
)
tests/sdk_cli_azure_test/e2etests/test_run_operations.py:72:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
promptflow/azure/_pf_client.py:248: in run
return self.runs.create_or_update(run=run, **kwargs)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:236: in create_or_update
return self.get(run=run.name)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <requests.adapters.HTTPAdapter object at 0x12a795240>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)
if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)
raise ConnectionError(e, request=request)
except ClosedPoolError as e:
raise ConnectionError(e, request=request)
except _ProxyError as e:
raise ProxyError(e)
except (_SSLError, _HTTPError) as e:
if isinstance(e, _SSLError):
# This branch is for urllib3 versions earlier than v1.22
raise SSLError(e, request=request)
elif isinstance(e, ReadTimeoutError):
> raise ReadTimeout(e, request=request)
E requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout
Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
1 out of 2 runs failed: test_show_run_details (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)
artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 24s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fc43070>
conn = <urllib3.connection.HTTPSConnection object at 0x11fc430a0>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '137'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x11fc430a0>
preload_content = False, decode_content = False, enforce_content_length = True
def _make_request(
self,
conn: BaseHTTPConnection,
method: str,
url: str,
body: _TYPE_BODY | None = None,
headers: typing.Mapping[str, str] | None = None,
retries: Retry | None = None,
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
chunked: bool = False,
response_conn: BaseHTTPConnection | None = None,
preload_content: bool = True,
decode_content: bool = True,
enforce_content_length: bool = True,
) -> BaseHTTPResponse:
"""
Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param response_conn:
Set this to ``None`` if you will handle releasing the connection or
set the connection to have the response release it.
:param preload_content:
If True, the response's body will be preloaded during construction.
:param decode_content:
If True, will attempt to decode the body based on the
'content-encoding' header.
:param enforce_content_length:
Enforce content length checking. Body returned by server must match
value of Content-Length header, if present. Otherwise, raise error.
"""
self.num_requests += 1
timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
try:
# Trigger any extra validation we need to do.
try:
> self._validate_conn(conn)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False
@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E TimeoutError: [Errno 60] Operation timed out
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError
The above exception was the direct cause of the following exception:
self = <requests.adapters.HTTPAdapter object at 0x11fba76d0>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fc43070>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None
def _raise_timeout(
self,
err: BaseSSLError | OSError | SocketTimeout,
url: str,
timeout_value: _TYPE_TIMEOUT | None,
) -> None:
"""Is the error actually a timeout? Will raise a ReadTimeout or pass"""
if isinstance(err, SocketTimeout):
> raise ReadTimeoutError(
self, url, f"Read timed out. (read timeout={timeout_value})"
) from err
E urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError
During handling of the above exception, another exception occurred:
self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x11f67b430>
remote_client = <promptflow.azure._pf_client.PFClient object at 0x11fa791e0>
def test_show_run_details(self, remote_client):
run = "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74"
# get first 20 results
details = remote_client.get_details(run=run, max_results=20)
assert details.shape[0] == 20
# get first 1000 results while it only has 40
> details = remote_client.get_details(run=run, max_results=1000)
tests/sdk_cli_azure_test/e2etests/test_run_operations.py:215:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
promptflow/azure/_pf_client.py:280: in get_details
return self.runs.get_details(run=run, max_results=max_results, all_results=all_results)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:350: in get_details
self._check_cloud_run_completed(run_name=run)
promptflow/azure/operations/_run_operations.py:392: in _check_cloud_run_completed
run = self.get(run=run_name)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <requests.adapters.HTTPAdapter object at 0x11fba76d0>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)
if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)
raise ConnectionError(e, request=request)
except ClosedPoolError as e:
raise ConnectionError(e, request=request)
except _ProxyError as e:
raise ProxyError(e)
except (_SSLError, _HTTPError) as e:
if isinstance(e, _SSLError):
# This branch is for urllib3 versions earlier than v1.22
raise SSLError(e, request=request)
elif isinstance(e, ReadTimeoutError):
> raise ReadTimeout(e, request=request)
E requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout
Check warning on line 0 in tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
1 out of 2 runs failed: test_stream_run_logs (tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun)
artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 22s]
Raw output
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fea3520>
conn = <urllib3.connection.HTTPSConnection object at 0x11fea0400>
method = 'POST'
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
body = b'{"runId": "4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74", "selectRunMetadata": true, "selectRunDefinition": true, "selectJobSpecification": true}'
headers = {'User-Agent': 'python-requests/2.31.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-aliv...QDSk6G8CpdNhk2oP_IL6AcaP1Bd1_Xj0PHBoV74qsgxpjff5JdxDc7Zg', 'Content-Type': 'application/json', 'Content-Length': '137'}
retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
timeout = Timeout(connect=None, read=None, total=None), chunked = False
response_conn = <urllib3.connection.HTTPSConnection object at 0x11fea0400>
preload_content = False, decode_content = False, enforce_content_length = True
def _make_request(
self,
conn: BaseHTTPConnection,
method: str,
url: str,
body: _TYPE_BODY | None = None,
headers: typing.Mapping[str, str] | None = None,
retries: Retry | None = None,
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
chunked: bool = False,
response_conn: BaseHTTPConnection | None = None,
preload_content: bool = True,
decode_content: bool = True,
enforce_content_length: bool = True,
) -> BaseHTTPResponse:
"""
Perform a request on a given urllib connection object taken from our
pool.
:param conn:
a connection from one of our connection pools
:param method:
HTTP request method (such as GET, POST, PUT, etc.)
:param url:
The URL to perform the request on.
:param body:
Data to send in the request body, either :class:`str`, :class:`bytes`,
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
:param headers:
Dictionary of custom headers to send, such as User-Agent,
If-None-Match, etc. If None, pool headers are used. If provided,
these headers completely replace any pool-specific headers.
:param retries:
Configure the number of retries to allow before raising a
:class:`~urllib3.exceptions.MaxRetryError` exception.
Pass ``None`` to retry until you receive a response. Pass a
:class:`~urllib3.util.retry.Retry` object for fine-grained control
over different types of retries.
Pass an integer number to retry connection errors that many times,
but no other types of errors. Pass zero to never retry.
If ``False``, then retries are disabled and any exception is raised
immediately. Also, instead of raising a MaxRetryError on redirects,
the redirect response will be returned.
:type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
:param timeout:
If specified, overrides the default timeout for this one
request. It may be a float (in seconds) or an instance of
:class:`urllib3.util.Timeout`.
:param chunked:
If True, urllib3 will send the body using chunked transfer
encoding. Otherwise, urllib3 will send the body using the standard
content-length form. Defaults to False.
:param response_conn:
Set this to ``None`` if you will handle releasing the connection or
set the connection to have the response release it.
:param preload_content:
If True, the response's body will be preloaded during construction.
:param decode_content:
If True, will attempt to decode the body based on the
'content-encoding' header.
:param enforce_content_length:
Enforce content length checking. Body returned by server must match
value of Content-Length header, if present. Otherwise, raise error.
"""
self.num_requests += 1
timeout_obj = self._get_timeout(timeout)
timeout_obj.start_connect()
conn.timeout = Timeout.resolve_default_timeout(timeout_obj.connect_timeout)
try:
# Trigger any extra validation we need to do.
try:
> self._validate_conn(conn)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:468:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:1097: in _validate_conn
conn.connect()
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:642: in connect
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connection.py:783: in _ssl_wrap_socket_and_match_hostname
ssl_sock = ssl_wrap_socket(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:471: in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/ssl_.py:515: in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:513: in wrap_socket
return self.sslsocket_class._create(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1104: in _create
self.do_handshake()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
block = False
@_sslcopydoc
def do_handshake(self, block=False):
self._check_connected()
timeout = self.gettimeout()
try:
if timeout == 0.0 and block:
self.settimeout(None)
> self._sslobj.do_handshake()
E TimeoutError: [Errno 60] Operation timed out
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/ssl.py:1375: TimeoutError
The above exception was the direct cause of the following exception:
self = <requests.adapters.HTTPAdapter object at 0x11fea0130>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:486:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:845: in urlopen
retries = retries.increment(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/retry.py:470: in increment
raise reraise(type(error), error, _stacktrace)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/util/util.py:39: in reraise
raise value
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:791: in urlopen
response = self._make_request(
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:492: in _make_request
raise new_e
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:470: in _make_request
self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <urllib3.connectionpool.HTTPSConnectionPool object at 0x11fea3520>
err = TimeoutError(60, 'Operation timed out')
url = '/history/v1.0/subscriptions/96aede12-2f73-41cb-b983-6d11a904839b/resourceGroups/promptflow/providers/Microsoft.MachineLearningServices/workspaces/promptflow-eastus/rundata'
timeout_value = None
def _raise_timeout(
self,
err: BaseSSLError | OSError | SocketTimeout,
url: str,
timeout_value: _TYPE_TIMEOUT | None,
) -> None:
"""Is the error actually a timeout? Will raise a ReadTimeout or pass"""
if isinstance(err, SocketTimeout):
> raise ReadTimeoutError(
self, url, f"Read timed out. (read timeout={timeout_value})"
) from err
E urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/urllib3/connectionpool.py:371: ReadTimeoutError
During handling of the above exception, another exception occurred:
self = <sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun object at 0x11f67a5f0>
remote_client = <promptflow.azure._pf_client.PFClient object at 0x1203f60b0>
pf = <promptflow.azure._pf_client.PFClient object at 0x1203f60b0>
def test_stream_run_logs(self, remote_client, pf):
# test get invalid run name
non_exist_run = str(uuid.uuid4())
with pytest.raises(RunNotFoundError, match=f"Run {non_exist_run!r} not found"):
pf.runs.stream(run=non_exist_run)
> run = remote_client.runs.stream(run="4cf2d5e9-c78f-4ab8-a3ee-57675f92fb74")
tests/sdk_cli_azure_test/e2etests/test_run_operations.py:251:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:661: in stream
run = self.get(run=run)
promptflow/_telemetry/activity.py:138: in wrapper
return f(self, *args, **kwargs)
promptflow/azure/operations/_run_operations.py:469: in get
return self._get_run_from_run_history(flow_run_id=run, **kwargs)
promptflow/azure/operations/_run_operations.py:483: in _get_run_from_run_history
response = requests.post(url, headers=headers, json=payload)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:115: in post
return request("post", url, data=data, json=json, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/api.py:59: in request
return session.request(method=method, url=url, **kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:589: in request
resp = self.send(prep, **send_kwargs)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/sessions.py:703: in send
r = adapter.send(request, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <requests.adapters.HTTPAdapter object at 0x11fea0130>
request = <PreparedRequest [POST]>, stream = False
timeout = Timeout(connect=None, read=None, total=None), verify = True
cert = None, proxies = OrderedDict()
def send(
self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None
):
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
pass
else:
timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
resp = conn.urlopen(
method=request.method,
url=url,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout,
chunked=chunked,
)
except (ProtocolError, OSError) as err:
raise ConnectionError(err, request=request)
except MaxRetryError as e:
if isinstance(e.reason, ConnectTimeoutError):
# TODO: Remove this in 3.0.0: see #2811
if not isinstance(e.reason, NewConnectionError):
raise ConnectTimeout(e, request=request)
if isinstance(e.reason, ResponseError):
raise RetryError(e, request=request)
if isinstance(e.reason, _ProxyError):
raise ProxyError(e, request=request)
if isinstance(e.reason, _SSLError):
# This branch is for urllib3 v1.22 and later.
raise SSLError(e, request=request)
raise ConnectionError(e, request=request)
except ClosedPoolError as e:
raise ConnectionError(e, request=request)
except _ProxyError as e:
raise ProxyError(e)
except (_SSLError, _HTTPError) as e:
if isinstance(e, _SSLError):
# This branch is for urllib3 versions earlier than v1.22
raise SSLError(e, request=request)
elif isinstance(e, ReadTimeoutError):
> raise ReadTimeout(e, request=request)
E requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='eastus.api.azureml.ms', port=443): Read timed out. (read timeout=None)
/Users/runner/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/adapters.py:532: ReadTimeout
Check warning on line 0 in tests.sdk_cli_test.e2etests.test_flow_serve
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
1 out of 2 runs failed: test_serving_api (tests.sdk_cli_test.e2etests.test_flow_serve)
artifacts/Test Results (Python 3.10) (OS macos-latest)/test-results.xml [took 18s]
Raw output
AssertionError: Response code indicates error 400 - {"error":{"code":"UserError","message":"Execution failure in 'echo_my_prompt': (Timeout) Request timed out: HTTPSConnectionPool(host='gpt-test-eus.openai.azure.com', port=443): Read timed out. (read timeout=30)"}}
assert 400 == 200
+ where 400 = <WrapperTestResponse streamed [400 BAD REQUEST]>.status_code
flow_serving_client = <FlaskClient <PromptflowServingApp 'promptflow._sdk._serving.app'>>
@pytest.mark.usefixtures("flow_serving_client", "setup_local_connection")
@pytest.mark.e2etest
def test_serving_api(flow_serving_client):
response = flow_serving_client.get("/health")
assert b'{"status":"Healthy","version":"0.0.1"}' in response.data
response = flow_serving_client.post("/score", data=json.dumps({"text": "hi"}))
> assert (
response.status_code == 200
), f"Response code indicates error {response.status_code} - {response.data.decode()}"
E AssertionError: Response code indicates error 400 - {"error":{"code":"UserError","message":"Execution failure in 'echo_my_prompt': (Timeout) Request timed out: HTTPSConnectionPool(host='gpt-test-eus.openai.azure.com', port=443): Read timed out. (read timeout=30)"}}
E
E assert 400 == 200
E + where 400 = <WrapperTestResponse streamed [400 BAD REQUEST]>.status_code
tests/sdk_cli_test/e2etests/test_flow_serve.py:72: AssertionError
Check notice on line 0 in .github
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
13 skipped tests found
There are 13 skipped tests, see "Raw output" for the full list of skipped tests.
Raw output
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_connection_get_create_delete
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_custom_connection_create
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_crud_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_no_variants_remote_file
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_without_variants
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_list_flows
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_failure
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_symbolic
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow_from_remote_storage
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_additional_includes
Check notice on line 0 in .github
github-actions / SDK CLI Test Result [zhangxingzhi/flow-in-pipeline-new-experience](https://github.com/microsoft/promptflow/actions/workflows/promptflow-sdk-cli-test.yml?query=branch:zhangxingzhi/flow-in-pipeline-new-experience++)
303 tests found
There are 303 tests, see "Raw output" for the full list of tests.
Raw output
tests.sdk_cli_azure_test.e2etests.test_arm_connection_operations.TestArmConnectionOperations ‑ test_get_connection
tests.sdk_cli_azure_test.e2etests.test_cli.TestCli ‑ test_flow_chat
tests.sdk_cli_azure_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_run_bulk_without_env
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_azure_test.e2etests.test_cli_with_azure.TestCliWithAzure ‑ test_run_with_remote_data
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_connection_get_create_delete
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_custom_connection_create
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_get_connection
tests.sdk_cli_azure_test.e2etests.test_connection_operations.TestConnectionOperations ‑ test_list_connection_spec
tests.sdk_cli_azure_test.e2etests.test_flow_in_azure_ml.TestFlowInAzureML ‑ test_flow_as_component[parallel]
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_crud_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_no_variants_remote_file
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_flow_without_variants
tests.sdk_cli_azure_test.e2etests.test_flow_operations.TestFlow ‑ test_list_flows
tests.sdk_cli_azure_test.e2etests.test_flow_serve ‑ test_serving_api
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_archive_and_restore_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_failure
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_creation_user_aml_token
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_automatic_runtime_with_environment
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_basic_evaluation
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_exp_id
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_flow_id_in_submission
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_get_detail_against_partial_fail_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_get_invalid_run_cases
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_input_mapping_with_dict
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_list_runs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_pf_run_with_env_var
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_from_yaml
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_not_exist
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_bulk_without_retry
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_data_not_provided
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_display_name_with_macro
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_submission_exception
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_additional_includes
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_connection_overwrite
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_env_overwrite
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_remote_data
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_with_symbolic
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_run_without_dump
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_metrics
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_show_run_details
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_stream_failed_run_logs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_stream_run_logs
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_submit_run_user_aml_token
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_tools_json_ignored
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_update_run
tests.sdk_cli_azure_test.e2etests.test_run_operations.TestFlowRun ‑ test_vnext_workspace_base_url
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_call_from_extension
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_custom_event
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_log_for_eu_user
tests.sdk_cli_azure_test.e2etests.test_telemetry.TestTelemetry ‑ test_logging_handler
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_azure_openai_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_cognitive_search_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_cognitive_service_category_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_connection_missing_metadata
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_connection_unknown_category
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_custom_keys_connection_from_rest_object
tests.sdk_cli_azure_test.unittests.test_arm_connection_build ‑ test_build_default_azure_openai_connection_missing_metadata
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_pf_azure_version
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_archive
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_list_runs
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_restore
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show_details
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_show_metrics
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_update
tests.sdk_cli_azure_test.unittests.test_cli.TestAzureCli ‑ test_run_visualize
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_ignore_files_in_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_flow_from_remote_storage
tests.sdk_cli_azure_test.unittests.test_flow_entity.TestFlow ‑ test_load_yaml_run_with_resources
tests.sdk_cli_azure_test.unittests.test_pf_client_azure.TestPFClientAzure ‑ test_input_output_portal_url_parser
tests.sdk_cli_azure_test.unittests.test_pf_client_azure.TestPFClientAzure ‑ test_wrong_client_parameters
tests.sdk_cli_azure_test.unittests.test_run_entity.TestRun ‑ test_flow_id
tests.sdk_cli_azure_test.unittests.test_run_entity.TestRun ‑ test_input_mapping_types
tests.sdk_cli_azure_test.unittests.test_utils.TestUtils ‑ test_forbidden_new_caller
tests.sdk_cli_azure_test.unittests.test_utils.TestUtils ‑ test_url_parse
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_basic_flow_run
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_basic_flow_run_batch_and_eval
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_chat_flow_with_conditional
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[azure_openai_connection.yaml-expected0-update_item0]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[custom_connection.yaml-expected1-update_item1]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_create_update[custom_strong_type_connection.yaml-expected2-update_item2]
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_connection_overwrite
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_create_with_set
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_environment_variable_overwrite
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_build
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_chat
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init_intent_copilot
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_init_with_connection_and_deployment
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_inputs
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_default_chat_history
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_environment_variable
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_test_with_user_defined_chat_history
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_flow_with_exception
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_format_cli_exception
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_init_chat_flow
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_init_eval_flow
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_input_with_dict_val
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_debug_single_node
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_single_node
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_with_additional_includes
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_test_with_symbolic
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_flow_with_variant
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_run_no_stream_log
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_run_with_stream_log
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_pf_version
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_submit_batch_variant
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_submit_run_with_yaml
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_tool_init
tests.sdk_cli_test.e2etests.test_cli.TestCli ‑ test_visualize_ignore_space
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_connection_get_and_update
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_connection_operations
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_custom_connection_get_and_update
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_upsert_connection_from_file[azure_openai_connection.yaml-expected_updated_item0-expected_secret_item0]
tests.sdk_cli_test.e2etests.test_connection.TestConnection ‑ test_upsert_connection_from_file[custom_connection.yaml-expected_updated_item1-expected_secret_item1]
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_get_and_update
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_get_and_update_with_key
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_operations
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_connection_update
tests.sdk_cli_test.e2etests.test_custom_strong_type_connection.TestCustomStrongTypeConnection ‑ test_upsert_connection_from_file[custom_strong_type_connection.yaml-expected_updated_item0-expected_secret_item0]
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_as_docker_with_variant
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_flow_only
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_build_generate_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta_with_pkg_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_generate_tools_meta_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_validate_generate_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_local_operations.TestFlowLocalOperations ‑ test_flow_validation_failed
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_evaluation
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_bulk_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_flow_with_variant
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_basic_run_bulk
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_connection_overwrite_file
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_connection_overwrite_model
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_create_run_with_tags
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_custom_connection_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_error_message_dump
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_eval_run_not_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_bulk_run_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_demo
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_flow_with_only_static_values
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_detail_against_partial_fail_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_detail_format
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_details
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_get_metrics_format
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_incomplete_run_visualize
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_input_mapping_source_not_found_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_input_mapping_with_dict
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_pf_run_with_env_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_referenced_output_not_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_resolve_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_bulk_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_data_not_provided
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_display_name
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_dump
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_exist_error
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_list
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_local_storage_structure
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_logs
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_reference_failed_run
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_snapshot_with_flow_tools_json
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_connection_overwrite_non_exist
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_run_with_env_overwrite
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_stream_incomplete_run_summary
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_stream_run_summary
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_submit_run_from_yaml
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_system_metrics_in_properties
tests.sdk_cli_test.e2etests.test_flow_run.TestFlowRun ‑ test_visualize_run
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_evaluation_flow_serving_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_serving_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/event-stream, application/json-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/event-stream-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_llm_chat[text/html-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[text/event-stream, application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_nonstream_tools[text/event-stream-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[*/*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[application/json, */*-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[application/json-200-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/event-stream, application/json-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/event-stream-200-text/event-stream; charset=utf-8]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_stream_python_stream_tools[text/html-406-application/json]
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_swagger
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_unknown_api
tests.sdk_cli_test.e2etests.test_flow_serve ‑ test_user_agent
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_generate_tool_meta_in_additional_folder
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_node_test_with_connection_input
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_test_with_exception
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_test_with_symbolic
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_flow_with_aggregation
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_package_tool_with_custom_connection_as_input_value
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_package_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_script_tool_with_custom_strong_type_connection
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_flow_with_variant
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_node
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_additional_includes
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_non_english_input
tests.sdk_cli_test.e2etests.test_flow_test.TestFlowTest ‑ test_pf_test_with_streaming_output
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_archive
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_get
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_get_not_exist
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_list_order_by_created_time_desc
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_null_type_and_display_name
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_restore
tests.sdk_cli_test.e2etests.test_orm.TestRunInfo ‑ test_update
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_config_instance
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_config
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_or_set_installation_id
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_get_workspace_from_config
tests.sdk_cli_test.unittests.test_config.TestConfig ‑ test_set_config
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[azure_content_safety_connection.yaml-AzureContentSafetyConnection-init_param3-expected3]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[azure_openai_connection.yaml-AzureOpenAIConnection-init_param0-expected0]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[cognitive_search_connection.yaml-CognitiveSearchConnection-init_param4-expected4]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[custom_connection.yaml-CustomConnection-init_param2-expected2]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[form_recognizer_connection.yaml-FormRecognizerConnection-init_param6-expected6]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[openai_connection.yaml-OpenAIConnection-init_param1-expected1]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[qdrant_connection.yaml-QdrantConnection-init_param7-expected7]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[serp_connection.yaml-SerpConnection-init_param5-expected5]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_dump[weaviate_connection.yaml-WeaviateConnection-init_param8-expected8]
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_from_env
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_connection_load_from_env_file_bad_case
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_convert_to_custom_strong_type
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_to_execution_connection_dict
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_validate_and_encrypt_secrets
tests.sdk_cli_test.unittests.test_connection.TestConnection ‑ test_validate_and_interactive_get_secrets
tests.sdk_cli_test.unittests.test_flow_invoker.TestFlowInvoker ‑ test_flow_invoker_custom_connection_provider
tests.sdk_cli_test.unittests.test_flow_invoker.TestFlowInvoker ‑ test_flow_invoker_unsupported_connection_provider
tests.sdk_cli_test.unittests.test_local_storage_operations.TestLocalStorageOperations ‑ test_outputs_padding
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_db_without_schema_info
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_fixed_version
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_across_same_schema_version
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_downgrade
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_mixing
tests.sdk_cli_test.unittests.test_orm.TestSchemaManagement ‑ test_version_upgrade
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_commit
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_exception_during_transaction
tests.sdk_cli_test.unittests.test_orm.TestTransaction ‑ test_rollback
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_connection_provider
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_local_azure_connection_extract_workspace
tests.sdk_cli_test.unittests.test_pf_client.TestPFClient ‑ test_pf_client_user_agent
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_data_not_exist_validation_error
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_dot_env_resolve
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_flow_run_with_non_english_inputs
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_invalid_yaml[tests/test_configs/runs/illegal/extra_field.yaml-Unknown field]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_invalid_yaml[tests/test_configs/runs/illegal/non_exist_data.yaml-Can't find directory or file]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_load_run
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections0-Unsupported llm connection overwrite keys]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections2-Node not_exist not found in flow]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[connections3-Invalid connection overwrite format: 1, only dict is supported.]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_connections_invalid[str-Invalid connections overwrite format: str]
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_variant
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_overwrite_variant_context
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_run_bulk_invalid_params
tests.sdk_cli_test.unittests.test_run.TestRun ‑ test_submit
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_append_to_dict_action
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_build_sorted_column_widths_tuple_list
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_calculate_column_widths
tests.sdk_cli_test.unittests.test_utils.TestCLIUtils ‑ test_list_of_dict_to_nested_dict
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[1]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[2]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[4]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_concurrent_execution_of_refresh_connections_dir[8]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_encrypt_decrypt_value
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_connections_dir[/Users/fake_user/anaconda3/envs/pf/bin/python3.10-e3f33eadd9be376014eb75a688930930ca83c056]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_connections_dir[D:\\Tools\\Anaconda3\\envs\\pf\\python.exe-a9620c3cdb7ccf3ec9f4005e5b19c12d1e1fef80]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_flow_tools_json
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_generate_flow_tools_json_expecting_fail
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_10k_data[./tests/test_configs/datas/load_data_cases/10k.jsonl]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_10k_data[./tests/test_configs/datas/load_data_cases/10k]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.csv]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.json]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.jsonl]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.parquet]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_load_data[./tests/test_configs/datas/load_data_cases/colors.tsv]
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_override_connection_config_with_environment_variable
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_refresh_connections_dir
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_resolve_connections_environment_variable_reference
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_snake_to_camel
tests.sdk_cli_test.unittests.test_utils.TestUtils ‑ test_sqlite_retry