Пример #1
0
    def testIdentity(self):
        """Tests if a dict with values equal to keys is returned
    """
        target = {"wan": 1, "too": 2, "tree": 3}
        expected_dict = {"wan": "wan", "too": "too", "tree": "tree"}
        self.assertEqual(dicts.identity(target), expected_dict)

        target = {}
        expected_dict = {}
        self.assertEqual(dicts.identity(target), expected_dict)
Пример #2
0
  def testIdentity(self):
    """Tests if a dict with values equal to keys is returned
    """
    target = {'wan': 1, 'too': 2, 'tree': 3}
    expected_dict = {'wan': 'wan', 'too': 'too', 'tree': 'tree'}
    self.assertEqual(dicts.identity(target), expected_dict)

    target = {}
    expected_dict = {}
    self.assertEqual(dicts.identity(target), expected_dict)
Пример #3
0
    def testIdentity(self):
        """Tests if a dict with values equal to keys is returned
    """
        target = {'wan': 1, 'too': 2, 'tree': 3}
        expected_dict = {'wan': 'wan', 'too': 'too', 'tree': 'tree'}
        self.assertEqual(dicts.identity(target), expected_dict)

        target = {}
        expected_dict = {}
        self.assertEqual(dicts.identity(target), expected_dict)
Пример #4
0
def saveDataToCSV(csv_filename, data, key_order):
  """Saves data in order into CSV file.
  
  This is a helper function used with acceptedStudentsCSVExport().
  """
  
  import csv
  import StringIO
  
  from soc.logic import dicts
  
  file_handler = StringIO.StringIO()
  
  writer = csv.DictWriter(file_handler, key_order, dialect='excel')
  writer.writerow(dicts.identity(key_order))
  
  # encode the data to UTF-8 to ensure compatibiliy
  for row_dict in data:
    for key in row_dict.keys():
      value = row_dict[key]
      if isinstance(value, basestring):
        row_dict[key] = value.encode("utf-8")
      else:
        row_dict[key] = str(value)
    writer.writerow(row_dict)
  
  csv_data = file_handler.getvalue()
  csv_file = open(csv_filename, 'w')
  csv_file.write(csv_data)
  csv_file.close()
Пример #5
0
  def csv(self, request, data, filename, params, key_order=None):
    """Returns data as a csv file.

    If key_order is set data should be a sequence of dicts, otherwise
    data should be a sequence of lists, see csv.writer and
    csv.DictWriter for more information.
    """

    params = params.copy()
    params['export_extension'] = '.csv'
    params['export_content_type'] = 'text/csv'
    # fieldnames = params['csv_fieldnames']

    file_handler = StringIO.StringIO()

    if key_order:
      writer = csv.DictWriter(file_handler, key_order, dialect='excel')
      writer.writerow(dicts.identity(key_order))

      # encode the data to UTF-8 to ensure compatibiliy
      for row_dict in data:
        for key in row_dict.keys():
          value = row_dict[key]
          if isinstance(value, basestring):
            row_dict[key] = value.encode("utf-8")
          else:
            row_dict[key] = str(value)
        writer.writerow(row_dict)
    else:
      writer = csv.writer(file_handler, dialect='excel')

      # encode the data to UTF-8 to ensure compatibiliy
      for row in data:
        if row:
          writer.writerow(row.encode("utf-8"))
        else:
          writer.writerow(row)

    data = file_handler.getvalue()

    return self.download(request, data, filename, params)
Пример #6
0
  def csv(self, request, data, filename, params, key_order=None):
    """Returns data as a csv file.

    If key_order is set data should be a sequence of dicts, otherwise
    data should be a sequence of lists, see csv.writer and
    csv.DictWriter for more information.
    """

    params = params.copy()
    params['export_extension'] = '.csv'
    params['export_content_type'] = 'text/csv'
    # fieldnames = params['csv_fieldnames']

    file_handler = StringIO.StringIO()

    if key_order:
      writer = csv.DictWriter(file_handler, key_order, dialect='excel')
      writer.writerow(dicts.identity(key_order))

      # encode the data to UTF-8 to ensure compatibiliy
      for row_dict in data:
        for key in row_dict.keys():
          value = row_dict[key]
          if isinstance(value, basestring):
            row_dict[key] = value.encode("utf-8")
          else:
            row_dict[key] = str(value)
        writer.writerow(row_dict)
    else:
      writer = csv.writer(file_handler, dialect='excel')

      # encode the data to UTF-8 to ensure compatibiliy
      for row in data:
        if row:
          writer.writerow(row.encode("utf-8"))
        else:
          writer.writerow(row)

    data = file_handler.getvalue()

    return self.download(request, data, filename, params)
Пример #7
0
def saveDataToCSV(csv_filename, data, key_order):
    """Saves data in order into CSV file.

  This is a helper function used for exporting CSV data.
  
  Args:
    csv_filename: The name of the file where to save the CSV data
    data: the data dict to write to CSV
    key_order: the order in which to export the data in data dict
  """

    import csv
    import StringIO

    from soc.logic import dicts

    file_handler = StringIO.StringIO()

    # ignore the extra data
    writer = csv.DictWriter(file_handler,
                            key_order,
                            extrasaction='ignore',
                            dialect='excel')
    writer.writerow(dicts.identity(key_order))

    # encode the data to UTF-8 to ensure compatibiliy
    for row_dict in data:
        for key in row_dict.keys():
            value = row_dict[key]
            if isinstance(value, basestring):
                row_dict[key] = value.encode("utf-8")
            else:
                row_dict[key] = str(value)
        writer.writerow(row_dict)

    csv_data = file_handler.getvalue()
    csv_file = open(csv_filename, 'w')
    csv_file.write(csv_data)
    csv_file.close()
Пример #8
0
def saveDataToCSV(csv_filename, data, key_order):
  """Saves data in order into CSV file.

  This is a helper function used for exporting CSV data.
  
  Args:
    csv_filename: The name of the file where to save the CSV data
    data: the data dict to write to CSV
    key_order: the order in which to export the data in data dict
  """

  import csv
  import StringIO

  from soc.logic import dicts

  file_handler = StringIO.StringIO()

  # ignore the extra data
  writer = csv.DictWriter(file_handler, key_order, extrasaction='ignore', dialect='excel')
  writer.writerow(dicts.identity(key_order))

  # encode the data to UTF-8 to ensure compatibiliy
  for row_dict in data:
    for key in row_dict.keys():
      value = row_dict[key]
      if isinstance(value, basestring):
        row_dict[key] = value.encode("utf-8")
      else:
        row_dict[key] = str(value)
    writer.writerow(row_dict)

  csv_data = file_handler.getvalue()
  csv_file = open(csv_filename, 'w')
  csv_file.write(csv_data)
  csv_file.close()