Page MenuHome

Handle of 'depsgraph_update_post' requires 3 arguments
Closed, InvalidPublicBUG

Description

Blender Version
Broken: version: 2.83 (sub 2), branch: master, commit date: 2020-02-04 23:04, hash: rB79003fa0c415
Worked: 2.81

Short description of error
In theory the depsgraph_update_post handles work with 2 or 3 arguments.
But this is not the case if the handler is a method.

Exact steps for others to reproduce the error

  • Open blender
  • Go to the workspace Scripting
  • Copy, paste and run this code :
import bpy

class MyClass():
    def __init__(self):
        bpy.app.handlers.depsgraph_update_post.append(self.my_depsgraph_update_post_handler)

    def my_depsgraph_update_post_handler(self, scene):
        print("ok")

it_is_my_class = MyClass()
print("yeah")
  • Move the cube and see the console.

For reference, this code works:

import bpy


def handler_simple(scene):
    print('handler_simple')

def handler_with_depsgraph(scene, depsgraph):
    print('handler_with_depsgraph')

bpy.app.handlers.depsgraph_update_post.append(handler_simple)
bpy.app.handlers.depsgraph_update_post.append(handler_with_depsgraph)

Event Timeline

Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".Feb 6 2020, 4:08 PM
Germano Cavalcante (mano-wii) triaged this task as Low priority.Feb 6 2020, 4:11 PM
Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Feb 6 2020, 9:45 PM

This is not a bug, but a request for modified/improved behavior in an already hacked workaround.