Parâmetros
Os parâmetros fornecem uma maneira útil de passar valores em tempo de execução, em vez de codificá-los diretamente em um script. Os parâmetros e seus valores são definidos da mesma forma que os fluxos, ou seja, como entradas na tabela de parâmetros de um fluxo ou como parâmetros na linha de comando. 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.
| Método | Tipo de retorno | Descrição |
|---|---|---|
p.parameterIterator() |
Iterador | Retorna um iterador de nomes de parâmetros para esse objeto. |
p.getParameterDefinition( parameterName) |
ParameterDefinition |
Retorna a definição de parâmetro para o parâmetro com o nome especificado ou None se esse parâmetro não existir nesse provedor. O resultado pode ser um instantâneo da definição no momento em que o método foi chamado e não precisa refletir nenhuma modificação posterior feita no parâmetro por meio desse provedor. |
p.getParameterLabel(parameterName) |
sequência | Retorna o rótulo do parâmetro nomeado ou None se esse parâmetro não existir. |
p.setParameterLabel(parameterName, label) |
Não aplicável | Define o rótulo do parâmetro nomeado. |
p.getParameterStorage( parameterName) |
ParameterStorage |
Retorna o armazenamento do parâmetro nomeado ou None se esse parâmetro não existir. |
p.setParameterStorage( parameterName, storage) |
Não aplicável | Define o armazenamento do parâmetro nomeado. |
p.getParameterType(parameterName) |
ParameterType |
Retorna o tipo do parâmetro nomeado ou None se esse parâmetro não existir. |
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 esse parâmetro não existir. |
p.setParameterValue(parameterName, value) |
Não aplicável | Define o valor do parâmetro nomeado. |
No exemplo a seguir, o script agrega alguns dados da Telco para descobrir qual região tem os dados de renda média mais baixos. Um parâmetro de fluxo é então definido com essa região. Esse parâmetro de fluxo é então usado em um nó Select para excluir essa região dos dados, antes que um modelo de rotatividade seja criado com base no restante.
O exemplo é artificial porque o script gera o próprio nó Select e, portanto, poderia ter gerado o valor correto diretamente na expressão do nó Select. No entanto, os fluxos são normalmente pré-construídos, portanto, a configuração de parâmetros dessa forma fornece um exemplo útil.
A primeira parte desse script de exemplo cria o parâmetro de fluxo que conterá a região com a renda média mais baixa. O script também cria os nós na ramificação de agregação e na ramificação de criação de modelos e os conecta.
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 seguinte fluxo.
