Used isort to sort imports. Also added to the git pre-commit hook.
[python_utils.git] / lockfile.py
index 2bbe6f4e2124419bd788312f17a0e6645d921232..38134b20d02f00f8d419b5ddfef669c5002a4abf 100644 (file)
@@ -1,23 +1,20 @@
 #!/usr/bin/env python3
 
-from dataclasses import dataclass
 import datetime
 import json
 import logging
 import os
 import signal
 import sys
-from typing import Optional
 import warnings
+from dataclasses import dataclass
+from typing import Optional
 
 import config
 import datetime_utils
 import decorator_utils
 
-
-cfg = config.add_commandline_args(
-    f'Lockfile ({__file__})', 'Args related to lockfiles'
-)
+cfg = config.add_commandline_args(f'Lockfile ({__file__})', 'Args related to lockfiles')
 cfg.add_argument(
     '--lockfile_held_duration_warning_threshold_sec',
     type=float,
@@ -36,7 +33,7 @@ class LockFileException(Exception):
 class LockFileContents:
     pid: int
     commandline: str
-    expiration_timestamp: float
+    expiration_timestamp: Optional[float]
 
 
 class LockFile(object):
@@ -136,9 +133,7 @@ class LockFile(object):
                 duration
                 >= config.config['lockfile_held_duration_warning_threshold_sec']
             ):
-                str_duration = datetime_utils.describe_duration_briefly(
-                    duration
-                )
+                str_duration = datetime_utils.describe_duration_briefly(duration)
                 msg = f'Held {self.lockfile} for {str_duration}'
                 logger.warning(msg)
                 warnings.warn(msg, stacklevel=2)
@@ -185,7 +180,7 @@ class LockFile(object):
                     # Has the lock expiration expired?
                     if contents.expiration_timestamp is not None:
                         now = datetime.datetime.now().timestamp()
-                        if now > contents.expiration_datetime:
+                        if now > contents.expiration_timestamp:
                             msg = f'Lockfile {self.lockfile} expiration time has passed; force acquiring'
                             logger.warning(msg)
                             self.release()