Skip to content

Commit 277c298

Browse files
committed
rebuild and retest
1 parent 918d094 commit 277c298

File tree

7 files changed

+40
-58
lines changed

7 files changed

+40
-58
lines changed

build/lib/data_algebra/SparkSQL.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,24 @@
1212
except ImportError:
1313
have_Spark = False
1414

15+
16+
def _sparksql_mean_expr(dbmodel, expression):
17+
return (
18+
"AVG(" + dbmodel.expr_to_sql(expression.args[0], want_inline_parens=False) + ")"
19+
)
20+
21+
22+
def _sparksql_size_expr(dbmodel, expression):
23+
return "SUM(1)"
24+
25+
26+
1527
# map from op-name to special SQL formatting code
16-
SparkSQL_formatters = {"___": lambda dbmodel, expression: expression.to_python()}
28+
SparkSQL_formatters = {
29+
"___": lambda dbmodel, expression: expression.to_python(),
30+
"mean": _sparksql_mean_expr,
31+
"size": _sparksql_size_expr,
32+
}
1733

1834

1935
class SparkConnection:
@@ -43,14 +59,6 @@ def __init__(self):
4359
sql_formatters=SparkSQL_formatters,
4460
)
4561

46-
def quote_identifier(self, identifier):
47-
if not isinstance(identifier, str):
48-
raise TypeError("expected identifier to be a str")
49-
if self.identifier_quote in identifier:
50-
raise ValueError('did not expect " in identifier')
51-
# TODO: see if we can get rid of the tolower conversion
52-
return self.identifier_quote + identifier.lower() + self.identifier_quote
53-
5462
# noinspection PyMethodMayBeStatic
5563
def execute(self, conn, q):
5664
assert isinstance(conn, SparkConnection)

coverage.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ data_algebra/MySQL.py 33 11 67%
7979
data_algebra/OrderedSet.py 52 7 87%
8080
data_algebra/PostgreSQL.py 22 7 68%
8181
data_algebra/SQLite.py 72 6 92%
82-
data_algebra/SparkSQL.py 64 41 36%
82+
data_algebra/SparkSQL.py 62 39 37%
8383
data_algebra/__init__.py 6 0 100%
8484
data_algebra/arrow.py 173 39 77%
8585
data_algebra/bigquery_user_fns.py 83 58 30%
@@ -104,7 +104,7 @@ data_algebra/test_util.py 181 27 85%
104104
data_algebra/user_fn.py 84 27 68%
105105
data_algebra/util.py 28 4 86%
106106
----------------------------------------------------------
107-
TOTAL 4464 957 79%
107+
TOTAL 4462 955 79%
108108

109109

110-
============================= 162 passed in 25.63s =============================
110+
============================= 162 passed in 26.33s =============================
-7 Bytes
Binary file not shown.

dist/data_algebra-0.7.2.tar.gz

-20 Bytes
Binary file not shown.

docs/data_algebra/BigQuery.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ <h5>Inherited Members</h5>
760760
*,
761761
db_model=BigQueryModel,
762762
conn,
763-
fns={&#39;as_int64&#39;: &lt;function as_int64 at 0x7fc20913c700&gt;, &#39;as_str&#39;: &lt;function as_str at 0x7fc20913c040&gt;, &#39;trimstr&#39;: &lt;function trimstr at 0x7fc20913c0d0&gt;, &#39;coalesce_0&#39;: &lt;function coalesce_0 at 0x7fc20913c310&gt;, &#39;coalesce&#39;: &lt;function coalesce at 0x7fc20913c550&gt;, &#39;datetime_to_date&#39;: &lt;function datetime_to_date at 0x7fc1b84184c0&gt;, &#39;parse_datetime&#39;: &lt;function parse_datetime at 0x7fc1b841e160&gt;, &#39;parse_date&#39;: &lt;function parse_date at 0x7fc1b841e1f0&gt;, &#39;format_datetime&#39;: &lt;function format_datetime at 0x7fc1b841e280&gt;, &#39;format_date&#39;: &lt;function format_date at 0x7fc1b841e310&gt;, &#39;dayofweek&#39;: &lt;function dayofweek at 0x7fc1b841e3a0&gt;, &#39;dayofyear&#39;: &lt;function dayofyear at 0x7fc1b841e430&gt;, &#39;dayofmonth&#39;: &lt;function dayofmonth at 0x7fc1b841e550&gt;, &#39;weekofyear&#39;: &lt;function weekofyear at 0x7fc1b841e4c0&gt;, &#39;month&#39;: &lt;function month at 0x7fc1b841e5e0&gt;, &#39;quarter&#39;: &lt;function quarter at 0x7fc1b841e670&gt;, &#39;year&#39;: &lt;function year at 0x7fc1b841e700&gt;, &#39;timestamp_diff&#39;: &lt;function timestamp_diff at 0x7fc1b841e790&gt;, &#39;date_diff&#39;: &lt;function date_diff at 0x7fc1b841e820&gt;, &#39;base_Sunday&#39;: &lt;function base_Sunday at 0x7fc1b841e8b0&gt;}
763+
fns={&#39;as_int64&#39;: &lt;function as_int64 at 0x7f9478aac700&gt;, &#39;as_str&#39;: &lt;function as_str at 0x7f9478aac040&gt;, &#39;trimstr&#39;: &lt;function trimstr at 0x7f9478aac0d0&gt;, &#39;coalesce_0&#39;: &lt;function coalesce_0 at 0x7f9478aac310&gt;, &#39;coalesce&#39;: &lt;function coalesce at 0x7f9478aac550&gt;, &#39;datetime_to_date&#39;: &lt;function datetime_to_date at 0x7f9478cff4c0&gt;, &#39;parse_datetime&#39;: &lt;function parse_datetime at 0x7f9478d05160&gt;, &#39;parse_date&#39;: &lt;function parse_date at 0x7f9478d051f0&gt;, &#39;format_datetime&#39;: &lt;function format_datetime at 0x7f9478d05280&gt;, &#39;format_date&#39;: &lt;function format_date at 0x7f9478d05310&gt;, &#39;dayofweek&#39;: &lt;function dayofweek at 0x7f9478d053a0&gt;, &#39;dayofyear&#39;: &lt;function dayofyear at 0x7f9478d05430&gt;, &#39;dayofmonth&#39;: &lt;function dayofmonth at 0x7f9478d05550&gt;, &#39;weekofyear&#39;: &lt;function weekofyear at 0x7f9478d054c0&gt;, &#39;month&#39;: &lt;function month at 0x7f9478d055e0&gt;, &#39;quarter&#39;: &lt;function quarter at 0x7f9478d05670&gt;, &#39;year&#39;: &lt;function year at 0x7f9478d05700&gt;, &#39;timestamp_diff&#39;: &lt;function timestamp_diff at 0x7f9478d05790&gt;, &#39;date_diff&#39;: &lt;function date_diff at 0x7f9478d05820&gt;, &#39;base_Sunday&#39;: &lt;function base_Sunday at 0x7f9478d058b0&gt;}
764764
)</span>
765765
</div>
766766

docs/data_algebra/SparkSQL.html

Lines changed: 18 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ <h2>API Documentation</h2>
4848
<li>
4949
<a class="function" href="#SparkSQLModel.__init__">SparkSQLModel</a>
5050
</li>
51-
<li>
52-
<a class="function" href="#SparkSQLModel.quote_identifier">quote_identifier</a>
53-
</li>
5451
<li>
5552
<a class="function" href="#SparkSQLModel.execute">execute</a>
5653
</li>
@@ -98,8 +95,24 @@ <h1 class="modulename">
9895
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
9996
<span class="n">have_Spark</span> <span class="o">=</span> <span class="kc">False</span>
10097

98+
99+
<span class="k">def</span> <span class="nf">_sparksql_mean_expr</span><span class="p">(</span><span class="n">dbmodel</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
100+
<span class="k">return</span> <span class="p">(</span>
101+
<span class="s2">&quot;AVG(&quot;</span> <span class="o">+</span> <span class="n">dbmodel</span><span class="o">.</span><span class="n">expr_to_sql</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">want_inline_parens</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span>
102+
<span class="p">)</span>
103+
104+
105+
<span class="k">def</span> <span class="nf">_sparksql_size_expr</span><span class="p">(</span><span class="n">dbmodel</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
106+
<span class="k">return</span> <span class="s2">&quot;SUM(1)&quot;</span>
107+
108+
109+
101110
<span class="c1"># map from op-name to special SQL formatting code</span>
102-
<span class="n">SparkSQL_formatters</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;___&quot;</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">dbmodel</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">expression</span><span class="o">.</span><span class="n">to_python</span><span class="p">()}</span>
111+
<span class="n">SparkSQL_formatters</span> <span class="o">=</span> <span class="p">{</span>
112+
<span class="s2">&quot;___&quot;</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">dbmodel</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">expression</span><span class="o">.</span><span class="n">to_python</span><span class="p">(),</span>
113+
<span class="s2">&quot;mean&quot;</span><span class="p">:</span> <span class="n">_sparksql_mean_expr</span><span class="p">,</span>
114+
<span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="n">_sparksql_size_expr</span><span class="p">,</span>
115+
<span class="p">}</span>
103116

104117

105118
<span class="k">class</span> <span class="nc">SparkConnection</span><span class="p">:</span>
@@ -129,14 +142,6 @@ <h1 class="modulename">
129142
<span class="n">sql_formatters</span><span class="o">=</span><span class="n">SparkSQL_formatters</span><span class="p">,</span>
130143
<span class="p">)</span>
131144

132-
<span class="k">def</span> <span class="nf">quote_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier</span><span class="p">):</span>
133-
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
134-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;expected identifier to be a str&quot;</span><span class="p">)</span>
135-
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="ow">in</span> <span class="n">identifier</span><span class="p">:</span>
136-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;did not expect &quot; in identifier&#39;</span><span class="p">)</span>
137-
<span class="c1"># TODO: see if we can get rid of the tolower conversion</span>
138-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="o">+</span> <span class="n">identifier</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span>
139-
140145
<span class="c1"># noinspection PyMethodMayBeStatic</span>
141146
<span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">,</span> <span class="n">q</span><span class="p">):</span>
142147
<span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">conn</span><span class="p">,</span> <span class="n">SparkConnection</span><span class="p">)</span>
@@ -294,14 +299,6 @@ <h1 class="modulename">
294299
<span class="n">sql_formatters</span><span class="o">=</span><span class="n">SparkSQL_formatters</span><span class="p">,</span>
295300
<span class="p">)</span>
296301

297-
<span class="k">def</span> <span class="nf">quote_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier</span><span class="p">):</span>
298-
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
299-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;expected identifier to be a str&quot;</span><span class="p">)</span>
300-
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="ow">in</span> <span class="n">identifier</span><span class="p">:</span>
301-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;did not expect &quot; in identifier&#39;</span><span class="p">)</span>
302-
<span class="c1"># TODO: see if we can get rid of the tolower conversion</span>
303-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="o">+</span> <span class="n">identifier</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span>
304-
305302
<span class="c1"># noinspection PyMethodMayBeStatic</span>
306303
<span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">,</span> <span class="n">q</span><span class="p">):</span>
307304
<span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">conn</span><span class="p">,</span> <span class="n">SparkConnection</span><span class="p">)</span>
@@ -366,30 +363,6 @@ <h1 class="modulename">
366363

367364

368365

369-
</div>
370-
<div id="SparkSQLModel.quote_identifier" class="classattr">
371-
<div class="attr function"><a class="headerlink" href="#SparkSQLModel.quote_identifier">#&nbsp;&nbsp</a>
372-
373-
374-
<span class="def">def</span>
375-
<span class="name">quote_identifier</span><span class="signature">(self, identifier)</span>:
376-
</div>
377-
378-
<details>
379-
<summary>View Source</summary>
380-
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">quote_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier</span><span class="p">):</span>
381-
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
382-
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;expected identifier to be a str&quot;</span><span class="p">)</span>
383-
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="ow">in</span> <span class="n">identifier</span><span class="p">:</span>
384-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;did not expect &quot; in identifier&#39;</span><span class="p">)</span>
385-
<span class="c1"># TODO: see if we can get rid of the tolower conversion</span>
386-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span> <span class="o">+</span> <span class="n">identifier</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_quote</span>
387-
</pre></div>
388-
389-
</details>
390-
391-
392-
393366
</div>
394367
<div id="SparkSQLModel.execute" class="classattr">
395368
<div class="attr function"><a class="headerlink" href="#SparkSQLModel.execute">#&nbsp;&nbsp</a>
@@ -506,6 +479,7 @@ <h5>Inherited Members</h5>
506479
<dd id="SparkSQLModel.drop_table" class="function"><a href="db_model.html#DBModel.drop_table">drop_table</a></dd>
507480
<dd id="SparkSQLModel.read_table" class="function"><a href="db_model.html#DBModel.read_table">read_table</a></dd>
508481
<dd id="SparkSQLModel.read" class="function"><a href="db_model.html#DBModel.read">read</a></dd>
482+
<dd id="SparkSQLModel.quote_identifier" class="function"><a href="db_model.html#DBModel.quote_identifier">quote_identifier</a></dd>
509483
<dd id="SparkSQLModel.quote_table_name" class="function"><a href="db_model.html#DBModel.quote_table_name">quote_table_name</a></dd>
510484
<dd id="SparkSQLModel.quote_string" class="function"><a href="db_model.html#DBModel.quote_string">quote_string</a></dd>
511485
<dd id="SparkSQLModel.quote_literal" class="function"><a href="db_model.html#DBModel.quote_literal">quote_literal</a></dd>

docs/search.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)