code: def _extract_member(self, tarinfo, targetpath, set_attrs=True):
          
          # Fetch the TarInfo object for the given name
          # and build the destination pathname, replacing
          # forward slashes to platform specific separators.
          targetpath = targetpath.rstrip("/")
          targetpath = targetpath.replace("/", os.sep)
  
          # Create all upper directories.
          upperdirs = os.path.dirname(targetpath)
          if upperdirs and not os.path.exists(upperdirs):
              # Create directories that are not part of the archive with
              # default permissions.
              os.makedirs(upperdirs)
  
          if tarinfo.islnk() or tarinfo.issym():
              self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname))
          else:
              self._dbg(1, tarinfo.name)
  
          if tarinfo.isreg():
              self.makefile(tarinfo, targetpath)
          elif tarinfo.isdir():
              self.makedir(tarinfo, targetpath)
          elif tarinfo.isfifo():
              self.makefifo(tarinfo, targetpath)
          elif tarinfo.ischr() or tarinfo.isblk():
              self.makedev(tarinfo, targetpath)
          elif tarinfo.islnk() or tarinfo.issym():
              self.makelink(tarinfo, targetpath)
          elif tarinfo.type not in SUPPORTED_TYPES:
              self.makeunknown(tarinfo, targetpath)
          else:
              self.makefile(tarinfo, targetpath)
  
          if set_attrs:
              self.chown(tarinfo, targetpath)
              if not tarinfo.issym():
                  self.chmod(tarinfo, targetpath)
                  self.utime(tarinfo, targetpath)
docs: Extract the TarInfo object tarinfo to a physical
             file called targetpath.