code: def Get(self, path, rootpy=True, **kwargs):
          
          thing = super(_DirectoryBase, self).Get(path)
          if not thing:
              raise DoesNotExist
  
          # Ensure that the file we took the object from is alive at least as
          # long as the object being taken from it.
  
          # Note, Python does *not* own `thing`, it is ROOT's responsibility to
          # delete it in the C++ sense. (SetOwnership is False). However, ROOT
          # will delete the object when the TFile's destructor is run.
          # Therefore, when `thing` goes out of scope and the file referred to
          # by `this` has no references left, the file is destructed and calls
          # `thing`'s delete.
  
          # (this is thanks to the fact that weak referents (used by keepalive)
          #  are notified when they are dead).
  
          keepalive(thing, self)
  
          if rootpy:
              return asrootpy(thing, **kwargs)
          return thing
docs: Return the requested object cast as its corresponding subclass in
          rootpy if one exists and ``rootpy=True``, otherwise return the
          unadulterated TObject.