Parâmetros

Os parâmetros fornecem uma maneira útil de transmitir valores no tempo de execução ao invés de codificá-los permanentemente direto em um script. Os parâmetros e seus valores são definidos da mesma forma que para os fluxos; ou seja, como entradas na tabela de parâmetros de um fluxo ou como parâmetros na linha de comandos. A classe Stream implementa um conjunto de funções definidas pelo objeto ParameterProvider conforme mostrado na tabela a seguir. Session fornece uma chamada getParameters() que retorna um objeto que define essas funções.

Tabela 1. Funções definidas pelo objeto ParameterProvider
Método Retorne o tipo Descrição
p.parameterIterator() Agente iterativo Retorna um agente iterativo de nomes de parâmetro para este objeto.
p.getParameterDefinition( parameterName) ParameterDefinition Retorna a definição de parâmetro para o parâmetro com o nome especificado ou None se nenhum parâmetro desse tipo existir nesse provedor. O resultado poderá ser uma captura instantânea da definição no momento em que o método foi chamado e não precisará refletir nenhuma modificação subsequente feita no parâmetro por meio deste provedor.
p.getParameterLabel(parameterName) string Retorna o rótulo do parâmetro nomeado ou None se não existir tal parâmetro.
p.setParameterLabel(parameterName, label) Não Aplicável Configura o rótulo do parâmetro nomeado.
p.getParameterStorage( parameterName) ParameterStorage Retorna o armazenamento do parâmetro nomeado ou None se não existir tal parâmetro.
p.setParameterStorage( parameterName, storage) Não Aplicável Configura o armazenamento do parâmetro nomeado.
p.getParameterType(parameterName) ParameterType Retorna o tipo do parâmetro nomeado ou None se não existir tal parâmetro.
p.setParameterType(parameterName, type) Não Aplicável Define o tipo do parâmetro nomeado.
p.getParameterValue(parameterName) Objeto Retorna o valor do parâmetro nomeado ou None se não existir tal parâmetro.
p.setParameterValue(parameterName, value) Não Aplicável Configura o valor do parâmetro nomeado.

No exemplo a seguir, o script agrega alguns dados do Telco para localizar qual região possui os dados da receita média mais baixa. Um parâmetro de fluxo é configurado com essa região. Esse parâmetro de fluxo é usado em um nó Selecionar para excluir essa região dos dados, antes que um modelo de rotatividade seja construído sobre o restante.

O exemplo é artificial porque o script gera o nó Selecionar nó em si e, portanto, pode ter gerado o valor correto diretamente na expressão do nó Selecionar. No entanto, os fluxos são tipicamente pré-construídos, portanto, definir parâmetros desta forma fornece um exemplo útil.

A primeira parte deste script de exemplo cria o parâmetro de fluxo que contará com a região com a menor renda média. O script também cria os nós na ramificação de agregação e na ramificação de construção de modelo e os conecta entre si.

import modeler.api

stream = modeler.script.stream()

# Initialize a flow parameter
stream.setParameterStorage("LowestRegion", modeler.api.ParameterStorage.INTEGER)

# First create the aggregation branch to compute the average income per region
sourcenode = stream.findByID("idGXVBG5FBZH")

aggregatenode = modeler.script.stream().createAt("aggregate", "Aggregate", 294, 142)
aggregatenode.setPropertyValue("keys", ["region"])
aggregatenode.setKeyedPropertyValue("aggregates", "income", ["Mean"])

tablenode = modeler.script.stream().createAt("table", "Table", 462, 142)

stream.link(sourcenode, aggregatenode)
stream.link(aggregatenode, tablenode)

selectnode = stream.createAt("select", "Select", 210, 232)
selectnode.setPropertyValue("mode", "Discard")
# Reference the flow parameter in the selection
selectnode.setPropertyValue("condition", "'region' = '$P-LowestRegion'")

typenode = stream.createAt("type", "Type", 366, 232)
typenode.setKeyedPropertyValue("direction", "Drug", "Target")

c50node = stream.createAt("c50", "C5.0", 534, 232)

stream.link(sourcenode, selectnode)
stream.link(selectnode, typenode)
stream.link(typenode, c50node)

O script de exemplo cria o fluxo a seguir.

Figura 1. Fluxo que resulta do script de exemplo
Fluxo que resulta do script de exemplo