code: def read_csv(filename, keys=None, convert_types=False, **kwargs):
      '''
      Read a CSV in canonical form: ::
  
          <agent_id, t_step, key, value, value_type>
  
      '''
      df = pd.read_csv(filename)
      if convert_types:
          df = convert_types_slow(df)
      if keys:
          df = df[df['key'].isin(keys)]
      df = process_one(df)
      return df read_csv(filename, keys=None, convert_types=False, **kwargs):
      '''
      Read a CSV in canonical form: ::
  
          <agent_id, t_step, key, value, value_type>
  
      '''
      df = pd.read_csv(filename)
      if convert_types:
          df = convert_types_slow(df)
      if keys:
          df = df[df['key'].isin(keys)]
      df = process_one(df)
      return df
docs: Read a CSV in canonical form: ::
  
          <agent_id, t_step, key, value, value_type>