Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.yandex.cloud.ml.platform.notebook;
- import java.util.List;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- import com.fasterxml.jackson.annotation.JsonProperty;
- import com.fasterxml.jackson.databind.annotation.JsonSerialize;
- class Cell {
- @JsonProperty("cell_type")
- private final CellType cellType;
- @JsonProperty("source")
- private final String source;
- @JsonProperty("metadata")
- private final Meta meta;
- @JsonProperty("outputs")
- private final List<Output> outputs;
- Cell(CellType cellType, String source, Meta meta, Stream<Output> outputs) {
- this.cellType = cellType;
- this.meta = meta;
- this.source = source;
- this.outputs = outputs.collect(Collectors.toList());
- }
- static class Meta {
- @JsonProperty("collapsed")
- private final boolean collapsed;
- @JsonProperty("deletable")
- private final boolean deletable;
- @JsonProperty("name")
- private final String name;
- Meta(boolean collapsed, boolean deletable, String name) {
- this.collapsed = collapsed;
- this.deletable = deletable;
- this.name = name;
- }
- static Meta defaultMeta(String name) {
- return new Meta(false, false, name);
- }
- }
- static class Output {
- @JsonProperty("output_type")
- private final OutputType type;
- @JsonProperty("metadata")
- private final Meta meta;
- @JsonProperty("data")
- private final Data data;
- Output(OutputType type, Data data) {
- this.type = type;
- this.data = data;
- this.meta = new Meta();
- }
- @JsonSerialize
- static class Meta {
- }
- @JsonSerialize
- static class Data {
- }
- }
- static class DataBlockOutput extends Output {
- DataBlockOutput(Data data) {
- super(OutputType.DISPLAY_DATA, data);
- }
- static class Data extends Output.Data {
- @JsonProperty("application/nirvana-data")
- private final Payload payload;
- Data(Payload payload) {
- this.payload = payload;
- }
- static class Payload {
- @JsonProperty("type")
- private final String type;
- @JsonProperty("path")
- private final String path;
- Payload(String type, String path) {
- this.type = type;
- this.path = path;
- }
- }
- }
- }
- static class OpBlockOutput extends Output {
- OpBlockOutput(Data data) {
- super(OutputType.DISPLAY_DATA, data);
- }
- static class Data extends Output.Data {
- @JsonProperty("application/nirvana-op")
- private final Payload payload;
- Data(Payload payload) {
- this.payload = payload;
- }
- static class Payload {
- @JsonProperty("logs")
- private final List<Log> logs;
- @JsonProperty("outputs")
- private final List<Out> outs;
- Payload(Stream<Log> logs, Stream<Out> outs) {
- this.logs = logs.collect(Collectors.toList());
- this.outs = outs.collect(Collectors.toList());
- }
- static class Log {
- @JsonProperty("name")
- private final String name;
- @JsonProperty("path")
- private final String path;
- Log(String name, String path) {
- this.name = name;
- this.path = path;
- }
- }
- static class Out {
- @JsonProperty("name")
- private final String name;
- @JsonProperty("path")
- private final String path;
- Out(String name, String path) {
- this.name = name;
- this.path = path;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement