This is an old revision of the document!


PHP's gd library is missing or unable to create PNG images

Suporte ao Python

O suporte ao Python (atualmente na versão 3.7) está presente no ramo “Python” nos repositórios (em cima do ramo “Tasks”). Para compilar o ramo, é necessário ter as dependências do Python no dff_dependencies_windows. A versão contendo as dependências pode ser baixada em http://csr.ufmg.br/~romulo/dff_dependencies_windows_python.7z. Para execução, é necessário ter a pasta “PyEnvironment” dentro da pasta do Dinamica, o PyEnvironment também pode ser obtido em http://csr.ufmg.br/~romulo/PyEnvironment.7z.

Exemplo: Calculate Python Expression

Uma expressão que pode ser usada:

dinamica.package("numpy")

a = numpy.arange(15).reshape(3, 5)
print(a)

print(dinamica.inputs)
for row in dinamica.inputs["t1"]:
 print(row)

for row in dinamica.inputs["t2"]:
 print(row)

dinamica.outputs["teste"] = 2
dinamica.outputs["teste2"] = 2.5
dinamica.outputs["teste3"] = 'a'
dinamica.outputs["outraSaida"] = "yoyo"
dinamica.outputs["tabela"] = dinamica.prepareTable(dinamica.inputs["t1"], 3)
dinamica.outputs["lut"] = dinamica.prepareLookupTable(dinamica.inputs["t2"])

onde:

dinamica.package("numpy")

Pede ao PIP que instale o pacote numpy e faça o import.

print(dinamica.inputs)

Imprime o vetor com todas as entradas passadas pelo Dinamica.

dinamica.outputs["teste2"] = 2.5

Coloca uma saída na struct com nome “teste2”, contendo uma double com valor 2.5

dinamica.outputs["tabela"] = dinamica.prepareTable(dinamica.inputs["t1"], 3)

Coloca uma saída na struct com nome “tabela”, contendo uma tabela com 3 colunas de chave. Essa função não é necessária se a tabela já estiver com os '*' nos nomes da coluna (portanto o usuário poderia fazer apenas dinamica.outputs[“teste2”] = dinamica.inputs[“t1”]). Toda tabela no Python é tratada como uma lista de listas, onde cada lista interna corresponde a uma linha da tabela.

dinamica.outputs["lut"] = dinamica.prepareLookupTable(dinamica.inputs["t2"])

Coloca uma saída na struct com nome “lut”, contendo uma LookupTable (Não existe outra forma de passar uma LookupTable de volta).


Calculate Python Utilities

Utility Name Description Parameters
prepareTable It returns the table prepared to output. Input Table has to be in the form [header1...headerN][line1]...[lineM] where the first list contains the headers of the table and all the other lists are lines containing the data. list(list) inputTable, int numKeys
prepareLookupTable It returns the lookup table prepared to output. The lut has to be in the form [key,value][line1]...[lineM] where the first list contains the headers of the table and all the other lists are lines containing the data. list(list) lut
toTable It returns a valid representation of dinamica table to output. Input Table can be: [header1...headerN][line1]...[lineM] where the first list contains the headers of the table and all the other lists are lines containing the data; {header1: [valuesOfColumn1], header2: [valuesOfColumn2]…} where the valuesOfComlumn# are all values of that column in table; (header1...headerN)(line)...(lineM) where the first tuple contains the headers of the table and all the other tuples are lines containing the data; [value1, value2, …, valueN], those are the values for a lookup table with sequential key; pandas.Dataframe is a commom structure table used to manipulate CSVs; numpy.array is a commom structure for matrix, that can be tables as well. The first line of matrix needs to be the table header. list(list);dict(list);list(tuple);list;pandas.DataFrame;numpy.array inputTable