From 81ad8037d9bfee0c951c0329fa06bcfaf0ad5596 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:39:02 -0400 Subject: [PATCH] fix(typing): update types to be compatible with latest mypy (backport #4234) (#4263) * fix(typing): update types to be compatible with latest mypy (#4234) * Initial mypy fixes for CI * Ignored mypy error with type and type constructors * Fix formatting * Fixed incorrect typing * Undo initial change Co-authored-by: Kyle Verhoog (cherry picked from commit 5140de462beef227bdf0db3bf690e4a6d543e365) * ci(mypy): remove type callable ignores (backport #4253) (#4258) * Remove ignores for updated mypy (#4253) Mypy==0.982 has just been released and fixed the inherent type/callable type hinting that was the problem from #4234. As a result, the type ignore comments added in #4234 to bypass the type/callable issue are not unneeded and are breaking CI. (cherry picked from commit 0ba3e299475df5f670d8d019a380526c039df305) # Conflicts: # ddtrace/profiling/collector/memalloc.py # ddtrace/profiling/exporter/http.py * fix conflicts Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com> Co-authored-by: Munir Abdinur Co-authored-by: Munir Abdinur Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com> Co-authored-by: Brett Langdon Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Munir Abdinur Co-authored-by: Munir Abdinur (cherry picked from commit 026d6144c20bd7823310336b554dd073fd2bd922) --- ddtrace/debugging/_debugger.py | 4 ++-- ddtrace/internal/atexit.py | 2 +- ddtrace/internal/runtime/runtime_metrics.py | 2 +- ddtrace/internal/utils/cache.py | 9 ++++----- ddtrace/internal/writer.py | 2 +- ddtrace/profiling/collector/_lock.py | 4 ++-- ddtrace/profiling/collector/asyncio.py | 2 +- ddtrace/profiling/collector/memalloc.py | 4 ++-- ddtrace/profiling/profiler.py | 4 ++-- ddtrace/profiling/scheduler.py | 2 +- 10 files changed, 17 insertions(+), 18 deletions(-) diff --git a/ddtrace/debugging/_debugger.py b/ddtrace/debugging/_debugger.py index eda2b7a1365..2586f09a93d 100644 --- a/ddtrace/debugging/_debugger.py +++ b/ddtrace/debugging/_debugger.py @@ -590,14 +590,14 @@ def _on_poller_event(self, event, probes): else: raise ValueError("Unknown probe poller event %r" % event) - def _stop_service(self): # type: ignore[override] + def _stop_service(self): # type: () -> None self._function_store.restore_all() for service in self._services: service.stop() service.join() - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: () -> None for service in self._services: service.start() diff --git a/ddtrace/internal/atexit.py b/ddtrace/internal/atexit.py index d7d308cdd20..0d1e196be61 100644 --- a/ddtrace/internal/atexit.py +++ b/ddtrace/internal/atexit.py @@ -45,7 +45,7 @@ def register( return func def unregister(func): - # type: (typing.Callable[..., None]) -> None + # type: (typing.Callable[..., typing.Any]) -> None """ Unregister an exit function which was previously registered using atexit.register. diff --git a/ddtrace/internal/runtime/runtime_metrics.py b/ddtrace/internal/runtime/runtime_metrics.py index c418e56e1b0..57647a1d5b1 100644 --- a/ddtrace/internal/runtime/runtime_metrics.py +++ b/ddtrace/internal/runtime/runtime_metrics.py @@ -148,7 +148,7 @@ def flush(self): log.debug("Writing metric %s:%s", key, value) self._dogstatsd_client.distribution(key, value) - def _stop_service(self): # type: ignore[override] + def _stop_service(self): # type: (...) -> None # De-register span hook super(RuntimeWorker, self)._stop_service() diff --git a/ddtrace/internal/utils/cache.py b/ddtrace/internal/utils/cache.py index c2c1928cd8b..0b7288c85e5 100644 --- a/ddtrace/internal/utils/cache.py +++ b/ddtrace/internal/utils/cache.py @@ -9,9 +9,8 @@ miss = object() T = TypeVar("T") -S = TypeVar("S") -F = Callable[[T], S] -M = Callable[[Any, T], S] +F = Callable[[T], Any] +M = Callable[[Any, T], Any] class LFUCache(dict): @@ -29,7 +28,7 @@ def __init__(self, maxsize=256): self.lock = RLock() def get(self, key, f): # type: ignore[override] - # type: (T, F) -> S + # type: (T, F) -> Any """Get a value from the cache. If the value with the given key is not in the cache, the expensive @@ -69,7 +68,7 @@ def cached_wrapper(f): cache = LFUCache(maxsize) def cached_f(key): - # type: (T) -> S + # type: (T) -> Any return cache.get(key, f) cached_f.invalidate = cache.clear # type: ignore[attr-defined] diff --git a/ddtrace/internal/writer.py b/ddtrace/internal/writer.py index d2acc4730e9..666b2362fa3 100644 --- a/ddtrace/internal/writer.py +++ b/ddtrace/internal/writer.py @@ -582,7 +582,7 @@ def flush_queue(self, raise_exc=False): def periodic(self): self.flush_queue(raise_exc=False) - def _stop_service( # type: ignore[override] + def _stop_service( self, timeout=None, # type: Optional[float] ): diff --git a/ddtrace/profiling/collector/_lock.py b/ddtrace/profiling/collector/_lock.py index dec5abbfd60..14059adc48b 100644 --- a/ddtrace/profiling/collector/_lock.py +++ b/ddtrace/profiling/collector/_lock.py @@ -203,13 +203,13 @@ def _set_original( # type: (...) -> None pass - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: (...) -> None """Start collecting lock usage.""" self.patch() super(LockCollector, self)._start_service() - def _stop_service(self): # type: ignore[override] + def _stop_service(self): # type: (...) -> None """Stop collecting lock usage.""" super(LockCollector, self)._stop_service() diff --git a/ddtrace/profiling/collector/asyncio.py b/ddtrace/profiling/collector/asyncio.py index 59199149117..e6832e0db1a 100644 --- a/ddtrace/profiling/collector/asyncio.py +++ b/ddtrace/profiling/collector/asyncio.py @@ -29,7 +29,7 @@ class AsyncioLockCollector(_lock.LockCollector): PROFILED_LOCK_CLASS = _ProfiledAsyncioLock - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: (...) -> None """Start collecting lock usage.""" try: diff --git a/ddtrace/profiling/collector/memalloc.py b/ddtrace/profiling/collector/memalloc.py index f48b4b34f9f..2e218372265 100644 --- a/ddtrace/profiling/collector/memalloc.py +++ b/ddtrace/profiling/collector/memalloc.py @@ -93,7 +93,7 @@ class MemoryCollector(collector.PeriodicCollector): heap_sample_size = attr.ib(type=int, factory=_get_default_heap_sample_size) ignore_profiler = attr.ib(factory=attr_utils.from_env("DD_PROFILING_IGNORE_PROFILER", False, formats.asbool)) - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: (...) -> None """Start collecting memory profiles.""" if _memalloc is None: @@ -103,7 +103,7 @@ def _start_service(self): # type: ignore[override] super(MemoryCollector, self)._start_service() - def _stop_service(self): # type: ignore[override] + def _stop_service(self): # type: (...) -> None super(MemoryCollector, self)._stop_service() diff --git a/ddtrace/profiling/profiler.py b/ddtrace/profiling/profiler.py index 918d0f74889..92964bb652c 100644 --- a/ddtrace/profiling/profiler.py +++ b/ddtrace/profiling/profiler.py @@ -252,7 +252,7 @@ def copy(self): } ) - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: (...) -> None """Start the profiler.""" collectors = [] @@ -270,7 +270,7 @@ def _start_service(self): # type: ignore[override] if self._scheduler is not None: self._scheduler.start() - def _stop_service( # type: ignore[override] + def _stop_service( self, flush=True # type: bool ): # type: (...) -> None diff --git a/ddtrace/profiling/scheduler.py b/ddtrace/profiling/scheduler.py index 9bf2d3d139a..505520d84dd 100644 --- a/ddtrace/profiling/scheduler.py +++ b/ddtrace/profiling/scheduler.py @@ -28,7 +28,7 @@ def __attrs_post_init__(self): # Copy the value to use it later since we're going to adjust the real interval self._configured_interval = self.interval - def _start_service(self): # type: ignore[override] + def _start_service(self): # type: (...) -> None """Start the scheduler.""" LOG.debug("Starting scheduler")