Bug: fixing async syntax for python 3.7 (#5759)

* Bug: fixing async syntax for python 3.7

Rename async to async_ so superset installs for python 3.7.

* Addressing PR comments. Use kwargs instead of explicitly specifying async_ so downstream engines (e.g. PyHive) that supports async can choose to use the async_ in pythonwq3.7 and async in <=python3.6

* addressing additional pr comments
This commit is contained in:
Christine Chambers
2018-08-28 17:40:45 -07:00
committed by Beto Dealmeida
parent 48d220c03a
commit ae3fb04036
3 changed files with 9 additions and 8 deletions

View File

@@ -370,7 +370,7 @@ class BaseEngineSpec(object):
return {}
@classmethod
def execute(cls, cursor, query, async=False):
def execute(cls, cursor, query, **kwargs):
if cls.arraysize:
cursor.arraysize = cls.arraysize
cursor.execute(query)
@@ -1276,8 +1276,9 @@ class HiveEngineSpec(PrestoEngineSpec):
return configuration
@staticmethod
def execute(cursor, query, async=False):
cursor.execute(query, async=async)
def execute(cursor, query, async_=False):
kwargs = {'async': async_}
cursor.execute(query, **kwargs)
class MssqlEngineSpec(BaseEngineSpec):

View File

@@ -172,7 +172,7 @@ def execute_sql(
cursor = conn.cursor()
logging.info('Running query: \n{}'.format(executed_sql))
logging.info(query.executed_sql)
db_engine_spec.execute(cursor, query.executed_sql, async=True)
db_engine_spec.execute(cursor, query.executed_sql, async_=True)
logging.info('Handling cursor')
db_engine_spec.handle_cursor(cursor, query, session)
logging.info('Fetching data: {}'.format(query.to_dict()))

View File

@@ -123,14 +123,14 @@ class CeleryTestCase(SupersetTestCase):
)
def run_sql(self, db_id, sql, client_id, cta='false', tmp_table='tmp',
async='false'):
async_='false'):
self.login()
resp = self.client.post(
'/superset/sql_json/',
data=dict(
database_id=db_id,
sql=sql,
async=async,
runAsync=async_,
select_as_cta=cta,
tmp_table_name=tmp_table,
client_id=client_id,
@@ -183,7 +183,7 @@ class CeleryTestCase(SupersetTestCase):
eng = main_db.get_sqla_engine()
sql_where = "SELECT name FROM ab_role WHERE name='Admin'"
result = self.run_sql(
main_db.id, sql_where, '4', async='true', tmp_table='tmp_async_1',
main_db.id, sql_where, '4', async_='true', tmp_table='tmp_async_1',
cta='true')
assert result['query']['state'] in (
QueryStatus.PENDING, QueryStatus.RUNNING, QueryStatus.SUCCESS)
@@ -211,7 +211,7 @@ class CeleryTestCase(SupersetTestCase):
eng = main_db.get_sqla_engine()
sql_where = "SELECT name FROM ab_role WHERE name='Alpha' LIMIT 1"
result = self.run_sql(
main_db.id, sql_where, '5', async='true', tmp_table='tmp_async_2',
main_db.id, sql_where, '5', async_='true', tmp_table='tmp_async_2',
cta='true')
assert result['query']['state'] in (
QueryStatus.PENDING, QueryStatus.RUNNING, QueryStatus.SUCCESS)