code: def __call__(self, job):
      if not job.id in self.config_ids:
          # should never happen! TODO: log warning here!
          self.config_ids.add(job.id)
          with open(self.config_fn, "a") as fh:
              fh.write(json.dumps([job.id, job.kwargs["config"], {}]))
              fh.write("\n")
      with open(self.results_fn, "a") as fh:
          fh.write(
              json.dumps(
                  [
                      job.id,
                      job.kwargs["budget"],
                      job.timestamps,
                      job.result,
                      job.exception,
                  ]
              )
          )
          fh.write("\n")
  
imports: import copy
  import os
  import json
  from hpbandster.core.base_iteration import Datum
label_desc: Use image node_id 3 for calling the json_result_logger obj's underlying member method code with example usage: obj.__call__(job) without return types