Python Decorator Code Runs Before Original Function Code -


def raw_list(function):     @wraps(function)     def wrapper(args, producer_data):         print producer_data[2]         tenant, token, url = producer_data         body, status_code = do_request(url, token)         return function(args, producer_data)     return wrapper  @raw_list def member_list(args, producer_data):     # in argparse, consumer or producer data can used because     # consumer aliased producer.     uuid = args['uuid']     producer_data[2] = producer_data[2] + "/" + uuid + "/members" 

i have several functions take url, mutate it, , make api call url. reason, made wrapper function api call part. so, each function needs mutate url , decorated wrapper function.

but issue having mutated url code producer_data[2] = producer_data[2] + "/" + uuid + "/members" seems running after function decorator code runs, , not before. because of this, original url being used instead of mutated url.

how can fix logic flow , make api call made mutated url?

if want decorated function called before rest of wrapper's code, call before rest of wrapper's code:

def raw_list(function):     @wraps(function)     def wrapper(args, producer_data):         # call here!         retval = function(args, producer_data)         print producer_data[2]         tenant, token, url = producer_data         body, status_code = do_request(url, token)         return retval     return wrapper 

Comments

Popular posts from this blog

php - regexp cyrillic filename not matches -

c# - OpenXML hanging while writing elements -

sql - Select Query has unexpected multiple records (MS Access) -