class_docstr: Class for DVC repo lock.
  
  Uses zc.lockfile as backend.
class_docstr_tok: ["Class","for","DVC","repo","lock",".","Uses","zc.lockfile","as","backend","."]
code: def __init__(self, lockfile, friendly=False, **kwargs):
      super().__init__(lockfile)
      self._friendly = friendly
      self._lock = None
      self._lock_failed = False
  
imports: import hashlib
  import os
  from abc import ABC, abstractmethod
  from datetime import timedelta
  import flufl.lock
  import zc.lockfile
  from funcy import retry
  from dvc.exceptions import DvcException
  from dvc.progress import Tqdm
  from dvc.utils import format_link
label_desc: Use image node_id 1 to create a new Lock object from inherited base classes: LockBase with example: obj = Lock(lockfile, friendly)