Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
python_coupling [2020/02/18 10:27]
argemiro
python_coupling [2020/02/18 11:00]
argemiro
Line 1: Line 1:
 +{{ :​logo_logo.png?​400 |}}
 +\\
 +\\
 ====== Dinamica EGO and Python Coupling ====== ====== Dinamica EGO and Python Coupling ======
  
-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, ​PyEnvironment ​também pode ser obtido em [[http://​csr.ufmg.br/​~romulo/​PyEnvironment.7z]]. ​+Python ​support is present in the "​Python" ​branch in the repositories ​(on top of the "​Tasks" ​branch). To compile the branchit is necessary to have Python ​dependencies in dff_dependencies_windows. ​The version containing the dependencies can be downloaded at [[http://​csr.ufmg.br/​~romulo/​dff_dependencies_windows_python.7z]]. ​For executionit is necessary to have the folder ​"​PyEnvironment" ​inside the Dinamica ​folderthe PyEnvironment ​can also be obtained in [[http://​csr.ufmg.br/​~romulo/​PyEnvironment.7z]].
  
-=== Exemplo: Calculate Python Expression ===+=== Example: Calculate Python Expression ===
  
-Uma expressão que pode ser usada:+An expression that can be used:
 <​code>​ <​code>​
 dinamica.package("​numpy"​) dinamica.package("​numpy"​)
Line 27: Line 30:
 </​code>​ </​code>​
  
-onde:+where:
 <​code>​ <​code>​
 dinamica.package("​numpy"​) dinamica.package("​numpy"​)
 </​code>​ </​code>​
-Pede ao PIP que instale o pacote ​numpy e faça o import.+Ask the PIP to install the numpy package and import ​it:
 \\  \\ 
 <​code>​ <​code>​
 print(dinamica.inputs) print(dinamica.inputs)
 </​code>​ </​code>​
-Imprime o vetor com todas as entradas passadas pelo Dinamica.+Prints the vector with all the entries passed by Dinamica:
 \\  \\ 
 <​code>​ <​code>​
 dinamica.outputs["​teste2"​] = 2.5 dinamica.outputs["​teste2"​] = 2.5
 </​code>​ </​code>​
-Coloca uma saída na struct ​com nome "teste2", ​contendo uma double ​com valor 2.5+Place an output in the struct ​named "test2", ​containing a double ​with a value of 2.5:
 \\  \\ 
 <​code>​ <​code>​
 dinamica.outputs["​tabela"​] = dinamica.prepareTable(dinamica.inputs["​t1"​],​ 3) dinamica.outputs["​tabela"​] = dinamica.prepareTable(dinamica.inputs["​t1"​],​ 3)
 </​code>​ </​code>​
-Coloca uma saída na struct ​com nome "tabela", ​contendo uma tabela com colunas de chaveEssa 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 listasonde cada lista interna corresponde ​uma **linha** da tabela.+Place an output in the struct ​named "table", ​containing a table with key columnsThis function is not necessary if the table already has '​*' ​in the column names (so the user could only do dinamica.outputs ["​teste2"​] = dinamica.inputs ["​t1"​]). ​Every table in Python ​is treated as a list of listswhere each internal list corresponds to a ** row ** of the table:
 \\  \\ 
 <​code>​ <​code>​
 dinamica.outputs["​lut"​] = dinamica.prepareLookupTable(dinamica.inputs["​t2"​]) dinamica.outputs["​lut"​] = dinamica.prepareLookupTable(dinamica.inputs["​t2"​])
 </​code>​ </​code>​
-Coloca uma saída na struct ​com nome "​lut", ​contendo uma LookupTable (Não existe outra forma de passar uma LookupTable ​de volta).+Put an output in the struct ​named "​lut", ​containing a LookupTable (There is no other way to pass a LookupTable ​back):
  
 ---- ----