Twython モジュールは内部で requests モジュールを使用します。
リクエストのメソッドをラップ/装飾して、Twython モジュールに干渉することなく透過的に装飾/ラップされるようにrequests.post(*k, **kw)
、すべての Twython が呼び出しを行います。request.post(...)
リクエストのコードベースを編集するのは簡単ですが、既に定義されている関数/メソッドにデコレータを追加するという一般的な問題を解決する方法に興味があります。
import requests
def magic_wrapper_doodad(...)
...
...
requests.post = magic_wrapper_doodad(my_function, requests.post) # plz?
import Twython
# thanks to the above magic, requests.post is wrapped just as if it was defined like:
@decorator
def trace(f, *args, **kw):
print("calling %s with args %s, %s" % (f.__name__, args, kw))
return f(*args, **kw)
...
... #inside requests.py now:
@trace
def post(self, *args, **kw):
...
magic_wrapper_doodad()
このようにコードを装飾できるように、どのように書くか、または代替コードを作成しますか?