  
  
  def _create_delphi_esr_radar_can_parser(CP) -> CANParser:
    msg_n = len(DELPHI_ESR_RADAR_MSGS)
    messages = list(zip(DELPHI_ESR_RADAR_MSGS, [20] * msg_n))
  
    return CANParser(RADAR.DELPHI_ESR, messages, CanBus(CP).radar)
  
  
  def _create_delphi_mrr_radar_can_parser(CP) -> CANParser:
 
</s> remove                       [20] * msg_n))  # 20Hz (0.05s)
 </s> add                       [20] * msg_n, strict=True))  # 20Hz (0.05s) </s> remove   messages = list(zip(RADAR_A_MSGS + RADAR_B_MSGS, [20] * (msg_a_n + msg_b_n)))
 </s> add   messages = list(zip(RADAR_A_MSGS + RADAR_B_MSGS, [20] * (msg_a_n + msg_b_n), strict=True)) </s> remove     self.buckets_min_points = dict(zip(x_bounds, min_points))
 </s> add     self.buckets_min_points = dict(zip(x_bounds, min_points, strict=True)) </s> remove                      [RADAR_HEADER_MSG] * 7 + radar_targets * 6))
 </s> add                      [RADAR_HEADER_MSG] * 7 + radar_targets * 6, strict=True)) </s> remove ignore = ["W292", "E741", "E402", "C408", "ISC003", "B027", "B024", "B905"]
 </s> add ignore = ["W292", "E741", "E402", "C408", "ISC003", "B027", "B024"]
  messages = list(zip(DELPHI_ESR_RADAR_MSGS, [20] * msg_n, strict=True))
  
  
  def _create_delphi_esr_radar_can_parser(CP) -> CANParser:
    msg_n = len(DELPHI_ESR_RADAR_MSGS)
  messages = list(zip(DELPHI_ESR_RADAR_MSGS, [20] * msg_n, strict=True))
  
    return CANParser(RADAR.DELPHI_ESR, messages, CanBus(CP).radar)
  
  
  def _create_delphi_mrr_radar_can_parser(CP) -> CANParser:
keep keep keep keep replace keep keep keep keep keep
 Ruff: b905 (strict zip) (#29336)

* added mutable default args

* most of the Bs

* add comment about lrucache

* b905 
selfdrive/car/ford/radar_interface.py