Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 58 additions & 2 deletions core/api/core.api
Original file line number Diff line number Diff line change
Expand Up @@ -3635,12 +3635,14 @@ public final class org/jetbrains/kotlinx/dataframe/api/PivotKt {
public final class org/jetbrains/kotlinx/dataframe/api/PrintKt {
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataColumn;)V
public static final synthetic fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZ)V
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)V
public static final synthetic fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)V
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZZLorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle;)V
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/DataRow;)V
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/api/GroupBy;)V
public static final fun print (Lorg/jetbrains/kotlinx/dataframe/schema/DataFrameSchema;)V
public static synthetic fun print$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZILjava/lang/Object;)V
public static synthetic fun print$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZILjava/lang/Object;)V
public static synthetic fun print$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZZLorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle;ILjava/lang/Object;)V
public static final fun print-XIlnkTk (Ljava/lang/String;)V
}

Expand Down Expand Up @@ -5909,6 +5911,11 @@ public final class org/jetbrains/kotlinx/dataframe/io/HtmlKt {
public static synthetic fun toStaticHtml$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Lorg/jetbrains/kotlinx/dataframe/io/DisplayConfiguration;Lorg/jetbrains/kotlinx/dataframe/jupyter/CellRenderer;ZZILjava/lang/Object;)Lorg/jetbrains/kotlinx/dataframe/io/DataFrameHtmlData;
}

public final class org/jetbrains/kotlinx/dataframe/io/MarkdownKt {
public static final fun renderToMarkdown (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZ)Ljava/lang/String;
public static synthetic fun renderToMarkdown$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZILjava/lang/Object;)Ljava/lang/String;
}

public final class org/jetbrains/kotlinx/dataframe/io/MethodArguments {
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/io/MethodArguments$Companion;
public fun <init> ()V
Expand Down Expand Up @@ -5946,9 +5953,58 @@ public final class org/jetbrains/kotlinx/dataframe/io/RendererDecimalFormat$Comp
public final fun of-VVLz-gw (Ljava/lang/String;)Ljava/lang/String;
}

public abstract interface class org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle {
public static final field Companion Lorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$Companion;
public abstract fun getBottomLeft ()Ljava/lang/String;
public abstract fun getBottomRight ()Ljava/lang/String;
public abstract fun getHeaderSplit ()Ljava/lang/String;
public abstract fun getHorizontal ()Ljava/lang/String;
public abstract fun getTopLeft ()Ljava/lang/String;
public abstract fun getTopRight ()Ljava/lang/String;
public abstract fun getVertical ()Ljava/lang/String;
}

public final class org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$Companion {
}

public final class org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$ContinuousWithRoundedCorners : org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle {
public static final field INSTANCE Lorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$ContinuousWithRoundedCorners;
public fun getBottomLeft ()Ljava/lang/String;
public fun getBottomRight ()Ljava/lang/String;
public fun getHeaderSplit ()Ljava/lang/String;
public fun getHorizontal ()Ljava/lang/String;
public fun getTopLeft ()Ljava/lang/String;
public fun getTopRight ()Ljava/lang/String;
public fun getVertical ()Ljava/lang/String;
}

public final class org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$ContinuousWithSquareCorners : org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle {
public static final field INSTANCE Lorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$ContinuousWithSquareCorners;
public fun getBottomLeft ()Ljava/lang/String;
public fun getBottomRight ()Ljava/lang/String;
public fun getHeaderSplit ()Ljava/lang/String;
public fun getHorizontal ()Ljava/lang/String;
public fun getTopLeft ()Ljava/lang/String;
public fun getTopRight ()Ljava/lang/String;
public fun getVertical ()Ljava/lang/String;
}

public final class org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$DottedLineWithRounderCorners : org/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle {
public static final field INSTANCE Lorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle$DottedLineWithRounderCorners;
public fun getBottomLeft ()Ljava/lang/String;
public fun getBottomRight ()Ljava/lang/String;
public fun getHeaderSplit ()Ljava/lang/String;
public fun getHorizontal ()Ljava/lang/String;
public fun getTopLeft ()Ljava/lang/String;
public fun getTopRight ()Ljava/lang/String;
public fun getVertical ()Ljava/lang/String;
}

public final class org/jetbrains/kotlinx/dataframe/io/StringKt {
public static final fun renderToString (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)Ljava/lang/String;
public static final synthetic fun renderToString (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZ)Ljava/lang/String;
public static final fun renderToString (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZZLorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle;)Ljava/lang/String;
public static synthetic fun renderToString$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;IIZZZZZILjava/lang/Object;)Ljava/lang/String;
public static synthetic fun renderToString$default (Lorg/jetbrains/kotlinx/dataframe/DataFrame;Ljava/lang/Integer;Ljava/lang/Integer;ZZZZZLorg/jetbrains/kotlinx/dataframe/io/StringBorderRenderingStyle;ILjava/lang/Object;)Ljava/lang/String;
}

public abstract interface class org/jetbrains/kotlinx/dataframe/io/SupportedCodeGenerationFormat : org/jetbrains/kotlinx/dataframe/io/SupportedFormat {
Expand Down
17 changes: 15 additions & 2 deletions core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/print.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package org.jetbrains.kotlinx.dataframe.api
import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.DataFrame
import org.jetbrains.kotlinx.dataframe.DataRow
import org.jetbrains.kotlinx.dataframe.io.StringBorderRenderingStyle
import org.jetbrains.kotlinx.dataframe.io.renderToString
import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema
import org.jetbrains.kotlinx.dataframe.util.PRINT
Expand Down Expand Up @@ -31,15 +32,27 @@ public fun <T> DataFrame<T>.print(
title: Boolean = false,
): Unit = print(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, true)

@Deprecated(message = PRINT, level = DeprecationLevel.HIDDEN)
public fun <T> DataFrame<T>.print(
rowsLimit: Int = 20,
valueLimit: Int = 40,
borders: Boolean = false,
alignLeft: Boolean = false,
columnTypes: Boolean = false,
columnTypes: Boolean = true,
title: Boolean = false,
rowIndex: Boolean = true,
): Unit = print(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, rowIndex)

public fun <T> DataFrame<T>.print(
rowsLimit: Int? = 20,
valueLimit: Int? = 40,
borders: Boolean = false,
alignLeft: Boolean = false,
columnTypes: Boolean = true,
title: Boolean = false,
rowIndex: Boolean = true,
): Unit = println(renderToString(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, rowIndex))
borderStyle: StringBorderRenderingStyle = StringBorderRenderingStyle.DottedLineWithRounderCorners,
): Unit = println(renderToString(rowsLimit, valueLimit, borders, alignLeft, columnTypes, title, rowIndex, borderStyle))

// endregion

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.jetbrains.kotlinx.dataframe.io

import org.jetbrains.kotlinx.dataframe.AnyFrame
import org.jetbrains.kotlinx.dataframe.size

public fun AnyFrame.renderToMarkdown(
rowsLimit: Int? = 20,
valueLimit: Int? = 40,
alignLeft: Boolean = false,
columnTypes: Boolean = false,
title: Boolean = false,
rowIndex: Boolean = true,
): String {
val table = prepareTable(rowsLimit, valueLimit, columnTypes, rowIndex) { it.replace("|", "\\|") }

val sb = StringBuilder()
if (title) {
sb.appendLine("**DataFrame [${size()}]**")
sb.appendLine()
}

// header
sb.append("|")
for ((i, col) in table.header.withIndex()) {
val type = table.types?.getOrNull(i)?.takeIf { it.isNotEmpty() }?.let { ":$it" } ?: ""
sb.append(" ${col.replace("|", "\\|")}$type |")
}
sb.appendLine()

// separator
sb.append("|")
repeat(table.header.size) {
sb.append(if (alignLeft) ":---|" else "---:|")
}
sb.appendLine()

// data
for (row in 0 until table.rowsCount) {
sb.append("|")
for (col in table.values.indices) {
sb.append(" ${table.values[col][row]} |")
}
sb.appendLine()
}

// footer
if (table.totalRows > table.rowsCount) {
sb.appendLine()
sb.appendLine("*... ${table.totalRows - table.rowsCount} more rows*")
}
return sb.toString()
}
Loading
Loading