Не подтверждена Коммит 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
"""
def my_operator(self, context):
# this will have a limited knowledge of the globally available vars
# import bpy if you need stuff from bpy ..etc.
# this will have a limited knowledge of the globally available variables
# the aliases will be available. ( see self.snlite_aliases.keys())
print(self, context, self.inputs['verts'].sv_get())
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
\ Нет новой строки в конце файла
......@@ -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
ast_node = self.get_node_from_function_name(new_func_name)
code = self.extract_code(ast_node, joined=True)
# locals().update(self.make_new_locals()) # maybe..
locals().update(self.snlite_aliases)
exec(code, locals(), locals())
callbacks[new_func_name] = locals()[new_func_name]
......@@ -438,10 +440,9 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode):
func = local_variables.get(func_name)
local_variables['socket_info'][func_name] = func
def process_script(self):
__local__dict__ = self.make_new_locals()
locals().update(__local__dict__)
locals().update({
@property
def snlite_aliases(self):
return {
'vectorize': vectorize,
'bpy': bpy,
'np': np,
......@@ -454,7 +455,12 @@ class SvScriptNodeLite(bpy.types.Node, SverchCustomTreeNode):
'sv_njit_clear': sv_njit_clear,
'bmesh_from_pydata': bmesh_from_pydata,
'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:
locals().update({output.name: []})
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать