Differences
This shows you the differences between two versions of the page.
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, o 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 branch, it 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 execution, it is necessary to have the folder "PyEnvironment" inside the Dinamica folder, the 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 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. | + | Place an output in the struct named "table", containing a table with 3 key columns. This 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 lists, where 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): |
---- | ---- |