Package-level declarations

Types

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FUNCTION])
internal annotation class AccessApiOverload

One of the design goals of the library is typed access to columns. That's why all operations that have "column" parameters have 4 overloads: https://kotlin.github.io/dataframe/apilevels.html In Kotlin Notebook and in Gradle project with the compiler plugin, Column Accessors API and KProperties API become redundant and clutter API scope of DataFrame. This annotation indicates such functions so that they can be excluded from public API

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FUNCTION])
internal annotation class Check
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class ColumnName(val name: String)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class Converter(val klass: KClass<*>, val nullable: Boolean = false)

Provides argument to ToSpecificType interpreter - to what type compiler plugin should convert selected columns

Link copied to clipboard
annotation class CsvOptions(val delimiter: Char)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class DataSchema(val isOpen: Boolean = true)

This annotation marks an interface or data class as a data schema. An annotated declaration should be a non-local and non-private interface or class with only constructor properties.

Link copied to clipboard
Link copied to clipboard

Disables plugin transformation of calls to @Refine functions, making dataframe code compile and work in context where plugin is not supported, for example inline functions or property getters, or not needed.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class HasSchema(val schemaArg: Int)

Matches the type parameter of the annotated class to DataRow/DataFrame type parameter T.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FILE])
annotation class ImportDataSchema(val name: String, val path: String, val visibility: DataSchemaVisibility = DataSchemaVisibility.IMPLICIT_PUBLIC, val normalizationDelimiters: CharArray = ['\t', ' ', '_'], val withDefaultPath: Boolean = true, val csvOptions: CsvOptions = CsvOptions(','), val jsonOptions: JsonOptions = JsonOptions(), val jdbcOptions: JdbcOptions = JdbcOptions(), val enableExperimentalOpenApi: Boolean = false)

Annotation preprocessing will generate a DataSchema interface from the data at path. Data must be of supported format: CSV, JSON, Apache Arrow, Excel, OpenAPI (Swagger) in YAML/JSON, JDBC. Generated data schema has properties inferred from data and a companion object with read method. read method is either readCSV or readJson that returns DataFrame<name>

Link copied to clipboard
annotation class Interpretable(val interpreter: String)

Compiler plugin will evaluate compile time value of the annotated function. Needed because some function calls only serve as a part of overall compile time DataSchema evaluation There's no need to update return type of such calls

Link copied to clipboard
annotation class JdbcOptions(val user: String = "", val password: String = "", val extractCredFromEnv: Boolean = false, val tableName: String = "", val sqlQuery: String = "")

An annotation class that represents options for JDBC connection.

Link copied to clipboard
annotation class JsonOptions(val typeClashTactic: String = TypeClashTactics.ARRAY_AND_VALUE_COLUMNS, val keyValuePaths: Array<String> = [], val unifyNumbers: Boolean = true)
Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class Order(val order: Int)
Link copied to clipboard
annotation class Refine

Compiler plugin will replace return type of calls to the annotated function

Link copied to clipboard
internal annotation class RequiredByIntellijPlugin

Marks API used by Kotlin DataFrame IntelliJ Plugin.

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.PROPERTY])
annotation class ScopeProperty

For internal use Compiler plugin materializes schemas as classes. These classes have two kinds of properties:

Link copied to clipboard
@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class StringApiInterpretable(val interpreter: String, val stringArgument: String, val targetArgument: String)

Marks String API overloads (functions with vararg String parameters) with metadata to enable automatic delegation to their typed counterparts implementations in the compiler plugin. This annotation should not have default values for arguments (breaks plugin resolve).