You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ro...@apache.org on 2016/10/28 23:14:03 UTC
[1/2] incubator-beam git commit: Compare display data items,
not dicts.
Repository: incubator-beam
Updated Branches:
refs/heads/python-sdk 811858bca -> 00b17e542
Compare display data items, not dicts.
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/9d1cfa1a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/9d1cfa1a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/9d1cfa1a
Branch: refs/heads/python-sdk
Commit: 9d1cfa1a565137dc2ca968700e8b9f3d5d1f392e
Parents: 811858b
Author: Robert Bradshaw <ro...@google.com>
Authored: Thu Oct 27 11:04:20 2016 -0700
Committer: Robert Bradshaw <ro...@gmail.com>
Committed: Fri Oct 28 16:10:01 2016 -0700
----------------------------------------------------------------------
sdks/python/apache_beam/transforms/display.py | 13 ++++--
.../apache_beam/transforms/display_test.py | 44 +++++++++++---------
2 files changed, 35 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/9d1cfa1a/sdks/python/apache_beam/transforms/display.py
----------------------------------------------------------------------
diff --git a/sdks/python/apache_beam/transforms/display.py b/sdks/python/apache_beam/transforms/display.py
index 71fd34e..e93d560 100644
--- a/sdks/python/apache_beam/transforms/display.py
+++ b/sdks/python/apache_beam/transforms/display.py
@@ -199,6 +199,12 @@ class DisplayDataItem(object):
return self.get_dict() == other.get_dict()
return False
+ def __ne__(self, other):
+ return not self == other
+
+ def __hash__(self):
+ return hash(tuple(sorted(self.get_dict().items())))
+
@classmethod
def _format_value(cls, value, type_):
""" Returns the API representation of a value given its type.
@@ -213,9 +219,9 @@ class DisplayDataItem(object):
res = value
if type_ == 'CLASS':
res = '{}.{}'.format(value.__module__, value.__name__)
- if type_ == 'DURATION':
+ elif type_ == 'DURATION':
res = value.total_seconds()*1000
- if type_ == 'TIMESTAMP':
+ elif type_ == 'TIMESTAMP':
res = calendar.timegm(value.timetuple())*1000 + value.microsecond//1000
return res
@@ -232,7 +238,8 @@ class DisplayDataItem(object):
"""
if type_ == 'CLASS':
return value.__name__
- return None
+ else:
+ return None
@classmethod
def _get_value_type(cls, value):
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/9d1cfa1a/sdks/python/apache_beam/transforms/display_test.py
----------------------------------------------------------------------
diff --git a/sdks/python/apache_beam/transforms/display_test.py b/sdks/python/apache_beam/transforms/display_test.py
index 013172f..87d0920 100644
--- a/sdks/python/apache_beam/transforms/display_test.py
+++ b/sdks/python/apache_beam/transforms/display_test.py
@@ -23,7 +23,9 @@ from datetime import datetime
import unittest
import apache_beam as beam
-from apache_beam.transforms.display import HasDisplayData, DisplayData, DisplayDataItem
+from apache_beam.transforms.display import HasDisplayData
+from apache_beam.transforms.display import DisplayData
+from apache_beam.transforms.display import DisplayDataItem
class DisplayDataTest(unittest.TestCase):
@@ -68,26 +70,30 @@ class DisplayDataTest(unittest.TestCase):
now = datetime.now()
fn = MyDoFn(my_display_data=now)
dd = DisplayData.create_from(fn)
- dd_dicts = sorted([item.get_dict() for item in dd.items],
- key=lambda x: x['namespace']+x['key'])
nspace = '{}.{}'.format(fn.__module__, fn.__class__.__name__)
- expected_items = sorted([
- {'url': 'http://github.com', 'namespace': nspace,
- 'value': 'github.com', 'label': 'The URL',
- 'key': 'complex_url', 'type': 'STRING'},
- {'type': 'TIMESTAMP', 'namespace': nspace, 'key': 'my_dd',
- 'value': DisplayDataItem._format_value(now, 'TIMESTAMP')},
- {'type': 'STRING', 'namespace': nspace,
- 'shortValue': 'HasDisplayData', 'key': 'python_class',
- 'value': 'apache_beam.transforms.display.HasDisplayData'},
- {'type': 'INTEGER', 'namespace': nspace,
- 'value': 120, 'key': 'static_integer'},
- {'type': 'STRING', 'namespace': nspace,
- 'value': 'static me!', 'key': 'static_string'}],
- key=lambda x: x['namespace']+x['key'])
-
- self.assertEqual(dd_dicts, expected_items)
+ expected_items = set([
+ DisplayDataItem(namespace=nspace,
+ key='complex_url',
+ value='github.com',
+ label='The URL',
+ url='http://github.com'),
+ DisplayDataItem(namespace=nspace,
+ key='my_dd',
+ value=now),
+ DisplayDataItem(namespace=nspace,
+ key='python_class',
+ shortValue='HasDisplayData',
+ value='apache_beam.transforms.display.HasDisplayData'),
+ DisplayDataItem(namespace=nspace,
+ key='static_integer',
+ value=120),
+ DisplayDataItem(namespace=nspace,
+ key='static_string',
+ value='static me!'),
+ ])
+
+ self.assertEqual(set(dd.items), expected_items)
def test_subcomponent(self):
class SpecialParDo(beam.PTransform):
[2/2] incubator-beam git commit: Closes #1211
Posted by ro...@apache.org.
Closes #1211
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/00b17e54
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/00b17e54
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/00b17e54
Branch: refs/heads/python-sdk
Commit: 00b17e5426139b75a92b71dc11bcc1a8b29e18c6
Parents: 811858b 9d1cfa1
Author: Robert Bradshaw <ro...@gmail.com>
Authored: Fri Oct 28 16:10:02 2016 -0700
Committer: Robert Bradshaw <ro...@gmail.com>
Committed: Fri Oct 28 16:10:02 2016 -0700
----------------------------------------------------------------------
sdks/python/apache_beam/transforms/display.py | 13 ++++--
.../apache_beam/transforms/display_test.py | 44 +++++++++++---------
2 files changed, 35 insertions(+), 22 deletions(-)
----------------------------------------------------------------------