From 5ad7f6920c32a8dd0af7d6d77c07718f9773105d Mon Sep 17 00:00:00 2001 From: Denis Otkidach Date: Thu, 18 Jun 2020 17:16:30 +0300 Subject: [PATCH] Make interface compatible with Python 2.7 See https://github.com/xzkostyan/clickhouse-sqlalchemy/pull/97#discussion_r442079577 --- clickhouse_sqlalchemy/drivers/base.py | 2 +- clickhouse_sqlalchemy/ext/clauses.py | 4 ++-- clickhouse_sqlalchemy/orm/query.py | 4 ++-- clickhouse_sqlalchemy/sql/selectable.py | 4 ++-- tests/orm/test_select.py | 4 ++-- tests/sql/test_selectable.py | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/clickhouse_sqlalchemy/drivers/base.py b/clickhouse_sqlalchemy/drivers/base.py index 4c05bc31..4184c9cd 100644 --- a/clickhouse_sqlalchemy/drivers/base.py +++ b/clickhouse_sqlalchemy/drivers/base.py @@ -109,7 +109,7 @@ def limit_by_clause(self, select, **kw): text += self.process(limit_by_clause.offset, **kw) + ', ' text += self.process(limit_by_clause.limit, **kw) limit_by_exprs = limit_by_clause.by_clauses._compiler_dispatch( - self, **kw, + self, **kw ) text += ' BY ' + limit_by_exprs diff --git a/clickhouse_sqlalchemy/ext/clauses.py b/clickhouse_sqlalchemy/ext/clauses.py index c90d318a..e12a78eb 100644 --- a/clickhouse_sqlalchemy/ext/clauses.py +++ b/clickhouse_sqlalchemy/ext/clauses.py @@ -33,9 +33,9 @@ def sample_clause(element): class LimitByClause: - def __init__(self, by_clauses, offset, limit): + def __init__(self, by_clauses, limit, offset): self.by_clauses = ClauseList( - *by_clauses, _literal_as_text=_literal_as_label_reference, + *by_clauses, _literal_as_text=_literal_as_label_reference ) self.offset = _offset_or_limit_clause(offset) self.limit = _offset_or_limit_clause(limit) diff --git a/clickhouse_sqlalchemy/orm/query.py b/clickhouse_sqlalchemy/orm/query.py index 76ceccfa..5cdb5e08 100644 --- a/clickhouse_sqlalchemy/orm/query.py +++ b/clickhouse_sqlalchemy/orm/query.py @@ -55,8 +55,8 @@ def sample(self, sample): self._sample = sample @_generative() - def limit_by(self, *by_clauses, offset=None, limit): - self._limit_by = LimitByClause(by_clauses, offset, limit) + def limit_by(self, by_clauses, limit, offset=None): + self._limit_by = LimitByClause(by_clauses, limit, offset) def join(self, *props, **kwargs): type = kwargs.pop('type', None) diff --git a/clickhouse_sqlalchemy/sql/selectable.py b/clickhouse_sqlalchemy/sql/selectable.py index 5269c0da..5feb0d74 100644 --- a/clickhouse_sqlalchemy/sql/selectable.py +++ b/clickhouse_sqlalchemy/sql/selectable.py @@ -50,8 +50,8 @@ def sample(self, sample): self._sample_clause = sample_clause(sample) @_generative - def limit_by(self, *by_clauses, offset=None, limit): - self._limit_by_clause = LimitByClause(by_clauses, offset, limit) + def limit_by(self, by_clauses, limit, offset=None): + self._limit_by_clause = LimitByClause(by_clauses, limit, offset) @_generative def array_join(self, *columns): diff --git a/tests/orm/test_select.py b/tests/orm/test_select.py index 075208cc..56330073 100644 --- a/tests/orm/test_select.py +++ b/tests/orm/test_select.py @@ -107,7 +107,7 @@ def test_limit_by(self): table = self._make_table() query = self.session.query(table.c.x).order_by(table.c.x)\ - .limit_by(table.c.x, limit=1) + .limit_by([table.c.x], limit=1) self.assertEqual( self.compile(query), 'SELECT t1.x AS t1_x FROM t1 ORDER BY t1.x ' @@ -122,7 +122,7 @@ def test_limit_by_with_offset(self): table = self._make_table() query = self.session.query(table.c.x).order_by(table.c.x)\ - .limit_by(table.c.x, offset=1, limit=2) + .limit_by([table.c.x], offset=1, limit=2) self.assertEqual( self.compile(query), 'SELECT t1.x AS t1_x FROM t1 ORDER BY t1.x ' diff --git a/tests/sql/test_selectable.py b/tests/sql/test_selectable.py index 73a7b1cf..591629cf 100644 --- a/tests/sql/test_selectable.py +++ b/tests/sql/test_selectable.py @@ -61,7 +61,7 @@ def test_limit_by(self): table = self._make_table() query = select([table.c.x]).order_by(table.c.x)\ - .limit_by(table.c.x, limit=1) + .limit_by([table.c.x], limit=1) self.assertEqual( self.compile(query), 'SELECT t1.x FROM t1 ORDER BY t1.x LIMIT %(param_1)s BY t1.x' @@ -75,7 +75,7 @@ def test_limit_by_with_offset(self): table = self._make_table() query = select([table.c.x]).order_by(table.c.x)\ - .limit_by(table.c.x, offset=1, limit=2) + .limit_by([table.c.x], offset=1, limit=2) self.assertEqual( self.compile(query), 'SELECT t1.x FROM t1 ORDER BY t1.x '