code: def acquire(self, needs_lock=True):
          
          with self._optional_lock(needs_lock):
              try:
                  file = self._cache[self._key]
              except KeyError:
                  kwargs = self._kwargs
                  if self._mode is not _DEFAULT_MODE:
                      kwargs = kwargs.copy()
                      kwargs['mode'] = self._mode
                  file = self._opener(*self._args, **kwargs)
                  if self._mode == 'w':
                      # ensure file doesn't get overriden when opened again
                      self._mode = 'a'
                  self._cache[self._key] = file
          return file
docs: Acquiring a file object from the manager.
  
          A new file is only opened if it has expired from the
          least-recently-used cache.
  
          This method uses a lock, which ensures that it is thread-safe. You can
          safely acquire a file in multiple threads at the same time, as long as
          the underlying file object is thread-safe.
  
          Returns
          -------
          An open file object, as returned by ``opener(*args, **kwargs)``.