code: def __init__(self, fn, arg):
      self.fn = fn
      self.weak_arg = weakref.ref(arg)
      functools.update_wrapper(self, fn)
  
imports: import contextlib
  import functools
  import inspect
  import weakref
  from collections import OrderedDict
  from funsor.registry import PartialDispatcher
  from funsor.util import methodof
label_desc: Use image node_id 1 to create a new WeakPartial object  with example: obj = WeakPartial(fn, arg)