4. Configuration Manager API

Module: typhoon.api.configuration_manager

The Configuration Manager API contains a set of functions to create new and manipulate existing project configurations.

4.1. Example

The following example demonstrates the entire functionality of the configuration manager API.

In this example, a project is first loaded from an existing .tcp file. Then a configuration is loaded from an existing .tcfg file. With handles to these loaded items, the configuration is changed by selecting the possible options in the projects configuration. Once this is done, the project configuration can be generated.

#
# Demonstrate use of load_project function
#
from typhoon.api.configuration_manager import ConfigurationManagerAPI
from os.path import join, dirname, realpath

# Get path to the assets dir, which will hold all required files.
assets_path = join(dirname(realpath(__file__)), "assets")
print(assets_path)

cfg_manager = ConfigurationManagerAPI()
project_handle = cfg_manager.load_project(join(assets_path, "project-file.tcp"))

#
# Load configuration from file and generate output using it.
#
config1 = cfg_manager.load_config(join(assets_path, "config1.tcfg"))
# Generate output model based on configuration specified by 'config1'.
generate_result = cfg_manager.generate(project_handle, config1)
print("Output model is located in file: '{}'".format(
    generate_result.generated_schematic_path)
)

#
# Create another configuration from scratch (using API).
#
config2 = cfg_manager.create_config("Config2")
cfg_manager.picks(config2,
                  [cfg_manager.make_pick("Rectifier", "Thyristor Rectifier"),
                   cfg_manager.make_pick("Motor", "Induction machine squirrel",
                   {
                        "enb_sig_out": "True",
                        "load_src": "Model"
                   })])
# Generate output model based on configuration specified by 'config2'.
generate_result = cfg_manager.generate(project_handle, config2)
print("Output model is located in file: '{}'".format(
    generate_result.generated_schematic_path)
)

# Also, configuration created using API (in memory) can be saved for later use.
config3 = cfg_manager.create_config("Config3")
print("Created configuration named '{0}'".format(cfg_manager.get_name(config3)))
cfg_manager.picks(config3, [cfg_manager.make_pick("Rectifier",
                                                  "Thyristor Rectifier")])
cfg_manager.save_config(config3, "config3.tcfg")

# End.

Script output:

C:\GIT\t_sw\api\build\doc_build\api_doc\configuration_manager_api_examples\assets
Output model is located in file: 'C:\GIT\t_sw\api\build\doc_build\api_doc\Config managment example project_Config 1.tse'
Output model is located in file: 'C:\GIT\t_sw\api\build\doc_build\api_doc\Config managment example project_Config2.tse'
Created configuration named 'Config3'

4.1.1. API references

class ConfigurationManagerAPIBase(*args, **kwargs)

Base class for Configuration Manager API (Application Programming Interface)

create_config(config_name)

Creates a new configuration.

Parameters

config_name (str) – Configuration name.

Returns

Handle to configuration object.

generate(project_handle, config_handle, out_dir='', file_name='', standalone_model=True)

Generates the specified project using the specified configuration.

Parameters
  • project_handle – Project to generate.

  • config_handle – The configuration handle which is to be generated.

  • out_dir – Directory (absolute or relative) where to save the resulting .tse file

  • file_name – Name of the file where to save the resulting .tse file. Should only be the name of the file, and not contain any directory parts.

  • standalone_model (bool) – Specify should generated model be self-contained (independent from any user/custom libraries)

Returns

GenerateResult object (which contains path to generated model).

get_name(item_handle)

Returns name for item specified by item_handle. Item should have name.

Parameters

item_handle (ItemHandle) – ItemHandle object.

Returns

Name as str.

Raises
  • ConfigurationManagerAPIException if item_handle is invalid (

  • wrong type or doesn't have name)

get_options(project_handle, variant_handle)

Returns a list of options specified by variant_handle and

project_handle.

Parameters
  • project_handle (ItemHandle) – ItemHandle object.

  • variant_handle (ItemHandle) – ItemHandle object that exists in project

Returns

List of option handles

Raises
  • ConfigurationManagerAPIException if project_handle or

  • variant_handle is invalid.

get_project_variants(project_handle)

Returns all variants for project_handle.

Parameters

project_handle (ItemHandle) – ItemHandle object.

Returns

List of variants for project.

Raises

ConfigurationManagerAPIException if project_handle is invalid.

load_config(config_path)

Loads an existing configuration from the specified configuration file.

Parameters

config_path (str) – Path to existing configuration file (.tcfg)

Returns

Handle to the loaded configuration.

load_project(project_path)

Loads a project from the specified project file.

Parameters

project_path (str) – Path to an existing project file (.tcp)

Returns

Handle to the loaded project.

make_pick(variant_name, option_name, option_configuration=None)

Creates a pick object that can be used in conjunction with the picks method.

Parameters
  • variant_name (str) – Name of the configuration variant (component placeholder) to be picked.

  • option_name (str) – Name of an existing option from the selected variant.

  • option_configuration (dict) – Dictionary of property names and values, which will be used to override option component property values.

Returns

Handle to a pick object.

picks(config_handle, pick_handles)

Insert provided picks into a configuration specified by config_handle.

Parameters
  • config_handle (ItemHandle) – Handle to configuration object

  • pick_handles (list) – List of pick handles for substitution.

Returns

None

save_config(config_handle, save_path)

Saves an existing configuration to a file.

Parameters
  • config_handle (ItemHandle) – Handle to the configuration to save.

  • save_path (str) – Path to directory/file where to save the configuration.

Returns

None