code: def _put(self, k: T, v: U) -> None:
      expiry_time = time.monotonic_ns() + self.lifetime_ns
      self._cache[k] = v
      self._expiry_time[k] = expiry_time
      self._keys_by_expiry.add(k)
  
file_path: hail/gear/gear/time_limited_max_size_cache.py
imports: import asyncio
  import time
  from typing import Callable, Coroutine, Dict, Generic, TypeVar
  import prometheus_client
  import sortedcontainers
  from prometheus_async.aio import time
label_desc: Use image node_id 2 for calling the TimeLimitedMaxSizeCache obj's underlying member method code with example usage: obj._put(k, v) without return types