X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=lockfile.py;h=38134b20d02f00f8d419b5ddfef669c5002a4abf;hb=31c81f6539969a5eba864d3305f9fb7bf716a367;hp=2bbe6f4e2124419bd788312f17a0e6645d921232;hpb=36fea7f15ed17150691b5b3ead75450e575229ef;p=python_utils.git diff --git a/lockfile.py b/lockfile.py index 2bbe6f4..38134b2 100644 --- a/lockfile.py +++ b/lockfile.py @@ -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()