Source code for ibm_watson_machine_learning.helpers.helpers

#  -----------------------------------------------------------------------------------------
#  (C) Copyright IBM Corp. 2020-2024.
#  https://opensource.org/licenses/BSD-3-Clause
#  -----------------------------------------------------------------------------------------

import json
import os
from configparser import ConfigParser
from typing import Union, Dict

from ..utils.autoai.watson_studio import get_project, get_wmls_credentials_and_space_ids

__all__ = [
    "get_credentials_from_config",
    "pipeline_to_script",
    'get_wmls_configuration'
]


[docs] def get_credentials_from_config(env_name, credentials_name, config_path="./config.ini"): """Load credentials from config file. :: [DEV_LC] wml_credentials = { } cos_credentials = { } :param env_name: the name of [ENV] defined in config file :type env_name: str :param credentials_name: name of credentials :type credentials_name: str :param config_path: path to the config file :type config_path: str :return: loaded credentials :rtype: dict **Example** .. code-block:: python get_credentials_from_config(env_name='DEV_LC', credentials_name='wml_credentials') """ config = ConfigParser() config.read(config_path) return json.loads(config.get(env_name, credentials_name))
def pipeline_to_script(pipeline) -> Union['str', 'HTML']: """Create a python script based on a passed pipeline model. (Python code representation of pipeline model) :param pipeline: pipeline model to be written as script :type pipeline: Pipeline or TrainedPipeline :return: information about script location :rtype: str or html **Example** .. code-block:: python pipeline_to_script(pipeline=best_pipeline) """ from lale.helpers import import_from_sklearn_pipeline from sklearn.pipeline import Pipeline from ibm_watson_machine_learning.utils.autoai.utils import is_ipython from ibm_watson_machine_learning.utils import create_download_link import os script_name = "pipeline_script.py" if isinstance(pipeline, Pipeline): pipeline = import_from_sklearn_pipeline(pipeline) script = pipeline.pretty_print() with open(script_name, 'w') as f: f.write(script) script_location = f"{os.path.abspath('.')}/{script_name}" if is_ipython(): return create_download_link(script_location) else: return f"Pipeline python script location: {script_location}" def get_wmls_configuration() -> Dict[str, Union[Dict, None, str]]: """Try to find credentials and space_ids on Watson Studio Desktop automatically. :return: list of dictionaries with wml_credentials, project_id, and space_id :rtype: dict """ project = get_project() project_id = project.get_metadata()["metadata"]["guid"] path_to_wmls_credentials = f"{os.path.abspath('.')}/{project_id}/project.json" credentials, space_ids = get_wmls_credentials_and_space_ids(path_to_wmls_credentials) found_data = [{'wml_credentials': creds, 'project_id': None, 'space_id': space_id} for creds, space_id in zip(credentials, space_ids)] return found_data[0]