code: def recorder(self):
      if not self.record_mode:
          return
      self.record_value["X"].append(self.X)
      self.record_value["Y"].append(self.Y)
  
imports: import numpy
  from sko.tools import func_transformer
  from .base import SkoBase
  from .operators import crossover, mutation, ranking, selection
  from .operators import mutation
label_desc: Use image node_id 8 for calling the PSO_TSP obj's underlying member method code with example usage: obj.recorder() without return types