<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def snapshot():
 """Return the graph of all currently gc-tracked objects. Excludes the returned :class:`~refcycle.object_graph.ObjectGraph` and objects owned by it. Note that a subsequent call to :func:`~refcycle.creators.snapshot` will capture all of the objects owned by this snapshot. The :meth:`~refcycle.object_graph.ObjectGraph.owned_objects` method may be helpful when excluding these objects from consideration. """

    all_objects = gc.get_objects()
    this_frame = inspect.currentframe()
    selected_objects = []
    for obj in all_objects:
        if obj is not this_frame:
            selected_objects.append(obj)
    graph = ObjectGraph(selected_objects)
    del this_frame, all_objects, selected_objects, obj
    return graph