class_docstr: Simply watches the existence of the lock file.
code: def _acquire(self):
      raise_on_exist_ro_file(self._lock_file)
      # first check for exists and read-only mode as the open will mask this case as EEXIST
      mode = (
          os.O_WRONLY  # open for writing only
          | os.O_CREAT
          | os.O_EXCL  # together with above raise EEXIST if the file specified by filename exists
          | os.O_TRUNC  # truncate the file to zero byte
      )
      try:
          fd = os.open(self._lock_file, mode)
      except OSError as exception:
          if exception.errno == EEXIST:  # expected if cannot lock
              pass
          elif (
              exception.errno == ENOENT
          ):  # No such file or directory - parent directory is missing
              raise
          elif (
              exception.errno == EACCES and sys.platform != "win32"
          ):  # Permission denied - parent dir is R/O
              raise  # note windows does not allow you to make a folder r/o only files
      else:
          self._lock_file_fd = fd
  
file_path: catboost/contrib/python/filelock/py2/filelock/_soft.py
imports: import os
  import sys
  from errno import EACCES, EEXIST, ENOENT
  from ._api import BaseFileLock
  from ._util import raise_on_exist_ro_file
label_desc: Use image node_id 1 for calling the SoftFileLock obj's underlying member method code with example usage: obj._acquire() without return types