Ver código fonte

HUE-8737 [beeswax] Futurize apps/beeswax for Python 3.5

Ying Chen 6 anos atrás
pai
commit
ebbca95860
28 arquivos alterados com 639 adições e 574 exclusões
  1. 43 41
      apps/beeswax/gen-py/TCLIService/TCLIService.py
  2. 2 1
      apps/beeswax/gen-py/TCLIService/constants.py
  3. 105 103
      apps/beeswax/gen-py/TCLIService/ttypes.py
  4. 32 29
      apps/beeswax/gen-py/fb303/FacebookService.py
  5. 2 1
      apps/beeswax/gen-py/fb303/constants.py
  6. 1 0
      apps/beeswax/gen-py/fb303/ttypes.py
  7. 114 111
      apps/beeswax/gen-py/hive_metastore/ThriftHiveMetastore.py
  8. 2 1
      apps/beeswax/gen-py/hive_metastore/constants.py
  9. 115 113
      apps/beeswax/gen-py/hive_metastore/ttypes.py
  10. 24 23
      apps/beeswax/src/beeswax/api.py
  11. 2 1
      apps/beeswax/src/beeswax/common.py
  12. 6 3
      apps/beeswax/src/beeswax/conf.py
  13. 18 13
      apps/beeswax/src/beeswax/create_table.py
  14. 2 1
      apps/beeswax/src/beeswax/create_table_tests.py
  15. 9 7
      apps/beeswax/src/beeswax/data_export.py
  16. 6 3
      apps/beeswax/src/beeswax/design.py
  17. 2 1
      apps/beeswax/src/beeswax/forms.py
  18. 2 1
      apps/beeswax/src/beeswax/hive_site.py
  19. 9 8
      apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py
  20. 2 1
      apps/beeswax/src/beeswax/management/commands/close_queries.py
  21. 2 1
      apps/beeswax/src/beeswax/management/commands/close_sessions.py
  22. 9 7
      apps/beeswax/src/beeswax/models.py
  23. 13 11
      apps/beeswax/src/beeswax/server/dbms.py
  24. 6 5
      apps/beeswax/src/beeswax/server/hive_metastore_server.py
  25. 40 35
      apps/beeswax/src/beeswax/server/hive_server2_lib.py
  26. 10 6
      apps/beeswax/src/beeswax/test_base.py
  27. 40 28
      apps/beeswax/src/beeswax/tests.py
  28. 21 19
      apps/beeswax/src/beeswax/views.py

+ 43 - 41
apps/beeswax/gen-py/TCLIService/TCLIService.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 #
 #
 # Autogenerated by Thrift Compiler (0.9.3)
 # Autogenerated by Thrift Compiler (0.9.3)
 #
 #
@@ -6,9 +7,10 @@
 #  options string: py:new_style
 #  options string: py:new_style
 #
 #
 
 
+from builtins import object
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import logging
 import logging
-from ttypes import *
+from .ttypes import *
 from thrift.Thrift import TProcessor
 from thrift.Thrift import TProcessor
 from thrift.transport import TTransport
 from thrift.transport import TTransport
 from thrift.protocol import TBinaryProtocol, TProtocol
 from thrift.protocol import TBinaryProtocol, TProtocol
@@ -1268,7 +1270,7 @@ class OpenSession_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1333,7 +1335,7 @@ class OpenSession_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1399,7 +1401,7 @@ class CloseSession_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1464,7 +1466,7 @@ class CloseSession_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1530,7 +1532,7 @@ class GetInfo_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1595,7 +1597,7 @@ class GetInfo_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1661,7 +1663,7 @@ class ExecuteStatement_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1726,7 +1728,7 @@ class ExecuteStatement_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1792,7 +1794,7 @@ class GetTypeInfo_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1857,7 +1859,7 @@ class GetTypeInfo_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1923,7 +1925,7 @@ class GetCatalogs_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1988,7 +1990,7 @@ class GetCatalogs_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2054,7 +2056,7 @@ class GetSchemas_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2119,7 +2121,7 @@ class GetSchemas_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2185,7 +2187,7 @@ class GetTables_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2250,7 +2252,7 @@ class GetTables_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2316,7 +2318,7 @@ class GetTableTypes_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2381,7 +2383,7 @@ class GetTableTypes_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2447,7 +2449,7 @@ class GetColumns_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2512,7 +2514,7 @@ class GetColumns_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2578,7 +2580,7 @@ class GetFunctions_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2643,7 +2645,7 @@ class GetFunctions_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2709,7 +2711,7 @@ class GetOperationStatus_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2774,7 +2776,7 @@ class GetOperationStatus_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2840,7 +2842,7 @@ class CancelOperation_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2905,7 +2907,7 @@ class CancelOperation_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2971,7 +2973,7 @@ class CloseOperation_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3036,7 +3038,7 @@ class CloseOperation_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3102,7 +3104,7 @@ class GetResultSetMetadata_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3167,7 +3169,7 @@ class GetResultSetMetadata_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3233,7 +3235,7 @@ class FetchResults_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3298,7 +3300,7 @@ class FetchResults_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3364,7 +3366,7 @@ class GetDelegationToken_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3429,7 +3431,7 @@ class GetDelegationToken_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3495,7 +3497,7 @@ class CancelDelegationToken_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3560,7 +3562,7 @@ class CancelDelegationToken_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3626,7 +3628,7 @@ class RenewDelegationToken_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3691,7 +3693,7 @@ class RenewDelegationToken_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3757,7 +3759,7 @@ class GetLog_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3822,7 +3824,7 @@ class GetLog_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):

+ 2 - 1
apps/beeswax/gen-py/TCLIService/constants.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 #
 #
 # Autogenerated by Thrift Compiler (0.9.3)
 # Autogenerated by Thrift Compiler (0.9.3)
 #
 #
@@ -7,7 +8,7 @@
 #
 #
 
 
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
+from .ttypes import *
 
 
 PRIMITIVE_TYPES = set([
 PRIMITIVE_TYPES = set([
     0,
     0,

+ 105 - 103
apps/beeswax/gen-py/TCLIService/ttypes.py

@@ -6,6 +6,8 @@
 #  options string: py:new_style
 #  options string: py:new_style
 #
 #
 
 
+from builtins import range
+from builtins import object
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 
 
 from thrift.transport import TTransport
 from thrift.transport import TTransport
@@ -448,7 +450,7 @@ class TTypeQualifierValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -484,7 +486,7 @@ class TTypeQualifiers(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.qualifiers = {}
           self.qualifiers = {}
           (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
           (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
-          for _i4 in xrange(_size0):
+          for _i4 in range(_size0):
             _key5 = iprot.readString()
             _key5 = iprot.readString()
             _val6 = TTypeQualifierValue()
             _val6 = TTypeQualifierValue()
             _val6.read(iprot)
             _val6.read(iprot)
@@ -505,7 +507,7 @@ class TTypeQualifiers(object):
     if self.qualifiers is not None:
     if self.qualifiers is not None:
       oprot.writeFieldBegin('qualifiers', TType.MAP, 1)
       oprot.writeFieldBegin('qualifiers', TType.MAP, 1)
       oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.qualifiers))
       oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.qualifiers))
-      for kiter7,viter8 in self.qualifiers.items():
+      for kiter7,viter8 in list(self.qualifiers.items()):
         oprot.writeString(kiter7)
         oprot.writeString(kiter7)
         viter8.write(oprot)
         viter8.write(oprot)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -526,7 +528,7 @@ class TTypeQualifiers(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -607,7 +609,7 @@ class TPrimitiveTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -674,7 +676,7 @@ class TArrayTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -756,7 +758,7 @@ class TMapTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -792,7 +794,7 @@ class TStructTypeEntry(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.nameToTypePtr = {}
           self.nameToTypePtr = {}
           (_ktype10, _vtype11, _size9 ) = iprot.readMapBegin()
           (_ktype10, _vtype11, _size9 ) = iprot.readMapBegin()
-          for _i13 in xrange(_size9):
+          for _i13 in range(_size9):
             _key14 = iprot.readString()
             _key14 = iprot.readString()
             _val15 = iprot.readI32()
             _val15 = iprot.readI32()
             self.nameToTypePtr[_key14] = _val15
             self.nameToTypePtr[_key14] = _val15
@@ -812,7 +814,7 @@ class TStructTypeEntry(object):
     if self.nameToTypePtr is not None:
     if self.nameToTypePtr is not None:
       oprot.writeFieldBegin('nameToTypePtr', TType.MAP, 1)
       oprot.writeFieldBegin('nameToTypePtr', TType.MAP, 1)
       oprot.writeMapBegin(TType.STRING, TType.I32, len(self.nameToTypePtr))
       oprot.writeMapBegin(TType.STRING, TType.I32, len(self.nameToTypePtr))
-      for kiter16,viter17 in self.nameToTypePtr.items():
+      for kiter16,viter17 in list(self.nameToTypePtr.items()):
         oprot.writeString(kiter16)
         oprot.writeString(kiter16)
         oprot.writeI32(viter17)
         oprot.writeI32(viter17)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -833,7 +835,7 @@ class TStructTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -869,7 +871,7 @@ class TUnionTypeEntry(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.nameToTypePtr = {}
           self.nameToTypePtr = {}
           (_ktype19, _vtype20, _size18 ) = iprot.readMapBegin()
           (_ktype19, _vtype20, _size18 ) = iprot.readMapBegin()
-          for _i22 in xrange(_size18):
+          for _i22 in range(_size18):
             _key23 = iprot.readString()
             _key23 = iprot.readString()
             _val24 = iprot.readI32()
             _val24 = iprot.readI32()
             self.nameToTypePtr[_key23] = _val24
             self.nameToTypePtr[_key23] = _val24
@@ -889,7 +891,7 @@ class TUnionTypeEntry(object):
     if self.nameToTypePtr is not None:
     if self.nameToTypePtr is not None:
       oprot.writeFieldBegin('nameToTypePtr', TType.MAP, 1)
       oprot.writeFieldBegin('nameToTypePtr', TType.MAP, 1)
       oprot.writeMapBegin(TType.STRING, TType.I32, len(self.nameToTypePtr))
       oprot.writeMapBegin(TType.STRING, TType.I32, len(self.nameToTypePtr))
-      for kiter25,viter26 in self.nameToTypePtr.items():
+      for kiter25,viter26 in list(self.nameToTypePtr.items()):
         oprot.writeString(kiter25)
         oprot.writeString(kiter25)
         oprot.writeI32(viter26)
         oprot.writeI32(viter26)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -910,7 +912,7 @@ class TUnionTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -977,7 +979,7 @@ class TUserDefinedTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1113,7 +1115,7 @@ class TTypeEntry(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1149,7 +1151,7 @@ class TTypeDesc(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.types = []
           self.types = []
           (_etype30, _size27) = iprot.readListBegin()
           (_etype30, _size27) = iprot.readListBegin()
-          for _i31 in xrange(_size27):
+          for _i31 in range(_size27):
             _elem32 = TTypeEntry()
             _elem32 = TTypeEntry()
             _elem32.read(iprot)
             _elem32.read(iprot)
             self.types.append(_elem32)
             self.types.append(_elem32)
@@ -1189,7 +1191,7 @@ class TTypeDesc(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1300,7 +1302,7 @@ class TColumnDesc(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1336,7 +1338,7 @@ class TTableSchema(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.columns = []
           self.columns = []
           (_etype37, _size34) = iprot.readListBegin()
           (_etype37, _size34) = iprot.readListBegin()
-          for _i38 in xrange(_size34):
+          for _i38 in range(_size34):
             _elem39 = TColumnDesc()
             _elem39 = TColumnDesc()
             _elem39.read(iprot)
             _elem39.read(iprot)
             self.columns.append(_elem39)
             self.columns.append(_elem39)
@@ -1376,7 +1378,7 @@ class TTableSchema(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1441,7 +1443,7 @@ class TBoolValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1506,7 +1508,7 @@ class TByteValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1571,7 +1573,7 @@ class TI16Value(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1636,7 +1638,7 @@ class TI32Value(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1701,7 +1703,7 @@ class TI64Value(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1766,7 +1768,7 @@ class TDoubleValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1831,7 +1833,7 @@ class TStringValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1981,7 +1983,7 @@ class TColumnValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2017,7 +2019,7 @@ class TRow(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.colVals = []
           self.colVals = []
           (_etype44, _size41) = iprot.readListBegin()
           (_etype44, _size41) = iprot.readListBegin()
-          for _i45 in xrange(_size41):
+          for _i45 in range(_size41):
             _elem46 = TColumnValue()
             _elem46 = TColumnValue()
             _elem46.read(iprot)
             _elem46.read(iprot)
             self.colVals.append(_elem46)
             self.colVals.append(_elem46)
@@ -2057,7 +2059,7 @@ class TRow(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2096,7 +2098,7 @@ class TBoolColumn(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype51, _size48) = iprot.readListBegin()
           (_etype51, _size48) = iprot.readListBegin()
-          for _i52 in xrange(_size48):
+          for _i52 in range(_size48):
             _elem53 = iprot.readBool()
             _elem53 = iprot.readBool()
             self.values.append(_elem53)
             self.values.append(_elem53)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2147,7 +2149,7 @@ class TBoolColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2186,7 +2188,7 @@ class TByteColumn(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype58, _size55) = iprot.readListBegin()
           (_etype58, _size55) = iprot.readListBegin()
-          for _i59 in xrange(_size55):
+          for _i59 in range(_size55):
             _elem60 = iprot.readByte()
             _elem60 = iprot.readByte()
             self.values.append(_elem60)
             self.values.append(_elem60)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2237,7 +2239,7 @@ class TByteColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2276,7 +2278,7 @@ class TI16Column(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype65, _size62) = iprot.readListBegin()
           (_etype65, _size62) = iprot.readListBegin()
-          for _i66 in xrange(_size62):
+          for _i66 in range(_size62):
             _elem67 = iprot.readI16()
             _elem67 = iprot.readI16()
             self.values.append(_elem67)
             self.values.append(_elem67)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2327,7 +2329,7 @@ class TI16Column(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2366,7 +2368,7 @@ class TI32Column(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype72, _size69) = iprot.readListBegin()
           (_etype72, _size69) = iprot.readListBegin()
-          for _i73 in xrange(_size69):
+          for _i73 in range(_size69):
             _elem74 = iprot.readI32()
             _elem74 = iprot.readI32()
             self.values.append(_elem74)
             self.values.append(_elem74)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2417,7 +2419,7 @@ class TI32Column(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2456,7 +2458,7 @@ class TI64Column(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype79, _size76) = iprot.readListBegin()
           (_etype79, _size76) = iprot.readListBegin()
-          for _i80 in xrange(_size76):
+          for _i80 in range(_size76):
             _elem81 = iprot.readI64()
             _elem81 = iprot.readI64()
             self.values.append(_elem81)
             self.values.append(_elem81)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2507,7 +2509,7 @@ class TI64Column(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2546,7 +2548,7 @@ class TDoubleColumn(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype86, _size83) = iprot.readListBegin()
           (_etype86, _size83) = iprot.readListBegin()
-          for _i87 in xrange(_size83):
+          for _i87 in range(_size83):
             _elem88 = iprot.readDouble()
             _elem88 = iprot.readDouble()
             self.values.append(_elem88)
             self.values.append(_elem88)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2597,7 +2599,7 @@ class TDoubleColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2636,7 +2638,7 @@ class TStringColumn(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype93, _size90) = iprot.readListBegin()
           (_etype93, _size90) = iprot.readListBegin()
-          for _i94 in xrange(_size90):
+          for _i94 in range(_size90):
             _elem95 = iprot.readString()
             _elem95 = iprot.readString()
             self.values.append(_elem95)
             self.values.append(_elem95)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2687,7 +2689,7 @@ class TStringColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2726,7 +2728,7 @@ class TBinaryColumn(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.values = []
           self.values = []
           (_etype100, _size97) = iprot.readListBegin()
           (_etype100, _size97) = iprot.readListBegin()
-          for _i101 in xrange(_size97):
+          for _i101 in range(_size97):
             _elem102 = iprot.readString()
             _elem102 = iprot.readString()
             self.values.append(_elem102)
             self.values.append(_elem102)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -2777,7 +2779,7 @@ class TBinaryColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2941,7 +2943,7 @@ class TColumn(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2988,7 +2990,7 @@ class TRowSet(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.rows = []
           self.rows = []
           (_etype107, _size104) = iprot.readListBegin()
           (_etype107, _size104) = iprot.readListBegin()
-          for _i108 in xrange(_size104):
+          for _i108 in range(_size104):
             _elem109 = TRow()
             _elem109 = TRow()
             _elem109.read(iprot)
             _elem109.read(iprot)
             self.rows.append(_elem109)
             self.rows.append(_elem109)
@@ -2999,7 +3001,7 @@ class TRowSet(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.columns = []
           self.columns = []
           (_etype113, _size110) = iprot.readListBegin()
           (_etype113, _size110) = iprot.readListBegin()
-          for _i114 in xrange(_size110):
+          for _i114 in range(_size110):
             _elem115 = TColumn()
             _elem115 = TColumn()
             _elem115.read(iprot)
             _elem115.read(iprot)
             self.columns.append(_elem115)
             self.columns.append(_elem115)
@@ -3054,7 +3056,7 @@ class TRowSet(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3107,7 +3109,7 @@ class TStatus(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.infoMessages = []
           self.infoMessages = []
           (_etype121, _size118) = iprot.readListBegin()
           (_etype121, _size118) = iprot.readListBegin()
-          for _i122 in xrange(_size118):
+          for _i122 in range(_size118):
             _elem123 = iprot.readString()
             _elem123 = iprot.readString()
             self.infoMessages.append(_elem123)
             self.infoMessages.append(_elem123)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -3181,7 +3183,7 @@ class TStatus(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3263,7 +3265,7 @@ class THandleIdentifier(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3331,7 +3333,7 @@ class TSessionHandle(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3442,7 +3444,7 @@ class TOperationHandle(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3502,7 +3504,7 @@ class TOpenSessionReq(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.configuration = {}
           self.configuration = {}
           (_ktype126, _vtype127, _size125 ) = iprot.readMapBegin()
           (_ktype126, _vtype127, _size125 ) = iprot.readMapBegin()
-          for _i129 in xrange(_size125):
+          for _i129 in range(_size125):
             _key130 = iprot.readString()
             _key130 = iprot.readString()
             _val131 = iprot.readString()
             _val131 = iprot.readString()
             self.configuration[_key130] = _val131
             self.configuration[_key130] = _val131
@@ -3534,7 +3536,7 @@ class TOpenSessionReq(object):
     if self.configuration is not None:
     if self.configuration is not None:
       oprot.writeFieldBegin('configuration', TType.MAP, 4)
       oprot.writeFieldBegin('configuration', TType.MAP, 4)
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.configuration))
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.configuration))
-      for kiter132,viter133 in self.configuration.items():
+      for kiter132,viter133 in list(self.configuration.items()):
         oprot.writeString(kiter132)
         oprot.writeString(kiter132)
         oprot.writeString(viter133)
         oprot.writeString(viter133)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -3558,7 +3560,7 @@ class TOpenSessionReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3620,7 +3622,7 @@ class TOpenSessionResp(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.configuration = {}
           self.configuration = {}
           (_ktype135, _vtype136, _size134 ) = iprot.readMapBegin()
           (_ktype135, _vtype136, _size134 ) = iprot.readMapBegin()
-          for _i138 in xrange(_size134):
+          for _i138 in range(_size134):
             _key139 = iprot.readString()
             _key139 = iprot.readString()
             _val140 = iprot.readString()
             _val140 = iprot.readString()
             self.configuration[_key139] = _val140
             self.configuration[_key139] = _val140
@@ -3652,7 +3654,7 @@ class TOpenSessionResp(object):
     if self.configuration is not None:
     if self.configuration is not None:
       oprot.writeFieldBegin('configuration', TType.MAP, 4)
       oprot.writeFieldBegin('configuration', TType.MAP, 4)
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.configuration))
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.configuration))
-      for kiter141,viter142 in self.configuration.items():
+      for kiter141,viter142 in list(self.configuration.items()):
         oprot.writeString(kiter141)
         oprot.writeString(kiter141)
         oprot.writeString(viter142)
         oprot.writeString(viter142)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -3678,7 +3680,7 @@ class TOpenSessionResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3746,7 +3748,7 @@ class TCloseSessionReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3814,7 +3816,7 @@ class TCloseSessionResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -3944,7 +3946,7 @@ class TGetInfoValue(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4027,7 +4029,7 @@ class TGetInfoReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4111,7 +4113,7 @@ class TGetInfoResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4167,7 +4169,7 @@ class TExecuteStatementReq(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.confOverlay = {}
           self.confOverlay = {}
           (_ktype144, _vtype145, _size143 ) = iprot.readMapBegin()
           (_ktype144, _vtype145, _size143 ) = iprot.readMapBegin()
-          for _i147 in xrange(_size143):
+          for _i147 in range(_size143):
             _key148 = iprot.readString()
             _key148 = iprot.readString()
             _val149 = iprot.readString()
             _val149 = iprot.readString()
             self.confOverlay[_key148] = _val149
             self.confOverlay[_key148] = _val149
@@ -4200,7 +4202,7 @@ class TExecuteStatementReq(object):
     if self.confOverlay is not None:
     if self.confOverlay is not None:
       oprot.writeFieldBegin('confOverlay', TType.MAP, 3)
       oprot.writeFieldBegin('confOverlay', TType.MAP, 3)
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.confOverlay))
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.confOverlay))
-      for kiter150,viter151 in self.confOverlay.items():
+      for kiter150,viter151 in list(self.confOverlay.items()):
         oprot.writeString(kiter150)
         oprot.writeString(kiter150)
         oprot.writeString(viter151)
         oprot.writeString(viter151)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -4230,7 +4232,7 @@ class TExecuteStatementReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4312,7 +4314,7 @@ class TExecuteStatementResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4380,7 +4382,7 @@ class TGetTypeInfoReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4462,7 +4464,7 @@ class TGetTypeInfoResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4530,7 +4532,7 @@ class TGetCatalogsReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4612,7 +4614,7 @@ class TGetCatalogsResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4706,7 +4708,7 @@ class TGetSchemasReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4788,7 +4790,7 @@ class TGetSchemasResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4857,7 +4859,7 @@ class TGetTablesReq(object):
         if ftype == TType.LIST:
         if ftype == TType.LIST:
           self.tableTypes = []
           self.tableTypes = []
           (_etype155, _size152) = iprot.readListBegin()
           (_etype155, _size152) = iprot.readListBegin()
-          for _i156 in xrange(_size152):
+          for _i156 in range(_size152):
             _elem157 = iprot.readString()
             _elem157 = iprot.readString()
             self.tableTypes.append(_elem157)
             self.tableTypes.append(_elem157)
           iprot.readListEnd()
           iprot.readListEnd()
@@ -4916,7 +4918,7 @@ class TGetTablesReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -4998,7 +5000,7 @@ class TGetTablesResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5066,7 +5068,7 @@ class TGetTableTypesReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5148,7 +5150,7 @@ class TGetTableTypesResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5268,7 +5270,7 @@ class TGetColumnsReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5350,7 +5352,7 @@ class TGetColumnsResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5459,7 +5461,7 @@ class TGetFunctionsReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5541,7 +5543,7 @@ class TGetFunctionsResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5609,7 +5611,7 @@ class TGetOperationStatusReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5729,7 +5731,7 @@ class TGetOperationStatusResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5797,7 +5799,7 @@ class TCancelOperationReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5865,7 +5867,7 @@ class TCancelOperationResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -5933,7 +5935,7 @@ class TCloseOperationReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6001,7 +6003,7 @@ class TCloseOperationResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6069,7 +6071,7 @@ class TGetResultSetMetadataReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6151,7 +6153,7 @@ class TGetResultSetMetadataResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6262,7 +6264,7 @@ class TFetchResultsReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6357,7 +6359,7 @@ class TFetchResultsResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6455,7 +6457,7 @@ class TGetDelegationTokenReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6536,7 +6538,7 @@ class TGetDelegationTokenResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6619,7 +6621,7 @@ class TCancelDelegationTokenReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6687,7 +6689,7 @@ class TCancelDelegationTokenResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6770,7 +6772,7 @@ class TRenewDelegationTokenReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6838,7 +6840,7 @@ class TRenewDelegationTokenResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6906,7 +6908,7 @@ class TGetLogReq(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -6989,7 +6991,7 @@ class TGetLogResp(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):

+ 32 - 29
apps/beeswax/gen-py/fb303/FacebookService.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 #
 #
 # Autogenerated by Thrift Compiler (0.9.3)
 # Autogenerated by Thrift Compiler (0.9.3)
 #
 #
@@ -6,9 +7,11 @@
 #  options string: py:new_style
 #  options string: py:new_style
 #
 #
 
 
+from builtins import range
+from builtins import object
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import logging
 import logging
-from ttypes import *
+from .ttypes import *
 from thrift.Thrift import TProcessor
 from thrift.Thrift import TProcessor
 from thrift.transport import TTransport
 from thrift.transport import TTransport
 from thrift.protocol import TBinaryProtocol, TProtocol
 from thrift.protocol import TBinaryProtocol, TProtocol
@@ -794,7 +797,7 @@ class getName_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -858,7 +861,7 @@ class getName_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -904,7 +907,7 @@ class getVersion_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -968,7 +971,7 @@ class getVersion_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1014,7 +1017,7 @@ class getStatus_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1078,7 +1081,7 @@ class getStatus_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1124,7 +1127,7 @@ class getStatusDetails_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1188,7 +1191,7 @@ class getStatusDetails_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1234,7 +1237,7 @@ class getCounters_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1269,7 +1272,7 @@ class getCounters_result(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.success = {}
           self.success = {}
           (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
           (_ktype1, _vtype2, _size0 ) = iprot.readMapBegin()
-          for _i4 in xrange(_size0):
+          for _i4 in range(_size0):
             _key5 = iprot.readString()
             _key5 = iprot.readString()
             _val6 = iprot.readI64()
             _val6 = iprot.readI64()
             self.success[_key5] = _val6
             self.success[_key5] = _val6
@@ -1289,7 +1292,7 @@ class getCounters_result(object):
     if self.success is not None:
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.MAP, 0)
       oprot.writeFieldBegin('success', TType.MAP, 0)
       oprot.writeMapBegin(TType.STRING, TType.I64, len(self.success))
       oprot.writeMapBegin(TType.STRING, TType.I64, len(self.success))
-      for kiter7,viter8 in self.success.items():
+      for kiter7,viter8 in list(self.success.items()):
         oprot.writeString(kiter7)
         oprot.writeString(kiter7)
         oprot.writeI64(viter8)
         oprot.writeI64(viter8)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -1308,7 +1311,7 @@ class getCounters_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1373,7 +1376,7 @@ class getCounter_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1437,7 +1440,7 @@ class getCounter_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1515,7 +1518,7 @@ class setOption_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1561,7 +1564,7 @@ class setOption_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1626,7 +1629,7 @@ class getOption_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1690,7 +1693,7 @@ class getOption_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1736,7 +1739,7 @@ class getOptions_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1771,7 +1774,7 @@ class getOptions_result(object):
         if ftype == TType.MAP:
         if ftype == TType.MAP:
           self.success = {}
           self.success = {}
           (_ktype10, _vtype11, _size9 ) = iprot.readMapBegin()
           (_ktype10, _vtype11, _size9 ) = iprot.readMapBegin()
-          for _i13 in xrange(_size9):
+          for _i13 in range(_size9):
             _key14 = iprot.readString()
             _key14 = iprot.readString()
             _val15 = iprot.readString()
             _val15 = iprot.readString()
             self.success[_key14] = _val15
             self.success[_key14] = _val15
@@ -1791,7 +1794,7 @@ class getOptions_result(object):
     if self.success is not None:
     if self.success is not None:
       oprot.writeFieldBegin('success', TType.MAP, 0)
       oprot.writeFieldBegin('success', TType.MAP, 0)
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
       oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
-      for kiter16,viter17 in self.success.items():
+      for kiter16,viter17 in list(self.success.items()):
         oprot.writeString(kiter16)
         oprot.writeString(kiter16)
         oprot.writeString(viter17)
         oprot.writeString(viter17)
       oprot.writeMapEnd()
       oprot.writeMapEnd()
@@ -1810,7 +1813,7 @@ class getOptions_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1875,7 +1878,7 @@ class getCpuProfile_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1939,7 +1942,7 @@ class getCpuProfile_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -1985,7 +1988,7 @@ class aliveSince_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2049,7 +2052,7 @@ class aliveSince_result(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2095,7 +2098,7 @@ class reinitialize_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):
@@ -2141,7 +2144,7 @@ class shutdown_args(object):
 
 
   def __repr__(self):
   def __repr__(self):
     L = ['%s=%r' % (key, value)
     L = ['%s=%r' % (key, value)
-      for key, value in self.__dict__.iteritems()]
+      for key, value in self.__dict__.items()]
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
     return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 
 
   def __eq__(self, other):
   def __eq__(self, other):

+ 2 - 1
apps/beeswax/gen-py/fb303/constants.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 #
 #
 # Autogenerated by Thrift Compiler (0.9.3)
 # Autogenerated by Thrift Compiler (0.9.3)
 #
 #
@@ -7,5 +8,5 @@
 #
 #
 
 
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
+from .ttypes import *
 
 

+ 1 - 0
apps/beeswax/gen-py/fb303/ttypes.py

@@ -6,6 +6,7 @@
 #  options string: py:new_style
 #  options string: py:new_style
 #
 #
 
 
+from builtins import object
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 
 
 from thrift.transport import TTransport
 from thrift.transport import TTransport

Diferenças do arquivo suprimidas por serem muito extensas
+ 114 - 111
apps/beeswax/gen-py/hive_metastore/ThriftHiveMetastore.py


+ 2 - 1
apps/beeswax/gen-py/hive_metastore/constants.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 #
 #
 # Autogenerated by Thrift Compiler (0.9.3)
 # Autogenerated by Thrift Compiler (0.9.3)
 #
 #
@@ -7,7 +8,7 @@
 #
 #
 
 
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 from thrift.Thrift import TType, TMessageType, TException, TApplicationException
-from ttypes import *
+from .ttypes import *
 
 
 DDL_TIME = "transient_lastDdlTime"
 DDL_TIME = "transient_lastDdlTime"
 HIVE_FILTER_FIELD_OWNER = "hive_filter_field_owner__"
 HIVE_FILTER_FIELD_OWNER = "hive_filter_field_owner__"

Diferenças do arquivo suprimidas por serem muito extensas
+ 115 - 113
apps/beeswax/gen-py/hive_metastore/ttypes.py


+ 24 - 23
apps/beeswax/src/beeswax/api.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import zip
 import logging
 import logging
 import json
 import json
 import re
 import re
@@ -60,9 +61,9 @@ def error_handler(view_fn):
   def decorator(request, *args, **kwargs):
   def decorator(request, *args, **kwargs):
     try:
     try:
       return view_fn(request, *args, **kwargs)
       return view_fn(request, *args, **kwargs)
-    except Http404, e:
+    except Http404 as e:
       raise e
       raise e
-    except Exception, e:
+    except Exception as e:
       LOG.exception('error in %s' % view_fn)
       LOG.exception('error in %s' % view_fn)
 
 
       if not hasattr(e, 'message') or not e.message:
       if not hasattr(e, 'message') or not e.message:
@@ -129,7 +130,7 @@ def _autocomplete(db, database=None, table=None, column=None, nested=None, query
           db = dbms.get(db.client.user, query_server, cluster=cluster)
           db = dbms.get(db.client.user, query_server, cluster=cluster)
 
 
         col_options = db.get_table_describe(database, table.name)
         col_options = db.get_table_describe(database, table.name)
-        extra_col_options = dict([(col[0], dict(zip(col_options.cols(), col))) for col in col_options.rows()])
+        extra_col_options = dict([(col[0], dict(list(zip(col_options.cols(), col)))) for col in col_options.rows()])
 
 
         for col_props in cols_extended:
         for col_props in cols_extended:
           col_props.update(extra_col_options.get(col_props['name'], {}))
           col_props.update(extra_col_options.get(col_props['name'], {}))
@@ -153,10 +154,10 @@ def _autocomplete(db, database=None, table=None, column=None, nested=None, query
             response['sample'] = sample['rows']
             response['sample'] = sample['rows']
       else:
       else:
         raise Exception('Could not find column `%s`.`%s`.`%s`' % (database, table, column))
         raise Exception('Could not find column `%s`.`%s`.`%s`' % (database, table, column))
-  except (QueryServerTimeoutException, TTransportException), e:
+  except (QueryServerTimeoutException, TTransportException) as e:
     response['code'] = 503
     response['code'] = 503
     response['error'] = e.message
     response['error'] = e.message
-  except Exception, e:
+  except Exception as e:
     LOG.warn('Autocomplete data fetching error: %s' % e)
     LOG.warn('Autocomplete data fetching error: %s' % e)
     response['code'] = 500
     response['code'] = 500
     response['error'] = e.message
     response['error'] = e.message
@@ -228,16 +229,16 @@ def watch_query_refresh_json(request, id):
       close_operation(request, id)
       close_operation(request, id)
       query_history = db.execute_next_statement(query_history, request.POST.get('query-query'))
       query_history = db.execute_next_statement(query_history, request.POST.get('query-query'))
       handle, state = _get_query_handle_and_state(query_history)
       handle, state = _get_query_handle_and_state(query_history)
-  except QueryServerException, ex:
+  except QueryServerException as ex:
     raise ex
     raise ex
-  except Exception, ex:
+  except Exception as ex:
     LOG.exception(ex)
     LOG.exception(ex)
     handle, state = _get_query_handle_and_state(query_history)
     handle, state = _get_query_handle_and_state(query_history)
 
 
   try:
   try:
     start_over = request.POST.get('log-start-over') == 'true'
     start_over = request.POST.get('log-start-over') == 'true'
     log = db.get_log(handle, start_over=start_over)
     log = db.get_log(handle, start_over=start_over)
-  except Exception, ex:
+  except Exception as ex:
     log = str(ex)
     log = str(ex)
 
 
   jobs = parse_out_jobs(log)
   jobs = parse_out_jobs(log)
@@ -353,7 +354,7 @@ def execute(request, design_id=None):
               else:
               else:
                 return execute_directly(request, query, design, query_server, parameters=parameters)
                 return execute_directly(request, query, design, query_server, parameters=parameters)
 
 
-            except Exception, ex:
+            except Exception as ex:
               db = dbms.get(request.user, query_server)
               db = dbms.get(request.user, query_server)
               error_message, log = expand_exception(ex, db)
               error_message, log = expand_exception(ex, db)
               response['message'] = error_message
               response['message'] = error_message
@@ -376,7 +377,7 @@ def execute(request, design_id=None):
         'file_resources': query_form.file_resources.errors,
         'file_resources': query_form.file_resources.errors,
         'functions': query_form.functions.errors,
         'functions': query_form.functions.errors,
       }
       }
-  except RuntimeError, e:
+  except RuntimeError as e:
     response['message']= str(e)
     response['message']= str(e)
 
 
   return JsonResponse(response)
   return JsonResponse(response)
@@ -408,7 +409,7 @@ def save_query_design(request, design_id=None):
         'functions': query_form.functions.errors,
         'functions': query_form.functions.errors,
         'saveform': query_form.saveform.errors,
         'saveform': query_form.saveform.errors,
       }
       }
-  except RuntimeError, e:
+  except RuntimeError as e:
     response['message'] = str(e)
     response['message'] = str(e)
 
 
   return JsonResponse(response)
   return JsonResponse(response)
@@ -455,8 +456,8 @@ def cancel_query(request, query_history_id):
       db.cancel_operation(query_history.get_handle())
       db.cancel_operation(query_history.get_handle())
       query_history.set_to_expired()
       query_history.set_to_expired()
       response['status'] = 0
       response['status'] = 0
-    except Exception, e:
-      response['message'] = unicode(e)
+    except Exception as e:
+      response['message'] = str(e)
 
 
   return JsonResponse(response)
   return JsonResponse(response)
 
 
@@ -499,7 +500,7 @@ def save_results_hdfs_directory(request, query_history_id):
         response['success_url'] = '/filebrowser/view=%s' % target_dir
         response['success_url'] = '/filebrowser/view=%s' % target_dir
         query_history = db.insert_query_into_directory(query_history, target_dir)
         query_history = db.insert_query_into_directory(query_history, target_dir)
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
-      except Exception, ex:
+      except Exception as ex:
         error_msg, log = expand_exception(ex, db)
         error_msg, log = expand_exception(ex, db)
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['status'] = -3
         response['status'] = -3
@@ -545,7 +546,7 @@ def save_results_hdfs_file(request, query_history_id):
 
 
       try:
       try:
         handle, state = _get_query_handle_and_state(query_history)
         handle, state = _get_query_handle_and_state(query_history)
-      except Exception, ex:
+      except Exception as ex:
         response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
         response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
         response['status'] = -2
         response['status'] = -2
         return JsonResponse(response)
         return JsonResponse(response)
@@ -565,7 +566,7 @@ def save_results_hdfs_file(request, query_history_id):
         response['path'] = target_file
         response['path'] = target_file
         response['success_url'] = '/filebrowser/view=%s' % target_file
         response['success_url'] = '/filebrowser/view=%s' % target_file
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
-      except Exception, ex:
+      except Exception as ex:
         error_msg, log = expand_exception(ex, db)
         error_msg, log = expand_exception(ex, db)
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['status'] = -3
         response['status'] = -3
@@ -608,7 +609,7 @@ def save_results_hive_table(request, query_history_id):
       try:
       try:
         handle, state = _get_query_handle_and_state(query_history)
         handle, state = _get_query_handle_and_state(query_history)
         result_meta = db.get_results_metadata(handle)
         result_meta = db.get_results_metadata(handle)
-      except Exception, ex:
+      except Exception as ex:
         response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
         response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
         response['status'] = -2
         response['status'] = -2
         return JsonResponse(response)
         return JsonResponse(response)
@@ -621,14 +622,14 @@ def save_results_hive_table(request, query_history_id):
         response['path'] = form.cleaned_data['target_table']
         response['path'] = form.cleaned_data['target_table']
         response['success_url'] = reverse('metastore:describe_table', kwargs={'database': form.target_database, 'table': form.cleaned_data['target_table']})
         response['success_url'] = reverse('metastore:describe_table', kwargs={'database': form.target_database, 'table': form.cleaned_data['target_table']})
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
         response['watch_url'] = reverse(get_app_name(request) + ':api_watch_query_refresh_json', kwargs={'id': query_history.id})
-      except Exception, ex:
+      except Exception as ex:
         error_msg, log = expand_exception(ex, db)
         error_msg, log = expand_exception(ex, db)
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['message'] = _('The result could not be saved: %s.') % error_msg
         response['status'] = -3
         response['status'] = -3
 
 
     else:
     else:
       response['status'] = 1
       response['status'] = 1
-      response['message'] = '\n'.join(form.errors.values()[0])
+      response['message'] = '\n'.join(list(form.errors.values())[0])
 
 
   return JsonResponse(response)
   return JsonResponse(response)
 
 
@@ -833,7 +834,7 @@ def get_session(request, session_id=None):
   if session is not None:
   if session is not None:
     properties = json.loads(session.properties)
     properties = json.loads(session.properties)
     # Redact passwords
     # Redact passwords
-    for key, value in properties.items():
+    for key, value in list(properties.items()):
       if 'password' in key.lower():
       if 'password' in key.lower():
         properties[key] = '*' * len(value)
         properties[key] = '*' * len(value)
 
 
@@ -876,7 +877,7 @@ def describe_table(request, database, table):
   try:
   try:
     from metastore.views import describe_table as metastore_describe_table
     from metastore.views import describe_table as metastore_describe_table
     return metastore_describe_table(request, database, table)
     return metastore_describe_table(request, database, table)
-  except Exception, e:
+  except Exception as e:
     LOG.exception('Describe table failed')
     LOG.exception('Describe table failed')
     raise PopupException(_('Problem accessing table metadata'), detail=e)
     raise PopupException(_('Problem accessing table metadata'), detail=e)
 
 
@@ -922,13 +923,13 @@ def get_query_form(request):
       query_server = dbms.get_query_server_config(get_app_name(request))
       query_server = dbms.get_query_server_config(get_app_name(request))
       db = dbms.get(request.user, query_server)
       db = dbms.get(request.user, query_server)
       databases = [(database, database) for database in db.get_databases()]
       databases = [(database, database) for database in db.get_databases()]
-    except StructuredThriftTransportException, e:
+    except StructuredThriftTransportException as e:
       # If Thrift exception was due to failed authentication, raise corresponding message
       # If Thrift exception was due to failed authentication, raise corresponding message
       if 'TSocket read 0 bytes' in str(e) or 'Error validating the login' in str(e):
       if 'TSocket read 0 bytes' in str(e) or 'Error validating the login' in str(e):
         raise PopupException(_('Failed to authenticate to query server, check authentication configurations.'), detail=e)
         raise PopupException(_('Failed to authenticate to query server, check authentication configurations.'), detail=e)
       else:
       else:
         raise e
         raise e
-  except Exception, e:
+  except Exception as e:
     raise PopupException(_('Unable to access databases, Query Server or Metastore may be down.'), detail=e)
     raise PopupException(_('Unable to access databases, Query Server or Metastore may be down.'), detail=e)
 
 
   if not databases:
   if not databases:

+ 2 - 1
apps/beeswax/src/beeswax/common.py

@@ -18,6 +18,7 @@
 """
 """
 Common utils for beeswax.
 Common utils for beeswax.
 """
 """
+from __future__ import print_function
 
 
 import re
 import re
 import time
 import time
@@ -56,7 +57,7 @@ def timing(fn):
     time1 = time.time()
     time1 = time.time()
     ret = fn(*args, **kwargs)
     ret = fn(*args, **kwargs)
     time2 = time.time()
     time2 = time.time()
-    print '%s elapsed time: %0.3f ms' % (fn.func_name, (time2-time1)*1000.0)
+    print('%s elapsed time: %0.3f ms' % (fn.__name__, (time2-time1)*1000.0))
     return ret
     return ret
   return decorator
   return decorator
 
 

+ 6 - 3
apps/beeswax/src/beeswax/conf.py

@@ -15,6 +15,9 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from __future__ import division
+from builtins import str
+from past.utils import old_div
 import logging
 import logging
 import os.path
 import os.path
 import sys
 import sys
@@ -180,7 +183,7 @@ DOWNLOAD_CELL_LIMIT = Config(
 
 
 def get_deprecated_download_cell_limit():
 def get_deprecated_download_cell_limit():
   """Get the old default"""
   """Get the old default"""
-  return DOWNLOAD_CELL_LIMIT.get() / 100 if DOWNLOAD_CELL_LIMIT.get() > 0 else DOWNLOAD_CELL_LIMIT.get()
+  return old_div(DOWNLOAD_CELL_LIMIT.get(), 100) if DOWNLOAD_CELL_LIMIT.get() > 0 else DOWNLOAD_CELL_LIMIT.get()
 
 
 DOWNLOAD_ROW_LIMIT = Config(
 DOWNLOAD_ROW_LIMIT = Config(
   key='download_row_limit',
   key='download_row_limit',
@@ -314,14 +317,14 @@ def config_validator(user):
         if handle:
         if handle:
           server.fetch(handle, rows=100)
           server.fetch(handle, rows=100)
           server.close(handle)
           server.close(handle)
-    except StructuredThriftTransportException, e:
+    except StructuredThriftTransportException as e:
       if 'Error validating the login' in str(e):
       if 'Error validating the login' in str(e):
         msg = 'Failed to authenticate to HiveServer2, check authentication configurations.'
         msg = 'Failed to authenticate to HiveServer2, check authentication configurations.'
         LOG.exception(msg)
         LOG.exception(msg)
         res.append((NICE_NAME, _(msg)))
         res.append((NICE_NAME, _(msg)))
       else:
       else:
         raise e
         raise e
-  except Exception, e:
+  except Exception as e:
     msg = "The application won't work without a running HiveServer2."
     msg = "The application won't work without a running HiveServer2."
     LOG.exception(msg)
     LOG.exception(msg)
     res.append((NICE_NAME, _(msg)))
     res.append((NICE_NAME, _(msg)))

+ 18 - 13
apps/beeswax/src/beeswax/create_table.py

@@ -16,6 +16,11 @@
 # limitations under the License.
 # limitations under the License.
 
 
 
 
+from __future__ import division
+from builtins import str
+from builtins import range
+from builtins import object
+from past.utils import old_div
 import csv
 import csv
 import gzip
 import gzip
 import json
 import json
@@ -154,7 +159,7 @@ def import_wizard(request, database='default'):
       cancel_s3_column_def = request.POST.get('cancel_create')  # Step 3 -> 2
       cancel_s3_column_def = request.POST.get('cancel_create')  # Step 3 -> 2
 
 
       # Exactly one of these should be True
       # Exactly one of these should be True
-      if len(filter(None, (do_s2_auto_delim, do_s2_user_delim, do_s3_column_def, do_hive_create, cancel_s2_user_delim, cancel_s3_column_def))) != 1:
+      if len([_f for _f in (do_s2_auto_delim, do_s2_user_delim, do_s3_column_def, do_hive_create, cancel_s2_user_delim, cancel_s3_column_def) if _f]) != 1:
         raise PopupException(_('Invalid form submission'))
         raise PopupException(_('Invalid form submission'))
 
 
       if not do_s2_auto_delim:
       if not do_s2_auto_delim:
@@ -184,7 +189,7 @@ def import_wizard(request, database='default'):
           elif load_data == 'EXTERNAL':
           elif load_data == 'EXTERNAL':
             if not request.fs.isdir(path):
             if not request.fs.isdir(path):
               raise PopupException(_('Path location must refer to a directory if "Create External Table" is selected.'))
               raise PopupException(_('Path location must refer to a directory if "Create External Table" is selected.'))
-        except (IOError, S3FileSystemException), e:
+        except (IOError, S3FileSystemException) as e:
           raise PopupException(_('Path location "%s" is invalid: %s') % (path, e))
           raise PopupException(_('Path location "%s" is invalid: %s') % (path, e))
 
 
         delim_is_auto = True
         delim_is_auto = True
@@ -226,7 +231,7 @@ def import_wizard(request, database='default'):
         try:
         try:
           fields_list_for_json = list(fields_list)
           fields_list_for_json = list(fields_list)
           if fields_list_for_json:
           if fields_list_for_json:
-            fields_list_for_json[0] = map(lambda a: re.sub('[^\w]', '', a), fields_list_for_json[0]) # Cleaning headers
+            fields_list_for_json[0] = [re.sub('[^\w]', '', a) for a in fields_list_for_json[0]] # Cleaning headers
           apps_list = _get_apps(request.user, '')
           apps_list = _get_apps(request.user, '')
           return render('import_wizard_define_columns.mako', request, {
           return render('import_wizard_define_columns.mako', request, {
             'apps': apps_list,
             'apps': apps_list,
@@ -240,7 +245,7 @@ def import_wizard(request, database='default'):
             'database': database,
             'database': database,
             'databases': databases
             'databases': databases
           })
           })
-        except Exception, e:
+        except Exception as e:
           raise PopupException(_("The selected delimiter is creating an un-even number of columns. Please make sure you don't have empty columns."), detail=e)
           raise PopupException(_("The selected delimiter is creating an un-even number of columns. Please make sure you don't have empty columns."), detail=e)
 
 
       #
       #
@@ -269,7 +274,7 @@ def import_wizard(request, database='default'):
         )
         )
         try:
         try:
           return _submit_create_and_load(request, proposed_query, table_name, path, load_data, database=database)
           return _submit_create_and_load(request, proposed_query, table_name, path, load_data, database=database)
-        except QueryServerException, e:
+        except QueryServerException as e:
           raise PopupException(_('The table could not be created.'), detail=e.message)
           raise PopupException(_('The table could not be created.'), detail=e.message)
   else:
   else:
     s1_file_form = CreateByImportFileForm()
     s1_file_form = CreateByImportFileForm()
@@ -322,7 +327,7 @@ def _delim_preview(fs, file_form, encoding, file_types, delimiters):
     file_obj = fs.open(path)
     file_obj = fs.open(path)
     delim, file_type, fields_list = _parse_fields(path, file_obj, encoding, file_types, delimiters)
     delim, file_type, fields_list = _parse_fields(path, file_obj, encoding, file_types, delimiters)
     file_obj.close()
     file_obj.close()
-  except IOError, ex:
+  except IOError as ex:
     msg = "Failed to open file '%s': %s" % (path, ex)
     msg = "Failed to open file '%s': %s" % (path, ex)
     LOG.exception(msg)
     LOG.exception(msg)
     raise PopupException(msg)
     raise PopupException(msg)
@@ -332,7 +337,7 @@ def _delim_preview(fs, file_form, encoding, file_types, delimiters):
   delimiter_0 = delim
   delimiter_0 = delim
   delimiter_1 = ''
   delimiter_1 = ''
   # If custom delimiter
   # If custom delimiter
-  if not filter(lambda val: val[0] == delim, TERMINATOR_CHOICES):
+  if not [val for val in TERMINATOR_CHOICES if val[0] == delim]:
     delimiter_0 = '__other__'
     delimiter_0 = '__other__'
     delimiter_1 = delim
     delimiter_1 = delim
 
 
@@ -396,11 +401,11 @@ def _readfields(lines, delimiters):
     if min(len_list) == 1:
     if min(len_list) == 1:
       return 0
       return 0
 
 
-    avg_n_fields = sum(len_list) / n_lines
+    avg_n_fields = old_div(sum(len_list), n_lines)
     sq_of_exp = avg_n_fields * avg_n_fields
     sq_of_exp = avg_n_fields * avg_n_fields
 
 
     len_list_sq = [l * l for l in len_list]
     len_list_sq = [l * l for l in len_list]
-    exp_of_sq = sum(len_list_sq) / n_lines
+    exp_of_sq = old_div(sum(len_list_sq), n_lines)
     var = exp_of_sq - sq_of_exp
     var = exp_of_sq - sq_of_exp
     # Favour more fields
     # Favour more fields
     return (1000.0 / (var + 1)) + avg_n_fields
     return (1000.0 / (var + 1)) + avg_n_fields
@@ -439,7 +444,7 @@ def _peek_file(fs, file_form):
     file_head = file_obj.read(IMPORT_PEEK_SIZE)
     file_head = file_obj.read(IMPORT_PEEK_SIZE)
     file_obj.close()
     file_obj.close()
     return (path, file_head)
     return (path, file_head)
-  except IOError, ex:
+  except IOError as ex:
     msg = _("Failed to open file '%(path)s': %(error)s.") % {'path': path, 'error': ex}
     msg = _("Failed to open file '%(path)s': %(error)s.") % {'path': path, 'error': ex}
     LOG.exception(msg)
     LOG.exception(msg)
     raise PopupException(msg)
     raise PopupException(msg)
@@ -458,7 +463,7 @@ class GzipFileReader(object):
     except IOError:
     except IOError:
       return None
       return None
     try:
     try:
-      return unicode(data, encoding, errors='replace').splitlines()[:IMPORT_PEEK_NLINES]
+      return str(data, encoding, errors='replace').splitlines()[:IMPORT_PEEK_NLINES]
     except UnicodeError:
     except UnicodeError:
       return None
       return None
 
 
@@ -474,7 +479,7 @@ class TextFileReader(object):
     """readlines(fileobj, encoding) -> list of lines"""
     """readlines(fileobj, encoding) -> list of lines"""
     try:
     try:
       data = fileobj.read(IMPORT_PEEK_SIZE)
       data = fileobj.read(IMPORT_PEEK_SIZE)
-      return unicode(data, encoding, errors='replace').splitlines()[:IMPORT_PEEK_NLINES]
+      return str(data, encoding, errors='replace').splitlines()[:IMPORT_PEEK_NLINES]
     except UnicodeError:
     except UnicodeError:
       return None
       return None
 
 
@@ -504,7 +509,7 @@ def load_after_create(request, database):
 
 
   try:
   try:
     return execute_directly(request, query, on_success_url=on_success_url)
     return execute_directly(request, query, on_success_url=on_success_url)
-  except Exception, e:
+  except Exception as e:
     message = 'The table data could not be loaded'
     message = 'The table data could not be loaded'
     LOG.exception(message)
     LOG.exception(message)
     detail = e.message if hasattr(e, 'message') and e.message else None
     detail = e.message if hasattr(e, 'message') and e.message else None

+ 2 - 1
apps/beeswax/src/beeswax/create_table_tests.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import object
 import logging
 import logging
 
 
 from nose.tools import assert_equal, assert_true, assert_raises
 from nose.tools import assert_equal, assert_true, assert_raises
@@ -26,7 +27,7 @@ from beeswax.forms import _clean_terminator
 LOG = logging.getLogger(__name__)
 LOG = logging.getLogger(__name__)
 
 
 
 
-class TestCreateTable():
+class TestCreateTable(object):
 
 
   def test_custom_delimiter(self):
   def test_custom_delimiter(self):
     # Any thing is good
     # Any thing is good

+ 9 - 7
apps/beeswax/src/beeswax/data_export.py

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import str
+from builtins import object
 import json
 import json
 import logging
 import logging
 import math
 import math
@@ -81,7 +83,7 @@ def upload(path, handle, user, db, fs, max_rows=-1, max_bytes=-1):
     fs.do_as_user(user.username, fs.append, path, dataset.csv)
     fs.do_as_user(user.username, fs.append, path, dataset.csv)
 
 
 
 
-class DataAdapter:
+class DataAdapter(object):
 
 
   def __init__(self, db, handle=None, max_rows=-1, start_over=True, max_bytes=-1, store_data_type_in_header=False):
   def __init__(self, db, handle=None, max_rows=-1, start_over=True, max_bytes=-1, store_data_type_in_header=False):
     self.handle = handle
     self.handle = handle
@@ -113,27 +115,27 @@ class DataAdapter:
     size += 2 # CSV \r\n at the end of row
     size += 2 # CSV \r\n at the end of row
     for col in row:
     for col in row:
       col_type = type(col)
       col_type = type(col)
-      if col_type == types.IntType:
+      if col_type == int:
         if col == 0:
         if col == 0:
           size += 1
           size += 1
         elif col < 0:
         elif col < 0:
           size += int(math.log10(-1 * col)) + 2
           size += int(math.log10(-1 * col)) + 2
         else:
         else:
           size += int(math.log10(col)) + 1
           size += int(math.log10(col)) + 1
-      elif col_type == types.StringType:
+      elif col_type == bytes:
         size += len(col)
         size += len(col)
-      elif col_type == types.FloatType:
+      elif col_type == float:
         size += len(str(col))
         size += len(str(col))
-      elif col_type == types.BooleanType:
+      elif col_type == bool:
         size += 4
         size += 4
-      elif col_type == types.NoneType:
+      elif col_type == type(None):
         size += 4
         size += 4
       else:
       else:
         size += len(str(col))
         size += len(str(col))
 
 
     return size
     return size
 
 
-  def next(self):
+  def __next__(self):
     results = self.db.fetch(self.handle, start_over=self.start_over, rows=self.fetch_size)
     results = self.db.fetch(self.handle, start_over=self.start_over, rows=self.fetch_size)
     if self.first_fetched:
     if self.first_fetched:
       self.first_fetched = False
       self.first_fetched = False

+ 6 - 3
apps/beeswax/src/beeswax/design.py

@@ -19,11 +19,14 @@
 The HQLdesign class can (de)serialize a design to/from a QueryDict.
 The HQLdesign class can (de)serialize a design to/from a QueryDict.
 """
 """
 
 
+from future import standard_library
+standard_library.install_aliases()
+from builtins import object
 import json
 import json
 import logging
 import logging
 import os
 import os
 import re
 import re
-import urlparse
+import urllib.parse
 
 
 import django.http
 import django.http
 from django import forms
 from django import forms
@@ -150,7 +153,7 @@ class HQLdesign(object):
   def loads(data):
   def loads(data):
     """Returns an HQLdesign from the serialized form"""
     """Returns an HQLdesign from the serialized form"""
     dic = json.loads(data)
     dic = json.loads(data)
-    dic = dict(map(lambda k: (str(k), dic.get(k)), dic.keys()))
+    dic = dict([(str(k), dic.get(k)) for k in list(dic.keys())])
     if dic['VERSION'] != SERIALIZATION_VERSION:
     if dic['VERSION'] != SERIALIZATION_VERSION:
       LOG.error('Design version mismatch. Found %s; expect %s' % (dic['VERSION'], SERIALIZATION_VERSION))
       LOG.error('Design version mismatch. Found %s; expect %s' % (dic['VERSION'], SERIALIZATION_VERSION))
 
 
@@ -190,7 +193,7 @@ class HQLdesign(object):
     configuration = []
     configuration = []
 
 
     for f in self.file_resources:
     for f in self.file_resources:
-      if not urlparse.urlsplit(f['path']).scheme:
+      if not urllib.parse.urlsplit(f['path']).scheme:
         scheme = get_hdfs().fs_defaultfs
         scheme = get_hdfs().fs_defaultfs
       else:
       else:
         scheme = ''
         scheme = ''

+ 2 - 1
apps/beeswax/src/beeswax/forms.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import chr
 from django import forms
 from django import forms
 from django.utils.translation import ugettext as _, ugettext_lazy as _t
 from django.utils.translation import ugettext as _, ugettext_lazy as _t
 from django.core.validators import MinValueValidator, MaxValueValidator
 from django.core.validators import MinValueValidator, MaxValueValidator
@@ -351,7 +352,7 @@ class CreateByImportDelimForm(forms.Form):
     delimiter = self.cleaned_data.get('delimiter')
     delimiter = self.cleaned_data.get('delimiter')
     if delimiter.isdigit():
     if delimiter.isdigit():
       try:
       try:
-        unichr(int(delimiter))
+        chr(int(delimiter))
         return int(delimiter)
         return int(delimiter)
       except ValueError:
       except ValueError:
         raise forms.ValidationError(_('Delimiter value must be smaller than 65533.'))
         raise forms.ValidationError(_('Delimiter value must be smaller than 65533.'))

+ 2 - 1
apps/beeswax/src/beeswax/hive_site.py

@@ -19,6 +19,7 @@
 Helper for reading hive-site.xml
 Helper for reading hive-site.xml
 """
 """
 
 
+from builtins import str
 import errno
 import errno
 import logging
 import logging
 import os.path
 import os.path
@@ -177,7 +178,7 @@ def _parse_hive_site():
   _HIVE_SITE_PATH = os.path.join(beeswax.conf.HIVE_CONF_DIR.get(), 'hive-site.xml')
   _HIVE_SITE_PATH = os.path.join(beeswax.conf.HIVE_CONF_DIR.get(), 'hive-site.xml')
   try:
   try:
     data = file(_HIVE_SITE_PATH, 'r').read()
     data = file(_HIVE_SITE_PATH, 'r').read()
-  except IOError, err:
+  except IOError as err:
     if err.errno != errno.ENOENT:
     if err.errno != errno.ENOENT:
       LOG.error('Cannot read from "%s": %s' % (_HIVE_SITE_PATH, err))
       LOG.error('Cannot read from "%s": %s' % (_HIVE_SITE_PATH, err))
       return
       return

+ 9 - 8
apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import object
 import logging
 import logging
 import os
 import os
 import pwd
 import pwd
@@ -68,7 +69,7 @@ class Command(BaseCommand):
       sample_user = install_sample_user()
       sample_user = install_sample_user()
       self._install_queries(sample_user, app_name)
       self._install_queries(sample_user, app_name)
       self._install_tables(user, app_name, db_name, tables)
       self._install_tables(user, app_name, db_name, tables)
-    except Exception, ex:
+    except Exception as ex:
       exception = ex
       exception = ex
 
 
     Document.objects.sync()
     Document.objects.sync()
@@ -96,7 +97,7 @@ class Command(BaseCommand):
       table = SampleTable(table_dict, app_name, db_name)
       table = SampleTable(table_dict, app_name, db_name)
       try:
       try:
         table.install(django_user)
         table.install(django_user)
-      except Exception, ex:
+      except Exception as ex:
         raise InstallException(_('Could not install table: %s') % ex)
         raise InstallException(_('Could not install table: %s') % ex)
 
 
   def _install_queries(self, django_user, app_name):
   def _install_queries(self, django_user, app_name):
@@ -106,13 +107,13 @@ class Command(BaseCommand):
 
 
     # Filter design list to app-specific designs
     # Filter design list to app-specific designs
     app_type = HQL if app_name == 'beeswax' else IMPALA
     app_type = HQL if app_name == 'beeswax' else IMPALA
-    design_list = filter(lambda d: int(d['type']) == app_type, design_list)
+    design_list = [d for d in design_list if int(d['type']) == app_type]
 
 
     for design_dict in design_list:
     for design_dict in design_list:
       design = SampleQuery(design_dict)
       design = SampleQuery(design_dict)
       try:
       try:
         design.install(django_user)
         design.install(django_user)
-      except Exception, ex:
+      except Exception as ex:
         raise InstallException(_('Could not install query: %s') % ex)
         raise InstallException(_('Could not install query: %s') % ex)
 
 
 
 
@@ -135,7 +136,7 @@ class SampleTable(object):
     # Sanity check
     # Sanity check
     self._data_dir = beeswax.conf.LOCAL_EXAMPLES_DATA_DIR.get()
     self._data_dir = beeswax.conf.LOCAL_EXAMPLES_DATA_DIR.get()
     if self.partition_files:
     if self.partition_files:
-      for partition_spec, filename in self.partition_files.items():
+      for partition_spec, filename in list(self.partition_files.items()):
         filepath = os.path.join(self._data_dir, filename)
         filepath = os.path.join(self._data_dir, filename)
         self.partition_files[partition_spec] = filepath
         self.partition_files[partition_spec] = filepath
         self._check_file_contents(filepath)
         self._check_file_contents(filepath)
@@ -147,7 +148,7 @@ class SampleTable(object):
   def install(self, django_user):
   def install(self, django_user):
     if self.create(django_user):
     if self.create(django_user):
       if self.partition_files:
       if self.partition_files:
-        for partition_spec, filepath in self.partition_files.items():
+        for partition_spec, filepath in list(self.partition_files.items()):
           self.load_partition(django_user, partition_spec, filepath)
           self.load_partition(django_user, partition_spec, filepath)
       else:
       else:
         self.load(django_user)
         self.load(django_user)
@@ -177,7 +178,7 @@ class SampleTable(object):
           LOG.error(msg)
           LOG.error(msg)
           raise InstallException(msg)
           raise InstallException(msg)
         return True
         return True
-      except Exception, ex:
+      except Exception as ex:
         msg = _('Error creating table %(table)s: %(error)s.') % {'table': self.name, 'error': ex}
         msg = _('Error creating table %(table)s: %(error)s.') % {'table': self.name, 'error': ex}
         LOG.error(msg)
         LOG.error(msg)
         raise InstallException(msg)
         raise InstallException(msg)
@@ -278,7 +279,7 @@ class SampleTable(object):
         msg = _('Error loading table %(table)s: Operation timeout.') % {'table': self.name}
         msg = _('Error loading table %(table)s: Operation timeout.') % {'table': self.name}
         LOG.error(msg)
         LOG.error(msg)
         raise InstallException(msg)
         raise InstallException(msg)
-    except QueryServerException, ex:
+    except QueryServerException as ex:
       msg = _('Error loading table %(table)s: %(error)s.') % {'table': self.name, 'error': ex}
       msg = _('Error loading table %(table)s: %(error)s.') % {'table': self.name, 'error': ex}
       LOG.error(msg)
       LOG.error(msg)
       raise InstallException(msg)
       raise InstallException(msg)

+ 2 - 1
apps/beeswax/src/beeswax/management/commands/close_queries.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import str
 import logging
 import logging
 from datetime import datetime,  timedelta
 from datetime import datetime,  timedelta
 
 
@@ -81,7 +82,7 @@ class Command(BaseCommand):
 
 
         query.last_state = QueryHistory.STATE.expired.value
         query.last_state = QueryHistory.STATE.expired.value
         query.save()
         query.save()
-      except Exception, e:
+      except Exception as e:
         if 'None' in str(e) or 'Invalid OperationHandle' in str(e):
         if 'None' in str(e) or 'Invalid OperationHandle' in str(e):
           already_closed_queries += 1
           already_closed_queries += 1
           query.last_state = QueryHistory.STATE.expired.value
           query.last_state = QueryHistory.STATE.expired.value

+ 2 - 1
apps/beeswax/src/beeswax/management/commands/close_sessions.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import str
 import logging
 import logging
 from datetime import datetime,  timedelta
 from datetime import datetime,  timedelta
 
 
@@ -74,7 +75,7 @@ class Command(BaseCommand):
       try:
       try:
         session = dbms.get(user=session.owner).close_session(session)
         session = dbms.get(user=session.owner).close_session(session)
         closed += 1
         closed += 1
-      except Exception, e:
+      except Exception as e:
         skipped += 1
         skipped += 1
         self.stdout.write('Session with ID %d could not be closed: %s' % (session.id, str(e)))
         self.stdout.write('Session with ID %d could not be closed: %s' % (session.id, str(e)))
 
 

+ 9 - 7
apps/beeswax/src/beeswax/models.py

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import range
+from builtins import object
 import base64
 import base64
 import datetime
 import datetime
 import json
 import json
@@ -44,7 +46,7 @@ QUERY_SUBMISSION_TIMEOUT = datetime.timedelta(0, 60 * 60)               # 1 hour
 # Constants for DB fields, hue ini
 # Constants for DB fields, hue ini
 BEESWAX = 'beeswax'
 BEESWAX = 'beeswax'
 HIVE_SERVER2 = 'hiveserver2'
 HIVE_SERVER2 = 'hiveserver2'
-QUERY_TYPES = (HQL, IMPALA, RDBMS, SPARK) = range(4)
+QUERY_TYPES = (HQL, IMPALA, RDBMS, SPARK) = list(range(4))
 
 
 class QueryHistory(models.Model):
 class QueryHistory(models.Model):
   """
   """
@@ -88,7 +90,7 @@ class QueryHistory(models.Model):
   extra = models.TextField(default='{}')                   # Json fields for extra properties
   extra = models.TextField(default='{}')                   # Json fields for extra properties
   is_cleared = models.BooleanField(default=False)
   is_cleared = models.BooleanField(default=False)
 
 
-  class Meta:
+  class Meta(object):
     ordering = ['-submission_date']
     ordering = ['-submission_date']
 
 
   @staticmethod
   @staticmethod
@@ -229,7 +231,7 @@ class HiveServerQueryHistory(QueryHistory):
 
 
   node_type = HIVE_SERVER2
   node_type = HIVE_SERVER2
 
 
-  class Meta:
+  class Meta(object):
     proxy = True
     proxy = True
 
 
   def get_handle(self):
   def get_handle(self):
@@ -279,7 +281,7 @@ class SavedQuery(models.Model):
 
 
   doc = GenericRelation(Document, related_query_name='hql_doc')
   doc = GenericRelation(Document, related_query_name='hql_doc')
 
 
-  class Meta:
+  class Meta(object):
     ordering = ['-mtime']
     ordering = ['-mtime']
 
 
   def get_design(self):
   def get_design(self):
@@ -330,7 +332,7 @@ class SavedQuery(models.Model):
     """
     """
     try:
     try:
       design = SavedQuery.objects.get(id=id)
       design = SavedQuery.objects.get(id=id)
-    except SavedQuery.DoesNotExist, err:
+    except SavedQuery.DoesNotExist as err:
       msg = _('Cannot retrieve query id %(id)s.') % {'id': id}
       msg = _('Cannot retrieve query id %(id)s.') % {'id': id}
       raise err
       raise err
 
 
@@ -394,7 +396,7 @@ class SessionManager(models.Manager):
       if filter_open:
       if filter_open:
         q = q.filter(status_code=0)
         q = q.filter(status_code=0)
       return q.latest("last_used")
       return q.latest("last_used")
-    except Session.DoesNotExist, e:
+    except Session.DoesNotExist as e:
       return None
       return None
 
 
   def get_n_sessions(self, user, n, application='beeswax', filter_open=True):
   def get_n_sessions(self, user, n, application='beeswax', filter_open=True):
@@ -429,7 +431,7 @@ class Session(models.Model):
     return json.loads(self.properties) if self.properties else {}
     return json.loads(self.properties) if self.properties else {}
 
 
   def get_formatted_properties(self):
   def get_formatted_properties(self):
-    return [dict({'key': key, 'value': value}) for key, value in self.get_properties().items()]
+    return [dict({'key': key, 'value': value}) for key, value in list(self.get_properties().items())]
 
 
   def __str__(self):
   def __str__(self):
     return '%s %s' % (self.owner, self.last_used)
     return '%s %s' % (self.owner, self.last_used)

+ 13 - 11
apps/beeswax/src/beeswax/server/dbms.py

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import str
+from builtins import object
 import logging
 import logging
 import re
 import re
 import threading
 import threading
@@ -254,7 +256,7 @@ class HiveServer2Dbms(object):
 
 
   def alter_database(self, database, properties):
   def alter_database(self, database, properties):
     hql = 'ALTER database `%s` SET DBPROPERTIES (' % database
     hql = 'ALTER database `%s` SET DBPROPERTIES (' % database
-    hql += ', '.join(["'%s'='%s'" % (k, v) for k, v in properties.items()])
+    hql += ', '.join(["'%s'='%s'" % (k, v) for k, v in list(properties.items())])
     hql += ');'
     hql += ');'
 
 
     timeout = SERVER_CONN_TIMEOUT.get()
     timeout = SERVER_CONN_TIMEOUT.get()
@@ -299,7 +301,7 @@ class HiveServer2Dbms(object):
   def get_table(self, database, table_name):
   def get_table(self, database, table_name):
     try:
     try:
       return self.client.get_table(database, table_name)
       return self.client.get_table(database, table_name)
-    except QueryServerException, e:
+    except QueryServerException as e:
       LOG.debug("Seems like %s.%s could be a Kudu table" % (database, table_name))
       LOG.debug("Seems like %s.%s could be a Kudu table" % (database, table_name))
       if 'java.lang.ClassNotFoundException' in e.message and [prop for prop in self.get_table_properties(database, table_name, property_name='storage_handler').rows() if 'KuduStorageHandler' in prop[0]]:
       if 'java.lang.ClassNotFoundException' in e.message and [prop for prop in self.get_table_properties(database, table_name, property_name='storage_handler').rows() if 'KuduStorageHandler' in prop[0]]:
         query_server = get_query_server_config('impala')
         query_server = get_query_server_config('impala')
@@ -327,7 +329,7 @@ class HiveServer2Dbms(object):
     elif comment is not None:
     elif comment is not None:
       hql += " SET TBLPROPERTIES ('comment' = '%s')" % comment
       hql += " SET TBLPROPERTIES ('comment' = '%s')" % comment
     elif tblproperties:
     elif tblproperties:
-      hql += " SET TBLPROPERTIES (%s)" % ' ,'.join("'%s' = '%s'" % (k, v) for k, v in tblproperties.items())
+      hql += " SET TBLPROPERTIES (%s)" % ' ,'.join("'%s' = '%s'" % (k, v) for k, v in list(tblproperties.items()))
 
 
     timeout = SERVER_CONN_TIMEOUT.get()
     timeout = SERVER_CONN_TIMEOUT.get()
     query = hql_query(hql)
     query = hql_query(hql)
@@ -798,11 +800,11 @@ class HiveServer2Dbms(object):
         LOG.debug("Moved results from %s to %s" % (result_meta.table_dir, table_loc))
         LOG.debug("Moved results from %s to %s" % (result_meta.table_dir, table_loc))
         request.info(request, _('Saved query results as new table %(table)s.') % {'table': target_table})
         request.info(request, _('Saved query results as new table %(table)s.') % {'table': target_table})
         query_history.save_state(QueryHistory.STATE.expired)
         query_history.save_state(QueryHistory.STATE.expired)
-      except Exception, ex:
+      except Exception as ex:
         query = hql_query('DROP TABLE `%s`' % target_table)
         query = hql_query('DROP TABLE `%s`' % target_table)
         try:
         try:
           self.execute_and_wait(query)
           self.execute_and_wait(query)
-        except Exception, double_trouble:
+        except Exception as double_trouble:
           LOG.exception('Failed to drop table "%s" as well: %s' % (target_table, double_trouble))
           LOG.exception('Failed to drop table "%s" as well: %s' % (target_table, double_trouble))
         raise ex
         raise ex
       url = format_preserving_redirect(request, reverse('metastore:index'))
       url = format_preserving_redirect(request, reverse('metastore:index'))
@@ -849,7 +851,7 @@ class HiveServer2Dbms(object):
     LOG.warning(msg)
     LOG.warning(msg)
     try:
     try:
       self.cancel_operation(handle)
       self.cancel_operation(handle)
-    except Exception, e:
+    except Exception as e:
       msg = "Failed to cancel query."
       msg = "Failed to cancel query."
       LOG.warning(msg)
       LOG.warning(msg)
       self.close_operation(handle)
       self.close_operation(handle)
@@ -906,7 +908,7 @@ class HiveServer2Dbms(object):
       if not handle.is_valid():
       if not handle.is_valid():
         msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % {'id': query_history.id, 'query': query[:40]}
         msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % {'id': query_history.id, 'query': query[:40]}
         raise QueryServerException(msg)
         raise QueryServerException(msg)
-    except QueryServerException, ex:
+    except QueryServerException as ex:
       LOG.exception(ex)
       LOG.exception(ex)
       # Kind of expected (hql compile/syntax error, etc.)
       # Kind of expected (hql compile/syntax error, etc.)
       if hasattr(ex, 'handle') and ex.handle:
       if hasattr(ex, 'handle') and ex.handle:
@@ -1044,7 +1046,7 @@ class HiveServer2Dbms(object):
     return self.client.get_default_configuration(include_hadoop)
     return self.client.get_default_configuration(include_hadoop)
 
 
 
 
-class Table:
+class Table(object):
   """
   """
   Represents the metadata of a Hive Table.
   Represents the metadata of a Hive Table.
   """
   """
@@ -1053,7 +1055,7 @@ class Table:
     return location_to_url(self.path_location)
     return location_to_url(self.path_location)
 
 
 
 
-class DataTable:
+class DataTable(object):
   """
   """
   Represents the data of a Hive Table.
   Represents the data of a Hive Table.
 
 
@@ -1062,7 +1064,7 @@ class DataTable:
   pass
   pass
 
 
 
 
-class SubQueryTable:
+class SubQueryTable(object):
 
 
   def __init__(self, db, query):
   def __init__(self, db, query):
     self.query = query
     self.query = query
@@ -1090,7 +1092,7 @@ def expand_exception(exc, db, handle=None):
       log = db.get_log(exc)
       log = db.get_log(exc)
     else:
     else:
       log = ''
       log = ''
-  except Exception, e:
+  except Exception as e:
     # Always show something, even if server has died on the job.
     # Always show something, even if server has died on the job.
     log = _("Could not retrieve logs: %s." % e)
     log = _("Could not retrieve logs: %s." % e)
 
 

+ 6 - 5
apps/beeswax/src/beeswax/server/hive_metastore_server.py

@@ -15,6 +15,7 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import object
 import logging
 import logging
 import re
 import re
 import thrift
 import thrift
@@ -100,7 +101,7 @@ class HiveDataTable(DataTable):
 
 
 
 
 
 
-class HiveMetastoreClient:
+class HiveMetastoreClient(object):
 
 
   def __init__(self, query_server, user):
   def __init__(self, query_server, user):
     self.user = user
     self.user = user
@@ -214,11 +215,11 @@ class HiveMetastoreClient:
         self._decode_map(sd.parameters)
         self._decode_map(sd.parameters)
 
 
       def _encode_map(self, mapp):
       def _encode_map(self, mapp):
-        for key, value in mapp.iteritems():
+        for key, value in mapp.items():
           mapp[key] = smart_str(value, strings_only=True)
           mapp[key] = smart_str(value, strings_only=True)
 
 
       def _decode_map(self, mapp):
       def _decode_map(self, mapp):
-        for key, value in mapp.iteritems():
+        for key, value in mapp.items():
           mapp[key] = force_unicode(value, strings_only=True, errors='replace')
           mapp[key] = force_unicode(value, strings_only=True, errors='replace')
 
 
       def create_database(self, name, description):
       def create_database(self, name, description):
@@ -289,7 +290,7 @@ class HiveMetastoreClient:
     return UnicodeMetastoreClient(client)
     return UnicodeMetastoreClient(client)
 
 
 
 
-class EmptyResultCompatible:
+class EmptyResultCompatible(object):
   def __init__(self):
   def __init__(self):
     self.data_table = type('Col', (object,), {'cols': self.cols})
     self.data_table = type('Col', (object,), {'cols': self.cols})
     self.rows = lambda: []
     self.rows = lambda: []
@@ -307,7 +308,7 @@ class EmptyResultCompatible:
     return []
     return []
 
 
 
 
-class MockFinishedOperation():
+class MockFinishedOperation(object):
   def __init__(self):
   def __init__(self):
     self.operationState = TOperationState.FINISHED_STATE
     self.operationState = TOperationState.FINISHED_STATE
 
 

+ 40 - 35
apps/beeswax/src/beeswax/server/hive_server2_lib.py

@@ -15,12 +15,17 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import next
+from builtins import filter
+from builtins import map
+from builtins import str
+from builtins import object
 import logging
 import logging
 import itertools
 import itertools
 import json
 import json
 import re
 import re
 
 
-from itertools import imap, izip
+
 from operator import itemgetter
 from operator import itemgetter
 
 
 from django.utils.translation import ugettext as _
 from django.utils.translation import ugettext as _
@@ -110,7 +115,7 @@ class HiveServerTable(Table):
     rows = self.describe
     rows = self.describe
     col_row_index = 1
     col_row_index = 1
     try:
     try:
-      cols = map(itemgetter('col_name'), rows[col_row_index:])
+      cols = list(map(itemgetter('col_name'), rows[col_row_index:]))
       if cols.index('') == 0: # TEZ starts at 1 vs Hive, Impala starts at 2
       if cols.index('') == 0: # TEZ starts at 1 vs Hive, Impala starts at 2
         col_row_index = col_row_index + 1
         col_row_index = col_row_index + 1
         cols.pop(0)
         cols.pop(0)
@@ -125,8 +130,8 @@ class HiveServerTable(Table):
   def _get_partition_column(self):
   def _get_partition_column(self):
     rows = self.describe
     rows = self.describe
     try:
     try:
-      col_row_index = map(itemgetter('col_name'), rows).index('# Partition Information') + 3
-      end_cols_index = map(itemgetter('col_name'), rows[col_row_index:]).index('')
+      col_row_index = list(map(itemgetter('col_name'), rows)).index('# Partition Information') + 3
+      end_cols_index = list(map(itemgetter('col_name'), rows[col_row_index:])).index('')
       return rows[col_row_index:][:end_cols_index]
       return rows[col_row_index:][:end_cols_index]
     except:
     except:
       # Impala does not have it
       # Impala does not have it
@@ -141,7 +146,7 @@ class HiveServerTable(Table):
     rows = self.describe
     rows = self.describe
     col_row_index = 2
     col_row_index = 2
     try:
     try:
-      end_cols_index = map(itemgetter('col_name'), rows[col_row_index:]).index('')
+      end_cols_index = list(map(itemgetter('col_name'), rows[col_row_index:])).index('')
     except ValueError as e:
     except ValueError as e:
       end_cols_index = 5000
       end_cols_index = 5000
       LOG.warn('Could not guess end column index, so defaulting to %s: %s' (end_cols_index, e))
       LOG.warn('Could not guess end column index, so defaulting to %s: %s' (end_cols_index, e))
@@ -156,8 +161,8 @@ class HiveServerTable(Table):
   def stats(self):
   def stats(self):
     try:
     try:
       rows = self.properties
       rows = self.properties
-      col_row_index = map(itemgetter('col_name'), rows).index('Table Parameters:') + 1
-      end_cols_index = map(itemgetter('data_type'), rows[col_row_index:]).index(None)
+      col_row_index = list(map(itemgetter('col_name'), rows)).index('Table Parameters:') + 1
+      end_cols_index = list(map(itemgetter('data_type'), rows[col_row_index:])).index(None)
       return rows[col_row_index:][:end_cols_index]
       return rows[col_row_index:][:end_cols_index]
     except:
     except:
       LOG.exception('Table stats could not be retrieved')
       LOG.exception('Table stats could not be retrieved')
@@ -166,7 +171,7 @@ class HiveServerTable(Table):
   @property
   @property
   def storage_details(self):
   def storage_details(self):
     rows = self.properties
     rows = self.properties
-    col_row_index = map(itemgetter('col_name'), rows).index('Storage Desc Params:') + 1
+    col_row_index = list(map(itemgetter('col_name'), rows)).index('Storage Desc Params:') + 1
     return rows[col_row_index:][:col_row_index + 2]
     return rows[col_row_index:][:col_row_index + 2]
 
 
   @property
   @property
@@ -205,7 +210,7 @@ class HiveServerTable(Table):
     return self._details
     return self._details
 
 
 
 
-class HiveServerTRowSet2:
+class HiveServerTRowSet2(object):
   def __init__(self, row_set, schema):
   def __init__(self, row_set, schema):
     self.row_set = row_set
     self.row_set = row_set
     self.rows = row_set.rows
     self.rows = row_set.rows
@@ -221,22 +226,22 @@ class HiveServerTRowSet2:
     rs = HiveServerTRow2(self.row_set.columns, self.schema)
     rs = HiveServerTRow2(self.row_set.columns, self.schema)
     cols = [rs.full_col(name) for name in col_names]
     cols = [rs.full_col(name) for name in col_names]
 
 
-    for cols_row in itertools.izip(*cols):
-      cols_rows.append(dict(itertools.izip(col_names, cols_row)))
+    for cols_row in zip(*cols):
+      cols_rows.append(dict(zip(col_names, cols_row)))
 
 
     return cols_rows
     return cols_rows
 
 
   def __iter__(self):
   def __iter__(self):
     return self
     return self
 
 
-  def next(self):
+  def __next__(self):
     if self.row_set.columns:
     if self.row_set.columns:
       return HiveServerTRow2(self.row_set.columns, self.schema)
       return HiveServerTRow2(self.row_set.columns, self.schema)
     else:
     else:
       raise StopIteration
       raise StopIteration
 
 
 
 
-class HiveServerTRow2:
+class HiveServerTRow2(object):
   def __init__(self, cols, schema):
   def __init__(self, cols, schema):
     self.cols = cols
     self.cols = cols
     self.schema = schema
     self.schema = schema
@@ -250,7 +255,7 @@ class HiveServerTRow2:
     return HiveServerTColumnValue2(self.cols[pos]).val # Return the full column and its values
     return HiveServerTColumnValue2(self.cols[pos]).val # Return the full column and its values
 
 
   def _get_col_position(self, column_name):
   def _get_col_position(self, column_name):
-    return filter(lambda (i, col): col.columnName == column_name, enumerate(self.schema.columns))[0][0]
+    return filter(lambda i_col1: i_col1[1].columnName == column_name, enumerate(self.schema.columns))[0][0]
 
 
   def fields(self):
   def fields(self):
     try:
     try:
@@ -259,7 +264,7 @@ class HiveServerTRow2:
       raise StopIteration
       raise StopIteration
 
 
 
 
-class HiveServerTColumnValue2:
+class HiveServerTColumnValue2(object):
   def __init__(self, tcolumn_value):
   def __init__(self, tcolumn_value):
     self.column_value = tcolumn_value
     self.column_value = tcolumn_value
 
 
@@ -309,7 +314,7 @@ class HiveServerTColumnValue2:
     if bytestring == '' or re.match('^(\x00)+$', bytestring): # HS2 has just \x00 or '', Impala can have \x00\x00...
     if bytestring == '' or re.match('^(\x00)+$', bytestring): # HS2 has just \x00 or '', Impala can have \x00\x00...
       return values
       return values
     else:
     else:
-      _values = [None if is_null else value for value, is_null in itertools.izip(values, cls.mark_nulls(values, bytestring))]
+      _values = [None if is_null else value for value, is_null in zip(values, cls.mark_nulls(values, bytestring))]
       if len(values) != len(_values): # HS2 can have just \x00\x01 instead of \x00\x01\x00...
       if len(values) != len(_values): # HS2 can have just \x00\x01 instead of \x00\x01\x00...
         _values.extend(values[len(_values):])
         _values.extend(values[len(_values):])
       return _values
       return _values
@@ -342,7 +347,7 @@ class HiveServerDataTable(DataTable):
 
 
 
 
 
 
-class HiveServerTTableSchema:
+class HiveServerTTableSchema(object):
   def __init__(self, columns, schema):
   def __init__(self, columns, schema):
     self.columns = columns
     self.columns = columns
     self.schema = schema
     self.schema = schema
@@ -363,7 +368,7 @@ class HiveServerTTableSchema:
     return HiveServerTColumnDesc(self.columns[pos]).val
     return HiveServerTColumnDesc(self.columns[pos]).val
 
 
   def _get_col_position(self, column_name):
   def _get_col_position(self, column_name):
-    return filter(lambda (i, col): col.columnName == column_name, enumerate(self.schema.columns))[0][0]
+    return filter(lambda i_col2: i_col2[1].columnName == column_name, enumerate(self.schema.columns))[0][0]
 
 
 
 
 if hasattr(beeswax_conf.THRIFT_VERSION, 'get') and beeswax_conf.THRIFT_VERSION.get() >= 7:
 if hasattr(beeswax_conf.THRIFT_VERSION, 'get') and beeswax_conf.THRIFT_VERSION.get() >= 7:
@@ -371,7 +376,7 @@ if hasattr(beeswax_conf.THRIFT_VERSION, 'get') and beeswax_conf.THRIFT_VERSION.g
   HiveServerTRowSet = HiveServerTRowSet2
   HiveServerTRowSet = HiveServerTRowSet2
 else:
 else:
   # Deprecated. To remove in Hue 4.
   # Deprecated. To remove in Hue 4.
-  class HiveServerTRow:
+  class HiveServerTRow(object):
     def __init__(self, row, schema):
     def __init__(self, row, schema):
       self.row = row
       self.row = row
       self.schema = schema
       self.schema = schema
@@ -381,12 +386,12 @@ else:
       return HiveServerTColumnValue(self.row.colVals[pos]).val
       return HiveServerTColumnValue(self.row.colVals[pos]).val
 
 
     def _get_col_position(self, column_name):
     def _get_col_position(self, column_name):
-      return filter(lambda (i, col): col.columnName == column_name, enumerate(self.schema.columns))[0][0]
+      return filter(lambda i_col: i_col[1].columnName == column_name, enumerate(self.schema.columns))[0][0]
 
 
     def fields(self):
     def fields(self):
       return [HiveServerTColumnValue(field).val for field in self.row.colVals]
       return [HiveServerTColumnValue(field).val for field in self.row.colVals]
 
 
-  class HiveServerTRowSet:
+  class HiveServerTRowSet(object):
     def __init__(self, row_set, schema):
     def __init__(self, row_set, schema):
       self.row_set = row_set
       self.row_set = row_set
       self.rows = row_set.rows
       self.rows = row_set.rows
@@ -409,14 +414,14 @@ else:
     def __iter__(self):
     def __iter__(self):
       return self
       return self
 
 
-    def next(self):
+    def __next__(self):
       if self.rows:
       if self.rows:
         return HiveServerTRow(self.rows.pop(0), self.schema)
         return HiveServerTRow(self.rows.pop(0), self.schema)
       else:
       else:
         raise StopIteration
         raise StopIteration
 
 
 
 
-class HiveServerTColumnValue:
+class HiveServerTColumnValue(object):
   def __init__(self, tcolumn_value):
   def __init__(self, tcolumn_value):
     self.column_value = tcolumn_value
     self.column_value = tcolumn_value
 
 
@@ -438,7 +443,7 @@ class HiveServerTColumnValue:
       return self.column_value.stringVal.value
       return self.column_value.stringVal.value
 
 
 
 
-class HiveServerTColumnDesc:
+class HiveServerTColumnDesc(object):
   def __init__(self, column):
   def __init__(self, column):
     self.column = column
     self.column = column
 
 
@@ -471,7 +476,7 @@ class HiveServerTColumnDesc:
         return ttype.userDefinedTypeEntry
         return ttype.userDefinedTypeEntry
 
 
 
 
-class HiveServerClient:
+class HiveServerClient(object):
   HS2_MECHANISMS = {
   HS2_MECHANISMS = {
       'KERBEROS': 'GSSAPI',
       'KERBEROS': 'GSSAPI',
       'NONE': 'PLAIN',
       'NONE': 'PLAIN',
@@ -578,7 +583,7 @@ class HiveServerClient:
     else:
     else:
       hive_mechanism = hive_site.get_hiveserver2_authentication()
       hive_mechanism = hive_site.get_hiveserver2_authentication()
       if hive_mechanism not in HiveServerClient.HS2_MECHANISMS:
       if hive_mechanism not in HiveServerClient.HS2_MECHANISMS:
-        raise Exception(_('%s server authentication not supported. Valid are %s.') % (hive_mechanism, HiveServerClient.HS2_MECHANISMS.keys()))
+        raise Exception(_('%s server authentication not supported. Valid are %s.') % (hive_mechanism, list(HiveServerClient.HS2_MECHANISMS.keys())))
       use_sasl = hive_mechanism in ('KERBEROS', 'NONE', 'LDAP', 'PAM')
       use_sasl = hive_mechanism in ('KERBEROS', 'NONE', 'LDAP', 'PAM')
       mechanism = HiveServerClient.HS2_MECHANISMS[hive_mechanism]
       mechanism = HiveServerClient.HS2_MECHANISMS[hive_mechanism]
       impersonation_enabled = hive_site.hiveserver2_impersonation_enabled()
       impersonation_enabled = hive_site.hiveserver2_impersonation_enabled()
@@ -834,7 +839,7 @@ class HiveServerClient:
     try:
     try:
       (desc_results, desc_schema), operation_handle = self.execute_statement(query, max_rows=10000, orientation=TFetchOrientation.FETCH_NEXT)
       (desc_results, desc_schema), operation_handle = self.execute_statement(query, max_rows=10000, orientation=TFetchOrientation.FETCH_NEXT)
       self.close_operation(operation_handle)
       self.close_operation(operation_handle)
-    except Exception, e:
+    except Exception as e:
       ex_string = str(e)
       ex_string = str(e)
       if 'cannot find field' in ex_string: # Workaround until Hive 2.0 and HUE-3751
       if 'cannot find field' in ex_string: # Workaround until Hive 2.0 and HUE-3751
         (desc_results, desc_schema), operation_handle = self.execute_statement('USE `%s`' % database)
         (desc_results, desc_schema), operation_handle = self.execute_statement('USE `%s`' % database)
@@ -986,7 +991,7 @@ class HiveServerClient:
     if beeswax_conf.THRIFT_VERSION.get() >= 7:
     if beeswax_conf.THRIFT_VERSION.get() >= 7:
       lines = res.results.columns[0].stringVal.values
       lines = res.results.columns[0].stringVal.values
     else:
     else:
-      lines = imap(lambda r: r.colVals[0].stringVal.value, res.results.rows)
+      lines = list(map(lambda r: r.colVals[0].stringVal.value, res.results.rows))
 
 
     return '\n'.join(lines)
     return '\n'.join(lines)
 
 
@@ -1006,7 +1011,7 @@ class HiveServerClient:
       req = TGetLogReq(operationHandle=operation_handle)
       req = TGetLogReq(operationHandle=operation_handle)
       res = self.call(self._client.GetLog, req)
       res = self.call(self._client.GetLog, req)
       return res.log
       return res.log
-    except Exception, e:
+    except Exception as e:
       if 'Invalid query handle' in str(e):
       if 'Invalid query handle' in str(e):
         message = 'Invalid query handle'
         message = 'Invalid query handle'
         LOG.error('%s: %s' % (message, e))
         LOG.error('%s: %s' % (message, e))
@@ -1046,7 +1051,7 @@ class HiveServerClient:
 
 
         # Format partition key and values into Hive format: [key1=val1/key2=value2]
         # Format partition key and values into Hive format: [key1=val1/key2=value2]
         for values in partition_values:
         for values in partition_values:
-          zipped_parts = izip(partition_keys, values)
+          zipped_parts = zip(partition_keys, values)
           partitions_formatted.append(['/'.join(['%s=%s' % (str(part[0]), str(part[1])) for part in zipped_parts if all(part)])])
           partitions_formatted.append(['/'.join(['%s=%s' % (str(part[0]), str(part[1])) for part in zipped_parts if all(part)])])
 
 
         partitions = [PartitionValueCompatible(partition, table) for partition in partitions_formatted]
         partitions = [PartitionValueCompatible(partition, table) for partition in partitions_formatted]
@@ -1113,7 +1118,7 @@ class HiveServerTableCompatible(HiveServerTable):
   ]
   ]
 
 
 
 
-class ResultCompatible:
+class ResultCompatible(object):
 
 
   def __init__(self, data_table):
   def __init__(self, data_table):
     self.data_table = data_table
     self.data_table = data_table
@@ -1133,7 +1138,7 @@ class ResultCompatible:
     return [{'name': col.name, 'type': col.type, 'comment': col.comment} for col in self.data_table.cols()]
     return [{'name': col.name, 'type': col.type, 'comment': col.comment} for col in self.data_table.cols()]
 
 
 
 
-class PartitionKeyCompatible:
+class PartitionKeyCompatible(object):
 
 
   def __init__(self, name, type, comment):
   def __init__(self, name, type, comment):
     self.name = name
     self.name = name
@@ -1150,7 +1155,7 @@ class PartitionKeyCompatible:
     return 'PartitionKey(name:%s, type:%s, comment:%s)' % (self.name, self.type, self.comment)
     return 'PartitionKey(name:%s, type:%s, comment:%s)' % (self.name, self.type, self.comment)
 
 
 
 
-class PartitionValueCompatible:
+class PartitionValueCompatible(object):
 
 
   def __init__(self, partition_row, table, properties=None):
   def __init__(self, partition_row, table, properties=None):
     self.partition_keys = table.partition_keys
     self.partition_keys = table.partition_keys
@@ -1176,13 +1181,13 @@ class PartitionValueCompatible:
     return partition_spec
     return partition_spec
 
 
 
 
-class ExplainCompatible:
+class ExplainCompatible(object):
 
 
   def __init__(self, data_table):
   def __init__(self, data_table):
     self.textual = '\n'.join([line[0] for line in data_table.rows()])
     self.textual = '\n'.join([line[0] for line in data_table.rows()])
 
 
 
 
-class ResultMetaCompatible:
+class ResultMetaCompatible(object):
 
 
   def __init__(self):
   def __init__(self):
     self.in_tablename = True
     self.in_tablename = True

+ 10 - 6
apps/beeswax/src/beeswax/test_base.py

@@ -17,6 +17,10 @@
 # limitations under the License.
 # limitations under the License.
 #
 #
 
 
+from builtins import str
+from builtins import chr
+from builtins import range
+from builtins import object
 import atexit
 import atexit
 import json
 import json
 import logging
 import logging
@@ -129,13 +133,13 @@ def get_shared_beeswax_server(db_name='default'):
       while not started and time.time() - start <= 60:
       while not started and time.time() - start <= 60:
         try:
         try:
           db.open_session(user)
           db.open_session(user)
-        except StructuredThriftTransportException, e:
+        except StructuredThriftTransportException as e:
           LOG.exception('Failed to open Hive Server session')
           LOG.exception('Failed to open Hive Server session')
 
 
           # Don't loop if we had an authentication error.
           # Don't loop if we had an authentication error.
           if 'Bad status: 3' in e.message:
           if 'Bad status: 3' in e.message:
             raise
             raise
-        except Exception, e:
+        except Exception as e:
           LOG.exception('Failed to open Hive Server session')
           LOG.exception('Failed to open Hive Server session')
         else:
         else:
           started = True
           started = True
@@ -192,7 +196,7 @@ def _start_mini_hs2(cluster):
   if _SHARED_HIVE_SERVER_PROCESS is None:
   if _SHARED_HIVE_SERVER_PROCESS is None:
     p = _start_server(cluster)
     p = _start_server(cluster)
     LOG.info("started")
     LOG.info("started")
-    cluster.fs.do_as_superuser(cluster.fs.chmod, '/tmp', 01777)
+    cluster.fs.do_as_superuser(cluster.fs.chmod, '/tmp', 0o1777)
 
 
     _SHARED_HIVE_SERVER_PROCESS = p
     _SHARED_HIVE_SERVER_PROCESS = p
     def kill():
     def kill():
@@ -514,7 +518,7 @@ class BeeswaxSampleProvider(object):
     """
     """
     cls.cluster.fs.setuser(cls.cluster.superuser)
     cls.cluster.fs.setuser(cls.cluster.superuser)
     f = cls.cluster.fs.open(filename, "w")
     f = cls.cluster.fs.open(filename, "w")
-    for x in xrange(256):
+    for x in range(256):
       f.write("%d\t0x%x\n" % (x, x))
       f.write("%d\t0x%x\n" % (x, x))
     f.close()
     f.close()
 
 
@@ -528,8 +532,8 @@ class BeeswaxSampleProvider(object):
     """
     """
     cls.cluster.fs.setuser(cls.cluster.superuser)
     cls.cluster.fs.setuser(cls.cluster.superuser)
     f = cls.cluster.fs.open(filename, "w")
     f = cls.cluster.fs.open(filename, "w")
-    for x in xrange(256):
-      f.write("%d\t%s\n" % (x, unichr(x).encode(encoding)))
+    for x in range(256):
+      f.write("%d\t%s\n" % (x, chr(x).encode(encoding)))
     f.close()
     f.close()
 
 
   @classmethod
   @classmethod

+ 40 - 28
apps/beeswax/src/beeswax/tests.py

@@ -16,7 +16,14 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
-import cStringIO
+from future import standard_library
+standard_library.install_aliases()
+from builtins import next
+from builtins import map
+from builtins import str
+from builtins import chr
+from builtins import range
+from builtins import object
 import gzip
 import gzip
 import json
 import json
 import logging
 import logging
@@ -26,6 +33,7 @@ import re
 import shutil
 import shutil
 import socket
 import socket
 import string
 import string
+import sys
 import tempfile
 import tempfile
 import threading
 import threading
 
 
@@ -85,6 +93,10 @@ from beeswax.server.hive_server2_lib import HiveServerClient,\
 from beeswax.test_base import BeeswaxSampleProvider, is_hive_on_spark, get_available_execution_engines
 from beeswax.test_base import BeeswaxSampleProvider, is_hive_on_spark, get_available_execution_engines
 from beeswax.hive_site import get_metastore, hiveserver2_jdbc_url
 from beeswax.hive_site import get_metastore, hiveserver2_jdbc_url
 
 
+if sys.version_info[0] > 2:
+  from io import StringIO as string_io
+else:
+  from cStringIO import StringIO as string_io
 
 
 LOG = logging.getLogger(__name__)
 LOG = logging.getLogger(__name__)
 
 
@@ -444,25 +456,25 @@ for x in sys.stdin:
     query = hql_query(hql)
     query = hql_query(hql)
     try:
     try:
       self.db.execute_and_wait(query)
       self.db.execute_and_wait(query)
-    except QueryServerException, bex:
+    except QueryServerException as bex:
       assert_equal(bex.errorCode, 40000)
       assert_equal(bex.errorCode, 40000)
       assert_equal(bex.SQLState, "42000")
       assert_equal(bex.SQLState, "42000")
 
 
 
 
   def test_fetch_configuration(self):
   def test_fetch_configuration(self):
-    class MockClient:
+    class MockClient(object):
       """Check if sent fetch correctly supports start_over."""
       """Check if sent fetch correctly supports start_over."""
       def __init__(self, support_start_over):
       def __init__(self, support_start_over):
         self.support_start_over = support_start_over
         self.support_start_over = support_start_over
 
 
       def fetch(self, query_id, start_over, fetch_size):
       def fetch(self, query_id, start_over, fetch_size):
         assert_equal(self.support_start_over, start_over)
         assert_equal(self.support_start_over, start_over)
-        class Result: pass
+        class Result(object): pass
         res = Result()
         res = Result()
         res.ready = False
         res.ready = False
         return res
         return res
 
 
-    class ConfigVariable:
+    class ConfigVariable(object):
       def __init__(self, **entries):
       def __init__(self, **entries):
         self.__dict__.update(entries)
         self.__dict__.update(entries)
 
 
@@ -557,7 +569,7 @@ for x in sys.stdin:
     if is_live_cluster():
     if is_live_cluster():
       raise SkipTest('HUE-2884: Skipping test because we cannot guarantee live cluster supports utf8')
       raise SkipTest('HUE-2884: Skipping test because we cannot guarantee live cluster supports utf8')
 
 
-    query = u"SELECT foo FROM `%(db)s`.`test_utf8` WHERE bar='%(val)s'" % {'val': unichr(200), 'db': self.db_name}
+    query = u"SELECT foo FROM `%(db)s`.`test_utf8` WHERE bar='%(val)s'" % {'val': chr(200), 'db': self.db_name}
     response = _make_query(self.client, query, settings=[('hive.explain.user', 'false')], submission_type="Explain")
     response = _make_query(self.client, query, settings=[('hive.explain.user', 'false')], submission_type="Explain")
     explanation = json.loads(response.content)['explanation']
     explanation = json.loads(response.content)['explanation']
     assert_true('STAGE DEPENDENCIES:' in explanation, explanation)
     assert_true('STAGE DEPENDENCIES:' in explanation, explanation)
@@ -570,15 +582,15 @@ for x in sys.stdin:
     raise SkipTest
     raise SkipTest
 
 
     # Selecting from utf-8 table should get correct result
     # Selecting from utf-8 table should get correct result
-    query = u"SELECT * FROM `%(db)s`.`test_utf8` WHERE bar='%(val)s'" % {'val': unichr(200), 'db': self.db_name}
+    query = u"SELECT * FROM `%(db)s`.`test_utf8` WHERE bar='%(val)s'" % {'val': chr(200), 'db': self.db_name}
     response = _make_query(self.client, query, wait=True, database=self.db_name)
     response = _make_query(self.client, query, wait=True, database=self.db_name)
-    assert_equal(["200", unichr(200)], response.context[0]["results"][0], "selecting from utf-8 table should get correct result")
+    assert_equal(["200", chr(200)], response.context[0]["results"][0], "selecting from utf-8 table should get correct result")
 
 
     csv = get_csv(self.client, response)
     csv = get_csv(self.client, response)
-    assert_equal('"200","%s"' % (unichr(200).encode('utf-8'),), csv.split()[1])
+    assert_equal('"200","%s"' % (chr(200).encode('utf-8'),), csv.split()[1])
 
 
     # Selecting from latin1 table should not blow up
     # Selecting from latin1 table should not blow up
-    query = u"SELECT * FROM `%(db)s`.`test_latin1` WHERE bar='%(val)s'" % {'val': unichr(200), 'db': self.db_name}
+    query = u"SELECT * FROM `%(db)s`.`test_latin1` WHERE bar='%(val)s'" % {'val': chr(200), 'db': self.db_name}
     response = _make_query(self.client, query, wait=True, database=self.db_name)
     response = _make_query(self.client, query, wait=True, database=self.db_name)
     assert_true('results' in response.context, "selecting from latin1 table should not blow up")
     assert_true('results' in response.context, "selecting from latin1 table should not blow up")
 
 
@@ -598,7 +610,7 @@ for x in sys.stdin:
       result_holder[i] = response
       result_holder[i] = response
       lock.release()
       lock.release()
       LOG.info("Finished: " + str(i))
       LOG.info("Finished: " + str(i))
-    except Exception, e:
+    except Exception as e:
       LOG.exception("Saw exception in child thread: %s" % e)
       LOG.exception("Saw exception in child thread: %s" % e)
 
 
 
 
@@ -953,7 +965,7 @@ for x in sys.stdin:
     assert_equal(resp.status_code, 302)
     assert_equal(resp.status_code, 302)
 
 
     # Delete designs
     # Delete designs
-    design_ids = map(str, designs.values_list('id', flat=True))
+    design_ids = list(map(str, designs.values_list('id', flat=True)))
     resp = cli.get('/beeswax/delete_designs', {u'designs_selection': design_ids})
     resp = cli.get('/beeswax/delete_designs', {u'designs_selection': design_ids})
     assert_true('Delete design(s)' in resp.content, resp.content)
     assert_true('Delete design(s)' in resp.content, resp.content)
     #@TODO@: Prakash fix this test
     #@TODO@: Prakash fix this test
@@ -1212,7 +1224,7 @@ for x in sys.stdin:
       # Check that data is right. The SELECT may not give us the whole table.
       # Check that data is right. The SELECT may not give us the whole table.
       resp = _make_query(self.client, 'SELECT * FROM %s' % target_tbl, wait=True, local=False, database=self.db_name)
       resp = _make_query(self.client, 'SELECT * FROM %s' % target_tbl, wait=True, local=False, database=self.db_name)
       content = fetch_query_result_data(self.client, resp)
       content = fetch_query_result_data(self.client, resp)
-      for i in xrange(90):
+      for i in range(90):
         assert_equal([i, '0x%x' % (i,)], content['results'][i])
         assert_equal([i, '0x%x' % (i,)], content['results'][i])
 
 
     TARGET_TBL_ROOT = 'test_copy'
     TARGET_TBL_ROOT = 'test_copy'
@@ -1444,7 +1456,7 @@ for x in sys.stdin:
       lines = [ delim.join(row) for row in raw_fields ]
       lines = [ delim.join(row) for row in raw_fields ]
       data = '\n'.join(lines)
       data = '\n'.join(lines)
       if do_gzip:
       if do_gzip:
-        sio = cStringIO.StringIO()
+        sio = string_io()
         gzdat = gzip.GzipFile(fileobj=sio, mode='wb')
         gzdat = gzip.GzipFile(fileobj=sio, mode='wb')
         gzdat.write(data)
         gzdat.write(data)
         gzdat.close()
         gzdat.close()
@@ -1569,7 +1581,7 @@ for x in sys.stdin:
     content = json.loads(resp.content)
     content = json.loads(resp.content)
     watch_url = content['query_history']['watch_url']
     watch_url = content['query_history']['watch_url']
 
 
-    class MockResponse():
+    class MockResponse(object):
       def __init__(self, content):
       def __init__(self, content):
         self.content = json.dumps(content)
         self.content = json.dumps(content)
 
 
@@ -2036,7 +2048,7 @@ for x in sys.stdin:
       resp = self.client.get(reverse("beeswax:get_settings"))
       resp = self.client.get(reverse("beeswax:get_settings"))
       json_resp = json.loads(resp.content)
       json_resp = json.loads(resp.content)
       assert_equal(0, json_resp['status'])
       assert_equal(0, json_resp['status'])
-      assert_equal(2, len(json_resp['settings'].items()), json_resp)
+      assert_equal(2, len(list(json_resp['settings'].items())), json_resp)
       assert_true('hive.execution.engine' in json_resp['settings'])
       assert_true('hive.execution.engine' in json_resp['settings'])
       assert_true('mapreduce.job.queuename' in json_resp['settings'])
       assert_true('mapreduce.job.queuename' in json_resp['settings'])
     finally:
     finally:
@@ -2093,7 +2105,7 @@ def test_import_gzip_reader():
   """Test the gzip reader in create table"""
   """Test the gzip reader in create table"""
   # Make gzipped data
   # Make gzipped data
   data = file(__file__).read()
   data = file(__file__).read()
-  data_gz_sio = cStringIO.StringIO()
+  data_gz_sio = string_io()
   gz = gzip.GzipFile(fileobj=data_gz_sio, mode='wb')
   gz = gzip.GzipFile(fileobj=data_gz_sio, mode='wb')
   gz.write(data)
   gz.write(data)
   gz.close()
   gz.close()
@@ -2494,7 +2506,7 @@ class MockHiveServerTableForPartitions(HiveServerTable):
 
 
 
 
 
 
-class TestHiveServer2API():
+class TestHiveServer2API(object):
 
 
   def test_parsing_partition_values(self):
   def test_parsing_partition_values(self):
     table = MockHiveServerTable()
     table = MockHiveServerTable()
@@ -2661,7 +2673,7 @@ class TestHiveServer2API():
     assert_false(data is HiveServerTColumnValue2.set_nulls(data, nulls))
     assert_false(data is HiveServerTColumnValue2.set_nulls(data, nulls))
 
 
 
 
-class MockDbms:
+class MockDbms(object):
 
 
   def __init__(self, client, server_type):
   def __init__(self, client, server_type):
     pass
     pass
@@ -2891,7 +2903,7 @@ class TestWithMockedServer(object):
   def test_search_designs(self):
   def test_search_designs(self):
     # Create 20 (DEFAULT_PAGE_SIZE) queries to fill page 1, plus a target query for page 2
     # Create 20 (DEFAULT_PAGE_SIZE) queries to fill page 1, plus a target query for page 2
     page_1 = []
     page_1 = []
-    for i in xrange(1, 21):
+    for i in range(1, 21):
       response = _make_query(self.client, 'SELECT', submission_type='Save', name='My Name %d' % i, desc='My Description')
       response = _make_query(self.client, 'SELECT', submission_type='Save', name='My Name %d' % i, desc='My Description')
       content = json.loads(response.content)
       content = json.loads(response.content)
       query_id = content['design_id']
       query_id = content['design_id']
@@ -2960,7 +2972,7 @@ class TestWithMockedServer(object):
     assert_false(design_id in design_ids, json_resp)
     assert_false(design_id in design_ids, json_resp)
 
 
 
 
-class TestDesign():
+class TestDesign(object):
 
 
   def test_hql_resource(self):
   def test_hql_resource(self):
     design = hql_query('SELECT')
     design = hql_query('SELECT')
@@ -3040,7 +3052,7 @@ def test_hiveserver2_get_security():
       hive_site._HIVE_SITE_DICT.pop(hive_site._CNF_HIVESERVER2_AUTHENTICATION, None)
       hive_site._HIVE_SITE_DICT.pop(hive_site._CNF_HIVESERVER2_AUTHENTICATION, None)
 
 
 
 
-class MockClient():
+class MockClient(object):
 
 
   def __init__(self):
   def __init__(self):
     self.open_session_args = None
     self.open_session_args = None
@@ -3470,9 +3482,9 @@ def test_sasl_auth_in_large_download():
   table_info = {'db': 'default', 'table_name': 'dummy_'+random_generator().lower()}
   table_info = {'db': 'default', 'table_name': 'dummy_'+random_generator().lower()}
   drop_sql = "DROP TABLE IF EXISTS %(db)s.%(table_name)s" % table_info
   drop_sql = "DROP TABLE IF EXISTS %(db)s.%(table_name)s" % table_info
   create_sql = "CREATE TABLE IF NOT EXISTS %(db)s.%(table_name)s (w0 CHAR(8),w1 CHAR(8),w2 CHAR(8),w3 CHAR(8),w4 CHAR(8),w5 CHAR(8),w6 CHAR(8),w7 CHAR(8),w8 CHAR(8),w9 CHAR(8))" % table_info
   create_sql = "CREATE TABLE IF NOT EXISTS %(db)s.%(table_name)s (w0 CHAR(8),w1 CHAR(8),w2 CHAR(8),w3 CHAR(8),w4 CHAR(8),w5 CHAR(8),w6 CHAR(8),w7 CHAR(8),w8 CHAR(8),w9 CHAR(8))" % table_info
-  hql = cStringIO.StringIO()
+  hql = string_io()
   hql.write("INSERT INTO %(db)s.%(table_name)s VALUES " % (table_info))
   hql.write("INSERT INTO %(db)s.%(table_name)s VALUES " % (table_info))
-  for i in xrange(max_rows-1):
+  for i in range(max_rows-1):
     w = random_generator(size=7)
     w = random_generator(size=7)
     hql.write("('%s0','%s1','%s2','%s3','%s4','%s5','%s6','%s7','%s8','%s9')," % (w,w,w,w,w,w,w,w,w,w))
     hql.write("('%s0','%s1','%s2','%s3','%s4','%s5','%s6','%s7','%s8','%s9')," % (w,w,w,w,w,w,w,w,w,w))
   w = random_generator(size=7)
   w = random_generator(size=7)
@@ -3488,7 +3500,7 @@ def test_sasl_auth_in_large_download():
     query = hql_query(hql.getvalue())
     query = hql_query(hql.getvalue())
     handle = db.execute_and_wait(query, timeout_sec=300)
     handle = db.execute_and_wait(query, timeout_sec=300)
     hql.close()
     hql.close()
-  except Exception, ex:
+  except Exception as ex:
     failed = True
     failed = True
 
 
   # Big table creation (data upload) is successful
   # Big table creation (data upload) is successful
@@ -3504,7 +3516,7 @@ def test_sasl_auth_in_large_download():
     query = hql_query(hql)
     query = hql_query(hql)
     handle = db.execute_and_wait(query)
     handle = db.execute_and_wait(query)
     results = db.fetch(handle, True, max_rows-20)
     results = db.fetch(handle, True, max_rows-20)
-  except QueryServerException, ex:
+  except QueryServerException as ex:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
       failed = True
       failed = True
   except:
   except:
@@ -3518,7 +3530,7 @@ def test_sasl_auth_in_large_download():
     query = hql_query(hql)
     query = hql_query(hql)
     handle = db.execute_and_wait(query)
     handle = db.execute_and_wait(query)
     results = db.fetch(handle, True, max_rows)
     results = db.fetch(handle, True, max_rows)
-  except QueryServerException, ex:
+  except QueryServerException as ex:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
       failed = True
       failed = True
   except:
   except:
@@ -3536,7 +3548,7 @@ def test_sasl_auth_in_large_download():
   try:
   try:
     query = hql_query(hql)
     query = hql_query(hql)
     handle = db.execute_and_wait(query)
     handle = db.execute_and_wait(query)
-  except QueryServerException, ex:
+  except QueryServerException as ex:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
     if 'Invalid OperationHandle' in ex.message and 'EXECUTE_STATEMENT' in ex.message:
       failed = True
       failed = True
   except:
   except:

+ 21 - 19
apps/beeswax/src/beeswax/views.py

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # limitations under the License.
 
 
+from builtins import next
+from builtins import str
 import json
 import json
 import logging
 import logging
 import re
 import re
@@ -155,11 +157,11 @@ def delete_design(request):
     ids = request.POST.getlist('designs_selection')
     ids = request.POST.getlist('designs_selection')
     designs = dict([(design_id, authorized_get_design(request, design_id, owner_only=True)) for design_id in ids])
     designs = dict([(design_id, authorized_get_design(request, design_id, owner_only=True)) for design_id in ids])
 
 
-    if None in designs.values():
-      LOG.error('Cannot delete non-existent design(s) %s' % ','.join([key for key, name in designs.items() if name is None]))
+    if None in list(designs.values()):
+      LOG.error('Cannot delete non-existent design(s) %s' % ','.join([key for key, name in list(designs.items()) if name is None]))
       return list_designs(request)
       return list_designs(request)
 
 
-    for design in designs.values():
+    for design in list(designs.values()):
       if request.POST.get('skipTrash', 'false') == 'false':
       if request.POST.get('skipTrash', 'false') == 'false':
         design.doc.get().send_to_trash()
         design.doc.get().send_to_trash()
       else:
       else:
@@ -175,11 +177,11 @@ def restore_design(request):
     ids = request.POST.getlist('designs_selection')
     ids = request.POST.getlist('designs_selection')
     designs = dict([(design_id, authorized_get_design(request, design_id)) for design_id in ids])
     designs = dict([(design_id, authorized_get_design(request, design_id)) for design_id in ids])
 
 
-    if None in designs.values():
-      LOG.error('Cannot restore non-existent design(s) %s' % ','.join([key for key, name in designs.items() if name is None]))
+    if None in list(designs.values()):
+      LOG.error('Cannot restore non-existent design(s) %s' % ','.join([key for key, name in list(designs.items()) if name is None]))
       return list_designs(request)
       return list_designs(request)
 
 
-    for design in designs.values():
+    for design in list(designs.values()):
       design.doc.get().restore_from_trash()
       design.doc.get().restore_from_trash()
     return redirect(reverse(get_app_name(request) + ':list_designs'))
     return redirect(reverse(get_app_name(request) + ':list_designs'))
   else:
   else:
@@ -396,7 +398,7 @@ def download(request, id, format, user_agent=None):
     LOG.debug('Download results for query %s: [ %s ]' % (query_history.server_id, query_history.query))
     LOG.debug('Download results for query %s: [ %s ]' % (query_history.server_id, query_history.query))
 
 
     return data_export.download(query_history.get_handle(), format, db, user_agent=user_agent)
     return data_export.download(query_history.get_handle(), format, db, user_agent=user_agent)
-  except Exception, e:
+  except Exception as e:
     if not hasattr(e, 'message') or not e.message:
     if not hasattr(e, 'message') or not e.message:
       message = e
       message = e
     else:
     else:
@@ -428,7 +430,7 @@ def execute_query(request, design_id=None, query_history_id=None):
           action = 'watch-results'
           action = 'watch-results'
       else:
       else:
         action = 'editor-results'
         action = 'editor-results'
-    except QueryServerException, e:
+    except QueryServerException as e:
       if 'Invalid query handle' in e.message or 'Invalid OperationHandle' in e.message:
       if 'Invalid query handle' in e.message or 'Invalid OperationHandle' in e.message:
         query_history.save_state(QueryHistory.STATE.expired)
         query_history.save_state(QueryHistory.STATE.expired)
         LOG.warn("Invalid query handle", exc_info=sys.exc_info())
         LOG.warn("Invalid query handle", exc_info=sys.exc_info())
@@ -478,7 +480,7 @@ def view_results(request, id, first_row=0):
 
 
   It understands the ``context`` GET parameter. (See execute_query().)
   It understands the ``context`` GET parameter. (See execute_query().)
   """
   """
-  first_row = long(first_row)
+  first_row = int(first_row)
   start_over = (first_row == 0)
   start_over = (first_row == 0)
   results = type('Result', (object,), {
   results = type('Result', (object,), {
                 'rows': 0,
                 'rows': 0,
@@ -519,7 +521,7 @@ def view_results(request, id, first_row=0):
       log = db.get_log(handle)
       log = db.get_log(handle)
       columns = results.data_table.cols()
       columns = results.data_table.cols()
 
 
-  except Exception, ex:
+  except Exception as ex:
     LOG.exception('error fetching results')
     LOG.exception('error fetching results')
 
 
     fetch_error = True
     fetch_error = True
@@ -590,7 +592,7 @@ def configuration(request):
   if session:
   if session:
     properties = json.loads(session.properties)
     properties = json.loads(session.properties)
     # Redact passwords
     # Redact passwords
-    for key, value in properties.items():
+    for key, value in list(properties.items()):
       if 'password' in key.lower():
       if 'password' in key.lower():
         properties[key] = '*' * len(value)
         properties[key] = '*' * len(value)
   else:
   else:
@@ -612,7 +614,7 @@ def install_examples(request):
       db_name = request.POST.get('db_name', 'default')
       db_name = request.POST.get('db_name', 'default')
       beeswax.management.commands.beeswax_install_examples.Command().handle(app_name=app_name, db_name=db_name, user=request.user)
       beeswax.management.commands.beeswax_install_examples.Command().handle(app_name=app_name, db_name=db_name, user=request.user)
       response['status'] = 0
       response['status'] = 0
-    except Exception, err:
+    except Exception as err:
       LOG.exception(err)
       LOG.exception(err)
       response['message'] = str(err)
       response['message'] = str(err)
   else:
   else:
@@ -657,7 +659,7 @@ def query_done_cb(request, server_id):
 
 
     user.email_user(subject, body)
     user.email_user(subject, body)
     message['message'] = 'sent'
     message['message'] = 'sent'
-  except Exception, ex:
+  except Exception as ex:
     msg = "Failed to send query completion notification via e-mail: %s" % (ex)
     msg = "Failed to send query completion notification via e-mail: %s" % (ex)
     LOG.error(msg)
     LOG.error(msg)
     message['message'] = msg
     message['message'] = msg
@@ -843,7 +845,7 @@ def _list_designs(user, querydict, page_size, prefix="", is_trashed=False):
 
 
   # Design type
   # Design type
   d_type = querydict.get(prefix + 'type')
   d_type = querydict.get(prefix + 'type')
-  if d_type and d_type in SavedQuery.TYPES_MAPPING.keys():
+  if d_type and d_type in list(SavedQuery.TYPES_MAPPING.keys()):
     db_queryset = db_queryset.filter(extra=str(SavedQuery.TYPES_MAPPING[d_type]))
     db_queryset = db_queryset.filter(extra=str(SavedQuery.TYPES_MAPPING[d_type]))
 
 
   # Text search
   # Text search
@@ -859,7 +861,7 @@ def _list_designs(user, querydict, page_size, prefix="", is_trashed=False):
     else:
     else:
       sort_dir, sort_attr = '', sort_key
       sort_dir, sort_attr = '', sort_key
 
 
-    if not SORT_ATTR_TRANSLATION.has_key(sort_attr):
+    if sort_attr not in SORT_ATTR_TRANSLATION:
       LOG.warn('Bad parameter to list_designs: sort=%s' % (sort_key,))
       LOG.warn('Bad parameter to list_designs: sort=%s' % (sort_key,))
       sort_dir, sort_attr = DEFAULT_SORT
       sort_dir, sort_attr = DEFAULT_SORT
   else:
   else:
@@ -955,7 +957,7 @@ def parse_out_jobs(log, engine='mr', with_state=False):
 def _copy_prefix(prefix, base_dict):
 def _copy_prefix(prefix, base_dict):
   """Copy keys starting with ``prefix``"""
   """Copy keys starting with ``prefix``"""
   querydict = QueryDict(None, mutable=True)
   querydict = QueryDict(None, mutable=True)
-  for key, val in base_dict.iteritems():
+  for key, val in base_dict.items():
     if key.startswith(prefix):
     if key.startswith(prefix):
       querydict[key] = val
       querydict[key] = val
   return querydict
   return querydict
@@ -1007,7 +1009,7 @@ def _list_query_history(user, querydict, page_size, prefix=""):
   # Design type
   # Design type
   d_type = querydict.get(prefix + 'type')
   d_type = querydict.get(prefix + 'type')
   if d_type:
   if d_type:
-    if d_type not in SavedQuery.TYPES_MAPPING.keys():
+    if d_type not in list(SavedQuery.TYPES_MAPPING.keys()):
       LOG.warn('Bad parameter to list_query_history: type=%s' % (d_type,))
       LOG.warn('Bad parameter to list_query_history: type=%s' % (d_type,))
     else:
     else:
       db_queryset = db_queryset.filter(design__type=SavedQuery.TYPES_MAPPING[d_type])
       db_queryset = db_queryset.filter(design__type=SavedQuery.TYPES_MAPPING[d_type])
@@ -1024,7 +1026,7 @@ def _list_query_history(user, querydict, page_size, prefix=""):
     if sort_key[0] == '-':
     if sort_key[0] == '-':
       sort_dir, sort_attr = '-', sort_key[1:]
       sort_dir, sort_attr = '-', sort_key[1:]
 
 
-    if not SORT_ATTR_TRANSLATION.has_key(sort_attr):
+    if sort_attr not in SORT_ATTR_TRANSLATION:
       LOG.warn('Bad parameter to list_query_history: sort=%s' % (sort_key,))
       LOG.warn('Bad parameter to list_query_history: sort=%s' % (sort_key,))
       sort_dir, sort_attr = DEFAULT_SORT
       sort_dir, sort_attr = DEFAULT_SORT
   else:
   else:
@@ -1074,7 +1076,7 @@ def _update_query_state(query_history):
       if state_enum is None:
       if state_enum is None:
         # Error was logged at the source
         # Error was logged at the source
         return False
         return False
-    except Exception, e:
+    except Exception as e:
       LOG.error(e)
       LOG.error(e)
       state_enum = models.QueryHistory.STATE.failed
       state_enum = models.QueryHistory.STATE.failed
     query_history.save_state(state_enum)
     query_history.save_state(state_enum)

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff