Skip to content

Commit

Permalink
fix(typing): update types to be compatible with latest mypy (backport #…
Browse files Browse the repository at this point in the history
…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 <kyle@verhoog.ca>
(cherry picked from commit 5140de4)

* 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 0ba3e29)

# 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 <munir.abdinur@datadoghq.com>
Co-authored-by: Munir Abdinur <munir_abdinur@hotmail.com>

Co-authored-by: Yun Kim <35776586+Yun-Kim@users.noreply.github.com>
Co-authored-by: Brett Langdon <brett.langdon@datadoghq.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Munir Abdinur <munir.abdinur@datadoghq.com>
Co-authored-by: Munir Abdinur <munir_abdinur@hotmail.com>
(cherry picked from commit 026d614)
  • Loading branch information
mergify[bot] committed Oct 4, 2022
1 parent daa6839 commit 81ad803
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 18 deletions.
4 changes: 2 additions & 2 deletions ddtrace/debugging/_debugger.py
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/internal/atexit.py
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/internal/runtime/runtime_metrics.py
Expand Up @@ -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()
Expand Down
9 changes: 4 additions & 5 deletions ddtrace/internal/utils/cache.py
Expand Up @@ -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):
Expand All @@ -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
Expand Down Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/internal/writer.py
Expand Up @@ -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]
):
Expand Down
4 changes: 2 additions & 2 deletions ddtrace/profiling/collector/_lock.py
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/profiling/collector/asyncio.py
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions ddtrace/profiling/collector/memalloc.py
Expand Up @@ -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:
Expand All @@ -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()

Expand Down
4 changes: 2 additions & 2 deletions ddtrace/profiling/profiler.py
Expand Up @@ -252,7 +252,7 @@ def copy(self):
}
)

def _start_service(self): # type: ignore[override]
def _start_service(self):
# type: (...) -> None
"""Start the profiler."""
collectors = []
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/profiling/scheduler.py
Expand Up @@ -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")
Expand Down

0 comments on commit 81ad803

Please sign in to comment.