Cleanup
This commit is contained in:
parent
b90ec0fef8
commit
a334f91ea7
@ -20,6 +20,7 @@ import space.kscience.dataforge.meta.toMeta
|
|||||||
import space.kscience.dataforge.misc.DFInternal
|
import space.kscience.dataforge.misc.DFInternal
|
||||||
import space.kscience.dataforge.names.Name
|
import space.kscience.dataforge.names.Name
|
||||||
import kotlin.reflect.KType
|
import kotlin.reflect.KType
|
||||||
|
import kotlin.reflect.full.isSubtypeOf
|
||||||
import kotlin.reflect.typeOf
|
import kotlin.reflect.typeOf
|
||||||
|
|
||||||
class DataSetSiteContext(
|
class DataSetSiteContext(
|
||||||
@ -64,22 +65,28 @@ class DataSetSiteContext(
|
|||||||
private val Data<*>.published: Boolean get() = meta["published"].string != "false"
|
private val Data<*>.published: Boolean get() = meta["published"].string != "false"
|
||||||
|
|
||||||
@DFInternal
|
@DFInternal
|
||||||
override fun <T : Any> resolve(type: KType, name: Name): Data<T>? = when (type) {
|
override fun <T : Any> resolve(type: KType, name: Name): Data<T>? {
|
||||||
typeOf<Meta>() -> {
|
val data: Data<Any> = dataSet.get(name) ?: return null
|
||||||
val data = dataSet.selectOne<ByteArray>(name)
|
return if (type == typeOf<Meta>() && data.type == typeOf<ByteArray>()) {
|
||||||
if( data == null) null else {
|
data as Data<ByteArray>
|
||||||
when (data.meta[META_FILE_EXTENSION_KEY].string) {
|
when (data.meta[META_FILE_EXTENSION_KEY].string) {
|
||||||
"json" -> data.map {
|
"json" -> data.map {
|
||||||
Json.parseToJsonElement(it.decodeToString()).toMeta()
|
Json.parseToJsonElement(it.decodeToString()).toMeta()
|
||||||
}
|
}
|
||||||
"yaml" -> data.map {
|
"yaml" -> data.map {
|
||||||
YamlMetaFormat.readObject(it.asBinary())
|
YamlMetaFormat.readObject(it.asBinary())
|
||||||
}
|
}
|
||||||
else -> error("File with extension ${data.meta[META_FILE_EXTENSION_KEY]} could not be parsed as Meta")
|
else -> error("File with extension ${data.meta[META_FILE_EXTENSION_KEY]} could not be parsed as Meta")
|
||||||
} as Data<T>?
|
} as Data<T>?
|
||||||
|
}else {
|
||||||
|
if (!data.type.isSubtypeOf(type)) {
|
||||||
|
null
|
||||||
|
} else {
|
||||||
|
object : Data<T> by (data as Data<T>) {
|
||||||
|
override val type: KType = type
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> dataSet.selectOne(type, name)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@DFInternal
|
@DFInternal
|
||||||
|
@ -10,10 +10,10 @@ language: ru
|
|||||||
Цель создания программы — объединение усилий ученых и программистов для разработки лучших компьютерных решений и применения этих решений в области фундаментальной и прикладной науки и инженерии.
|
Цель создания программы — объединение усилий ученых и программистов для разработки лучших компьютерных решений и применения этих решений в области фундаментальной и прикладной науки и инженерии.
|
||||||
|
|
||||||
Студенты магистерской программы в рамках научной работы и выполнения проектов работают над актуальными задачами:
|
Студенты магистерской программы в рамках научной работы и выполнения проектов работают над актуальными задачами:
|
||||||
|
|
||||||
* обработка и анализ данных физических и биологических экспериментов;
|
* обработка и анализ данных физических и биологических экспериментов;
|
||||||
* нахождение оптимальной траектории для задач в георазведке;
|
* нахождение оптимальной траектории для задач в георазведке;
|
||||||
* разработка инструментов анализа данных для нефтяных компаний
|
* разработка инструментов анализа данных для нефтяных компаний и количество прикладных учебных задач от реальных заказчиков постоянно растет.
|
||||||
и количество прикладных учебных задач от реальных заказчиков постоянно растет.
|
|
||||||
|
|
||||||
**Почему же** это направление так актуально?
|
**Почему же** это направление так актуально?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user