__callbacks = {}


def register(event, callback, *args, **kwargs):
    cb = callback
    if len(args) + len(kwargs) > 0:
        cb = lambda: callback(*args, **kwargs)

    __callbacks.setdefault(event, []).append(cb)


def clear():
    __callbacks.clear()


def trigger(event, *args, **kwargs):
    cb = __callbacks.get(event, [])
    if len(cb) == 0:
        return False

    for callback in cb:
        if len(args) + len(kwargs) == 0:
            callback()
        else:
            callback(*args, **kwargs)
    return True


# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

@@ -89,35 +89,22 @@
  if 
-len(args) + len(
+args or 
 kwargs
-) %3E 0
 :%0A  
@@ -394,36 +394,22 @@
  if 
-len(args) + len(kwargs) == 0
+args or kwargs
 :%0A  
@@ -427,16 +427,31 @@
 allback(
+*args, **kwargs
 )%0A      
@@ -475,39 +475,24 @@
    callback(
-*args, **kwargs
 )%0A    return

simplify args/kwargs detection