From 6cf1d61b80d02937dbca9025c1922568d42a8c73 Mon Sep 17 00:00:00 2001 From: Scott Date: Tue, 1 Feb 2022 20:14:13 -0800 Subject: [PATCH] More mypy cleanup... ugh. --- logging_utils.py | 25 +++++++++++++++---------- stopwatch.py | 8 ++++---- thread_utils.py | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/logging_utils.py b/logging_utils.py index 0c4694e..a16a31b 100644 --- a/logging_utils.py +++ b/logging_utils.py @@ -8,11 +8,12 @@ import datetime import enum import io import logging +from logging.config import fileConfig from logging.handlers import RotatingFileHandler, SysLogHandler import os import random import sys -from typing import Callable, Iterable, Mapping, Optional +from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional from overrides import overrides import pytz @@ -178,7 +179,7 @@ logging_initialized = False # A map from logging_callsite_id -> count of logged messages. -squelched_logging_counts: Mapping[str, int] = {} +squelched_logging_counts: Dict[str, int] = {} def squelch_repeated_log_messages(squelch_after_n_repeats: int) -> Callable: @@ -222,7 +223,7 @@ class SquelchRepeatedMessagesFilter(logging.Filter): """ def __init__(self) -> None: - self.counters = collections.Counter() + self.counters: collections.Counter = collections.Counter() super().__init__() @overrides @@ -313,7 +314,7 @@ class DynamicPerScopeLoggingLevelFilter(logging.Filter): # A map from function_identifier -> probability of logging (0.0%..100.0%) -probabilistic_logging_levels: Mapping[str, float] = {} +probabilistic_logging_levels: Dict[str, float] = {} def logging_is_probabilistic(probability_of_logging: float) -> Callable: @@ -381,7 +382,7 @@ class MillisecondAwareFormatter(logging.Formatter): """ - converter = datetime.datetime.fromtimestamp + converter = datetime.datetime.fromtimestamp # type: ignore @overrides def formatTime(self, record, datefmt=None): @@ -465,7 +466,7 @@ def log_about_logging( def initialize_logging(logger=None) -> logging.Logger: global logging_initialized if logging_initialized: - return + return logging.getLogger() logging_initialized = True if logger is None: @@ -479,10 +480,11 @@ def initialize_logging(logger=None) -> logging.Logger: preexisting_handlers_count += 1 if config.config['logging_config_file'] is not None: - logging.config.fileConfig('logging.conf') + fileConfig(config.config['logging_config_file']) return logger - handlers = [] + handlers: List[logging.Handler] = [] + handler: Optional[logging.Handler] = None # Global default logging level (--logging_level) default_logging_level = getattr( @@ -508,7 +510,8 @@ def initialize_logging(logger=None) -> logging.Logger: if sys.platform not in ('win32', 'cygwin'): if config.config['logging_syslog_facility']: facility_name = 'LOG_' + config.config['logging_syslog_facility'] - facility = SysLogHandler.__dict__.get(facility_name, SysLogHandler.LOG_USER) + facility = SysLogHandler.__dict__.get(facility_name, SysLogHandler.LOG_USER) # type: ignore + assert facility handler = SysLogHandler(facility=facility, address='/dev/log') handler.setFormatter( MillisecondAwareFormatter( @@ -666,13 +669,15 @@ class OutputMultiplexer(object): logger = logging.getLogger(None) self.logger = logger + self.f: Optional[List[Any]] = None if filenames is not None: self.f = [open(filename, 'wb', buffering=0) for filename in filenames] else: - if destination_bitv & OutputMultiplexer.FILENAMES: + if destination_bitv & OutputMultiplexer.Destination.FILENAMES: raise ValueError("Filenames argument is required if bitv & FILENAMES") self.f = None + self.h: Optional[List[Any]] = None if handles is not None: self.h = [handle for handle in handles] else: diff --git a/stopwatch.py b/stopwatch.py index cdd405b..516138c 100644 --- a/stopwatch.py +++ b/stopwatch.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 import time -from typing import Callable +from typing import Callable, Optional class Timer(object): @@ -18,8 +18,8 @@ class Timer(object): """ def __init__(self) -> None: - self.start = None - self.end = None + self.start = 0.0 + self.end = 0.0 def __enter__(self) -> Callable[[], float]: """Returns a functor that, when called, returns the walltime of the @@ -29,6 +29,6 @@ class Timer(object): self.end = 0.0 return lambda: self.end - self.start - def __exit__(self, *args) -> bool: + def __exit__(self, *args) -> Optional[bool]: self.end = time.perf_counter() return None # don't suppress exceptions diff --git a/thread_utils.py b/thread_utils.py index 51078a4..6035b09 100644 --- a/thread_utils.py +++ b/thread_utils.py @@ -110,7 +110,7 @@ def background_thread( return inner_wrapper if _funct is None: - return wrapper + return wrapper # type: ignore else: return wrapper(_funct) -- 2.46.0