code: def join(self, seconds: Optional[float] = None):
      ts = time.time()
      for job in self._jobs:
          sec_left = (
              None if seconds is None else seconds - (time.time() - ts)
          )
          job.join(sec_left)
  
file_path: neptune-client/src/neptune/internal/backgroud_job_list.py
imports: import time
  from typing import TYPE_CHECKING, List, Optional
  from neptune.internal.background_job import BackgroundJob
label_desc: Use image node_id 4 for calling the BackgroundJobList obj's underlying member method code with example usage: obj.join(seconds) without return types