Skip to content

Commit 054876a

Browse files
authored
Refactor writers and update dependencies (chitralverma#130)
* Update versions * fixes for update * null_last for top_k and sort accepts an array of bools * redo writers * new writer for json * lint fix * new writer for csv * docs for writers * remaining updates * remaining writer docs
1 parent a19f8fc commit 054876a

File tree

30 files changed

+2160
-1395
lines changed

30 files changed

+2160
-1395
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ coverage.xml
1313
target/
1414
.classpath
1515
.project
16-
.settings/
16+
.settings/

.scalafmt.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = 3.8.1
1+
version = 3.8.3
22
runner.dialect = scala213
33
project.git = true
44
maxColumn = 98

core/src/main/scala/org/polars/scala/polars/api/DataFrame.scala

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class DataFrame private (private[polars] val ptr: Long) {
3838
def sort(
3939
cols: Array[String],
4040
descending: Array[Boolean],
41-
nullLast: Boolean,
41+
nullLast: Array[Boolean],
4242
maintainOrder: Boolean
4343
): DataFrame =
4444
toLazy.sort(cols, descending, nullLast, maintainOrder).collect(noOptimization = true)
@@ -53,17 +53,21 @@ class DataFrame private (private[polars] val ptr: Long) {
5353
.sort(
5454
cols = Array(expr),
5555
descending = Array(descending),
56-
nullLast = nullLast,
56+
nullLast = Array(nullLast),
5757
maintainOrder = maintainOrder
5858
)
5959
.collect(noOptimization = true)
6060

61-
def sort(exprs: Array[Expression], null_last: Boolean, maintain_order: Boolean): DataFrame =
61+
def sort(
62+
exprs: Array[Expression],
63+
null_last: Array[Boolean],
64+
maintain_order: Boolean
65+
): DataFrame =
6266
toLazy.sort(exprs, null_last, maintain_order).collect(noOptimization = true)
6367

6468
def sort(expr: Expression, null_last: Boolean, maintain_order: Boolean): DataFrame =
6569
toLazy
66-
.sort(Array(expr), null_last = null_last, maintainOrder = maintain_order)
70+
.sort(Array(expr), Array(null_last), maintainOrder = maintain_order)
6771
.collect(noOptimization = true)
6872

6973
def set_sorted(mapping: Map[String, Boolean]): DataFrame =
@@ -76,7 +80,7 @@ class DataFrame private (private[polars] val ptr: Long) {
7680
k: Int,
7781
cols: Array[String],
7882
descending: Array[Boolean],
79-
nullLast: Boolean,
83+
nullLast: Array[Boolean],
8084
maintainOrder: Boolean
8185
): DataFrame =
8286
toLazy
@@ -95,15 +99,15 @@ class DataFrame private (private[polars] val ptr: Long) {
9599
k = k,
96100
cols = Array(expr),
97101
descending = Array(descending),
98-
nullLast = nullLast,
102+
nullLast = Array(nullLast),
99103
maintainOrder = maintainOrder
100104
)
101105
.collect(projectionPushdown = false, predicatePushdown = false, commSubplanElim = false)
102106

103107
def top_k(
104108
k: Int,
105109
exprs: Array[Expression],
106-
null_last: Boolean,
110+
null_last: Array[Boolean],
107111
maintain_order: Boolean
108112
): DataFrame =
109113
toLazy
@@ -112,7 +116,7 @@ class DataFrame private (private[polars] val ptr: Long) {
112116

113117
def top_k(k: Int, expr: Expression, null_last: Boolean, maintain_order: Boolean): DataFrame =
114118
toLazy
115-
.top_k(k, Array(expr), null_last = null_last, maintainOrder = maintain_order)
119+
.top_k(k, Array(expr), Array(null_last), maintainOrder = maintain_order)
116120
.collect(projectionPushdown = false, predicatePushdown = false, commSubplanElim = false)
117121

118122
def limit(n: Long): DataFrame = DataFrame.withPtr(data_frame.limit(ptr, n))

core/src/main/scala/org/polars/scala/polars/api/LazyFrame.scala

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class LazyFrame private (private[polars] val ptr: Long) {
4343
def sort(
4444
cols: Array[String],
4545
descending: Array[Boolean],
46-
nullLast: Boolean,
46+
nullLast: Array[Boolean],
4747
maintainOrder: Boolean
4848
): LazyFrame = {
4949
assert(
@@ -56,7 +56,7 @@ class LazyFrame private (private[polars] val ptr: Long) {
5656
Expression.withPtr(column_expr.sort_column_by_name(column, bool))
5757
}
5858

59-
sort(exprs, null_last = nullLast, maintainOrder = maintainOrder)
59+
sort(exprs, nullLast, maintainOrder = maintainOrder)
6060
}
6161

6262
def sort(
@@ -65,17 +65,27 @@ class LazyFrame private (private[polars] val ptr: Long) {
6565
nullLast: Boolean,
6666
maintainOrder: Boolean
6767
): LazyFrame =
68-
sort(Array(col), Array(descending), nullLast = nullLast, maintainOrder = maintainOrder)
68+
sort(Array(col), Array(descending), Array(nullLast), maintainOrder = maintainOrder)
69+
70+
def sort(
71+
exprs: Array[Expression],
72+
null_last: Array[Boolean],
73+
maintainOrder: Boolean
74+
): LazyFrame = {
75+
assert(
76+
exprs.length == null_last.length,
77+
s"Length of provided expressions (${exprs.length}) and their " +
78+
s"null_last (${null_last.length}) is not equal."
79+
)
6980

70-
def sort(exprs: Array[Expression], null_last: Boolean, maintainOrder: Boolean): LazyFrame = {
7181
val ldfPtr =
7282
lazy_frame.sortFromExprs(ptr, exprs.map(_.ptr).distinct, null_last, maintainOrder)
7383

7484
LazyFrame.withPtr(ldfPtr)
7585
}
7686

7787
def sort(expr: Expression, nullLast: Boolean, maintainOrder: Boolean): LazyFrame =
78-
sort(Array(expr), null_last = nullLast, maintainOrder = maintainOrder)
88+
sort(Array(expr), Array(nullLast), maintainOrder = maintainOrder)
7989

8090
def set_sorted(mapping: Map[String, Boolean]): LazyFrame =
8191
set_sorted(mapping.asJava)
@@ -89,29 +99,34 @@ class LazyFrame private (private[polars] val ptr: Long) {
8999
def top_k(
90100
k: Int,
91101
exprs: Array[Expression],
92-
null_last: Boolean,
102+
null_last: Array[Boolean],
93103
maintainOrder: Boolean
94104
): LazyFrame = {
105+
assert(
106+
exprs.length == null_last.length,
107+
s"Length of provided expressions (${exprs.length}) and their " +
108+
s"null_last (${null_last.length}) is not equal."
109+
)
95110
val ldfPtr =
96111
lazy_frame.topKFromExprs(ptr, k, exprs.map(_.ptr).distinct, null_last, maintainOrder)
97112

98113
LazyFrame.withPtr(ldfPtr)
99114
}
100115

101116
def top_k(k: Int, expr: Expression, nullLast: Boolean, maintainOrder: Boolean): LazyFrame =
102-
top_k(k, Array(expr), null_last = nullLast, maintainOrder = maintainOrder)
117+
top_k(k, Array(expr), Array(nullLast), maintainOrder = maintainOrder)
103118

104119
def top_k(
105120
k: Int,
106121
cols: Array[String],
107122
descending: Array[Boolean],
108-
nullLast: Boolean,
123+
nullLast: Array[Boolean],
109124
maintainOrder: Boolean
110125
): LazyFrame = {
111126
assert(
112127
cols.length == descending.length,
113-
s"Length of provided list columns(${cols.length}) and their " +
114-
s"sorting directions((${descending.length})) is not equal."
128+
s"Length of provided list columns (${cols.length}) and their " +
129+
s"sorting directions (${descending.length}) is not equal."
115130
)
116131

117132
val exprs = cols.zip(descending).map { case (column, bool) =>
@@ -128,7 +143,7 @@ class LazyFrame private (private[polars] val ptr: Long) {
128143
nullLast: Boolean,
129144
maintainOrder: Boolean
130145
): LazyFrame =
131-
top_k(k, Array(col), Array(descending), nullLast = nullLast, maintainOrder = maintainOrder)
146+
top_k(k, Array(col), Array(descending), Array(nullLast), maintainOrder = maintainOrder)
132147

133148
def limit(n: Long): LazyFrame = LazyFrame.withPtr(lazy_frame.limit(ptr, n))
134149

0 commit comments

Comments
 (0)