Because the library can "advice" an existing function without decorating that function.
# Write a function
>>> def there():
... print "there",
...
>>> there()
there
# Write a peice of 'before advice' to run before the function
# New advice is activated by default
>>> @pydvice.before(there)
... def hello():
... print "Hello",
...
# Note that active advice runs automatically on any function call
>>> there()
Hello there
6 comments
[ 1.2 ms ] story [ 25.7 ms ] threadFrom glancing the code I didn't fully get how they manage to hook into a function from the "outside"?
EDIT: someone has ported it to 3: https://github.com/sshirokov/pydvice/pull/1
https://github.com/sshirokov/pydvice/blob/abfa0c5f1dc55780a8...