Skip to main content

Python scripting library for Scale-up RunScript Automation

Project description

Scaleup

Scale-up Suite Automation. This library provides a set of high level methods for scripting automation of Dynochem(R) and Reaction Lab(TM) models through the RunScript Automation interface. These methods wrap the COM calls to Scale-up Suite's ModelAutomation.exe allowing end users to write shorter and simpler scripts and focus on what they want to achieve rather than the mechanics of doing it.

Contact your Scale-up Systems representative to obtain access to the RunScript Automation product to which this library connects.

Dependencies

Installation

pip install scaleup

scaleup package

The scaleup package contains the routines for invoking automation, and helper routines to set up runs, along with classes representing the result of a script invocation along with results for the individual steps.

scaleup.scripts

scaleup.scripts.ScriptResult

This class contains the result for a script run.

  • Fields

    • error_message (str) -- If an erorr occurred when running the script then this field with contain the error message. Otherwise None or empty.

    • steps (list) -- This contains a list of results for the steps executed. One step result per step.

scaleup.scripts.SimulationStepResult

This contains the result of a Simulation step. It contains a pandas.DataFrame which holds the results for each scenario along with (if requested) a list of SimulationProfile instances which holds the profiles for each scenario.

  • Fields

    • type (str) -- 'SIMULATION'
    • endpoints (DataFrame) -- DataFrame containing the results for the scenarios.
    • profiles (list) -- list of SimulationProfile instances, one per scenario (if requested).

scaleup.scripts.SimulationProfile

Details of the scenario profile

  • Fields

    • scenario_name (str) -- the name of the scenario
    • solver_steps (float) -- number of steps
    • total_time (float) -- total time (seconds)
    • matrix_size (float) -- matrix size
    • plotted_points (float) -- plotted points
    • integration_method (str) -- integration method
    • accuracy (float) -- accuract
    • run_time (float) -- run time (seconds)
    • results (DataFrame) -- profile values for the scenario

scaleup.scripts.FittingStepResult

Contains the result of a Fitting Simulation step.

  • Fields

    • type (str) -- 'FITTING'
    • report (list) -- The Fitting report

scaleup.scripts.OptimizationStepResult

Contains the result of a Optimization Simulation step.

  • Fields

    • type (str) -- 'OPTIMIZATION'
    • report (list) -- The Optimization report

scaleup.scripts.VerificationStepResult

Contains the result of a Verification Simulation step.

  • Fields

    • type (str) -- 'VERIFICATION'
    • report (list) -- The Verification report

scaleup.scaleup module

Short-cut routines for quick running of steps

scaleup.scaleup.run_simulation(file_name: str, scenarios=[], return_profiles: bool = False, show_progress=True, alt_reader=True)

Runs a Simulation step

  • Parameters

    • file_name (str) -- name of the model file

    • scenarios (list*, *optional) -- String representations of the scenarios to be run. To run scenarios from the model, pass in the scenario name. If empty, runs all scenarios in the model, defaults to []

    • return_profiles (bool*, *optional) -- Return the profiles as well as the endpoints, defaults to False

    • show_progress (bool*, *optional) -- Show the progress indicator when running, defaults to True

    • alt_reader (bool*, *optional) -- Use the alternate reader for Excel Models (i.e. not Excel Interop), defaults to True

  • Returns

    ScriptResult object

scaleup.scaleup.run_fitting(file_name: str, scenarios, parameters, fit_to_each: bool = False, show_progress: bool = True, alt_reader: bool = True, update_to_source: bool = False)

Runs a Fitting step

  • Parameters

    • file_name (str) -- name of the model file

    • scenarios (list) -- the names of the scenarios to be fitted

    • parameters (list) -- string representations of the parameters to be fitted

    • fit_to_each (bool*, *optional) -- Whether to fit to each scenario, defaults to False

    • show_progress (bool*, *optional) -- Shoe the UI when running, defaults to True

    • alt_reader (bool*, *optional) -- Use the alternate reader for Excel Models (i.e. not Excel Interop), defaults to True

    • update_to_source (bool*, *optional) -- Write back the fitted values to the original model, defaults to False

  • Returns

    ScriptResult object

scaleup.scaleup.run_optimization(file_name: str, scenario: str, factors, responses, show_progress: bool = True, alt_reader: bool = True, update_to_source: bool = False)

Runs an Optimization step

  • Parameters

    • file_name (str) -- name of the model file

    • scenario (str) -- The name of the scenario to be optimized

    • factors (list) -- string respresentations of the factors to be varied

    • responses (list) -- string representations of the responses to optimize

    • show_progress (bool*, *optional) -- Shoe the UI when running, defaults to True

    • alt_reader (bool*, *optional) -- Use the alternate reader for Excel Models (i.e. not Excel Interop), defaults to True

    • update_to_source (bool*, *optional) -- Write back the fitted values to the original model, defaults to False

  • Returns

    ScriptResult object

scaleup.scaleup.run_verification(file_name: str, scenarios=[], verification_type: int = 1, show_progress=True, alt_reader=True)

Runs a Verification step

  • Parameters

    • file_name (str) -- name of the model file

    • scenarios (list*, *optional) -- Names of the scenarios to be run. If empty, runs all scenarios in the model, defaults to []

    • verification_type (int*, *optional) -- Verification type. 1 for full report, 2 for residuals, 3 for SSQs, defaults to 1

    • show_progress (bool*, *optional) -- Shoe the UI when running, defaults to True

    • alt_reader (bool*, *optional) -- Use the alternate reader for Excel Models (i.e. not Excel Interop), defaults to True

  • Returns

    ScriptResult object

scaleup.scaleup.run_multiple_steps(file_name: str, steps, show_progress: bool = True, alt_reader: bool = True, update_to_source: bool = False)

Run multiple steps in sequence

  • Parameters

    • file_name (str) -- name of the model file

    • steps (list) -- the steps to run

    • show_progress (bool*, *optional) -- Shoe the UI when running, defaults to True

    • alt_reader (bool*, *optional) -- Use the alternate reader for Excel Models (i.e. not Excel Interop), defaults to True

    • update_to_source (bool*, *optional) -- Write back the fitted values to the original model, defaults to False

  • Returns

    ScriptResult object


scaleup.dynochem_automation module

Helper routines for COM automation of Dynochem Runtime scripting

scaleup.dynochem_automation.create_fitting_step(scenarios, parameters, fitEachScenario: bool, updateToSource: bool = False)

Creates a Fitting step

  • Parameters

    • scenarios (list) -- The scenarios to be fitted

    • parameters (list) -- The parameters to be fitted

    • fitEachScenario (bool) -- Fit to each scenario or not

    • updateToSource (bool*, *optional) -- Write the fitted values back to the model, defaults to False

  • Returns

    Script step

  • Return type

    COM Object

scaleup.dynochem_automation.create_optimization_step(scenarioName: str, factors, responses, updateToSource: bool = False)

Creates an Optimization step

  • Parameters

    • scenarioName (str) -- The name of the scenario to be used

    • factors (list) -- The factors to vary

    • responses (list) -- The Responses to be optimized

    • updateToSource (bool*, *optional) -- Whether the optimized scenario and data sheet are written back to the model, defaults to False

  • Returns

    Script step

  • Return type

    COM Object

scaleup.dynochem_automation.create_script_parameters(name: str, file_name: str, options: str = '', dataSheets=None, injected_headers=None)

Creates a script parameters class

  • Parameters

    • name (str) -- Name of the automation job

    • file_name (str) -- Name of the model file

    • options (str*, *optional) -- Options e.g. Show/Hide the UI, defaults to ''

    • dataSheets (list*, *optional) -- Custom Datasheets, defaults to None

    • injected_header (list*, *optional) -- Additional headers for scenarios (e.g. process sheet parameters), defaults to None

  • Raises

    ValueError -- If the model is not of a supported type (must be .xls? or .rxm)

  • Returns

    COM object of script parameters

  • Return type

    COM object

scaleup.dynochem_automation.create_simulation_step(scenarios=[], writeProfiles: bool = False, returnProfiles: bool = False, calc_wssq = False)

Creates a simulation step

  • Parameters

    • scenarios (list*, *optional) -- The scenarios to be run. To run existing scenarios, pass in their names. If empty, all are run, defaults to []

    • writeProfiles (bool*, *optional) -- Write the profiles to an file, defaults to False

    • returnProfiles (bool*, *optional) -- return the profiles as well as the endpoints, defaults to False

    • calc_wssq (bool*, *optional) -- include the calculated WSSQ as a return column, defaults to False

  • Returns

    Script step

  • Return type

    COM Object

scaleup.dynochem_automation.create_verification_step(scenarios=[], verificationType: int = 1)

Creates a Verification step

  • Parameters

    • scenarios (list*, *optional) -- The names of the scenarios to be run. If empty, all scenarios are run, defaults to []

    • verificationType (int*, *optional) -- The Verification Type. 1 for full report, 2 for residuals, 3 for SSQs, defaults to 1

  • Returns

    Script step

  • Return type

    COM Object

scaleup.dynochem_automation.run_script(file_name: str, script_name: str, steps, options: str = '', dataSheets=None, injected_headers=None)

Runs a script

  • Parameters

    • file_name (str) -- The file name for the model

    • script_name (str) -- The name of the job - displayed in the UI if visible

    • steps (list) -- The steps to be executed

    • options (str*, *optional) -- Option string for run (Show/Hide UI, Use Excel interop or not for Excel Models), defaults to ''

    • dataSheets (list*, *optional) -- Replacement Datasheets to inject data into the model, defaults to None

    • injected_header (list*, *optional) -- Additional headers for scenarios (e.g. process sheet parameters), defaults to None

  • Returns

    Script Result

  • Return type

    COM Object

scaleup.dynochem_automation.set_datasheets(script, datasheets)

scaleup.dynochem_automation_defs module

COM Object creation Helpers

scaleup.dynochem_automation_defs.create_fitting_parameters_w32()

Create a fitting parameters object

  • Returns

    COM Object with fitting specific parameters

  • Return type

    COM Object

scaleup.dynochem_automation_defs.create_model_automate_w32()

Creates ModelAutomate object

  • Returns

    ModelAutomate COM object for running scripts

  • Return type

    COM Object

scaleup.dynochem_automation_defs.create_optimization_parameters_w32()

Create an optimization parameters object

  • Returns

    COM Object with optimization specific parameters

  • Return type

    COM Object

scaleup.dynochem_automation_defs.create_script_parameters_w32()

Creates Script parameters COM Object

  • Returns

    Script parameters COM Object

  • Return type

    COM Object

scaleup.dynochem_automation_defs.create_script_step_w32(stepType: str)

Create a script step object

  • Parameters

    stepType (str) -- Creates a script step

  • Returns

    [description]

  • Return type

    [type]

scaleup.dynochem_automation_defs.create_simulation_parameters_w32()

Create a simulation parameters object

  • Returns

    COM Object with simulation specific parameters

  • Return type

    COM Object

scaleup.dynochem_automation_defs.create_verification_parameters_w32()

Create a verification parameters object

  • Returns

    COM Object with verification specific parameters

  • Return type

    COM Object

scaleup.script_utils module

Various utilities for using with scripts

class scaleup.script_utils.OptTarget(value)

Bases: enum.Enum

Enumeration for Optimization Target

Max(_ = _ )

Min(_ = (2,_ )

Target(_ = (1,_ )

scaleup.script_utils.create_fitting_parameter(parameter_name: str, unit: str, initial_value: float, max_value: float, min_value: float, fit_to_log: bool = False)

Create a fitting parameter

  • Parameters

    • parameter_name (str) -- name of the parameter

    • unit (str) -- unit of measure for the parameter

    • initial_value (float) -- inital value

    • max_value (float) -- max value

    • min_value (float) -- min value

    • fit_to_log (bool*, *optional) -- Fit to the log of the value, defaults to False

  • Returns

    Formatted parameter details for use with fitting step

  • Return type

    str

scaleup.script_utils.create_max_optimization_response(name: str, weighting: float = 1.0)

Creates a 'Maximize' target for a response

  • Parameters

    • name (str) -- name of the response to maximize

    • weighting (float*, *optional) -- Weighting for this parameter, defaults to 1.0

  • Returns

    Formatted response for use in the Optimization step

  • Return type

    str

scaleup.script_utils.create_min_optimization_response(name: str, weighting: float = 1.0)

Creates a 'Minimize' target for a response

  • Parameters

    • name (str) -- name of the response to minimize

    • weighting (float*, *optional) -- Weighting for this parameter, defaults to 1.0

  • Returns

    Formatted response for use in the Optimization step

  • Return type

    str

scaleup.script_utils.create_optimization_factor(name: str, unit: str, initial_value: float, min=None, max=None)

Create optimization Factor

  • Parameters

    • name (str) -- Factor name

    • unit (str) -- factor unit

    • initial_value (float) -- initial value

    • min (float*, *optional) -- min value for factor. If not set, uses half of the initial value

    • max (float*, *optional) -- max value for factor. If not set, uses twice the initial value

  • Returns

    Formatted factor for use in optimization step

  • Return type

    str

scaleup.script_utils.create_optimization_response(name: str, target: scaleup.script_utils.OptTarget, value: float = 0.0, weighting: float = 1.0)

Create a response for the optimization step

  • Parameters

    • name (str) -- name of the response

    • target (OptTarget) -- Type of response. Min|Max|Target

    • value (float*, *optional) -- Target Value, defaults to 0.0

    • weighting (float*, *optional) -- Weighting for the parameter, defaults to 1.0

  • Returns

    Formatted response for use in the Optimization step

  • Return type

    str

scaleup.script_utils.create_script_option_string(showInUi: bool = True, altReader: bool = False)

Generates the script option string

  • Parameters

    • showInUi (bool*, *optional) -- Show the Automation UI when running, defaults to True

    • altReader (bool*, *optional) -- Use the alternate file reader for Excel models (i.e. not Excel Interop), defaults to False

  • Returns

    Formatted string of options

  • Return type

    str

scaleup.script_utils.create_simulation_scenario(scen_name: str, ds_name: str, values=[])

Creates a simulation scenario for use with Simulation and Verification steps.

  • Parameters

    • scen_name (str) -- scenario name

    • ds_name (str) -- datasheet name

    • values (list*, *optional) -- parameter values for the scenario, defaults to []

  • Returns

    String representation of the scenario for use with Simulation and Verification steps.

  • Return type

    str

scaleup.script_utils.create_target_optimization_response(name: str, value: float, weighting: float = 1.0)

Creates a 'Target' target for a response

  • Parameters

    • name (str) -- name of the response

    • value (float) -- Target value for the response

    • weighting (float*, *optional) -- Weighting for this parameter, defaults to 1.0

  • Returns

    Formatted response for use in the Optimization step

  • Return type

    str

scaleup.script_utils.escape_name(scenName: str)

Escapes a name containing tilde (~) characters, replacing each ~ with &TLD;
This is used when generating tilde delimited strings to safely send names which contains tildes.

  • Parameters

    scenName (str) -- name to be escaped

  • Returns

    Escaped version of the input string

  • Return type

    str

scaleup.script_utils.get_file_path(file_name: str, folder_name: Optional[str] = None)

Returns the path of a file relative to the current folder

  • Parameters

    • file_name (str) -- the name of the file

    • folder_name (str*, *optional) -- sub-folder in which the file can be found, defaults to None

  • Returns

    Full path to the file

  • Return type

    str

scaleup.script_utils.get_run_type(file_name: str)

Ascertains the run type of a file based on the extension.

  • Excel models "*.xls(?)" are 1
  • Reaction Lab Models "*.rxm" are 2
  • All others return 0
  • Parameters

    file_name (str) -- name of the file

  • Returns

    0, 1, or 2, depending on the file extension

  • Return type

    int

scaleup.script_utils.write_result(result, writer=None, separator: str = ',')

Write the contents of a script result. A script result contain have an error message or an array of step results. If it contains an error message, then this is written If it contains step results, each result (each of which may contain multiple pages) is written as lines of values separated by the passed in separator or a comma.

If no 'writer' method is passed in, then we print to console.

  • Parameters

    • result (COM Object) -- Script Result object from RunScript()

    • writer (method) -- Method which takes in a string, if not set, 'print' is used.

scaleup.script_utils.write_result_to_file(result, file_name: str, append: bool = True)

Write the contents of a script result. A script result contain have an error message or an array of step results. If it contains an error message, then this is written If it contains step results, each result (each of which may contain multiple pages) is written as lines of values separated by the passed in separator or a comma.

If no 'writer' method is passed in, then we print to console.

  • Parameters

    • result (COM Object) -- Script Result object from RunScript()

    • writer (method) -- Method which takes in a string, if not set, 'print' is used.

    • append (bool) -- Append the output to the file (or overwrite). Default is True (append)

Module contents

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scaleup-1.0.24.tar.gz (20.2 kB view hashes)

Uploaded Source

Built Distribution

scaleup-1.0.24-py3-none-any.whl (18.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page