Fix min and max timestamp on 32-bit machines

Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/afc68bc3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/afc68bc3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/afc68bc3

Branch: refs/heads/python-sdk
Commit: afc68bc3aee9cafbe865628a9683bffdd73853ec
Parents: 3b69506
Author: Charles Chen <c...@google.com>
Authored: Thu Jul 14 00:39:01 2016 -0700
Committer: Robert Bradshaw <rober...@google.com>
Committed: Thu Jul 14 14:18:43 2016 -0700

----------------------------------------------------------------------
 sdks/python/apache_beam/coders/coders_test_common.py           | 4 ++--
 .../apache_beam/examples/complete/top_wikipedia_sessions.py    | 6 +++---
 sdks/python/apache_beam/transforms/timeutil.py                 | 5 ++---
 3 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/afc68bc3/sdks/python/apache_beam/coders/coders_test_common.py
----------------------------------------------------------------------
diff --git a/sdks/python/apache_beam/coders/coders_test_common.py 
b/sdks/python/apache_beam/coders/coders_test_common.py
index 07436cb..0266fdc 100644
--- a/sdks/python/apache_beam/coders/coders_test_common.py
+++ b/sdks/python/apache_beam/coders/coders_test_common.py
@@ -19,7 +19,6 @@
 
 import logging
 import math
-import sys
 import unittest
 
 import dill
@@ -121,9 +120,10 @@ class CodersTest(unittest.TestCase):
     # Multi-byte encoding starts at 128
     self.check_coder(coders.VarIntCoder(), *range(120, 140))
     # Large values
+    MAX_64_BIT_INT = 0x7fffffffffffffff
     self.check_coder(coders.VarIntCoder(),
                      *[int(math.pow(-1, k) * math.exp(k))
-                       for k in range(0, int(math.log(sys.maxint)))])
+                       for k in range(0, int(math.log(MAX_64_BIT_INT)))])
 
   def test_float_coder(self):
     self.check_coder(coders.FloatCoder(),

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/afc68bc3/sdks/python/apache_beam/examples/complete/top_wikipedia_sessions.py
----------------------------------------------------------------------
diff --git 
a/sdks/python/apache_beam/examples/complete/top_wikipedia_sessions.py 
b/sdks/python/apache_beam/examples/complete/top_wikipedia_sessions.py
index 55b7857..7337910 100644
--- a/sdks/python/apache_beam/examples/complete/top_wikipedia_sessions.py
+++ b/sdks/python/apache_beam/examples/complete/top_wikipedia_sessions.py
@@ -42,7 +42,6 @@ from __future__ import absolute_import
 import argparse
 import json
 import logging
-import sys
 
 import apache_beam as beam
 from apache_beam import combiners
@@ -50,6 +49,7 @@ from apache_beam import window
 
 ONE_HOUR_IN_SECONDS = 3600
 THIRTY_DAYS_IN_SECONDS = 30 * 24 * ONE_HOUR_IN_SECONDS
+MAX_TIMESTAMP = 0x7fffffffffffffff
 
 
 class ExtractUserAndTimestampDoFn(beam.DoFn):
@@ -128,8 +128,8 @@ class ComputeTopSessions(beam.PTransform):
     return (pcoll
             | beam.ParDo('ExtractUserAndTimestamp',
                          ExtractUserAndTimestampDoFn())
-            | beam.Filter(
-                lambda x: abs(hash(x)) <= sys.maxint * self.sampling_threshold)
+            | beam.Filter(lambda x: (abs(hash(x)) <=
+                                     MAX_TIMESTAMP * self.sampling_threshold))
             | ComputeSessions()
             | beam.ParDo('SessionsToStrings', SessionsToStringsDoFn())
             | TopPerMonth()

http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/afc68bc3/sdks/python/apache_beam/transforms/timeutil.py
----------------------------------------------------------------------
diff --git a/sdks/python/apache_beam/transforms/timeutil.py 
b/sdks/python/apache_beam/transforms/timeutil.py
index f72a9e4..4092b60 100644
--- a/sdks/python/apache_beam/transforms/timeutil.py
+++ b/sdks/python/apache_beam/transforms/timeutil.py
@@ -23,7 +23,6 @@ from abc import ABCMeta
 from abc import abstractmethod
 
 import datetime
-import sys
 
 
 class Timestamp(object):
@@ -115,8 +114,8 @@ class Timestamp(object):
     return Duration(micros=self.micros % other.micros)
 
 
-MIN_TIMESTAMP = Timestamp(micros=-sys.maxint - 1)
-MAX_TIMESTAMP = Timestamp(micros=sys.maxint)
+MIN_TIMESTAMP = Timestamp(micros=-0x7fffffffffffffff - 1)
+MAX_TIMESTAMP = Timestamp(micros=0x7fffffffffffffff)
 
 
 class Duration(object):

Reply via email to