====== Calculate Python Expression ======
===== Description =====
This functor runs an Python instance with the defined user expression. For an overview of how Dinamica and Python can be linked together check the documentation about [[python_coupling|Dinamica EGO and Python Coupling]].
===== Inputs =====
^ Name ^ Type ^ Description ^
| expression | Code | The expression that will run on Python. |
===== Optional Inputs =====
None.
===== Outputs =====
^ Name ^ Type ^ Description ^
| result | [[struct_type|Struct]]| A struct containing the output values generated by the expression. |
===== Notes =====
DinamicaEGO allows installing libraries from within python scripts:
Simply install and load the numpy library:
dinamica.package("numpy")
You can specify a version like you do on pip:
dinamica.package("numpy", "numpy==1.19.5")
You can install and load a library that has different name from its project, in this case the package is called "segment_anything_py" but it can only be imported "segment_anything":
dinamica.package("segment_anything_py", "segment_anything_py", "segment_anything")
And you can also use all pip parameters as you want, for example installing from a remote wheel and loading dependencies from a custom repository "--index-url https://download.pytorch.org/whl/cu118".
dinamica.package("segment_anything_py", "https://files.pythonhosted.org/packages/43/2f/dabe75d90a7eb54a0a609a0fc5c36d1933256319beaea5d6b2f176e213a2/segment_anything_py-1.0-py3-none-any.whl --index-url https://download.pytorch.org/whl/cu118", "segment_anything")
Or use it in a more complex pipeline. For example: install the "cython" and "numpy" dependencies to clone and compile a python library from a git repository: ( of course the git executable must be on the path for cloning a repository)
dinamica.package("cython")
dinamica.package("numpy")
dinamica.package("pycocotools", "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI")
===== Group =====
[[Functor List#Integration | Integration]]
===== Internal Name =====
CalculatePythonExpression