public static IpnbFile parseIpnbFile()

in src/org/jetbrains/plugins/ipnb/format/IpnbParser.java [58:84]


  public static IpnbFile parseIpnbFile(@NotNull final CharSequence fileText, @NotNull final VirtualFile virtualFile) {
    myErrors.clear();

    final String path = virtualFile.getPath();
    IpnbFileRaw rawFile = gson.fromJson(fileText.toString(), IpnbFileRaw.class);
    if (rawFile == null) {
      int nbformat = isIpythonNewFormat(virtualFile) ? 4 : 3;
      return new IpnbFile(new HashMap<>(), nbformat, 0, Lists.newArrayList(), path);
    }
    List<IpnbCell> cells = new ArrayList<>();
    final List<IpnbWorksheet> worksheets = rawFile.worksheets;
    if (worksheets == null) {
      for (IpnbCellRaw rawCell : rawFile.cells) {
        cells.add(rawCell.createCell(validateSource(rawCell)));
      }
    }
    else {
      for (IpnbWorksheet worksheet : worksheets) {
        final List<IpnbCellRaw> rawCells = worksheet.cells;
        for (IpnbCellRaw rawCell : rawCells) {
          cells.add(rawCell.createCell(validateSource(rawCell)));
        }
      }
    }
    showValidationMessage();
    return new IpnbFile(rawFile.metadata, rawFile.nbformat, rawFile.nbformat_minor, cells, path);
  }