code: def format_script(sensor_graph):
      
  
      records = []
  
      records.append(SetGraphOnlineRecord(False, address=8))
      records.append(ClearDataRecord(address=8))
      records.append(ResetGraphRecord(address=8))
  
      for node in sensor_graph.nodes:
          records.append(AddNodeRecord(str(node), address=8))
  
      for streamer in sensor_graph.streamers:
          records.append(AddStreamerRecord(streamer, address=8))
  
      for stream, value in sorted(sensor_graph.constant_database.items(), key=lambda x: x[0].encode()):
          records.append(SetConstantRecord(stream, value, address=8))
  
      records.append(PersistGraphRecord(address=8))
  
      records.append(ClearConfigVariablesRecord())
      for slot in sorted(sensor_graph.config_database, key=lambda x: x.encode()):
          for config_id in sorted(sensor_graph.config_database[slot]):
              config_type, value = sensor_graph.config_database[slot][config_id]
              byte_value = _convert_to_bytes(config_type, value)
  
              records.append(SetConfigRecord(slot, config_id, byte_value))
  
      # If we have an app tag and version set program them in
      app_tag = sensor_graph.metadata_database.get('app_tag')
      app_version = sensor_graph.metadata_database.get('app_version')
  
      if app_tag is not None:
          records.append(SetDeviceTagRecord(app_tag=app_tag, app_version=app_version))
  
      script = UpdateScript(records)
      return script.encode()
docs: Create a binary script containing this sensor graph.
  
      This function produces a repeatable script by applying a known sorting
      order to all constants and config variables when iterating over those
      dictionaries.
  
      Args:
          sensor_graph (SensorGraph): the sensor graph that we want to format
  
      Returns:
          bytearray: The binary script data.