def acquire(self, timeout=None):
raise NotImplementedError("<STR_LIT>")<EOL>
Acquire the lock.

* If timeout is omitted (or None), wait forever trying to lock the
  file.

* If timeout > 0, try to acquire the lock for that many seconds.  If
  the lock period expires and the file is still locked, raise
  LockTimeout.

* If timeout <= 0, raise AlreadyLocked immediately if the file is
  already locked.