monkey patching __code__

Sven R. Kunze srkunze at mail.de
Fri Mar 18 07:49:46 EDT 2016


Hi,

we got an interesting problem. We need to monkeypatch Django's reverse 
function:


First approach:

urlresolvers.reverse = patched_reverse


Problem: some of Django's internal modules import urlresolvers.reverse 
before we can patch it for some reasons.


Second approach:

urlresolvers.reverse.__code__ = patched_reverse.__code__


Unfortunately, we got this error:

 >>> reverse('login')

patched_reverse() takes at least 3 arguments (1 given)


These are the functions' signatures:

def patched_reverse(viewname, urlconf=None, args=None, kwargs=None, 
prefix=None, current_app=None, get=None, fragment=None):
def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None, 
current_app=None):


Some ideas?

Best,
Sven



More information about the Python-list mailing list