Skip to content

Commit 4ff8406

Browse files
authored
Merge pull request #221 from pacher/nested-rows-limit
Add nestedRowsLimit parameter to DisplayConfiguration
2 parents ddb4aac + 0e51fb5 commit 4ff8406

File tree

1 file changed

+6
-5
lines changed
  • core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io

1 file changed

+6
-5
lines changed

core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/io/html.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ internal fun AnyFrame.toHtmlData(
120120
val scripts = mutableListOf<String>()
121121
val queue = LinkedList<Pair<AnyFrame, Int>>()
122122

123-
fun AnyFrame.columnToJs(col: AnyCol, rowsLimit: Int): ColumnDataForJs {
124-
val values = rows().take(rowsLimit)
123+
fun AnyFrame.columnToJs(col: AnyCol, rowsLimit: Int?): ColumnDataForJs {
124+
val values = if (rowsLimit != null) rows().take(rowsLimit) else rows()
125125
val scale = if (col.isNumber()) col.asNumbers().scale() else 1
126126
val format = if (scale > 0) {
127127
RendererDecimalFormat.fromPrecision(scale)
@@ -158,7 +158,7 @@ internal fun AnyFrame.toHtmlData(
158158
queue.add(this to rootId)
159159
while (!queue.isEmpty()) {
160160
val (nextDf, nextId) = queue.pop()
161-
val rowsLimit = if (nextId == rootId) configuration.rowsLimit else 5
161+
val rowsLimit = if (nextId == rootId) configuration.rowsLimit else configuration.nestedRowsLimit
162162
val preparedColumns = nextDf.columns().map { nextDf.columnToJs(it, rowsLimit) }
163163
val js = tableJs(preparedColumns, nextId, rootId, nextDf.nrow)
164164
scripts.add(js)
@@ -189,7 +189,7 @@ public fun <T> DataFrame<T>.toHTML(
189189
cellRenderer: CellRenderer = org.jetbrains.kotlinx.dataframe.jupyter.DefaultCellRenderer,
190190
getFooter: (DataFrame<T>) -> String = { "DataFrame [${it.size}]" },
191191
): HtmlData {
192-
val limit = configuration.rowsLimit
192+
val limit = configuration.rowsLimit ?: Int.MAX_VALUE
193193

194194
val footer = getFooter(this)
195195
val bodyFooter = buildString {
@@ -210,7 +210,8 @@ public fun <T> DataFrame<T>.toHTML(
210210
}
211211

212212
public data class DisplayConfiguration(
213-
var rowsLimit: Int = 20,
213+
var rowsLimit: Int? = 20,
214+
var nestedRowsLimit: Int? = 5,
214215
var cellContentLimit: Int = 40,
215216
var cellFormatter: RowColFormatter<*, *>? = null,
216217
var decimalFormat: RendererDecimalFormat = RendererDecimalFormat.DEFAULT,

0 commit comments

Comments
 (0)