code: def print_arguments():
      
      def decorator(function):
          def inner(*args, **kwargs):
              if args:
                  print "Passed arguments:"
                  for i in args:
                      pp.pprint(i)
              print "Passed keyword arguments:"
              pp.pprint(kwargs)
              return function(*args, **kwargs)
          return inner
      return decorator
docs: Decorator that provides the wrapped function with an attribute 'print_arguments'
      containing just those keyword arguments actually passed in to the function.
  
      To use the decorator for debugging, preface the function into whose calls
      you are interested with '@print_arguments()'