Не подтверждена Коммит f8cba44a создал по автору Dealga McArdle's avatar Dealga McArdle Зафиксировано автором GitHub
Просмотр файлов

Snlite aliases available to ops (#4555)

* make aliases available to ops

* update comment

* add pip install script example

* comment out stuff
владелец 0ff2c7cf
...@@ -3,8 +3,8 @@ in verts v ...@@ -3,8 +3,8 @@ in verts v
""" """
def my_operator(self, context): def my_operator(self, context):
# this will have a limited knowledge of the globally available vars # this will have a limited knowledge of the globally available variables
# import bpy if you need stuff from bpy ..etc. # the aliases will be available. ( see self.snlite_aliases.keys())
print(self, context, self.inputs['verts'].sv_get()) print(self, context, self.inputs['verts'].sv_get())
return {'FINISHED'} return {'FINISHED'}
......
"""
in package t
"""
import sys
import os
import subprocess
def install_package(package):
if not isinstance(package, list):
package = [package]
subprocess.call([os.path.join(sys.prefix, 'bin', 'python.exe'), "-m", "pip", "install", *package])
def install_whl(package_path):
subprocess.call([os.path.join(sys.prefix, 'bin', 'python.exe'), "-m", "pip", "install", f"{package_path}"])
if __name__ == '__main__':
## install_package(['--upgrade', 'pip']) # <-- may not be needed
# install_package('pandas')
## install_package('gdal') # <-- may fail
## install_package('fiona') # <-- may fail.
# install_whl(r"C:\Users\zeffi\Downloads\GDAL-3.4.2-cp310-cp310-win_amd64.whl")
# install_whl(r"C:\Users\zeffi\Downloads\Fiona-1.8.21-cp310-cp310-win_amd64.whl")
# install_package('geopandas')
# install_package('pygeos') # <-- optional
# install_package('shapely') # <-- optional
\ No newline at end of file
...@@ -151,6 +151,8 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode): ...@@ -151,6 +151,8 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode):
# here node refers to an ast node (a syntax tree node), not a node tree node # here node refers to an ast node (a syntax tree node), not a node tree node
ast_node = self.get_node_from_function_name(new_func_name) ast_node = self.get_node_from_function_name(new_func_name)
code = self.extract_code(ast_node, joined=True) code = self.extract_code(ast_node, joined=True)
# locals().update(self.make_new_locals()) # maybe..
locals().update(self.snlite_aliases)
exec(code, locals(), locals()) exec(code, locals(), locals())
callbacks[new_func_name] = locals()[new_func_name] callbacks[new_func_name] = locals()[new_func_name]
...@@ -438,10 +440,9 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode): ...@@ -438,10 +440,9 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode):
func = local_variables.get(func_name) func = local_variables.get(func_name)
local_variables['socket_info'][func_name] = func local_variables['socket_info'][func_name] = func
def process_script(self): @property
__local__dict__ = self.make_new_locals() def snlite_aliases(self):
locals().update(__local__dict__) return {
locals().update({
'vectorize': vectorize, 'vectorize': vectorize,
'bpy': bpy, 'bpy': bpy,
'np': np, 'np': np,
...@@ -454,7 +455,12 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode): ...@@ -454,7 +455,12 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode):
'sv_njit_clear': sv_njit_clear, 'sv_njit_clear': sv_njit_clear,
'bmesh_from_pydata': bmesh_from_pydata, 'bmesh_from_pydata': bmesh_from_pydata,
'pydata_from_bmesh': pydata_from_bmesh 'pydata_from_bmesh': pydata_from_bmesh
}) }
def process_script(self):
__local__dict__ = self.make_new_locals()
locals().update(__local__dict__)
locals().update(self.snlite_aliases)
for output in self.outputs: for output in self.outputs:
locals().update({output.name: []}) locals().update({output.name: []})
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать