code: def is_lock(lock):
      
      if lock is None:
          # Don't do useless tests
          return False
  
      for attr in "acquire", "release", "__enter__", "__exit__":
          if not hasattr(lock, attr):
              # Missing something
              return False
  
      # Same API as a lock
      return True
docs: Tests if the given lock is an instance of a lock class