pynbody.units.takes_arg_in_units

pynbody.units.takes_arg_in_units#

pynbody.units.takes_arg_in_units(*args, **orig_kwargs)[source]#

Returns a decorator to create a function which auto-converts input to given units.

Usage:

@takes_arg_in_units((2, "Msol"), (1, "kpc"), ("blob", "erg"))
def my_function(arg0, arg1, arg2, blob=22) :
   print("Arg 2 is",arg2,"Msol")
   print("Arg 1 is",arg1,"kpc")
   print("blob is",blob,"ergs")
>>> My_function(22, "1.e30 kg", 23, blob="12 J")
Input 3 is 0.5 Msol
Input 2 is 23 kpc