shotgunsoftware / tk-multi-breakdown2

A Flow Production Tracking Pipeline Toolkit app that helps you see what is out of date in your scene across multiple projects.
https://developer.shotgridsoftware.com/tk-multi-breakdown2/
Other
4 stars 10 forks source link

Maya scene operations - Flag must be passed a boolean argument #36

Closed EfthymisB closed 1 year ago

EfthymisB commented 1 year ago

Hello,

Ever since I rebased to v0.2.5, I'm getting the following error when running maya_scene_operations hook (it doesn't happen in Houdini).

// SG tk-maya: Toolkit platform was restarted. // 
// Error: SG tk-multi-breakdown2: File Model: Failed to find the latest published file for id 9: Flag 'long' must be passed a boolean argument // 
// Error: SG tk-multi-breakdown2: Traceback (most recent call last):
  File "/home/efthymios-b/pipe_config_dev/install/app_store/tk-framework-shotgunutils/v5.8.4/python/task_manager/worker_thread.py", line 82, in run
    result = task_to_process.run()
  File "/home/efthymios-b/pipe_config_dev/install/app_store/tk-framework-shotgunutils/v5.8.4/python/task_manager/background_task.py", line 139, in run
    return self._cbl(*self._args, **self._kwargs)
  File "/home/efthymios-b/pipe_config_dev/install/core/python/tank/log.py", line 514, in wrapper
    response = func(*args, **kwargs)
  File "/home/efthymios-b/git_repos/tk-multi-breakdown2/python/tk_multi_breakdown2/api/manager.py", line 40, in scan_scene
    "hook_scene_operations", "scan_scene"
  File "/home/efthymios-b/pipe_config_dev/install/core/python/tank/platform/bundle.py", line 628, in execute_hook_method
    resolved_hook_paths, self, method_name, base_class=base_class, **kwargs
  File "/home/efthymios-b/pipe_config_dev/install/core/python/tank/hook.py", line 631, in execute_hook_method
    ret_val = hook_method(**kwargs)
  File "/home/efthymios-b/pipe_config_dev/config/hooks/tk-multi-breakdown2/tk-maya_scene_operations.py", line 100, in scan_scene
    self._scan_textures()
  File "/home/efthymios-b/pipe_config_dev/config/hooks/tk-multi-breakdown2/tk-maya_scene_operations.py", line 123, in _scan_textures
    self._scan_node(self.TEXTURE.TYPE, self.TEXTURE.ATTR)
  File "/home/efthymios-b/pipe_config_dev/config/hooks/tk-multi-breakdown2/tk-maya_scene_operations.py", line 152, in _scan_node
    for node in cmds.ls(type=node_type, long=True):
TypeError: Flag 'long' must be passed a boolean argument
 // 

I saw that you had a similar issue with the query flag on cmds.file. I did a test where I completely removed the long arg but I got the same error, this time on another command that again, expects a boolean argument. Do you know what could cause this?

Linux Centos 7 Maya 2020.4

Thanks, Efthymios

staceyoue commented 1 year ago

Hi @EfthymisB -- yes we also ran into it seems a similar issue with the query param. We believe the underlying issue is related to running Maya commands using the Toolkit background task manager, instead of executing in the main thread. We are looking into a solution for this.

EfthymisB commented 1 year ago

Hey, I've found a solution for now. Seems like when executing scan_scene in the main thread, I'm not getting any errors. Is this ok or it might cause issues elsewhere?

scene_objects = self._bundle.execute_in_main_thread(
                                self._bundle.execute_hook_method, "houk_scene_operations", "scan_scene"
                           )        
staceyoue commented 1 year ago

@EfthymisB can you provide a more complete code sample here, which file and where are you adding this change? It also seems that you might have a typo in the hook name houk_scene_operation

EfthymisB commented 1 year ago

Hey, That's on the scan_scene method of the BreakdownManager, I've linked the exact line on my previous comment, sorry if it wasn't clear (link). You also have a (related?) TODO comment there.

(indeed that's a type, should be hook_scene_operations)

brettmaker commented 1 year ago

Can we get a fix for this?