def _get_or_add_proxy_child(parent_proxy, segment):
 child = parent_proxy._children.get(segment)
 if (child is not None):
  return child
 child = _get(parent_proxy._original, segment, _sentinel)
 if (child is _sentinel):
  raise KeyError("Attribute or key '{}' not found in {}".format(segment, parent_proxy._original))
 proxy_for_child = _proxy_for_evolvable_object(child)
 parent_proxy._children[segment] = proxy_for_child
 return proxy_for_child

def _get_or_add_proxy_child ( parent_proxy , segment ) : child = parent_proxy . _children . get ( segment ) if ( child is not None ) : return child child = _get ( parent_proxy . _original , segment , _sentinel ) if ( child is _sentinel ) : raise KeyError ( "Attribute or key '{}' not found in {}" . format ( segment , parent_proxy . _original ) ) proxy_for_child = _proxy_for_evolvable_object ( child ) parent_proxy . _children [ segment ] = proxy_for_child return proxy_for_child
returns a proxy wrapper around the _ievolvable object corresponding to segment .