This commit is contained in:
Alexander Nozik 2022-04-30 10:55:37 +03:00
parent b90ec0fef8
commit a334f91ea7
No known key found for this signature in database
GPG Key ID: F7FCF2DD25C71357
2 changed files with 23 additions and 16 deletions

View File

@ -20,6 +20,7 @@ import space.kscience.dataforge.meta.toMeta
import space.kscience.dataforge.misc.DFInternal
import space.kscience.dataforge.names.Name
import kotlin.reflect.KType
import kotlin.reflect.full.isSubtypeOf
import kotlin.reflect.typeOf
class DataSetSiteContext(
@ -64,10 +65,10 @@ class DataSetSiteContext(
private val Data<*>.published: Boolean get() = meta["published"].string != "false"
@DFInternal
override fun <T : Any> resolve(type: KType, name: Name): Data<T>? = when (type) {
typeOf<Meta>() -> {
val data = dataSet.selectOne<ByteArray>(name)
if( data == null) null else {
override fun <T : Any> resolve(type: KType, name: Name): Data<T>? {
val data: Data<Any> = dataSet.get(name) ?: return null
return if (type == typeOf<Meta>() && data.type == typeOf<ByteArray>()) {
data as Data<ByteArray>
when (data.meta[META_FILE_EXTENSION_KEY].string) {
"json" -> data.map {
Json.parseToJsonElement(it.decodeToString()).toMeta()
@ -77,9 +78,15 @@ class DataSetSiteContext(
}
else -> error("File with extension ${data.meta[META_FILE_EXTENSION_KEY]} could not be parsed as Meta")
} 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

View File

@ -10,10 +10,10 @@ language: ru
Цель создания программы &mdash; объединение усилий ученых и программистов для разработки лучших компьютерных решений и применения этих решений в области фундаментальной и прикладной науки и инженерии.
Студенты магистерской программы в рамках научной работы и выполнения проектов работают над актуальными задачами:
* обработка и анализ данных физических и биологических экспериментов;
* нахождение оптимальной траектории для задач в георазведке;
* разработка инструментов анализа данных для нефтяных компаний
и количество прикладных учебных задач от реальных заказчиков постоянно растет.
* разработка инструментов анализа данных для нефтяных компаний и количество прикладных учебных задач от реальных заказчиков постоянно растет.
**Почему же** это направление так актуально?