Skip to content
Permalink
Browse files
fix: make TimePartitioning repr evaluable (#110)
Fixes #109  šŸ¦•
  • Loading branch information
francois-baptiste committed Oct 13, 2020
1 parent 5ea1ece commit 20f473bfff5ae98377f5d9cdf18bfe5554d86ff4
Showing with 16 additions and 3 deletions.
  1. +14 āˆ’1 google/cloud/bigquery/table.py
  2. +2 āˆ’2 tests/unit/test_table.py
@@ -2114,7 +2114,20 @@ def to_api_repr(self):
return self._properties

def _key(self):
return tuple(sorted(self._properties.items()))
# because we are only "renaming" top level keys shallow copy is sufficient here.
properties = self._properties.copy()
# calling repr for non built-in type objects.
properties["type_"] = repr(properties.pop("type"))
if "field" in properties:
# calling repr for non built-in type objects.
properties["field"] = repr(properties["field"])
if "requirePartitionFilter" in properties:
properties["require_partition_filter"] = properties.pop(
"requirePartitionFilter"
)
if "expirationMs" in properties:
properties["expiration_ms"] = properties.pop("expirationMs")
return tuple(sorted(properties.items()))

def __eq__(self, other):
if not isinstance(other, TimePartitioning):
@@ -3711,7 +3711,7 @@ def test___hash__not_equals(self):

def test___repr___minimal(self):
time_partitioning = self._make_one()
expected = "TimePartitioning(type=DAY)"
expected = "TimePartitioning(type_='DAY')"
self.assertEqual(repr(time_partitioning), expected)

def test___repr___explicit(self):
@@ -3720,7 +3720,7 @@ def test___repr___explicit(self):
time_partitioning = self._make_one(
type_=TimePartitioningType.DAY, field="name", expiration_ms=10000
)
expected = "TimePartitioning(" "expirationMs=10000," "field=name," "type=DAY)"
expected = "TimePartitioning(expiration_ms=10000,field='name',type_='DAY')"
self.assertEqual(repr(time_partitioning), expected)

def test_set_expiration_w_none(self):

0 comments on commit 20f473b

Please sign in to comment.