diff --git a/scripts/installer/windows/scripts/generate_dependency.py b/scripts/installer/windows/scripts/generate_dependency.py index e313d7420e0..c819d3e66c4 100644 --- a/scripts/installer/windows/scripts/generate_dependency.py +++ b/scripts/installer/windows/scripts/generate_dependency.py @@ -4,7 +4,7 @@ import copy from pip._vendor import tomli as toml from pathlib import Path -from promptflow._sdk._utils import render_jinja_template +from promptflow._sdk._utilities.general_utils import render_jinja_template def get_git_base_dir(): diff --git a/src/promptflow-azure/promptflow/azure/_cli/_run.py b/src/promptflow-azure/promptflow/azure/_cli/_run.py index 453cbe43a30..49429e01fb2 100644 --- a/src/promptflow-azure/promptflow/azure/_cli/_run.py +++ b/src/promptflow-azure/promptflow/azure/_cli/_run.py @@ -28,7 +28,7 @@ ) from promptflow._sdk._constants import MAX_SHOW_DETAILS_RESULTS, ListViewType from promptflow._sdk._errors import InvalidRunStatusError -from promptflow._sdk._utils import print_red_error +from promptflow._sdk._utilities.general_utils import print_red_error from promptflow.azure._cli._utils import _get_azure_pf_client from promptflow.azure._restclient.flow_service_caller import FlowRequestException diff --git a/src/promptflow-azure/promptflow/azure/_cli/entry.py b/src/promptflow-azure/promptflow/azure/_cli/entry.py index fff1d7381b2..71d83dec7e7 100644 --- a/src/promptflow-azure/promptflow/azure/_cli/entry.py +++ b/src/promptflow-azure/promptflow/azure/_cli/entry.py @@ -16,7 +16,10 @@ import logging # noqa: E402 import sys # noqa: E402 -from promptflow._sdk._utils import print_pf_version, print_promptflow_version_dict_string # noqa: E402 +from promptflow._sdk._utilities.general_utils import ( # noqa: E402 + print_pf_version, + print_promptflow_version_dict_string, +) from promptflow._utils.logger_utils import get_cli_sdk_logger # noqa: E402 from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context # noqa: E402 from promptflow.azure._cli._flow import add_parser_flow, dispatch_flow_commands # noqa: E402 diff --git a/src/promptflow-azure/promptflow/azure/_entities/_flow.py b/src/promptflow-azure/promptflow/azure/_entities/_flow.py index 0cbbe9c47c4..37d605adb1a 100644 --- a/src/promptflow-azure/promptflow/azure/_entities/_flow.py +++ b/src/promptflow-azure/promptflow/azure/_entities/_flow.py @@ -13,8 +13,8 @@ from promptflow._constants import FlowLanguage from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import SERVICE_FLOW_TYPE_2_CLIENT_FLOW_TYPE, AzureFlowSource, FlowType -from promptflow._sdk._utils import PromptflowIgnoreFile, load_yaml, remove_empty_element_from_dict -from promptflow._sdk._utils.signature_utils import update_signatures +from promptflow._sdk._utilities.general_utils import PromptflowIgnoreFile, load_yaml, remove_empty_element_from_dict +from promptflow._sdk._utilities.signature_utils import update_signatures from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag, resolve_flow_path from promptflow._utils.logger_utils import LoggerFactory from promptflow.azure._ml import AdditionalIncludesMixin, Code @@ -180,7 +180,7 @@ def _get_all_additional_includes_configs(self) -> List: """Get all additional include configs. For flow, its additional include need to be read from dag with a helper function. """ - from promptflow._sdk._utils.general_utils import _get_additional_includes + from promptflow._sdk._utilities.general_utils import _get_additional_includes return _get_additional_includes(os.path.join(self.code, self.path)) diff --git a/src/promptflow-azure/promptflow/azure/_pf_client.py b/src/promptflow-azure/promptflow/azure/_pf_client.py index df8f94e9d01..dc4229d103a 100644 --- a/src/promptflow-azure/promptflow/azure/_pf_client.py +++ b/src/promptflow-azure/promptflow/azure/_pf_client.py @@ -10,7 +10,7 @@ from promptflow._sdk._constants import MAX_SHOW_DETAILS_RESULTS from promptflow._sdk._errors import RunOperationParameterError -from promptflow._sdk._utils import generate_yaml_entry +from promptflow._sdk._utilities.general_utils import generate_yaml_entry from promptflow._sdk.entities import Run from promptflow._utils.user_agent_utils import ClientUserAgentUtil, setup_user_agent_to_operation_context from promptflow.azure._restclient.service_caller_factory import _FlowServiceCallerFactory diff --git a/src/promptflow-azure/promptflow/azure/_storage/cosmosdb/summary.py b/src/promptflow-azure/promptflow/azure/_storage/cosmosdb/summary.py index 90950605bcb..dd546c7852e 100644 --- a/src/promptflow-azure/promptflow/azure/_storage/cosmosdb/summary.py +++ b/src/promptflow-azure/promptflow/azure/_storage/cosmosdb/summary.py @@ -19,7 +19,7 @@ SPAN_EVENTS_NAME_PF_OUTPUT, TRACE_DEFAULT_COLLECTION, ) -from promptflow._sdk._utils import json_loads_parse_const_as_str +from promptflow._sdk._utilities.general_utils import json_loads_parse_const_as_str from promptflow._sdk.entities._trace import Span from promptflow.azure._storage.cosmosdb.cosmosdb_utils import safe_create_cosmosdb_item diff --git a/src/promptflow-azure/promptflow/azure/_utils/_tracing.py b/src/promptflow-azure/promptflow/azure/_utils/_tracing.py index 67f04a5c7b2..f5b8a4bf0db 100644 --- a/src/promptflow-azure/promptflow/azure/_utils/_tracing.py +++ b/src/promptflow-azure/promptflow/azure/_utils/_tracing.py @@ -10,7 +10,7 @@ from azure.identity import AzureCliCredential from promptflow._constants import AzureWorkspaceKind, CosmosDBContainerName -from promptflow._sdk._utils import extract_workspace_triad_from_trace_provider +from promptflow._sdk._utilities.general_utils import extract_workspace_triad_from_trace_provider from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.azure import PFClient from promptflow.azure._restclient.flow_service_caller import FlowRequestException diff --git a/src/promptflow-azure/promptflow/azure/operations/_artifact_client.py b/src/promptflow-azure/promptflow/azure/operations/_artifact_client.py index 315e6d4da33..6a124a774e2 100644 --- a/src/promptflow-azure/promptflow/azure/operations/_artifact_client.py +++ b/src/promptflow-azure/promptflow/azure/operations/_artifact_client.py @@ -6,7 +6,7 @@ import httpx from promptflow._sdk._errors import ArtifactInternalError, SDKError, UserAuthenticationError -from promptflow._sdk._utils import get_promptflow_sdk_version +from promptflow._sdk._utilities.general_utils import get_promptflow_sdk_version from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.azure._utils.general import get_authorization diff --git a/src/promptflow-azure/promptflow/azure/operations/_connection_operations.py b/src/promptflow-azure/promptflow/azure/operations/_connection_operations.py index 8c250b9271f..f681fc49e2c 100644 --- a/src/promptflow-azure/promptflow/azure/operations/_connection_operations.py +++ b/src/promptflow-azure/promptflow/azure/operations/_connection_operations.py @@ -10,7 +10,7 @@ _ScopeDependentOperations, ) -from promptflow._sdk._utils import safe_parse_object_list +from promptflow._sdk._utilities.general_utils import safe_parse_object_list from promptflow._sdk.entities._connection import _Connection from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.azure._entities._workspace_connection_spec import WorkspaceConnectionSpec diff --git a/src/promptflow-azure/promptflow/azure/operations/_flow_operations.py b/src/promptflow-azure/promptflow/azure/operations/_flow_operations.py index 09cdf2b9ef1..1cd1435ac5f 100644 --- a/src/promptflow-azure/promptflow/azure/operations/_flow_operations.py +++ b/src/promptflow-azure/promptflow/azure/operations/_flow_operations.py @@ -35,7 +35,7 @@ ) from promptflow._sdk._errors import FlowOperationError from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import PromptflowIgnoreFile +from promptflow._sdk._utilities.general_utils import PromptflowIgnoreFile from promptflow._sdk._vendor._asset_utils import traverse_directory from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.logger_utils import get_cli_sdk_logger diff --git a/src/promptflow-azure/promptflow/azure/operations/_metrics_client.py b/src/promptflow-azure/promptflow/azure/operations/_metrics_client.py index 6776e37c62b..ae7bb4ba3e9 100644 --- a/src/promptflow-azure/promptflow/azure/operations/_metrics_client.py +++ b/src/promptflow-azure/promptflow/azure/operations/_metrics_client.py @@ -6,7 +6,7 @@ import httpx from promptflow._sdk._errors import MetricInternalError, SDKError, UserAuthenticationError -from promptflow._sdk._utils import get_promptflow_sdk_version +from promptflow._sdk._utilities.general_utils import get_promptflow_sdk_version from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.azure._utils.general import get_authorization diff --git a/src/promptflow-azure/promptflow/azure/operations/_run_operations.py b/src/promptflow-azure/promptflow/azure/operations/_run_operations.py index 117bcc11e49..e06733614f4 100644 --- a/src/promptflow-azure/promptflow/azure/operations/_run_operations.py +++ b/src/promptflow-azure/promptflow/azure/operations/_run_operations.py @@ -45,7 +45,12 @@ ) from promptflow._sdk._errors import InvalidRunStatusError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import incremental_print, is_multi_container_enabled, is_remote_uri, print_red_error +from promptflow._sdk._utilities.general_utils import ( + incremental_print, + is_multi_container_enabled, + is_remote_uri, + print_red_error, +) from promptflow._sdk.entities import Run from promptflow._utils.async_utils import async_run_allowing_running_loop from promptflow._utils.logger_utils import get_cli_sdk_logger diff --git a/src/promptflow-azure/tests/sdk_cli_azure_test/e2etests/test_telemetry.py b/src/promptflow-azure/tests/sdk_cli_azure_test/e2etests/test_telemetry.py index 04d0f06cdb9..e89cbf0e4a8 100644 --- a/src/promptflow-azure/tests/sdk_cli_azure_test/e2etests/test_telemetry.py +++ b/src/promptflow-azure/tests/sdk_cli_azure_test/e2etests/test_telemetry.py @@ -31,7 +31,7 @@ log_activity, ) from promptflow._sdk._telemetry.logging_handler import get_promptflow_sdk_log_handler -from promptflow._sdk._utils import call_from_extension +from promptflow._sdk._utilities.general_utils import call_from_extension from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.utils import environment_variable_overwrite, parse_ua_to_dict from promptflow.tracing._operation_context import OperationContext diff --git a/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_flow_entity.py b/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_flow_entity.py index 8e296af2696..ae308a60a78 100644 --- a/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_flow_entity.py +++ b/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_flow_entity.py @@ -13,7 +13,7 @@ from sdk_cli_azure_test.conftest import EAGER_FLOWS_DIR, FLOWS_DIR from promptflow import load_run -from promptflow._sdk._utils.signature_utils import update_signatures +from promptflow._sdk._utilities.signature_utils import update_signatures from promptflow._sdk._vendor import get_upload_files_from_folder from promptflow._utils.flow_utils import load_flow_dag from promptflow.azure._constants._flow import ENVIRONMENT, PYTHON_REQUIREMENTS_TXT diff --git a/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_run_operations.py b/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_run_operations.py index a334bc296d9..20b1874c083 100644 --- a/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_run_operations.py +++ b/src/promptflow-azure/tests/sdk_cli_azure_test/unittests/test_run_operations.py @@ -9,7 +9,7 @@ from sdk_cli_azure_test.conftest import DATAS_DIR, EAGER_FLOWS_DIR, FLOWS_DIR from promptflow._sdk._errors import RunOperationParameterError, UploadUserError, UserAuthenticationError -from promptflow._sdk._utils.tracing import _parse_otel_span_status_code +from promptflow._sdk._utilities.tracing_utils import _parse_otel_span_status_code from promptflow._sdk.entities import Run from promptflow._sdk.operations._run_operations import RunOperations from promptflow._utils.async_utils import async_run_allowing_running_loop diff --git a/src/promptflow-devkit/CHANGELOG.md b/src/promptflow-devkit/CHANGELOG.md index 4be4f0997a2..84db930f3b7 100644 --- a/src/promptflow-devkit/CHANGELOG.md +++ b/src/promptflow-devkit/CHANGELOG.md @@ -5,6 +5,9 @@ ### Improvements - Interactive browser credential is excluded by default when using Azure AI connections, user could set `PF_NO_INTERACTIVE_LOGIN=False` to enable it. +### Bugs Fixed +- Fix the issue that import error will be raised after downgrading promptflow from >=1.10.0 to <1.8.0. + ## v1.10.0 (2024.04.26) ### Features Added diff --git a/src/promptflow-devkit/promptflow/_cli/_params.py b/src/promptflow-devkit/promptflow/_cli/_params.py index 44573a10543..bc1e04de9b0 100644 --- a/src/promptflow-devkit/promptflow/_cli/_params.py +++ b/src/promptflow-devkit/promptflow/_cli/_params.py @@ -6,7 +6,7 @@ from promptflow._cli._completers._param_completers import run_name_completer from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME, PROMPT_FLOW_RUNS_DIR_NAME, CLIListOutputFormat, FlowType -from promptflow._sdk._utils import load_input_data +from promptflow._sdk._utilities.general_utils import load_input_data # TODO: avoid azure dependency here MAX_LIST_CLI_RESULTS = 50 diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/_config.py b/src/promptflow-devkit/promptflow/_cli/_pf/_config.py index 2c129c602d7..2e859ec32a0 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/_config.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/_config.py @@ -4,7 +4,7 @@ from promptflow._cli._params import add_param_path, add_param_set_positional, base_params from promptflow._cli._utils import activate_action, list_of_dict_to_dict from promptflow._sdk._configuration import Configuration, InvalidConfigValue -from promptflow._sdk._utils import print_red_error +from promptflow._sdk._utilities.general_utils import print_red_error from promptflow._utils.logger_utils import get_cli_sdk_logger logger = get_cli_sdk_logger() diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/_flow.py b/src/promptflow-devkit/promptflow/_cli/_pf/_flow.py index c84c96a18a2..e748d8d8a5e 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/_flow.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/_flow.py @@ -41,9 +41,9 @@ from promptflow._sdk._configuration import Configuration from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME from promptflow._sdk._pf_client import PFClient -from promptflow._sdk._utils import generate_yaml_entry_without_recover -from promptflow._sdk._utils.chat_utils import construct_chat_page_url -from promptflow._sdk._utils.serve_utils import start_flow_service +from promptflow._sdk._utilities.chat_utils import construct_chat_page_url +from promptflow._sdk._utilities.general_utils import generate_yaml_entry_without_recover +from promptflow._sdk._utilities.serve_utils import start_flow_service from promptflow._utils.flow_utils import is_flex_flow from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import ErrorTarget, UserErrorException diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/_run.py b/src/promptflow-devkit/promptflow/_cli/_pf/_run.py index 01100468d26..fc6c255c562 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/_run.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/_run.py @@ -35,7 +35,7 @@ from promptflow._sdk._load_functions import load_run from promptflow._sdk._pf_client import PFClient from promptflow._sdk._run_functions import _create_run, _resume_run -from promptflow._sdk._utils import generate_yaml_entry, safe_parse_object_list +from promptflow._sdk._utilities.general_utils import generate_yaml_entry, safe_parse_object_list from promptflow._sdk.entities import Run from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import UserErrorException diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/_service.py b/src/promptflow-devkit/promptflow/_cli/_pf/_service.py index 02efcc40bbe..f016584f248 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/_service.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/_service.py @@ -35,7 +35,7 @@ is_run_from_built_binary, kill_exist_service, ) -from promptflow._sdk._utils import add_executable_script_to_env_path +from promptflow._sdk._utilities.general_utils import add_executable_script_to_env_path from promptflow._utils.logger_utils import get_cli_sdk_logger # noqa: E402 from promptflow.exceptions import UserErrorException diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/_upgrade.py b/src/promptflow-devkit/promptflow/_cli/_pf/_upgrade.py index 21dd6408aa4..32900afefcc 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/_upgrade.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/_upgrade.py @@ -41,7 +41,7 @@ def upgrade_version(args): from packaging.version import parse from promptflow._constants import _ENV_PF_INSTALLER, CLI_PACKAGE_NAME - from promptflow._sdk._utils import get_promptflow_sdk_version + from promptflow._sdk._utilities.general_utils import get_promptflow_sdk_version from promptflow._sdk._version_hint_utils import get_latest_version installer = os.getenv(_ENV_PF_INSTALLER) or "" diff --git a/src/promptflow-devkit/promptflow/_cli/_pf/entry.py b/src/promptflow-devkit/promptflow/_cli/_pf/entry.py index 6ca344c045c..8c30c2f0d44 100644 --- a/src/promptflow-devkit/promptflow/_cli/_pf/entry.py +++ b/src/promptflow-devkit/promptflow/_cli/_pf/entry.py @@ -32,7 +32,10 @@ from promptflow._cli._pf._upgrade import add_upgrade_parser, upgrade_version # noqa: E402 from promptflow._cli._pf.help import show_privacy_statement, show_welcome_message # noqa: E402 from promptflow._cli._user_agent import USER_AGENT # noqa: E402 -from promptflow._sdk._utils import print_pf_version, print_promptflow_version_dict_string # noqa: E402 +from promptflow._sdk._utilities.general_utils import ( # noqa: E402 + print_pf_version, + print_promptflow_version_dict_string, +) from promptflow._utils.logger_utils import get_cli_sdk_logger # noqa: E402 from promptflow._utils.user_agent_utils import setup_user_agent_to_operation_context # noqa: E402 diff --git a/src/promptflow-devkit/promptflow/_cli/_utils.py b/src/promptflow-devkit/promptflow/_cli/_utils.py index 12a62191c39..60ff943d846 100644 --- a/src/promptflow-devkit/promptflow/_cli/_utils.py +++ b/src/promptflow-devkit/promptflow/_cli/_utils.py @@ -20,7 +20,7 @@ from promptflow._sdk._constants import DEFAULT_ENCODING, AzureMLWorkspaceTriad, CLIListOutputFormat from promptflow._sdk._telemetry import ActivityType, get_telemetry_logger, log_activity -from promptflow._sdk._utils import print_red_error, print_yellow_warning +from promptflow._sdk._utilities.general_utils import print_red_error, print_yellow_warning from promptflow._utils.exception_utils import ExceptionPresenter from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import PromptflowException, UserErrorException diff --git a/src/promptflow-devkit/promptflow/_internal/__init__.py b/src/promptflow-devkit/promptflow/_internal/__init__.py index 81e9960c1e0..4f1dc5edceb 100644 --- a/src/promptflow-devkit/promptflow/_internal/__init__.py +++ b/src/promptflow-devkit/promptflow/_internal/__init__.py @@ -15,6 +15,7 @@ from promptflow._core._errors import GenerateMetaUserError, PackageToolNotFoundError, ToolExecutionError from promptflow._core.cache_manager import AbstractCacheManager, CacheManager, enable_cache from promptflow._core.connection_manager import ConnectionManager +from promptflow._core.entry_meta_generator import generate_flow_meta from promptflow._core.flow_execution_context import FlowExecutionContext from promptflow._core.log_manager import NodeLogManager, NodeLogWriter from promptflow._core.metric_logger import add_metric_logger @@ -50,7 +51,7 @@ from promptflow._sdk._constants import LOCAL_MGMT_DB_PATH, CreatedByFieldName from promptflow._sdk._service.apis.collector import trace_collector from promptflow._sdk._tracing import process_otlp_trace_request -from promptflow._sdk._utils.general_utils import resolve_flow_language +from promptflow._sdk._utilities.general_utils import resolve_flow_language from promptflow._sdk._version import VERSION from promptflow._utils.context_utils import _change_working_dir, inject_sys_path from promptflow._utils.credential_scrubber import CredentialScrubber @@ -112,7 +113,9 @@ ) from promptflow.core._serving.v1.utils import handle_error_to_response, streaming_response_required from promptflow.core._utils import ( + get_used_connection_names_from_dict, get_used_connection_names_from_environment_variables, + update_dict_value_with_connections, update_environment_variables_with_connections, ) from promptflow.executor._errors import InputNotFound diff --git a/src/promptflow-devkit/promptflow/_proxy/_python_executor_proxy.py b/src/promptflow-devkit/promptflow/_proxy/_python_executor_proxy.py index e607bb39d1f..f6e244cc6f5 100644 --- a/src/promptflow-devkit/promptflow/_proxy/_python_executor_proxy.py +++ b/src/promptflow-devkit/promptflow/_proxy/_python_executor_proxy.py @@ -9,7 +9,7 @@ from promptflow._core._errors import UnexpectedError from promptflow._core.run_tracker import RunTracker from promptflow._sdk._constants import FLOW_META_JSON_GEN_TIMEOUT, FLOW_TOOLS_JSON_GEN_TIMEOUT -from promptflow._sdk._utils import can_accept_kwargs +from promptflow._sdk._utilities.general_utils import can_accept_kwargs from promptflow._utils.flow_utils import resolve_python_entry_file from promptflow._utils.logger_utils import bulk_logger from promptflow._utils.yaml_utils import load_yaml @@ -138,7 +138,7 @@ def _generate_flow_tools_json( timeout: int = FLOW_TOOLS_JSON_GEN_TIMEOUT, load_in_subprocess: bool = True, ) -> dict: - from promptflow._sdk._utils import generate_flow_tools_json + from promptflow._sdk._utilities.general_utils import generate_flow_tools_json return generate_flow_tools_json( flow_directory=working_dir, diff --git a/src/promptflow-devkit/promptflow/_sdk/_configuration.py b/src/promptflow-devkit/promptflow/_sdk/_configuration.py index 141cbfdb7d2..924b49f5e91 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_configuration.py +++ b/src/promptflow-devkit/promptflow/_sdk/_configuration.py @@ -18,7 +18,7 @@ HOME_PROMPT_FLOW_DIR, SERVICE_CONFIG_FILE, ) -from promptflow._sdk._utils import call_from_extension, gen_uuid_by_compute_info, read_write_by_user +from promptflow._sdk._utilities.general_utils import call_from_extension, gen_uuid_by_compute_info, read_write_by_user from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import dump_yaml, load_yaml from promptflow.exceptions import ErrorTarget, ValidationException diff --git a/src/promptflow-devkit/promptflow/_sdk/_mlflow.py b/src/promptflow-devkit/promptflow/_sdk/_mlflow.py index b706b7d72ba..196b2725674 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_mlflow.py +++ b/src/promptflow-devkit/promptflow/_sdk/_mlflow.py @@ -7,7 +7,7 @@ """ from promptflow._constants import FLOW_DAG_YAML as DAG_FILE_NAME from promptflow._sdk._orchestrator import remove_additional_includes -from promptflow._sdk._utils import _merge_local_code_and_additional_includes +from promptflow._sdk._utilities.general_utils import _merge_local_code_and_additional_includes from promptflow._sdk.entities._flows import Flow from promptflow.core._serving.flow_invoker import FlowInvoker diff --git a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/experiment_orchestrator.py b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/experiment_orchestrator.py index 11a395f6988..46bbd68b137 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/experiment_orchestrator.py +++ b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/experiment_orchestrator.py @@ -53,7 +53,7 @@ from promptflow._sdk._orm.experiment_node_run import ExperimentNodeRun as ORMExperimentNodeRun from promptflow._sdk._orm.orchestrator import Orchestrator as ORMOrchestrator from promptflow._sdk._orm.run_info import RunInfo as ORMRunInfo -from promptflow._sdk._utils import overwrite_null_std_logger +from promptflow._sdk._utilities.general_utils import overwrite_null_std_logger from promptflow._sdk.entities import Run from promptflow._sdk.entities._experiment import Experiment, ExperimentTemplate from promptflow._sdk.operations import RunOperations diff --git a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/test_submitter.py b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/test_submitter.py index b2febde49a2..98d1931600b 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/test_submitter.py +++ b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/test_submitter.py @@ -15,7 +15,7 @@ from promptflow._internal import ConnectionManager from promptflow._proxy import ProxyFactory from promptflow._sdk._constants import PROMPT_FLOW_DIR_NAME -from promptflow._sdk._utils import get_flow_name, get_flow_path +from promptflow._sdk._utilities.general_utils import get_flow_name, get_flow_path from promptflow._sdk.entities._flows import Flow, FlowContext, Prompty from promptflow._sdk.operations._local_storage_operations import LoggerOperations from promptflow._utils.async_utils import async_run_allowing_running_loop diff --git a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/utils.py b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/utils.py index 0fcaa09e8f4..2ae0a652636 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_orchestrator/utils.py +++ b/src/promptflow-devkit/promptflow/_sdk/_orchestrator/utils.py @@ -40,15 +40,12 @@ ) from promptflow._sdk._errors import InvalidFlowError, RunOperationError from promptflow._sdk._load_functions import load_flow -from promptflow._sdk._utils import ( - _merge_local_code_and_additional_includes, - get_used_connection_names_from_dict, - update_dict_value_with_connections, -) +from promptflow._sdk._utilities.general_utils import _merge_local_code_and_additional_includes from promptflow._sdk.entities._flows import FlexFlow, Flow, Prompty from promptflow._utils.flow_utils import dump_flow_dag, load_flow_dag from promptflow._utils.logger_utils import FileHandler, get_cli_sdk_logger from promptflow.contracts.flow import Flow as ExecutableFlow +from promptflow.core._utils import get_used_connection_names_from_dict, update_dict_value_with_connections from promptflow.exceptions import UserErrorException logger = get_cli_sdk_logger() diff --git a/src/promptflow-devkit/promptflow/_sdk/_orm/session.py b/src/promptflow-devkit/promptflow/_sdk/_orm/session.py index c48faa73a8f..f9b9c159506 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_orm/session.py +++ b/src/promptflow-devkit/promptflow/_sdk/_orm/session.py @@ -31,7 +31,7 @@ TRACE_MGMT_DB_PATH, TRACE_MGMT_DB_SESSION_ACQUIRE_LOCK_PATH, ) -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( get_promptflow_sdk_version, print_red_error, print_yellow_warning, diff --git a/src/promptflow-devkit/promptflow/_sdk/_pf_client.py b/src/promptflow-devkit/promptflow/_sdk/_pf_client.py index e4e10027f3c..bb5c63f5af4 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_pf_client.py +++ b/src/promptflow-devkit/promptflow/_sdk/_pf_client.py @@ -17,7 +17,7 @@ from ._constants import MAX_SHOW_DETAILS_RESULTS from ._load_functions import load_flow from ._user_agent import USER_AGENT -from ._utils import generate_yaml_entry +from ._utilities.general_utils import generate_yaml_entry from .entities import Run from .entities._flows import FlexFlow, Prompty from .entities._flows.base import FlowBase diff --git a/src/promptflow-devkit/promptflow/_sdk/_service/apis/ui.py b/src/promptflow-devkit/promptflow/_sdk/_service/apis/ui.py index cff7e56dab1..7a04af7976f 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_service/apis/ui.py +++ b/src/promptflow-devkit/promptflow/_sdk/_service/apis/ui.py @@ -14,7 +14,7 @@ from promptflow._sdk._constants import DEFAULT_ENCODING, PROMPT_FLOW_DIR_NAME, UX_INPUTS_JSON from promptflow._sdk._service import Namespace, Resource, fields from promptflow._sdk._service.utils.utils import decrypt_flow_path -from promptflow._sdk._utils import json_load, read_write_by_user +from promptflow._sdk._utilities.general_utils import json_load, read_write_by_user from promptflow._utils.flow_utils import resolve_flow_path from promptflow._utils.yaml_utils import dump_yaml, load_yaml, load_yaml_string from promptflow.exceptions import UserErrorException diff --git a/src/promptflow-devkit/promptflow/_sdk/_service/app.py b/src/promptflow-devkit/promptflow/_sdk/_service/app.py index 225c0224ce1..3bffbaa31bb 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_service/app.py +++ b/src/promptflow-devkit/promptflow/_sdk/_service/app.py @@ -39,7 +39,7 @@ is_run_from_built_binary, kill_exist_service, ) -from promptflow._sdk._utils import overwrite_null_std_logger +from promptflow._sdk._utilities.general_utils import overwrite_null_std_logger from promptflow._utils.thread_utils import ThreadWithContextVars overwrite_null_std_logger() diff --git a/src/promptflow-devkit/promptflow/_sdk/_service/utils/utils.py b/src/promptflow-devkit/promptflow/_sdk/_service/utils/utils.py index 2d6907cff06..6556f8a7776 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_service/utils/utils.py +++ b/src/promptflow-devkit/promptflow/_sdk/_service/utils/utils.py @@ -31,7 +31,11 @@ PF_SERVICE_PORT_FILE, ) from promptflow._sdk._errors import ConnectionNotFoundError, RunNotFoundError -from promptflow._sdk._utils import get_promptflow_devkit_version, get_promptflow_sdk_version, read_write_by_user +from promptflow._sdk._utilities.general_utils import ( + get_promptflow_devkit_version, + get_promptflow_sdk_version, + read_write_by_user, +) from promptflow._sdk._version import VERSION from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.yaml_utils import dump_yaml, load_yaml diff --git a/src/promptflow-devkit/promptflow/_sdk/_tracing.py b/src/promptflow-devkit/promptflow/_sdk/_tracing.py index e167adc6c39..a6fa980fdb1 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_tracing.py +++ b/src/promptflow-devkit/promptflow/_sdk/_tracing.py @@ -51,8 +51,11 @@ is_port_in_use, is_run_from_built_binary, ) -from promptflow._sdk._utils import add_executable_script_to_env_path, extract_workspace_triad_from_trace_provider -from promptflow._sdk._utils.tracing import get_workspace_kind, parse_kv_from_pb_attribute, parse_protobuf_span +from promptflow._sdk._utilities.general_utils import ( + add_executable_script_to_env_path, + extract_workspace_triad_from_trace_provider, +) +from promptflow._sdk._utilities.tracing_utils import get_workspace_kind, parse_kv_from_pb_attribute, parse_protobuf_span from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow._utils.thread_utils import ThreadWithContextVars from promptflow.tracing._integrations._openai_injector import inject_openai_api diff --git a/src/promptflow-devkit/promptflow/_sdk/_utilities/__init__.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/__init__.py new file mode 100644 index 00000000000..8afe2b92ecc --- /dev/null +++ b/src/promptflow-devkit/promptflow/_sdk/_utilities/__init__.py @@ -0,0 +1,10 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- + +# there is an issue on pip that, when installing promptflow < 1.8.0 with promptflow >= 1.8.0 installed, it will try to +# uninstall promptflow first, but will keep the directory _utils. Then both the _utils directory and old _utils.py file +# will exist in the site-packages directory and cause import error. +# So we need to rename the directory to _utility to avoid this issue. +# On the other hand, promptflow-runtime imported some functions from _utils previously, so we need to keep both _utils +# directory and _utils.py file for backward compatibility. diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/chat_utils.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/chat_utils.py similarity index 100% rename from src/promptflow-devkit/promptflow/_sdk/_utils/chat_utils.py rename to src/promptflow-devkit/promptflow/_sdk/_utilities/chat_utils.py diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/general_utils.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/general_utils.py similarity index 98% rename from src/promptflow-devkit/promptflow/_sdk/_utils/general_utils.py rename to src/promptflow-devkit/promptflow/_sdk/_utilities/general_utils.py index 5156ff0718a..bf9eeb4500b 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_utils/general_utils.py +++ b/src/promptflow-devkit/promptflow/_sdk/_utilities/general_utils.py @@ -33,7 +33,6 @@ from marshmallow import ValidationError from promptflow._constants import ENABLE_MULTI_CONTAINER_KEY, EXTENSION_UA, FLOW_FLEX_YAML, LANGUAGE_KEY, FlowLanguage -from promptflow._core.entry_meta_generator import generate_flow_meta as _generate_flow_meta from promptflow._sdk._constants import ( AZURE_WORKSPACE_REGEX_FORMAT, DEFAULT_ENCODING, @@ -69,11 +68,7 @@ from promptflow._utils.user_agent_utils import ClientUserAgentUtil from promptflow._utils.yaml_utils import dump_yaml, load_yaml, load_yaml_string from promptflow.contracts.tool import ToolType -from promptflow.core._utils import ( - get_used_connection_names_from_dict, - render_jinja_template_content, - update_dict_value_with_connections, -) +from promptflow.core._utils import render_jinja_template_content from promptflow.exceptions import ErrorTarget, UserErrorException, ValidationException logger = get_cli_sdk_logger() @@ -1052,12 +1047,6 @@ def is_flex_run(run: "Run") -> bool: return False -generate_flow_meta = _generate_flow_meta -# DO NOT remove the following line, it's used by the runtime imports from _sdk/_utils directly -get_used_connection_names_from_dict = get_used_connection_names_from_dict -update_dict_value_with_connections = update_dict_value_with_connections - - def get_flow_name(flow) -> str: if isinstance(flow, Path): return flow.resolve().name diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/serve_utils.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/serve_utils.py similarity index 98% rename from src/promptflow-devkit/promptflow/_sdk/_utils/serve_utils.py rename to src/promptflow-devkit/promptflow/_sdk/_utilities/serve_utils.py index 044bbbc8676..8198de7741c 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_utils/serve_utils.py +++ b/src/promptflow-devkit/promptflow/_sdk/_utilities/serve_utils.py @@ -14,9 +14,10 @@ from promptflow._constants import PROMPT_FLOW_DIR_NAME, FlowLanguage from promptflow._proxy._csharp_inspector_proxy import EXECUTOR_SERVICE_DLL -from promptflow._sdk._utils.general_utils import resolve_flow_language from promptflow._utils.flow_utils import resolve_flow_path +from .general_utils import resolve_flow_language + logger = logging.getLogger(__name__) diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/signature_utils.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/signature_utils.py similarity index 100% rename from src/promptflow-devkit/promptflow/_sdk/_utils/signature_utils.py rename to src/promptflow-devkit/promptflow/_sdk/_utilities/signature_utils.py diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/tracing.py b/src/promptflow-devkit/promptflow/_sdk/_utilities/tracing_utils.py similarity index 99% rename from src/promptflow-devkit/promptflow/_sdk/_utils/tracing.py rename to src/promptflow-devkit/promptflow/_sdk/_utilities/tracing_utils.py index 2bbf6058988..9e96da8ec4e 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_utils/tracing.py +++ b/src/promptflow-devkit/promptflow/_sdk/_utilities/tracing_utils.py @@ -22,11 +22,12 @@ SpanStatusFieldName, ) from promptflow._sdk._constants import HOME_PROMPT_FLOW_DIR, AzureMLWorkspaceTriad -from promptflow._sdk._utils import convert_time_unix_nano_to_timestamp, json_load from promptflow._sdk.entities._trace import Span from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.core._errors import MissingRequiredPackage +from .general_utils import convert_time_unix_nano_to_timestamp, json_load + _logger = get_cli_sdk_logger() diff --git a/src/promptflow-devkit/promptflow/_sdk/_utils/__init__.py b/src/promptflow-devkit/promptflow/_sdk/_utils/__init__.py deleted file mode 100644 index df1a60362e9..00000000000 --- a/src/promptflow-devkit/promptflow/_sdk/_utils/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# --------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# --------------------------------------------------------- - -from .general_utils import * # noqa: F401 -from .general_utils import ( - _generate_connections_dir, - _get_additional_includes, - _merge_local_code_and_additional_includes, - _retrieve_tool_func_result, - _sanitize_python_variable_name, -) - -__all__ = [ - "_get_additional_includes", - "_merge_local_code_and_additional_includes", - "_sanitize_python_variable_name", - "_generate_connections_dir", - "_retrieve_tool_func_result", -] diff --git a/src/promptflow-devkit/promptflow/_sdk/_version_hint_utils.py b/src/promptflow-devkit/promptflow/_sdk/_version_hint_utils.py index 28448fc5a43..baaf0f5dd7f 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_version_hint_utils.py +++ b/src/promptflow-devkit/promptflow/_sdk/_version_hint_utils.py @@ -27,7 +27,7 @@ def get_cached_versions(): - from promptflow._sdk._utils import read_write_by_user + from promptflow._sdk._utilities.general_utils import read_write_by_user (HOME_PROMPT_FLOW_DIR / PF_VERSION_CHECK).touch(mode=read_write_by_user(), exist_ok=True) with open(HOME_PROMPT_FLOW_DIR / PF_VERSION_CHECK, "r") as f: @@ -101,7 +101,7 @@ def hint_for_update(): if last_hint_time is None or ( datetime.datetime.now() > last_hint_time + datetime.timedelta(days=HINT_INTERVAL_DAY) ): - from promptflow._sdk._utils import get_promptflow_devkit_version + from promptflow._sdk._utilities.general_utils import get_promptflow_devkit_version cached_versions[CURRENT_VERSION] = get_promptflow_devkit_version() if LATEST_VERSION in cached_versions: diff --git a/src/promptflow-devkit/promptflow/_sdk/_visualize_functions.py b/src/promptflow-devkit/promptflow/_sdk/_visualize_functions.py index 2bab071ac6c..c85537f15cd 100644 --- a/src/promptflow-devkit/promptflow/_sdk/_visualize_functions.py +++ b/src/promptflow-devkit/promptflow/_sdk/_visualize_functions.py @@ -9,7 +9,7 @@ from typing import Optional from promptflow._sdk._constants import VIS_HTML_TMPL -from promptflow._sdk._utils import render_jinja_template +from promptflow._sdk._utilities.general_utils import render_jinja_template from promptflow.contracts._run_management import VisualizationRender diff --git a/src/promptflow-devkit/promptflow/_sdk/entities/_connection.py b/src/promptflow-devkit/promptflow/_sdk/entities/_connection.py index 5bc83824e61..091881d6bf9 100644 --- a/src/promptflow-devkit/promptflow/_sdk/entities/_connection.py +++ b/src/promptflow-devkit/promptflow/_sdk/entities/_connection.py @@ -22,7 +22,7 @@ ) from promptflow._sdk._errors import ConnectionClassNotFoundError, SDKError, UnsecureConnectionError from promptflow._sdk._orm.connection import Connection as ORMConnection -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( decrypt_secret_value, encrypt_secret_value, find_type_in_override, diff --git a/src/promptflow-devkit/promptflow/_sdk/entities/_experiment.py b/src/promptflow-devkit/promptflow/_sdk/entities/_experiment.py index e66c4fc7f73..9c9daf92a50 100644 --- a/src/promptflow-devkit/promptflow/_sdk/entities/_experiment.py +++ b/src/promptflow-devkit/promptflow/_sdk/entities/_experiment.py @@ -22,7 +22,10 @@ ) from promptflow._sdk._errors import ExperimentValidationError, ExperimentValueError from promptflow._sdk._orm.experiment import Experiment as ORMExperiment -from promptflow._sdk._utils import _merge_local_code_and_additional_includes, _sanitize_python_variable_name +from promptflow._sdk._utilities.general_utils import ( + _merge_local_code_and_additional_includes, + _sanitize_python_variable_name, +) from promptflow._sdk.entities import Run from promptflow._sdk.entities._validation import MutableValidationResult, SchemaValidatableMixin from promptflow._sdk.entities._yaml_translatable import YAMLTranslatableMixin diff --git a/src/promptflow-devkit/promptflow/_sdk/entities/_run.py b/src/promptflow-devkit/promptflow/_sdk/entities/_run.py index f1c95f34da9..2bf42c29934 100644 --- a/src/promptflow-devkit/promptflow/_sdk/entities/_run.py +++ b/src/promptflow-devkit/promptflow/_sdk/entities/_run.py @@ -44,7 +44,7 @@ ) from promptflow._sdk._errors import InvalidRunError, InvalidRunStatusError, MissingAzurePackage from promptflow._sdk._orm import RunInfo as ORMRun -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( _sanitize_python_variable_name, is_multi_container_enabled, is_remote_uri, diff --git a/src/promptflow-devkit/promptflow/_sdk/entities/_yaml_translatable.py b/src/promptflow-devkit/promptflow/_sdk/entities/_yaml_translatable.py index df01b281517..39c6acb3577 100644 --- a/src/promptflow-devkit/promptflow/_sdk/entities/_yaml_translatable.py +++ b/src/promptflow-devkit/promptflow/_sdk/entities/_yaml_translatable.py @@ -5,7 +5,7 @@ from typing import Dict, Optional from promptflow._sdk._constants import BASE_PATH_CONTEXT_KEY, CommonYamlFields -from promptflow._sdk._utils import load_from_dict +from promptflow._sdk._utilities.general_utils import load_from_dict from promptflow._utils.yaml_utils import dump_yaml diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_connection_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_connection_operations.py index 4e1acea37cb..ba1e651ccae 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_connection_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_connection_operations.py @@ -8,7 +8,7 @@ from promptflow._sdk._errors import ConnectionNameNotSetError from promptflow._sdk._orm import Connection as ORMConnection from promptflow._sdk._telemetry import ActivityType, TelemetryMixin, monitor_operation -from promptflow._sdk._utils import safe_parse_object_list +from promptflow._sdk._utilities.general_utils import safe_parse_object_list from promptflow._sdk.entities._connection import _Connection from promptflow.connections import _Connection as _CoreConnection diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_experiment_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_experiment_operations.py index e495a7fc4da..1774ba23cec 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_experiment_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_experiment_operations.py @@ -11,7 +11,7 @@ from promptflow._sdk._errors import ExperimentExistsError, RunOperationError from promptflow._sdk._orm.experiment import Experiment as ORMExperiment from promptflow._sdk._telemetry import ActivityType, TelemetryMixin, monitor_operation -from promptflow._sdk._utils import json_load, safe_parse_object_list +from promptflow._sdk._utilities.general_utils import json_load, safe_parse_object_list from promptflow._sdk.entities._experiment import Experiment from promptflow._utils.logger_utils import get_cli_sdk_logger diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_flow_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_flow_operations.py index 825cf76491a..d498aa2c72c 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_flow_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_flow_operations.py @@ -36,7 +36,7 @@ from promptflow._sdk._orchestrator import TestSubmitter from promptflow._sdk._orchestrator.utils import SubmitterHelper from promptflow._sdk._telemetry import ActivityType, TelemetryMixin, monitor_operation -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( _get_additional_includes, _merge_local_code_and_additional_includes, add_executable_script_to_env_path, @@ -47,7 +47,7 @@ json_load, logger, ) -from promptflow._sdk._utils.signature_utils import ( +from promptflow._sdk._utilities.signature_utils import ( format_signature_type, infer_signature_for_flex_flow, merge_flow_signature, diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_local_azure_connection_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_local_azure_connection_operations.py index cd63ebe7160..413de20a223 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_local_azure_connection_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_local_azure_connection_operations.py @@ -7,7 +7,7 @@ from promptflow._sdk._constants import MAX_LIST_CLI_RESULTS from promptflow._sdk._errors import MissingAzurePackage from promptflow._sdk._telemetry import ActivityType, WorkspaceTelemetryMixin, monitor_operation -from promptflow._sdk._utils import print_red_error +from promptflow._sdk._utilities.general_utils import print_red_error from promptflow._sdk.entities._connection import _Connection from promptflow._utils.credential_utils import get_default_azure_credential from promptflow._utils.logger_utils import get_cli_sdk_logger diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_local_storage_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_local_storage_operations.py index 5e7616929ef..ed0fe068b2c 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_local_storage_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_local_storage_operations.py @@ -23,7 +23,7 @@ LocalStorageFilenames, ) from promptflow._sdk._errors import BulkRunException, InvalidRunError -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( PromptflowIgnoreFile, generate_flow_tools_json, is_flex_run, @@ -34,7 +34,7 @@ read_open, write_open, ) -from promptflow._sdk._utils.signature_utils import update_signatures +from promptflow._sdk._utilities.signature_utils import update_signatures from promptflow._sdk.entities import Run from promptflow._sdk.entities._flows import Flow from promptflow._utils.exception_utils import PromptflowExceptionPresenter diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_run_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_run_operations.py index 7443144b3f6..ee94fe06d18 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_run_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_run_operations.py @@ -22,7 +22,7 @@ from promptflow._sdk._errors import InvalidRunStatusError, RunExistsError, RunNotFoundError, RunOperationParameterError from promptflow._sdk._orm import RunInfo as ORMRun from promptflow._sdk._telemetry import ActivityType, TelemetryMixin, monitor_operation -from promptflow._sdk._utils import incremental_print, print_red_error, safe_parse_object_list +from promptflow._sdk._utilities.general_utils import incremental_print, print_red_error, safe_parse_object_list from promptflow._sdk._visualize_functions import dump_html, generate_html_string from promptflow._sdk.entities import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations diff --git a/src/promptflow-devkit/promptflow/_sdk/operations/_trace_operations.py b/src/promptflow-devkit/promptflow/_sdk/operations/_trace_operations.py index 228ec836d3e..2946d06b9f8 100644 --- a/src/promptflow-devkit/promptflow/_sdk/operations/_trace_operations.py +++ b/src/promptflow-devkit/promptflow/_sdk/operations/_trace_operations.py @@ -12,7 +12,7 @@ from promptflow._sdk._orm.trace import LineRun as ORMLineRun from promptflow._sdk._orm.trace import Span as ORMSpan from promptflow._sdk._telemetry import ActivityType, monitor_operation -from promptflow._sdk._utils.tracing import append_conditions +from promptflow._sdk._utilities.tracing_utils import append_conditions from promptflow._sdk.entities._trace import Event, LineRun, Span from promptflow._utils.logger_utils import get_cli_sdk_logger from promptflow.exceptions import UserErrorException diff --git a/src/promptflow-devkit/promptflow/_sdk/schemas/_run.py b/src/promptflow-devkit/promptflow/_sdk/schemas/_run.py index 44b71be7261..3105913191e 100644 --- a/src/promptflow-devkit/promptflow/_sdk/schemas/_run.py +++ b/src/promptflow-devkit/promptflow/_sdk/schemas/_run.py @@ -7,7 +7,7 @@ from marshmallow import RAISE, fields, post_load, pre_load from promptflow._sdk._constants import IdentityKeys -from promptflow._sdk._utils import is_remote_uri, load_input_data +from promptflow._sdk._utilities.general_utils import is_remote_uri, load_input_data from promptflow._sdk.schemas._base import PatchedSchemaMeta, YamlFileSchema from promptflow._sdk.schemas._fields import LocalPathField, NestedField, StringTransformedEnum, UnionField from promptflow._utils.logger_utils import get_cli_sdk_logger diff --git a/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_csharp_cli.py b/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_csharp_cli.py index e5f0f493c5f..4479a0f2ed2 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_csharp_cli.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_csharp_cli.py @@ -8,7 +8,7 @@ import pytest from promptflow._cli._pf.entry import main -from promptflow._sdk._utils.serve_utils import find_available_port +from promptflow._sdk._utilities.serve_utils import find_available_port # TODO: move this to a shared utility module diff --git a/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_flow_run.py b/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_flow_run.py index b0fa3414bf8..29e01070764 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_flow_run.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/e2etests/test_flow_run.py @@ -33,8 +33,8 @@ from promptflow._sdk._load_functions import load_flow, load_run from promptflow._sdk._orchestrator.utils import SubmitterHelper from promptflow._sdk._run_functions import create_yaml_run -from promptflow._sdk._utils import _get_additional_includes -from promptflow._sdk._utils.tracing import _parse_otel_span_status_code +from promptflow._sdk._utilities.general_utils import _get_additional_includes +from promptflow._sdk._utilities.tracing_utils import _parse_otel_span_status_code from promptflow._sdk.entities import Run from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations from promptflow._utils.context_utils import _change_working_dir, inject_sys_path diff --git a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_flow_serve.py b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_flow_serve.py index 85ff66cd8a5..1ee003cabe0 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_flow_serve.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_flow_serve.py @@ -3,7 +3,7 @@ import pytest from _constants import PROMPTFLOW_ROOT -from promptflow._sdk._utils.serve_utils import _resolve_python_flow_additional_includes +from promptflow._sdk._utilities.serve_utils import _resolve_python_flow_additional_includes @pytest.mark.unittest diff --git a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_run.py b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_run.py index 7dfd658cf00..d62a115c3b1 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_run.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_run.py @@ -14,7 +14,7 @@ from promptflow._sdk._orchestrator import RunSubmitter, overwrite_variant, variant_overwrite_context from promptflow._sdk._pf_client import PFClient from promptflow._sdk._run_functions import create_yaml_run -from promptflow._sdk._utils import callable_to_entry_string +from promptflow._sdk._utilities.general_utils import callable_to_entry_string from promptflow._sdk.entities import Run from promptflow._sdk.entities._flows import Flow from promptflow._sdk.operations._local_storage_operations import LocalStorageOperations diff --git a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_trace.py b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_trace.py index 0ab655fdcfe..3665f2a7ac4 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_trace.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_trace.py @@ -33,7 +33,7 @@ ContextAttributeKey, ) from promptflow._sdk._tracing import start_trace_with_devkit -from promptflow._sdk._utils.tracing import WorkspaceKindLocalCache, append_conditions, parse_protobuf_span +from promptflow._sdk._utilities.tracing_utils import WorkspaceKindLocalCache, append_conditions, parse_protobuf_span from promptflow.client import PFClient from promptflow.exceptions import UserErrorException from promptflow.tracing._operation_context import OperationContext @@ -264,7 +264,7 @@ def test_no_cache(self): # mock `WorkspaceKindLocalCache._get_workspace_kind_from_azure` mock_kind = str(uuid.uuid4()) with patch( - "promptflow._sdk._utils.tracing.WorkspaceKindLocalCache._get_workspace_kind_from_azure" + "promptflow._sdk._utilities.tracing_utils.WorkspaceKindLocalCache._get_workspace_kind_from_azure" ) as mock_get_kind: mock_get_kind.return_value = mock_kind assert ws_local_cache.get_kind() == mock_kind @@ -305,7 +305,7 @@ def test_expired_cache(self): # mock `WorkspaceKindLocalCache._get_workspace_kind_from_azure` kind = str(uuid.uuid4()) with patch( - "promptflow._sdk._utils.tracing.WorkspaceKindLocalCache._get_workspace_kind_from_azure" + "promptflow._sdk._utilities.tracing_utils.WorkspaceKindLocalCache._get_workspace_kind_from_azure" ) as mock_get_kind: mock_get_kind.return_value = kind assert ws_local_cache.get_kind() == kind diff --git a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_utils.py b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_utils.py index 0d7a55a14b3..99d15843cb4 100644 --- a/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_utils.py +++ b/src/promptflow-devkit/tests/sdk_cli_test/unittests/test_utils.py @@ -33,7 +33,7 @@ from promptflow._sdk._constants import HOME_PROMPT_FLOW_DIR, PROMPT_FLOW_HOME_DIR_ENV_VAR from promptflow._sdk._errors import GenerateFlowToolsJsonError from promptflow._sdk._telemetry.logging_handler import get_scrubbed_cloud_role -from promptflow._sdk._utils import ( +from promptflow._sdk._utilities.general_utils import ( _generate_connections_dir, decrypt_secret_value, encrypt_secret_value, diff --git a/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py b/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py index d2bedd721c1..d0a457667e4 100644 --- a/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py +++ b/src/promptflow/tests/executor/unittests/_core/test_tools_manager.py @@ -272,7 +272,7 @@ def test_collect_package_tools_and_connections(self, install_custom_tool_pkg): def test_retrieve_tool_func_result_dynamic_list_scenario( self, mocked_ws_triple, mock_module_with_for_retrieve_tool_func_result ): - from promptflow._sdk._utils import _retrieve_tool_func_result + from promptflow._sdk._utilities.general_utils import _retrieve_tool_func_result func_path = "my_tool_package.tools.tool_with_dynamic_list_input.my_list_func" func_kwargs = {"prefix": "My"} @@ -319,7 +319,7 @@ def test_retrieve_tool_func_result( mocked_ws_triple, mock_module_with_for_retrieve_tool_func_result, ): - from promptflow._sdk._utils import _retrieve_tool_func_result + from promptflow._sdk._utilities.general_utils import _retrieve_tool_func_result result = _retrieve_tool_func_result(func_call_scenario, {"func_path": func_path, "func_kwargs": func_kwargs}) assert isinstance(result["result"], expected) @@ -358,7 +358,7 @@ def test_retrieve_tool_func_result_error( mocked_ws_triple, mock_module_with_for_retrieve_tool_func_result, ): - from promptflow._sdk._utils import _retrieve_tool_func_result + from promptflow._sdk._utilities.general_utils import _retrieve_tool_func_result with pytest.raises(Exception) as e: _retrieve_tool_func_result(func_call_scenario, {"func_path": func_path, "func_kwargs": func_kwargs})