code: def from_obj(cls, obj, any_configurable=False):
          '''Create a proxy object from a callable.
  
          If `any_configurable` is true, `obj` takes a parameter named
          ``config``, and `obj` smells like it implements
          :class:`yakonfig.Configurable` (it has a
          :attr:`~yakonfig.Configurable.config_name`), then return it
          directly.
  
          '''
          discovered = cls.inspect_obj(obj)
          if ((any_configurable and
               'config' in discovered['required'] and
               hasattr(obj, 'config_name'))):
              return obj
          return cls(obj, discovered['name'], discovered['required'],
                     discovered['defaults']f from_obj(cls, obj, any_configurable=False):
          '''Create a proxy object from a callable.
  
          If `any_configurable` is true, `obj` takes a parameter named
          ``config``, and `obj` smells like it implements
          :class:`yakonfig.Configurable` (it has a
          :attr:`~yakonfig.Configurable.config_name`), then return it
          directly.
  
          '''
          discovered = cls.inspect_obj(obj)
          if ((any_configurable and
               'config' in discovered['required'] and
               hasattr(obj, 'config_name'))):
              return obj
          return cls(obj, discovered['name'], discovered['required'],
                     discovered['defaults'])
docs: Create a proxy object from a callable.
  
          If `any_configurable` is true, `obj` takes a parameter named
          ``config``, and `obj` smells like it implements
          :class:`yakonfig.Configurable` (it has a
          :attr:`~yakonfig.Configurable.config_name`), then return it
          directly.