Emanuel Barry added the comment:

Sure, here goes; this is an IRC game bot which I contribute to. Apologies for 
the long links, it's the only way to make sure this consistently points to the 
same place regardless of future commits.

The 'cmd' decorator we use is defined at 
https://github.com/lykoss/lykos/blob/1852bf2c442d707ba0cbc16e8c9e012bcbc4fcc5/src/decorators.py#L67
 - we use its __call__ method to add the function to it; see next link.

How it's used: 
https://github.com/lykoss/lykos/blob/1852bf2c442d707ba0cbc16e8c9e012bcbc4fcc5/src/wolfgame.py#L9113
 - ideally, a syntax such as the following would be nice for these definitions:

­@cmd("myrole", <keyword arguments here>).set
def myrole(cli, nick, chan, rest):
    # ... do stuff here ...

Historically (we used an arcane closure-based version that no one understood), 
we could call that function after directly, like any normal function. Now, 
though, we have to call it like this: 
https://github.com/lykoss/lykos/blob/1852bf2c442d707ba0cbc16e8c9e012bcbc4fcc5/src/wolfgame.py#L764

I'd like to state again that, while we'd use this new syntax, we've already 
worked around this lack of syntax. Whatever comes out of this, we won't be 
negatively affected, but decorators are meant to bring whatever alters the 
function right where it starts, so having syntax that eases that would make 
sense (to me, anyway).

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19660>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to