From de476fb273eff3eb5944fe8f782872d6e1e849c8 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 26 Jul 2023 16:47:12 +0300 Subject: [PATCH] Fix json serialization. --- CHANGELOG.md | 1 + README.md | 49 ------------------- build.gradle.kts | 2 +- dataforge-io/build.gradle.kts | 6 +-- .../dataforge-io-yaml/build.gradle.kts | 8 --- dataforge-meta/build.gradle.kts | 2 +- .../space/kscience/dataforge/meta/JsonMeta.kt | 11 +++-- docs/templates/ARTIFACT-TEMPLATE.md | 29 ----------- docs/templates/README-TEMPLATE.md | 2 +- gradle.properties | 2 +- 10 files changed, 15 insertions(+), 97 deletions(-) delete mode 100644 README.md delete mode 100644 docs/templates/ARTIFACT-TEMPLATE.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ac4a5574..36105b78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added ### Changed +- Meta to Json serializer now serializes a single item with index as an array. It is important for plotly integration. ### Deprecated diff --git a/README.md b/README.md deleted file mode 100644 index b6a8a566..00000000 --- a/README.md +++ /dev/null @@ -1,49 +0,0 @@ -[![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) -[![DOI](https://zenodo.org/badge/148831678.svg)](https://zenodo.org/badge/latestdoi/148831678) - -![Gradle build](https://github.com/mipt-npm/dataforge-core/workflows/Gradle%20build/badge.svg) - -
- -* ### [dataforge-context](dataforge-context) -> -> -> **Maturity**: DEVELOPMENT -
- -* ### [dataforge-data](dataforge-data) -> -> -> **Maturity**: EXPERIMENTAL -
- -* ### [dataforge-io](dataforge-io) -> -> -> **Maturity**: PROTOTYPE -
- -* ### [dataforge-meta](dataforge-meta) -> -> -> **Maturity**: DEVELOPMENT -
- -* ### [dataforge-scripting](dataforge-scripting) -> -> -> **Maturity**: PROTOTYPE -
- -* ### [dataforge-workspace](dataforge-workspace) -> -> -> **Maturity**: EXPERIMENTAL -
- -* ### [dataforge-io-yaml](dataforge-io/dataforge-io-yaml) -> YAML meta converters and Front Matter envelope format -> -> **Maturity**: PROTOTYPE -
- diff --git a/build.gradle.kts b/build.gradle.kts index 5b886e58..883306ea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { allprojects { group = "space.kscience" - version = "0.6.2-dev-kotlin-1.9.0" + version = "0.6.2-dev-2" } subprojects { diff --git a/dataforge-io/build.gradle.kts b/dataforge-io/build.gradle.kts index 91319d4d..9f2030c7 100644 --- a/dataforge-io/build.gradle.kts +++ b/dataforge-io/build.gradle.kts @@ -10,8 +10,8 @@ kscience { jvm() js() native() - useSerialization("1.4.1") - useSerialization("1.4.1", sourceSet = space.kscience.gradle.DependencySourceSet.TEST) { + useSerialization() + useSerialization(sourceSet = space.kscience.gradle.DependencySourceSet.TEST) { cbor() } dependencies { @@ -20,6 +20,6 @@ kscience { } } -readme{ +readme { maturity = space.kscience.gradle.Maturity.PROTOTYPE } \ No newline at end of file diff --git a/dataforge-io/dataforge-io-yaml/build.gradle.kts b/dataforge-io/dataforge-io-yaml/build.gradle.kts index b33e1b9a..505ce360 100644 --- a/dataforge-io/dataforge-io-yaml/build.gradle.kts +++ b/dataforge-io/dataforge-io-yaml/build.gradle.kts @@ -4,10 +4,6 @@ plugins { description = "YAML meta IO" -repositories { - mavenCentral() -} - kscience { jvm() js() @@ -20,10 +16,6 @@ kscience { } } -repositories{ - maven("https://dl.bintray.com/mamoe/yamlkt") -} - readme{ maturity = space.kscience.gradle.Maturity.PROTOTYPE description =""" diff --git a/dataforge-meta/build.gradle.kts b/dataforge-meta/build.gradle.kts index decf0760..51b07113 100644 --- a/dataforge-meta/build.gradle.kts +++ b/dataforge-meta/build.gradle.kts @@ -6,7 +6,7 @@ kscience { jvm() js() native() - useSerialization("1.4.1"){ + useSerialization{ json() } } diff --git a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/JsonMeta.kt b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/JsonMeta.kt index e36f0e55..98f0c3e4 100644 --- a/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/JsonMeta.kt +++ b/dataforge-meta/src/commonMain/kotlin/space/kscience/dataforge/meta/JsonMeta.kt @@ -23,7 +23,6 @@ public fun Value.toJson(descriptor: MetaDescriptor? = null): JsonElement = when } //Use these methods to customize JSON key mapping -@Suppress("NULLABLE_EXTENSION_OPERATOR_WITH_SAFE_CALL_RECEIVER") private fun String.toJsonKey(descriptor: MetaDescriptor?) = descriptor?.attributes?.get("jsonName").string ?: toString() private fun Meta.toJsonWithIndex(descriptor: MetaDescriptor?, index: String?): JsonElement = if (items.isEmpty()) { @@ -35,9 +34,13 @@ private fun Meta.toJsonWithIndex(descriptor: MetaDescriptor?, index: String?): J val childDescriptor = descriptor?.children?.get(body) if (list.size == 1) { val (token, element) = list.first() - //do not add empty element - val child: JsonElement = element.toJsonWithIndex(childDescriptor, token.index) - body to child + //do not add an empty element + val child: JsonElement = element.toJsonWithIndex(childDescriptor, token.index) + if(token.index == null) { + body to child + } else { + body to JsonArray(listOf(child)) + } } else { val elements: List = list.sortedBy { it.key.index }.mapIndexed { index, entry -> //Use index if it is not equal to the item order diff --git a/docs/templates/ARTIFACT-TEMPLATE.md b/docs/templates/ARTIFACT-TEMPLATE.md deleted file mode 100644 index 6b921b05..00000000 --- a/docs/templates/ARTIFACT-TEMPLATE.md +++ /dev/null @@ -1,29 +0,0 @@ -> #### Artifact: -> -> This module artifact: `${group}:${name}:${version}`. -> -> -> [![Maven Central](https://img.shields.io/maven-central/v/space.kscience/${name}.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22space.kscience%22%20AND%20a:%22${name}%22) -> -> **Gradle:** -> -> ```gradle -> repositories { -> maven { url 'https://repo.kotlin.link' } -> } -> -> dependencies { -> implementation '${group}:${name}:${version}' -> } -> ``` -> **Gradle Kotlin DSL:** -> -> ```kotlin -> repositories { -> maven("https://https://repo.kotlin.link") -> } -> -> dependencies { -> implementation("${group}:${name}:${version}") -> } -> ``` \ No newline at end of file diff --git a/docs/templates/README-TEMPLATE.md b/docs/templates/README-TEMPLATE.md index a28f0db3..762e5d7e 100644 --- a/docs/templates/README-TEMPLATE.md +++ b/docs/templates/README-TEMPLATE.md @@ -3,4 +3,4 @@ ![Gradle build](https://github.com/mipt-npm/dataforge-core/workflows/Gradle%20build/badge.svg) -$modules +${modules} diff --git a/gradle.properties b/gradle.properties index df992b2c..27743a30 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,4 +6,4 @@ kotlin.mpp.stability.nowarn=true kotlin.incremental.js.ir=true kotlin.native.ignoreDisabledTargets=true -toolsVersion=0.14.9-kotlin-1.9.0 +toolsVersion=0.14.9-kotlin-1.8.20