Декорировать функцию после получения параметров. Не забывай, что
@formatter(p1, p2)
def csv_reader(filename, request):
...
эквивалентно
def csv_reader(filename, request):
...
_temp = formatter(p1, p2)
csv_reader = _temp(csv_reader)
Альтернативно, пусть возвращаемая фукнкция имеет свойства:
def formatter(parse_func):
def output_func(*args):
... # тут обращаемся к output_func.p1, например
output_func.p1 = p1
output_func.p2 = p2
return output_func
@formatter
def csv_reader(filename, request):
...
csv_reader.p1 = a1
csv_reader.p2 = a2
Вместо функции можно вообще вернуть callable object, т.е. объект класса с методом __call__(), и любыми нужными свойствами и методами.