Skip to content

Commit 386ad8a

Browse files
zimingdxschildw
authored andcommitted
Revert "Row and PartialRow now always cast values to string (SYNPY-615) (#497)" (#498)
This reverts commit ad9626e.
1 parent ad9626e commit 386ad8a

File tree

2 files changed

+12
-40
lines changed

2 files changed

+12
-40
lines changed

synapseclient/table.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ class Row(DictObject):
856856
"""
857857
def __init__(self, values, rowId=None, versionNumber=None, etag=None):
858858
super(Row, self).__init__()
859-
self.values = [str(value) for value in values]
859+
self.values = values
860860
if rowId is not None:
861861
self.rowId = rowId
862862
if versionNumber is not None:
@@ -906,8 +906,8 @@ def __init__(self, values, rowId, etag=None, nameToColumnId=None):
906906

907907
rowId = int(rowId)
908908

909-
self.values = [{'key': str(nameToColumnId[x_key]) if nameToColumnId is not None else str(x_key),
910-
'value': str(x_value)} for x_key, x_value in six.iteritems(values)]
909+
self.values = [{'key': nameToColumnId[x_key] if nameToColumnId is not None else x_key,
910+
'value': x_value} for x_key, x_value in six.iteritems(values)]
911911
self.rowId = rowId
912912
if etag is not None:
913913
self.etag = etag

tests/unit/unit_test_tables.py

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
import math
1010
import os
1111
import sys
12-
import six
1312
import tempfile
1413
from builtins import zip
1514
from mock import MagicMock
16-
from nose.tools import assert_raises, assert_equals, assert_not_equals, raises, assert_false, assert_not_in, assert_sequence_equal, assert_in
15+
from nose.tools import assert_raises, assert_equals, assert_not_equals, raises, assert_false, assert_not_in, assert_sequence_equal
1716
from nose import SkipTest
1817
import unit
1918

@@ -23,7 +22,7 @@
2322
except ImportError:
2423
pandas_found = True
2524

26-
from nose.tools import raises, assert_equals, assert_is_instance
25+
from nose.tools import raises, assert_equals, assert_set_equal
2726
import unit
2827
import synapseclient
2928
from synapseclient import Entity
@@ -314,15 +313,13 @@ def test_csv_table():
314313
# print(table_row, expected_row)
315314
assert table_row==expected_row
316315

317-
expected_rows = [[str(val) for val in row] for row in data]
318-
319316
## test asRowSet
320317
rowset = table.asRowSet()
321-
for rowset_row, expected_row in zip(rowset.rows, expected_rows):
318+
for rowset_row, expected_row in zip(rowset.rows, data):
322319
#print(rowset_row, expected_row)
323-
assert_equals(rowset_row['values'], expected_row[2:])
324-
assert_equals(rowset_row['rowId'], expected_row[0])
325-
assert_equals(rowset_row['versionNumber'], expected_row[1])
320+
assert rowset_row['values']==expected_row[2:]
321+
assert rowset_row['rowId']==expected_row[0]
322+
assert rowset_row['versionNumber']==expected_row[1]
326323

327324
## test asDataFrame
328325
try:
@@ -371,15 +368,12 @@ def test_list_of_rows_table():
371368
## need columns to do cast_values w/o storing
372369
table = Table(schema1, data, headers=[SelectColumn.from_column(col) for col in cols])
373370

374-
375371
for table_row, expected_row in zip(table, data):
376-
assert_equals(table_row, expected_row)
377-
378-
expected_rows = [[str(val) for val in row] for row in data]
372+
assert table_row==expected_row
379373

380374
rowset = table.asRowSet()
381-
for rowset_row, expected_row in zip(rowset.rows, expected_rows):
382-
assert_equals(rowset_row['values'], expected_row)
375+
for rowset_row, expected_row in zip(rowset.rows, data):
376+
assert rowset_row['values']==expected_row
383377

384378
table.columns = cols
385379

@@ -718,22 +712,6 @@ def test_constructor__name_to_col_id(self):
718712
assert_equals(711, partial_row.rowId)
719713

720714

721-
def test_values_have_string_type(type):
722-
values = {
723-
'12three':321,
724-
456:'65four'
725-
}
726-
partial_row = PartialRow(values, rowId=11111)
727-
for key_val in partial_row.values:
728-
assert_is_instance(key_val['key'], six.string_types)
729-
assert_is_instance(key_val['value'], six.string_types)
730-
731-
expected_values = [{'key':'12three', 'value':'321'}, {'key':'456', 'value':'65four'}]
732-
assert_equals(2, len(expected_values))
733-
assert_in(expected_values[0], partial_row.values)
734-
assert_in(expected_values[1], partial_row.values)
735-
736-
737715
class TestPartialRowSet():
738716
@raises(ValueError)
739717
def test_constructor__not_all_rows_of_type_PartialRow(self):
@@ -747,9 +725,3 @@ def test_constructor__single_PartialRow(self):
747725
assert_equals([partial_row], partial_rowset.rows)
748726

749727

750-
class TestRow():
751-
def test_values_have_string_type(self):
752-
row = Row([1,2,"three"])
753-
for val in row.values:
754-
assert_is_instance(val, six.string_types)
755-
assert_equals(["1","2","three"], row.values)

0 commit comments

Comments
 (0)