Skip to content

Commit 5f6ec3c

Browse files
committed
check more earlier
fix some column default glitches
1 parent 5be037c commit 5f6ec3c

File tree

6 files changed

+64
-4
lines changed

6 files changed

+64
-4
lines changed

Examples/LogisticExample/Logistic2.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
{
8585
"name": "stdout",
8686
"text": [
87-
"[\n Extend({'probability': '(assessmentTotal * 0.237).exp()'}, partition_by=None, order_by=None, reverse=None),\n Extend({'total': 'probability.sum()'}, partition_by='subjectID', order_by=None, reverse=None),\n Extend({'probability': 'probability/total'}, partition_by=None, order_by=None, reverse=None),\n]\n"
87+
"[\n Extend({'probability': '(assessmentTotal * 0.237).exp()'}, partition_by=None, order_by=None, reverse=None),\n Extend({'total': 'probability.sum()'}, partition_by=['subjectID'], order_by=None, reverse=None),\n Extend({'probability': 'probability/total'}, partition_by=None, order_by=None, reverse=None),\n]\n"
8888
],
8989
"output_type": "stream"
9090
}

build/lib/data_algebra/data_pipe.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ class Extend(data_algebra.pipe.PipeStep):
3030
ops: Dict[str, data_algebra.expr_rep.Expression]
3131

3232
def __init__(self, ops, *, partition_by=None, order_by=None, reverse=None):
33+
if isinstance(partition_by, str):
34+
partition_by = [partition_by]
35+
if isinstance(order_by, str):
36+
order_by = [order_by]
37+
if isinstance(reverse, str):
38+
reverse = [reverse]
39+
if reverse is not None and len(reverse) > 0:
40+
if order_by is None:
41+
raise ValueError("set is None when order_by is not None")
42+
unknown = set(reverse) - set(order_by)
43+
if len(unknown) > 0:
44+
raise ValueError("columns in reverse that are not in order_by: " + str(unknown))
3345
data_algebra.pipe.PipeStep.__init__(self, name="Extend")
3446
self._ops = ops
3547
self.partition_by = partition_by
@@ -68,6 +80,8 @@ class Project(data_algebra.pipe.PipeStep):
6880
ops: Dict[str, data_algebra.expr_rep.Expression]
6981

7082
def __init__(self, ops, *, group_by=None):
83+
if isinstance(group_by, str):
84+
group_by = [group_by]
7185
data_algebra.pipe.PipeStep.__init__(self, name="Project")
7286
self._ops = ops
7387
self.group_by = group_by
@@ -124,6 +138,8 @@ class SelectColumns(data_algebra.pipe.PipeStep):
124138
column_selection: List[str]
125139

126140
def __init__(self, columns):
141+
if isinstance(columns, str):
142+
columns = [columns]
127143
column_selection = [c for c in columns]
128144
self.column_selection = column_selection
129145
data_algebra.pipe.PipeStep.__init__(self, name="SelectColumns")
@@ -151,6 +167,8 @@ class DropColumns(data_algebra.pipe.PipeStep):
151167
column_deletions: List[str]
152168

153169
def __init__(self, column_deletions):
170+
if isinstance(column_deletions, str):
171+
column_deletions = [column_deletions]
154172
column_deletions = [c for c in column_deletions]
155173
self.column_deletions = column_deletions
156174
data_algebra.pipe.PipeStep.__init__(self, name="DropColumns")
@@ -179,6 +197,16 @@ class OrderRows(data_algebra.pipe.PipeStep):
179197
reverse: List[str]
180198

181199
def __init__(self, columns, *, reverse=None, limit=None):
200+
if isinstance(columns, str):
201+
columns = [columns]
202+
if isinstance(reverse, str):
203+
reverse = [reverse]
204+
if reverse is not None and len(reverse) > 0:
205+
if columns is None:
206+
raise ValueError("set is None when order_by is not None")
207+
unknown = set(reverse) - set(columns)
208+
if len(unknown) > 0:
209+
raise ValueError("columns in reverse that are not in order_by: " + str(unknown))
182210
self.order_columns = [c for c in columns]
183211
if reverse is None:
184212
reverse = []
@@ -239,6 +267,8 @@ class NaturalJoin(data_algebra.pipe.PipeStep):
239267
def __init__(self, *, b=None, by=None, jointype="INNER"):
240268
if not isinstance(b, data_algebra.data_ops.ViewRepresentation):
241269
raise TypeError("b must be a data_algebra.data_ops.ViewRepresentation")
270+
if isinstance(by, str):
271+
by = [by]
242272
self._by = by
243273
self._jointype = jointype
244274
self._b = b

coverage.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ data_algebra/cdata_impl.py 152 60 61%
4040
data_algebra/dask_model.py 121 23 81%
4141
data_algebra/data_model.py 41 15 63%
4242
data_algebra/data_ops.py 827 179 78%
43-
data_algebra/data_pipe.py 231 64 72%
43+
data_algebra/data_pipe.py 261 83 68%
4444
data_algebra/data_types.py 39 19 51%
4545
data_algebra/datatable_model.py 131 81 38%
4646
data_algebra/db_model.py 364 83 77%
@@ -54,7 +54,7 @@ data_algebra/pipe.py 65 19 71%
5454
data_algebra/util.py 84 7 92%
5555
data_algebra/yaml.py 120 15 88%
5656
-----------------------------------------------------
57-
TOTAL 3007 832 72%
57+
TOTAL 3037 851 72%
5858

5959

60-
========================== 31 passed in 7.08 seconds ===========================
60+
========================== 31 passed in 7.53 seconds ===========================

data_algebra/data_pipe.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ class Extend(data_algebra.pipe.PipeStep):
3030
ops: Dict[str, data_algebra.expr_rep.Expression]
3131

3232
def __init__(self, ops, *, partition_by=None, order_by=None, reverse=None):
33+
if isinstance(partition_by, str):
34+
partition_by = [partition_by]
35+
if isinstance(order_by, str):
36+
order_by = [order_by]
37+
if isinstance(reverse, str):
38+
reverse = [reverse]
39+
if reverse is not None and len(reverse) > 0:
40+
if order_by is None:
41+
raise ValueError("set is None when order_by is not None")
42+
unknown = set(reverse) - set(order_by)
43+
if len(unknown) > 0:
44+
raise ValueError("columns in reverse that are not in order_by: " + str(unknown))
3345
data_algebra.pipe.PipeStep.__init__(self, name="Extend")
3446
self._ops = ops
3547
self.partition_by = partition_by
@@ -68,6 +80,8 @@ class Project(data_algebra.pipe.PipeStep):
6880
ops: Dict[str, data_algebra.expr_rep.Expression]
6981

7082
def __init__(self, ops, *, group_by=None):
83+
if isinstance(group_by, str):
84+
group_by = [group_by]
7185
data_algebra.pipe.PipeStep.__init__(self, name="Project")
7286
self._ops = ops
7387
self.group_by = group_by
@@ -124,6 +138,8 @@ class SelectColumns(data_algebra.pipe.PipeStep):
124138
column_selection: List[str]
125139

126140
def __init__(self, columns):
141+
if isinstance(columns, str):
142+
columns = [columns]
127143
column_selection = [c for c in columns]
128144
self.column_selection = column_selection
129145
data_algebra.pipe.PipeStep.__init__(self, name="SelectColumns")
@@ -151,6 +167,8 @@ class DropColumns(data_algebra.pipe.PipeStep):
151167
column_deletions: List[str]
152168

153169
def __init__(self, column_deletions):
170+
if isinstance(column_deletions, str):
171+
column_deletions = [column_deletions]
154172
column_deletions = [c for c in column_deletions]
155173
self.column_deletions = column_deletions
156174
data_algebra.pipe.PipeStep.__init__(self, name="DropColumns")
@@ -179,6 +197,16 @@ class OrderRows(data_algebra.pipe.PipeStep):
179197
reverse: List[str]
180198

181199
def __init__(self, columns, *, reverse=None, limit=None):
200+
if isinstance(columns, str):
201+
columns = [columns]
202+
if isinstance(reverse, str):
203+
reverse = [reverse]
204+
if reverse is not None and len(reverse) > 0:
205+
if columns is None:
206+
raise ValueError("set is None when order_by is not None")
207+
unknown = set(reverse) - set(columns)
208+
if len(unknown) > 0:
209+
raise ValueError("columns in reverse that are not in order_by: " + str(unknown))
182210
self.order_columns = [c for c in columns]
183211
if reverse is None:
184212
reverse = []
@@ -239,6 +267,8 @@ class NaturalJoin(data_algebra.pipe.PipeStep):
239267
def __init__(self, *, b=None, by=None, jointype="INNER"):
240268
if not isinstance(b, data_algebra.data_ops.ViewRepresentation):
241269
raise TypeError("b must be a data_algebra.data_ops.ViewRepresentation")
270+
if isinstance(by, str):
271+
by = [by]
242272
self._by = by
243273
self._jointype = jointype
244274
self._b = b
208 Bytes
Binary file not shown.

dist/data_algebra-0.2.3.tar.gz

156 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)