Files
2026-02-08 11:20:43 -10:00

2112 lines
185 KiB
Plaintext
Vendored

{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Kotlin DataFrame in Kotlin Notebook simple example"
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"## How to run it?\n",
"\n",
"See [Get started with Kotlin DataFrame in Kotlin Notebook](https://kotlin.github.io/dataframe/gettingstartedkotlinnotebook.html)."
]
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-15T13:05:08.403461090Z",
"start_time": "2025-09-15T13:05:01.072028643Z"
}
},
"cell_type": "code",
"source": [
"%useLatestDescriptors\n",
"%use dataframe"
],
"outputs": [],
"execution_count": 1
},
{
"cell_type": "code",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-09-15T13:05:12.183943393Z",
"start_time": "2025-09-15T13:05:08.406404920Z"
}
},
"source": [
"val df = DataFrame\n",
" // Read DataFrame from the CSV file.\n",
" .readCsv(\"https://raw.githubusercontent.com/Kotlin/dataframe/master/data/jetbrains_repositories.csv\")\n",
" // Rename column names to CamelCase.\n",
" .renameToCamelCase()\n",
"df"
],
"outputs": [
{
"data": {
"text/html": [
" <iframe onload=\"o_resize_iframe_out_1()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_1\" frameBorder=\"0\" srcdoc=\" &lt;html theme='dark'&gt;\n",
" &lt;head&gt;\n",
" &lt;style type=&quot;text&sol;css&quot;&gt;\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover &gt; td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"&sol;* formatting *&sol;\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
":root {\n",
" --scroll-bg: #f5f5f5;\n",
" --scroll-fg: #b3b3b3;\n",
"}\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n",
" --scroll-bg: #3c3c3c;\n",
" --scroll-fg: #97e1fb;\n",
"}\n",
"body {\n",
" scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n",
"}\n",
"body::-webkit-scrollbar {\n",
" width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n",
" height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n",
"}\n",
"body::-webkit-scrollbar-thumb {\n",
" background-color: var(--scroll-fg);\n",
"}\n",
"body::-webkit-scrollbar-track {\n",
" background-color: var(--scroll-bg);\n",
"}\n",
" &lt;&sol;style&gt;\n",
" &lt;&sol;head&gt;\n",
" &lt;body&gt;\n",
" &lt;table class=&quot;dataframe&quot; id=&quot;df_-2130706432&quot;&gt;&lt;&sol;table&gt;\n",
"\n",
"&lt;p class=&quot;dataframe_description&quot;&gt;... showing only top 20 of 562 rows&lt;&sol;p&gt;&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 562, columnsCount = 5&lt;&sol;p&gt;\n",
"\n",
" &lt;&sol;body&gt;\n",
" &lt;script&gt;\n",
" (function () {\n",
" window.DataFrame = window.DataFrame || new (function () {\n",
" this.addTable = function (df) {\n",
" let cols = df.cols;\n",
" for (let i = 0; i &lt; cols.length; i++) {\n",
" for (let c of cols[i].children) {\n",
" cols[c].parent = i;\n",
" }\n",
" }\n",
" df.nrow = 0\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n",
" }\n",
" if (df.id === df.rootId) {\n",
" df.expandedFrames = new Set()\n",
" df.childFrames = {}\n",
" const table = this.getTableElement(df.id)\n",
" table.df = df\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" let col = df.cols[i]\n",
" if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n",
" }\n",
" } else {\n",
" const rootDf = this.getTableData(df.rootId)\n",
" rootDf.childFrames[df.id] = df\n",
" }\n",
" }\n",
"\n",
" this.computeRenderData = function (df) {\n",
" let result = []\n",
" let pos = 0\n",
" for (let col = 0; col &lt; df.cols.length; col++) {\n",
" if (df.cols[col].parent === undefined)\n",
" pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n",
" }\n",
" for (let i = 0; i &lt; result.length; i++) {\n",
" let row = result[i]\n",
" for (let j = 0; j &lt; row.length; j++) {\n",
" let cell = row[j]\n",
" if (j === 0)\n",
" cell.leftBd = false\n",
" if (j &lt; row.length - 1) {\n",
" let nextData = row[j + 1]\n",
" if (nextData.leftBd) cell.rightBd = true\n",
" else if (cell.rightBd) nextData.leftBd = true\n",
" } else cell.rightBd = false\n",
" }\n",
" }\n",
" return result\n",
" }\n",
"\n",
" this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n",
" if (result.length === depth) {\n",
" const array = [];\n",
" if (pos &gt; 0) {\n",
" let j = 0\n",
" for (let i = 0; j &lt; pos; i++) {\n",
" let c = result[depth - 1][i]\n",
" j += c.span\n",
" let copy = Object.assign({empty: true}, c)\n",
" array.push(copy)\n",
" }\n",
" }\n",
" result.push(array)\n",
" }\n",
" const col = cols[colId];\n",
" let size = 0;\n",
" if (col.expanded) {\n",
" let childPos = pos\n",
" for (let i = 0; i &lt; col.children.length; i++) {\n",
" let child = col.children[i]\n",
" let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n",
" let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n",
" let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n",
" childPos += childSize\n",
" size += childSize\n",
" }\n",
" } else {\n",
" for (let i = depth + 1; i &lt; result.length; i++)\n",
" result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n",
" size = 1\n",
" }\n",
" let left = leftBorder\n",
" let right = rightBorder\n",
" if (size &gt; 1) {\n",
" left = true\n",
" right = true\n",
" }\n",
" result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n",
" return size\n",
" }\n",
"\n",
" this.getTableElement = function (id) {\n",
" return document.getElementById(&quot;df_&quot; + id)\n",
" }\n",
"\n",
" this.getTableData = function (id) {\n",
" return this.getTableElement(id).df\n",
" }\n",
"\n",
" this.createExpander = function (isExpanded) {\n",
" const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n",
" let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n",
" svg.classList.add(&quot;expanderSvg&quot;)\n",
" let path = document.createElementNS(svgNs, &quot;path&quot;)\n",
" if (isExpanded) {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n",
" } else {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n",
" }\n",
" path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n",
" svg.appendChild(path)\n",
" return svg\n",
" }\n",
"\n",
" this.renderTable = function (id) {\n",
"\n",
" let table = this.getTableElement(id)\n",
"\n",
" if (table === null) return\n",
"\n",
" table.innerHTML = &quot;&quot;\n",
"\n",
" let df = table.df\n",
" let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n",
"\n",
" &sol;&sol; header\n",
" let header = document.createElement(&quot;thead&quot;)\n",
" table.appendChild(header)\n",
"\n",
" let renderData = this.computeRenderData(df)\n",
" for (let j = 0; j &lt; renderData.length; j++) {\n",
" let rowData = renderData[j]\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" let isLastRow = j === renderData.length - 1\n",
" header.appendChild(tr);\n",
" for (let i = 0; i &lt; rowData.length; i++) {\n",
" let cell = rowData[i]\n",
" let th = document.createElement(&quot;th&quot;);\n",
" th.setAttribute(&quot;colspan&quot;, cell.span)\n",
" let colId = cell.id\n",
" let col = df.cols[colId];\n",
" if (!cell.empty) {\n",
" if (col.children.length === 0) {\n",
" th.innerHTML = col.name\n",
" } else {\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" col.expanded = !col.expanded\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(col.expanded))\n",
" link.innerHTML += col.name\n",
" th.appendChild(link)\n",
" }\n",
" }\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (isLastRow)\n",
" classes += &quot; bottomBorder&quot;\n",
" if (classes.length &gt; 0)\n",
" th.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(th)\n",
" }\n",
" }\n",
"\n",
" &sol;&sol; body\n",
" let body = document.createElement(&quot;tbody&quot;)\n",
" table.appendChild(body)\n",
"\n",
" let columns = renderData.pop()\n",
" for (let row = 0; row &lt; df.nrow; row++) {\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" body.appendChild(tr)\n",
" for (let i = 0; i &lt; columns.length; i++) {\n",
" let cell = columns[i]\n",
" let td = document.createElement(&quot;td&quot;);\n",
" let colId = cell.id\n",
" let col = df.cols[colId]\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (classes.length &gt; 0)\n",
" td.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(td)\n",
" let value = col.values[row]\n",
" if (value.frameId !== undefined) {\n",
" let frameId = value.frameId\n",
" let expanded = rootDf.expandedFrames.has(frameId)\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" if (rootDf.expandedFrames.has(frameId))\n",
" rootDf.expandedFrames.delete(frameId)\n",
" else rootDf.expandedFrames.add(frameId)\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(expanded))\n",
" link.innerHTML += value.value\n",
" if (expanded) {\n",
" td.appendChild(link)\n",
" td.appendChild(document.createElement(&quot;p&quot;))\n",
" const childTable = document.createElement(&quot;table&quot;)\n",
" childTable.className = &quot;dataframe&quot;\n",
" childTable.id = &quot;df_&quot; + frameId\n",
" let childDf = rootDf.childFrames[frameId]\n",
" childTable.df = childDf\n",
" td.appendChild(childTable)\n",
" this.renderTable(frameId)\n",
" if (childDf.nrow !== childDf.totalRows) {\n",
" const footer = document.createElement(&quot;p&quot;)\n",
" footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n",
" td.appendChild(footer)\n",
" }\n",
" } else {\n",
" td.appendChild(link)\n",
" }\n",
" } else if (value.style !== undefined) {\n",
" td.innerHTML = value.value\n",
" td.setAttribute(&quot;style&quot;, value.style)\n",
" } else td.innerHTML = value\n",
" this.nodeScriptReplace(td)\n",
" }\n",
" }\n",
" }\n",
"\n",
" this.nodeScriptReplace = function (node) {\n",
" if (this.nodeScriptIs(node) === true) {\n",
" node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n",
" } else {\n",
" let i = -1, children = node.childNodes;\n",
" while (++i &lt; children.length) {\n",
" this.nodeScriptReplace(children[i]);\n",
" }\n",
" }\n",
"\n",
" return node;\n",
" }\n",
"\n",
" this.nodeScriptClone = function (node) {\n",
" let script = document.createElement(&quot;script&quot;);\n",
" script.text = node.innerHTML;\n",
"\n",
" let i = -1, attrs = node.attributes, attr;\n",
" while (++i &lt; attrs.length) {\n",
" script.setAttribute((attr = attrs[i]).name, attr.value);\n",
" }\n",
" return script;\n",
" }\n",
"\n",
" this.nodeScriptIs = function (node) {\n",
" return node.tagName === 'SCRIPT';\n",
" }\n",
" })()\n",
"\n",
" window.call_DataFrame = function (f) {\n",
" return f();\n",
" };\n",
"\n",
" let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n",
" if (funQueue) {\n",
" funQueue.forEach(function (f) {\n",
" f();\n",
" });\n",
" funQueue = [];\n",
" }\n",
"})()\n",
"\n",
"&sol;*&lt;!--*&sol;\n",
"call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;fullName: String&bsol;&quot;&gt;fullName&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;JetBrains&sol;JPS&quot;,&quot;JetBrains&sol;YouTrackSharp&quot;,&quot;JetBrains&sol;colorSchemeTool&quot;,&quot;JetBrains&sol;ideavim&quot;,&quot;JetBrains&sol;youtrack-vcs-hooks&quot;,&quot;JetBrains&sol;youtrack-rest-ruby-library&quot;,&quot;JetBrains&sol;emacs4ij&quot;,&quot;JetBrains&sol;codereview4intellij&quot;,&quot;JetBrains&sol;teamcity-nuget-support&quot;,&quot;JetBrains&sol;Grammar-Kit&quot;,&quot;JetBrains&sol;intellij-starteam-plugin&quot;,&quot;JetBrains&sol;la-clojure&quot;,&quot;JetBrains&sol;MPS&quot;,&quot;JetBrains&sol;intellij-community&quot;,&quot;JetBrains&sol;TeamCity.ServiceMessages&quot;,&quot;JetBrains&sol;youtrack-rest-python-library&quot;,&quot;JetBrains&sol;intellij-scala&quot;,&quot;JetBrains&sol;teamcity-messages&quot;,&quot;JetBrains&sol;teamcity-cpp&quot;,&quot;JetBrains&sol;kotlin&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;htmlUrl: URL&bsol;&quot;&gt;htmlUrl&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;JPS' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;JPS&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSch&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-vcs-hooks&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-vcs-hooks' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-ruby-library&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-ruby-library' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;emacs4ij' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;emacs4ij&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;codereview4intellij&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;codereview4intellij' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;coderevi&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-nuget-support&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-nuget-support' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-starteam-plugin&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-starteam-plugin' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;MPS' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;MPS&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity.ServiceMessages&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity.ServiceMessages' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-cpp&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-cpp' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin&lt;&sol;a&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;stargazersCount: Int&bsol;&quot;&gt;stargazersCount&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;23&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;8&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;47&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;11&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;41&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;27&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;topics: String&bsol;&quot;&gt;topics&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;[]&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[jetbrains, jetbrains-youtrack, youtrack, youtrack-api]&bsol;&quot;&gt;[jetbrains, jetbrains-youtrack, youtr&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;[]&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[ideavim, intellij, intellij-platform, jb-official, kotlin, vim, vim-emulator]&bsol;&quot;&gt;[ideavim, intellij, intellij-platform&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[nuget, nuget-feed, teamcity, teamcity-plugin]&bsol;&quot;&gt;[nuget, nuget-feed, teamcity, teamcit&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;[domain-specific-language, dsl]&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[code-editor, ide, intellij, intellij-community, intellij-platform]&bsol;&quot;&gt;[code-editor, ide, intellij, intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[c-sharp, teamcity, teamcity-service-messages]&bsol;&quot;&gt;[c-sharp, teamcity, teamcity-service-&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;[]&quot;,&quot;[intellij-idea, intellij-plugin, scala]&quot;,&quot;[]&quot;,&quot;[]&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;[compiler, gradle-plugin, intellij-plugin, kotlin, kotlin-library, maven-plugin, programming-language]&bsol;&quot;&gt;[compiler, gradle-plugin, intellij-pl&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;watchers: Int&bsol;&quot;&gt;watchers&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;23&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;8&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;47&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;11&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;41&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;27&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"], id: -2130706432, rootId: -2130706432, totalRows: 562 } ) });\n",
"&sol;*--&gt;*&sol;\n",
"\n",
"call_DataFrame(function() { DataFrame.renderTable(-2130706432) });\n",
"\n",
"\n",
" &lt;&sol;script&gt;\n",
" &lt;&sol;html&gt;\"></iframe>\n",
" <script>\n",
" function o_resize_iframe_out_1() {\n",
" let elem = document.getElementById(\"iframe_out_1\");\n",
" resize_iframe_out_1(elem);\n",
" setInterval(resize_iframe_out_1, 5000, elem);\n",
" }\n",
" function resize_iframe_out_1(el) {\n",
" let h = el.contentWindow.document.body.scrollHeight;\n",
" el.height = h === 0 ? 0 : h + 41;\n",
" }\n",
" </script> <html theme='dark'>\n",
" <head>\n",
" <style type=\"text/css\">\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover > td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"/* formatting */\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
" </style>\n",
" </head>\n",
" <body>\n",
" <table class=\"dataframe\" id=\"static_df_-2130706431\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">fullName</th><th class=\"bottomBorder\" style=\"text-align:left\">htmlUrl</th><th class=\"bottomBorder\" style=\"text-align:left\">stargazersCount</th><th class=\"bottomBorder\" style=\"text-align:left\">topics</th><th class=\"bottomBorder\" style=\"text-align:left\">watchers</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">JetBrains/JPS</td><td style=\"vertical-align:top\">https://github.com/JetBrains/JPS</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">23</td></tr><tr><td style=\"vertical-align:top\">JetBrains/YouTrackSharp</td><td style=\"vertical-align:top\">https://github.com/JetBrains/YouTrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td><td style=\"vertical-align:top\">[jetbrains, jetbrains-youtrack, youtr<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td></tr><tr><td style=\"vertical-align:top\">JetBrains/colorSchemeTool</td><td style=\"vertical-align:top\">https://github.com/JetBrains/colorSch<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">290</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">290</td></tr><tr><td style=\"vertical-align:top\">JetBrains/ideavim</td><td style=\"vertical-align:top\">https://github.com/JetBrains/ideavim</td><td style=\"vertical-align:top\">6120</td><td style=\"vertical-align:top\">[ideavim, intellij, intellij-platform<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">6120</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-vcs-hooks</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-rest-ruby-library</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">8</td></tr><tr><td style=\"vertical-align:top\">JetBrains/emacs4ij</td><td style=\"vertical-align:top\">https://github.com/JetBrains/emacs4ij</td><td style=\"vertical-align:top\">47</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">47</td></tr><tr><td style=\"vertical-align:top\">JetBrains/codereview4intellij</td><td style=\"vertical-align:top\">https://github.com/JetBrains/coderevi<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">11</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-nuget-support</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">41</td><td style=\"vertical-align:top\">[nuget, nuget-feed, teamcity, teamcit<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">41</td></tr><tr><td style=\"vertical-align:top\">JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">https://github.com/JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">534</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">534</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-starteam-plugin</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">6</td></tr><tr><td style=\"vertical-align:top\">JetBrains/la-clojure</td><td style=\"vertical-align:top\">https://github.com/JetBrains/la-clojure</td><td style=\"vertical-align:top\">218</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">218</td></tr><tr><td style=\"vertical-align:top\">JetBrains/MPS</td><td style=\"vertical-align:top\">https://github.com/JetBrains/MPS</td><td style=\"vertical-align:top\">1241</td><td style=\"vertical-align:top\">[domain-specific-language, dsl]</td><td style=\"vertical-align:top\">1241</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-community</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td><td style=\"vertical-align:top\">[code-editor, ide, intellij, intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td></tr><tr><td style=\"vertical-align:top\">JetBrains/TeamCity.ServiceMessages</td><td style=\"vertical-align:top\">https://github.com/JetBrains/TeamCity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39</td><td style=\"vertical-align:top\">[c-sharp, teamcity, teamcity-service-<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-rest-python-library</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">118</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">118</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-scala</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">1066</td><td style=\"vertical-align:top\">[intellij-idea, intellij-plugin, scala]</td><td style=\"vertical-align:top\">1066</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-messages</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">125</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">125</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-cpp</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">27</td><td style=\"vertical-align:top\">[]</td><td style=\"vertical-align:top\">27</td></tr><tr><td style=\"vertical-align:top\">JetBrains/kotlin</td><td style=\"vertical-align:top\">https://github.com/JetBrains/kotlin</td><td style=\"vertical-align:top\">39402</td><td style=\"vertical-align:top\">[compiler, gradle-plugin, intellij-pl<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39402</td></tr></tbody></table>\n",
" </body>\n",
" <script>\n",
" document.getElementById(\"static_df_-2130706431\").style.display = \"none\";\n",
" </script>\n",
" </html>"
],
"application/kotlindataframe+json": "{\"$version\":\"2.2.0\",\"metadata\":{\"columns\":[\"fullName\",\"htmlUrl\",\"stargazersCount\",\"topics\",\"watchers\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"java.net.URL\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"}],\"nrow\":562,\"ncol\":5,\"is_formatted\":false},\"kotlin_dataframe\":[{\"fullName\":\"JetBrains/JPS\",\"htmlUrl\":\"https://github.com/JetBrains/JPS\",\"stargazersCount\":23,\"topics\":\"[]\",\"watchers\":23},{\"fullName\":\"JetBrains/YouTrackSharp\",\"htmlUrl\":\"https://github.com/JetBrains/YouTrackSharp\",\"stargazersCount\":115,\"topics\":\"[jetbrains, jetbrains-youtrack, youtrack, youtrack-api]\",\"watchers\":115},{\"fullName\":\"JetBrains/colorSchemeTool\",\"htmlUrl\":\"https://github.com/JetBrains/colorSchemeTool\",\"stargazersCount\":290,\"topics\":\"[]\",\"watchers\":290},{\"fullName\":\"JetBrains/ideavim\",\"htmlUrl\":\"https://github.com/JetBrains/ideavim\",\"stargazersCount\":6120,\"topics\":\"[ideavim, intellij, intellij-platform, jb-official, kotlin, vim, vim-emulator]\",\"watchers\":6120},{\"fullName\":\"JetBrains/youtrack-vcs-hooks\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-vcs-hooks\",\"stargazersCount\":5,\"topics\":\"[]\",\"watchers\":5},{\"fullName\":\"JetBrains/youtrack-rest-ruby-library\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-rest-ruby-library\",\"stargazersCount\":8,\"topics\":\"[]\",\"watchers\":8},{\"fullName\":\"JetBrains/emacs4ij\",\"htmlUrl\":\"https://github.com/JetBrains/emacs4ij\",\"stargazersCount\":47,\"topics\":\"[]\",\"watchers\":47},{\"fullName\":\"JetBrains/codereview4intellij\",\"htmlUrl\":\"https://github.com/JetBrains/codereview4intellij\",\"stargazersCount\":11,\"topics\":\"[]\",\"watchers\":11},{\"fullName\":\"JetBrains/teamcity-nuget-support\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-nuget-support\",\"stargazersCount\":41,\"topics\":\"[nuget, nuget-feed, teamcity, teamcity-plugin]\",\"watchers\":41},{\"fullName\":\"JetBrains/Grammar-Kit\",\"htmlUrl\":\"https://github.com/JetBrains/Grammar-Kit\",\"stargazersCount\":534,\"topics\":\"[]\",\"watchers\":534},{\"fullName\":\"JetBrains/intellij-starteam-plugin\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-starteam-plugin\",\"stargazersCount\":6,\"topics\":\"[]\",\"watchers\":6},{\"fullName\":\"JetBrains/la-clojure\",\"htmlUrl\":\"https://github.com/JetBrains/la-clojure\",\"stargazersCount\":218,\"topics\":\"[]\",\"watchers\":218},{\"fullName\":\"JetBrains/MPS\",\"htmlUrl\":\"https://github.com/JetBrains/MPS\",\"stargazersCount\":1241,\"topics\":\"[domain-specific-language, dsl]\",\"watchers\":1241},{\"fullName\":\"JetBrains/intellij-community\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-community\",\"stargazersCount\":12926,\"topics\":\"[code-editor, ide, intellij, intellij-community, intellij-platform]\",\"watchers\":12926},{\"fullName\":\"JetBrains/TeamCity.ServiceMessages\",\"htmlUrl\":\"https://github.com/JetBrains/TeamCity.ServiceMessages\",\"stargazersCount\":39,\"topics\":\"[c-sharp, teamcity, teamcity-service-messages]\",\"watchers\":39},{\"fullName\":\"JetBrains/youtrack-rest-python-library\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-rest-python-library\",\"stargazersCount\":118,\"topics\":\"[]\",\"watchers\":118},{\"fullName\":\"JetBrains/intellij-scala\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-scala\",\"stargazersCount\":1066,\"topics\":\"[intellij-idea, intellij-plugin, scala]\",\"watchers\":1066},{\"fullName\":\"JetBrains/teamcity-messages\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-messages\",\"stargazersCount\":125,\"topics\":\"[]\",\"watchers\":125},{\"fullName\":\"JetBrains/teamcity-cpp\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-cpp\",\"stargazersCount\":27,\"topics\":\"[]\",\"watchers\":27},{\"fullName\":\"JetBrains/kotlin\",\"htmlUrl\":\"https://github.com/JetBrains/kotlin\",\"stargazersCount\":39402,\"topics\":\"[compiler, gradle-plugin, intellij-plugin, kotlin, kotlin-library, maven-plugin, programming-language]\",\"watchers\":39402}]}"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 2
},
{
"metadata": {},
"cell_type": "markdown",
"source": [
"After you run the cell above, [extension properties](https://kotlin.github.io/dataframe/extensionpropertiesapi.html) corresponding to the dataframe columns\n",
"are generated and can be used for column accessing in the dataframe operations:"
]
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-15T13:05:16.303095567Z",
"start_time": "2025-09-15T13:05:12.894097380Z"
}
},
"cell_type": "code",
"source": [
"val dfWithUpdatedColumns = df\n",
" // Rename \"stargazersCount\" column to \"stars\".\n",
" .rename { stargazersCount }.into(\"stars\")\n",
" // Convert values in the \"topic\" column (which were `String` initially)\n",
" // to the list of topics.\n",
" .convert { topics }.with {\n",
" val inner = it.removeSurrounding(\"[\", \"]\")\n",
" if (inner.isEmpty()) emptyList() else inner.split(',').map(String::trim)\n",
" }\n",
"dfWithUpdatedColumns"
],
"outputs": [
{
"data": {
"text/html": [
" <iframe onload=\"o_resize_iframe_out_3()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_3\" frameBorder=\"0\" srcdoc=\" &lt;html theme='dark'&gt;\n",
" &lt;head&gt;\n",
" &lt;style type=&quot;text&sol;css&quot;&gt;\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover &gt; td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"&sol;* formatting *&sol;\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
":root {\n",
" --scroll-bg: #f5f5f5;\n",
" --scroll-fg: #b3b3b3;\n",
"}\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n",
" --scroll-bg: #3c3c3c;\n",
" --scroll-fg: #97e1fb;\n",
"}\n",
"body {\n",
" scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n",
"}\n",
"body::-webkit-scrollbar {\n",
" width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n",
" height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n",
"}\n",
"body::-webkit-scrollbar-thumb {\n",
" background-color: var(--scroll-fg);\n",
"}\n",
"body::-webkit-scrollbar-track {\n",
" background-color: var(--scroll-bg);\n",
"}\n",
" &lt;&sol;style&gt;\n",
" &lt;&sol;head&gt;\n",
" &lt;body&gt;\n",
" &lt;table class=&quot;dataframe&quot; id=&quot;df_-2130706428&quot;&gt;&lt;&sol;table&gt;\n",
"\n",
"&lt;p class=&quot;dataframe_description&quot;&gt;... showing only top 20 of 562 rows&lt;&sol;p&gt;&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 562, columnsCount = 5&lt;&sol;p&gt;\n",
"\n",
" &lt;&sol;body&gt;\n",
" &lt;script&gt;\n",
" (function () {\n",
" window.DataFrame = window.DataFrame || new (function () {\n",
" this.addTable = function (df) {\n",
" let cols = df.cols;\n",
" for (let i = 0; i &lt; cols.length; i++) {\n",
" for (let c of cols[i].children) {\n",
" cols[c].parent = i;\n",
" }\n",
" }\n",
" df.nrow = 0\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n",
" }\n",
" if (df.id === df.rootId) {\n",
" df.expandedFrames = new Set()\n",
" df.childFrames = {}\n",
" const table = this.getTableElement(df.id)\n",
" table.df = df\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" let col = df.cols[i]\n",
" if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n",
" }\n",
" } else {\n",
" const rootDf = this.getTableData(df.rootId)\n",
" rootDf.childFrames[df.id] = df\n",
" }\n",
" }\n",
"\n",
" this.computeRenderData = function (df) {\n",
" let result = []\n",
" let pos = 0\n",
" for (let col = 0; col &lt; df.cols.length; col++) {\n",
" if (df.cols[col].parent === undefined)\n",
" pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n",
" }\n",
" for (let i = 0; i &lt; result.length; i++) {\n",
" let row = result[i]\n",
" for (let j = 0; j &lt; row.length; j++) {\n",
" let cell = row[j]\n",
" if (j === 0)\n",
" cell.leftBd = false\n",
" if (j &lt; row.length - 1) {\n",
" let nextData = row[j + 1]\n",
" if (nextData.leftBd) cell.rightBd = true\n",
" else if (cell.rightBd) nextData.leftBd = true\n",
" } else cell.rightBd = false\n",
" }\n",
" }\n",
" return result\n",
" }\n",
"\n",
" this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n",
" if (result.length === depth) {\n",
" const array = [];\n",
" if (pos &gt; 0) {\n",
" let j = 0\n",
" for (let i = 0; j &lt; pos; i++) {\n",
" let c = result[depth - 1][i]\n",
" j += c.span\n",
" let copy = Object.assign({empty: true}, c)\n",
" array.push(copy)\n",
" }\n",
" }\n",
" result.push(array)\n",
" }\n",
" const col = cols[colId];\n",
" let size = 0;\n",
" if (col.expanded) {\n",
" let childPos = pos\n",
" for (let i = 0; i &lt; col.children.length; i++) {\n",
" let child = col.children[i]\n",
" let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n",
" let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n",
" let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n",
" childPos += childSize\n",
" size += childSize\n",
" }\n",
" } else {\n",
" for (let i = depth + 1; i &lt; result.length; i++)\n",
" result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n",
" size = 1\n",
" }\n",
" let left = leftBorder\n",
" let right = rightBorder\n",
" if (size &gt; 1) {\n",
" left = true\n",
" right = true\n",
" }\n",
" result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n",
" return size\n",
" }\n",
"\n",
" this.getTableElement = function (id) {\n",
" return document.getElementById(&quot;df_&quot; + id)\n",
" }\n",
"\n",
" this.getTableData = function (id) {\n",
" return this.getTableElement(id).df\n",
" }\n",
"\n",
" this.createExpander = function (isExpanded) {\n",
" const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n",
" let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n",
" svg.classList.add(&quot;expanderSvg&quot;)\n",
" let path = document.createElementNS(svgNs, &quot;path&quot;)\n",
" if (isExpanded) {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n",
" } else {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n",
" }\n",
" path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n",
" svg.appendChild(path)\n",
" return svg\n",
" }\n",
"\n",
" this.renderTable = function (id) {\n",
"\n",
" let table = this.getTableElement(id)\n",
"\n",
" if (table === null) return\n",
"\n",
" table.innerHTML = &quot;&quot;\n",
"\n",
" let df = table.df\n",
" let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n",
"\n",
" &sol;&sol; header\n",
" let header = document.createElement(&quot;thead&quot;)\n",
" table.appendChild(header)\n",
"\n",
" let renderData = this.computeRenderData(df)\n",
" for (let j = 0; j &lt; renderData.length; j++) {\n",
" let rowData = renderData[j]\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" let isLastRow = j === renderData.length - 1\n",
" header.appendChild(tr);\n",
" for (let i = 0; i &lt; rowData.length; i++) {\n",
" let cell = rowData[i]\n",
" let th = document.createElement(&quot;th&quot;);\n",
" th.setAttribute(&quot;colspan&quot;, cell.span)\n",
" let colId = cell.id\n",
" let col = df.cols[colId];\n",
" if (!cell.empty) {\n",
" if (col.children.length === 0) {\n",
" th.innerHTML = col.name\n",
" } else {\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" col.expanded = !col.expanded\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(col.expanded))\n",
" link.innerHTML += col.name\n",
" th.appendChild(link)\n",
" }\n",
" }\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (isLastRow)\n",
" classes += &quot; bottomBorder&quot;\n",
" if (classes.length &gt; 0)\n",
" th.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(th)\n",
" }\n",
" }\n",
"\n",
" &sol;&sol; body\n",
" let body = document.createElement(&quot;tbody&quot;)\n",
" table.appendChild(body)\n",
"\n",
" let columns = renderData.pop()\n",
" for (let row = 0; row &lt; df.nrow; row++) {\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" body.appendChild(tr)\n",
" for (let i = 0; i &lt; columns.length; i++) {\n",
" let cell = columns[i]\n",
" let td = document.createElement(&quot;td&quot;);\n",
" let colId = cell.id\n",
" let col = df.cols[colId]\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (classes.length &gt; 0)\n",
" td.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(td)\n",
" let value = col.values[row]\n",
" if (value.frameId !== undefined) {\n",
" let frameId = value.frameId\n",
" let expanded = rootDf.expandedFrames.has(frameId)\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" if (rootDf.expandedFrames.has(frameId))\n",
" rootDf.expandedFrames.delete(frameId)\n",
" else rootDf.expandedFrames.add(frameId)\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(expanded))\n",
" link.innerHTML += value.value\n",
" if (expanded) {\n",
" td.appendChild(link)\n",
" td.appendChild(document.createElement(&quot;p&quot;))\n",
" const childTable = document.createElement(&quot;table&quot;)\n",
" childTable.className = &quot;dataframe&quot;\n",
" childTable.id = &quot;df_&quot; + frameId\n",
" let childDf = rootDf.childFrames[frameId]\n",
" childTable.df = childDf\n",
" td.appendChild(childTable)\n",
" this.renderTable(frameId)\n",
" if (childDf.nrow !== childDf.totalRows) {\n",
" const footer = document.createElement(&quot;p&quot;)\n",
" footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n",
" td.appendChild(footer)\n",
" }\n",
" } else {\n",
" td.appendChild(link)\n",
" }\n",
" } else if (value.style !== undefined) {\n",
" td.innerHTML = value.value\n",
" td.setAttribute(&quot;style&quot;, value.style)\n",
" } else td.innerHTML = value\n",
" this.nodeScriptReplace(td)\n",
" }\n",
" }\n",
" }\n",
"\n",
" this.nodeScriptReplace = function (node) {\n",
" if (this.nodeScriptIs(node) === true) {\n",
" node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n",
" } else {\n",
" let i = -1, children = node.childNodes;\n",
" while (++i &lt; children.length) {\n",
" this.nodeScriptReplace(children[i]);\n",
" }\n",
" }\n",
"\n",
" return node;\n",
" }\n",
"\n",
" this.nodeScriptClone = function (node) {\n",
" let script = document.createElement(&quot;script&quot;);\n",
" script.text = node.innerHTML;\n",
"\n",
" let i = -1, attrs = node.attributes, attr;\n",
" while (++i &lt; attrs.length) {\n",
" script.setAttribute((attr = attrs[i]).name, attr.value);\n",
" }\n",
" return script;\n",
" }\n",
"\n",
" this.nodeScriptIs = function (node) {\n",
" return node.tagName === 'SCRIPT';\n",
" }\n",
" })()\n",
"\n",
" window.call_DataFrame = function (f) {\n",
" return f();\n",
" };\n",
"\n",
" let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n",
" if (funQueue) {\n",
" funQueue.forEach(function (f) {\n",
" f();\n",
" });\n",
" funQueue = [];\n",
" }\n",
"})()\n",
"\n",
"&sol;*&lt;!--*&sol;\n",
"call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;fullName: String&bsol;&quot;&gt;fullName&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;JetBrains&sol;JPS&quot;,&quot;JetBrains&sol;YouTrackSharp&quot;,&quot;JetBrains&sol;colorSchemeTool&quot;,&quot;JetBrains&sol;ideavim&quot;,&quot;JetBrains&sol;youtrack-vcs-hooks&quot;,&quot;JetBrains&sol;youtrack-rest-ruby-library&quot;,&quot;JetBrains&sol;emacs4ij&quot;,&quot;JetBrains&sol;codereview4intellij&quot;,&quot;JetBrains&sol;teamcity-nuget-support&quot;,&quot;JetBrains&sol;Grammar-Kit&quot;,&quot;JetBrains&sol;intellij-starteam-plugin&quot;,&quot;JetBrains&sol;la-clojure&quot;,&quot;JetBrains&sol;MPS&quot;,&quot;JetBrains&sol;intellij-community&quot;,&quot;JetBrains&sol;TeamCity.ServiceMessages&quot;,&quot;JetBrains&sol;youtrack-rest-python-library&quot;,&quot;JetBrains&sol;intellij-scala&quot;,&quot;JetBrains&sol;teamcity-messages&quot;,&quot;JetBrains&sol;teamcity-cpp&quot;,&quot;JetBrains&sol;kotlin&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;htmlUrl: URL&bsol;&quot;&gt;htmlUrl&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;JPS' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;JPS&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSch&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-vcs-hooks&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-vcs-hooks' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-ruby-library&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-ruby-library' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;emacs4ij' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;emacs4ij&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;codereview4intellij&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;codereview4intellij' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;coderevi&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-nuget-support&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-nuget-support' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-starteam-plugin&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-starteam-plugin' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;MPS' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;MPS&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity.ServiceMessages&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity.ServiceMessages' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;TeamCity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-cpp&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-cpp' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin&lt;&sol;a&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;stars: Int&bsol;&quot;&gt;stars&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;23&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;8&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;47&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;11&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;41&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;27&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;topics: List&lt;String&gt;&bsol;&quot;&gt;topics&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;jetbrains&bsol;njetbrains-youtrack&bsol;nyoutrack&bsol;nyoutrack-api&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;jetbrains&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;jetbrains-youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;ideavim&bsol;nintellij&bsol;nintellij-platform&bsol;njb-official&bsol;nkotlin&bsol;nvim&bsol;nvim-emulator&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;ideavim&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij-pl&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;nuget&bsol;nnuget-feed&bsol;nteamcity&bsol;nteamcity-plugin&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;nuget&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;nuget-feed&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;teamci&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;domain-specific-language&bsol;ndsl&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;domain-specific-language&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;dsl&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;code-editor&bsol;nide&bsol;nintellij&bsol;nintellij-community&bsol;nintellij-platform&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;code-editor&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;ide&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;i&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;i&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;c-sharp&bsol;nteamcity&bsol;nteamcity-service-messages&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;c-sharp&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;teamcity-service&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;intellij-idea&bsol;nintellij-plugin&bsol;nscala&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;intellij-idea&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij-plugin&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;scala&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;compiler&bsol;ngradle-plugin&bsol;nintellij-plugin&bsol;nkotlin&bsol;nkotlin-library&bsol;nmaven-plugin&bsol;nprogramming-language&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;compiler&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;gradle-plugin&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intel&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;watchers: Int&bsol;&quot;&gt;watchers&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;23&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;8&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;47&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;11&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;41&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;27&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"], id: -2130706428, rootId: -2130706428, totalRows: 562 } ) });\n",
"&sol;*--&gt;*&sol;\n",
"\n",
"call_DataFrame(function() { DataFrame.renderTable(-2130706428) });\n",
"\n",
"\n",
" &lt;&sol;script&gt;\n",
" &lt;&sol;html&gt;\"></iframe>\n",
" <script>\n",
" function o_resize_iframe_out_3() {\n",
" let elem = document.getElementById(\"iframe_out_3\");\n",
" resize_iframe_out_3(elem);\n",
" setInterval(resize_iframe_out_3, 5000, elem);\n",
" }\n",
" function resize_iframe_out_3(el) {\n",
" let h = el.contentWindow.document.body.scrollHeight;\n",
" el.height = h === 0 ? 0 : h + 41;\n",
" }\n",
" </script> <html theme='dark'>\n",
" <head>\n",
" <style type=\"text/css\">\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover > td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"/* formatting */\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
" </style>\n",
" </head>\n",
" <body>\n",
" <table class=\"dataframe\" id=\"static_df_-2130706427\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">fullName</th><th class=\"bottomBorder\" style=\"text-align:left\">htmlUrl</th><th class=\"bottomBorder\" style=\"text-align:left\">stars</th><th class=\"bottomBorder\" style=\"text-align:left\">topics</th><th class=\"bottomBorder\" style=\"text-align:left\">watchers</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">JetBrains/JPS</td><td style=\"vertical-align:top\">https://github.com/JetBrains/JPS</td><td style=\"vertical-align:top\">23</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">23</td></tr><tr><td style=\"vertical-align:top\">JetBrains/YouTrackSharp</td><td style=\"vertical-align:top\">https://github.com/JetBrains/YouTrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td><td style=\"vertical-align:top\">[jetbrains, jetbrains-youtrack, youtr<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td></tr><tr><td style=\"vertical-align:top\">JetBrains/colorSchemeTool</td><td style=\"vertical-align:top\">https://github.com/JetBrains/colorSch<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">290</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">290</td></tr><tr><td style=\"vertical-align:top\">JetBrains/ideavim</td><td style=\"vertical-align:top\">https://github.com/JetBrains/ideavim</td><td style=\"vertical-align:top\">6120</td><td style=\"vertical-align:top\">[ideavim, intellij, intellij-platform<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">6120</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-vcs-hooks</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-rest-ruby-library</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">8</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">8</td></tr><tr><td style=\"vertical-align:top\">JetBrains/emacs4ij</td><td style=\"vertical-align:top\">https://github.com/JetBrains/emacs4ij</td><td style=\"vertical-align:top\">47</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">47</td></tr><tr><td style=\"vertical-align:top\">JetBrains/codereview4intellij</td><td style=\"vertical-align:top\">https://github.com/JetBrains/coderevi<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">11</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">11</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-nuget-support</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">41</td><td style=\"vertical-align:top\">[nuget, nuget-feed, teamcity, teamcit<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">41</td></tr><tr><td style=\"vertical-align:top\">JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">https://github.com/JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">534</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">534</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-starteam-plugin</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">6</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">6</td></tr><tr><td style=\"vertical-align:top\">JetBrains/la-clojure</td><td style=\"vertical-align:top\">https://github.com/JetBrains/la-clojure</td><td style=\"vertical-align:top\">218</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">218</td></tr><tr><td style=\"vertical-align:top\">JetBrains/MPS</td><td style=\"vertical-align:top\">https://github.com/JetBrains/MPS</td><td style=\"vertical-align:top\">1241</td><td style=\"vertical-align:top\">[domain-specific-language, dsl]</td><td style=\"vertical-align:top\">1241</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-community</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td><td style=\"vertical-align:top\">[code-editor, ide, intellij, intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td></tr><tr><td style=\"vertical-align:top\">JetBrains/TeamCity.ServiceMessages</td><td style=\"vertical-align:top\">https://github.com/JetBrains/TeamCity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39</td><td style=\"vertical-align:top\">[c-sharp, teamcity, teamcity-service-<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-rest-python-library</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">118</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">118</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-scala</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">1066</td><td style=\"vertical-align:top\">[intellij-idea, intellij-plugin, scala]</td><td style=\"vertical-align:top\">1066</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-messages</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">125</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">125</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-cpp</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">27</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">27</td></tr><tr><td style=\"vertical-align:top\">JetBrains/kotlin</td><td style=\"vertical-align:top\">https://github.com/JetBrains/kotlin</td><td style=\"vertical-align:top\">39402</td><td style=\"vertical-align:top\">[compiler, gradle-plugin, intellij-pl<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39402</td></tr></tbody></table>\n",
" </body>\n",
" <script>\n",
" document.getElementById(\"static_df_-2130706427\").style.display = \"none\";\n",
" </script>\n",
" </html>"
],
"application/kotlindataframe+json": "{\"$version\":\"2.2.0\",\"metadata\":{\"columns\":[\"fullName\",\"htmlUrl\",\"stars\",\"topics\",\"watchers\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"java.net.URL\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.collections.List<kotlin.String>\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"}],\"nrow\":562,\"ncol\":5,\"is_formatted\":false},\"kotlin_dataframe\":[{\"fullName\":\"JetBrains/JPS\",\"htmlUrl\":\"https://github.com/JetBrains/JPS\",\"stars\":23,\"topics\":[],\"watchers\":23},{\"fullName\":\"JetBrains/YouTrackSharp\",\"htmlUrl\":\"https://github.com/JetBrains/YouTrackSharp\",\"stars\":115,\"topics\":[\"jetbrains\",\"jetbrains-youtrack\",\"youtrack\",\"youtrack-api\"],\"watchers\":115},{\"fullName\":\"JetBrains/colorSchemeTool\",\"htmlUrl\":\"https://github.com/JetBrains/colorSchemeTool\",\"stars\":290,\"topics\":[],\"watchers\":290},{\"fullName\":\"JetBrains/ideavim\",\"htmlUrl\":\"https://github.com/JetBrains/ideavim\",\"stars\":6120,\"topics\":[\"ideavim\",\"intellij\",\"intellij-platform\",\"jb-official\",\"kotlin\",\"vim\",\"vim-emulator\"],\"watchers\":6120},{\"fullName\":\"JetBrains/youtrack-vcs-hooks\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-vcs-hooks\",\"stars\":5,\"topics\":[],\"watchers\":5},{\"fullName\":\"JetBrains/youtrack-rest-ruby-library\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-rest-ruby-library\",\"stars\":8,\"topics\":[],\"watchers\":8},{\"fullName\":\"JetBrains/emacs4ij\",\"htmlUrl\":\"https://github.com/JetBrains/emacs4ij\",\"stars\":47,\"topics\":[],\"watchers\":47},{\"fullName\":\"JetBrains/codereview4intellij\",\"htmlUrl\":\"https://github.com/JetBrains/codereview4intellij\",\"stars\":11,\"topics\":[],\"watchers\":11},{\"fullName\":\"JetBrains/teamcity-nuget-support\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-nuget-support\",\"stars\":41,\"topics\":[\"nuget\",\"nuget-feed\",\"teamcity\",\"teamcity-plugin\"],\"watchers\":41},{\"fullName\":\"JetBrains/Grammar-Kit\",\"htmlUrl\":\"https://github.com/JetBrains/Grammar-Kit\",\"stars\":534,\"topics\":[],\"watchers\":534},{\"fullName\":\"JetBrains/intellij-starteam-plugin\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-starteam-plugin\",\"stars\":6,\"topics\":[],\"watchers\":6},{\"fullName\":\"JetBrains/la-clojure\",\"htmlUrl\":\"https://github.com/JetBrains/la-clojure\",\"stars\":218,\"topics\":[],\"watchers\":218},{\"fullName\":\"JetBrains/MPS\",\"htmlUrl\":\"https://github.com/JetBrains/MPS\",\"stars\":1241,\"topics\":[\"domain-specific-language\",\"dsl\"],\"watchers\":1241},{\"fullName\":\"JetBrains/intellij-community\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-community\",\"stars\":12926,\"topics\":[\"code-editor\",\"ide\",\"intellij\",\"intellij-community\",\"intellij-platform\"],\"watchers\":12926},{\"fullName\":\"JetBrains/TeamCity.ServiceMessages\",\"htmlUrl\":\"https://github.com/JetBrains/TeamCity.ServiceMessages\",\"stars\":39,\"topics\":[\"c-sharp\",\"teamcity\",\"teamcity-service-messages\"],\"watchers\":39},{\"fullName\":\"JetBrains/youtrack-rest-python-library\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-rest-python-library\",\"stars\":118,\"topics\":[],\"watchers\":118},{\"fullName\":\"JetBrains/intellij-scala\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-scala\",\"stars\":1066,\"topics\":[\"intellij-idea\",\"intellij-plugin\",\"scala\"],\"watchers\":1066},{\"fullName\":\"JetBrains/teamcity-messages\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-messages\",\"stars\":125,\"topics\":[],\"watchers\":125},{\"fullName\":\"JetBrains/teamcity-cpp\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-cpp\",\"stars\":27,\"topics\":[],\"watchers\":27},{\"fullName\":\"JetBrains/kotlin\",\"htmlUrl\":\"https://github.com/JetBrains/kotlin\",\"stars\":39402,\"topics\":[\"compiler\",\"gradle-plugin\",\"intellij-plugin\",\"kotlin\",\"kotlin-library\",\"maven-plugin\",\"programming-language\"],\"watchers\":39402}]}"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-15T13:05:18.585727623Z",
"start_time": "2025-09-15T13:05:17.187620386Z"
}
},
"cell_type": "code",
"source": [
"val dfNew = dfWithUpdatedColumns\n",
" // Filter by the number of stars:\n",
" .filter { stars > 50 }\n",
" // Add a new column with the number of topics.\n",
" .add(\"topicCount\") { topics.size }\n",
"dfNew"
],
"outputs": [
{
"data": {
"text/html": [
" <iframe onload=\"o_resize_iframe_out_6()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_6\" frameBorder=\"0\" srcdoc=\" &lt;html theme='dark'&gt;\n",
" &lt;head&gt;\n",
" &lt;style type=&quot;text&sol;css&quot;&gt;\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody &gt; tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover &gt; td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"&sol;* formatting *&sol;\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
":root {\n",
" --scroll-bg: #f5f5f5;\n",
" --scroll-fg: #b3b3b3;\n",
"}\n",
":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n",
" --scroll-bg: #3c3c3c;\n",
" --scroll-fg: #97e1fb;\n",
"}\n",
"body {\n",
" scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n",
"}\n",
"body::-webkit-scrollbar {\n",
" width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n",
" height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n",
"}\n",
"body::-webkit-scrollbar-thumb {\n",
" background-color: var(--scroll-fg);\n",
"}\n",
"body::-webkit-scrollbar-track {\n",
" background-color: var(--scroll-bg);\n",
"}\n",
" &lt;&sol;style&gt;\n",
" &lt;&sol;head&gt;\n",
" &lt;body&gt;\n",
" &lt;table class=&quot;dataframe&quot; id=&quot;df_-2130706422&quot;&gt;&lt;&sol;table&gt;\n",
"\n",
"&lt;p class=&quot;dataframe_description&quot;&gt;... showing only top 20 of 137 rows&lt;&sol;p&gt;&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 137, columnsCount = 6&lt;&sol;p&gt;\n",
"\n",
" &lt;&sol;body&gt;\n",
" &lt;script&gt;\n",
" (function () {\n",
" window.DataFrame = window.DataFrame || new (function () {\n",
" this.addTable = function (df) {\n",
" let cols = df.cols;\n",
" for (let i = 0; i &lt; cols.length; i++) {\n",
" for (let c of cols[i].children) {\n",
" cols[c].parent = i;\n",
" }\n",
" }\n",
" df.nrow = 0\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n",
" }\n",
" if (df.id === df.rootId) {\n",
" df.expandedFrames = new Set()\n",
" df.childFrames = {}\n",
" const table = this.getTableElement(df.id)\n",
" table.df = df\n",
" for (let i = 0; i &lt; df.cols.length; i++) {\n",
" let col = df.cols[i]\n",
" if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n",
" }\n",
" } else {\n",
" const rootDf = this.getTableData(df.rootId)\n",
" rootDf.childFrames[df.id] = df\n",
" }\n",
" }\n",
"\n",
" this.computeRenderData = function (df) {\n",
" let result = []\n",
" let pos = 0\n",
" for (let col = 0; col &lt; df.cols.length; col++) {\n",
" if (df.cols[col].parent === undefined)\n",
" pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n",
" }\n",
" for (let i = 0; i &lt; result.length; i++) {\n",
" let row = result[i]\n",
" for (let j = 0; j &lt; row.length; j++) {\n",
" let cell = row[j]\n",
" if (j === 0)\n",
" cell.leftBd = false\n",
" if (j &lt; row.length - 1) {\n",
" let nextData = row[j + 1]\n",
" if (nextData.leftBd) cell.rightBd = true\n",
" else if (cell.rightBd) nextData.leftBd = true\n",
" } else cell.rightBd = false\n",
" }\n",
" }\n",
" return result\n",
" }\n",
"\n",
" this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n",
" if (result.length === depth) {\n",
" const array = [];\n",
" if (pos &gt; 0) {\n",
" let j = 0\n",
" for (let i = 0; j &lt; pos; i++) {\n",
" let c = result[depth - 1][i]\n",
" j += c.span\n",
" let copy = Object.assign({empty: true}, c)\n",
" array.push(copy)\n",
" }\n",
" }\n",
" result.push(array)\n",
" }\n",
" const col = cols[colId];\n",
" let size = 0;\n",
" if (col.expanded) {\n",
" let childPos = pos\n",
" for (let i = 0; i &lt; col.children.length; i++) {\n",
" let child = col.children[i]\n",
" let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n",
" let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n",
" let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n",
" childPos += childSize\n",
" size += childSize\n",
" }\n",
" } else {\n",
" for (let i = depth + 1; i &lt; result.length; i++)\n",
" result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n",
" size = 1\n",
" }\n",
" let left = leftBorder\n",
" let right = rightBorder\n",
" if (size &gt; 1) {\n",
" left = true\n",
" right = true\n",
" }\n",
" result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n",
" return size\n",
" }\n",
"\n",
" this.getTableElement = function (id) {\n",
" return document.getElementById(&quot;df_&quot; + id)\n",
" }\n",
"\n",
" this.getTableData = function (id) {\n",
" return this.getTableElement(id).df\n",
" }\n",
"\n",
" this.createExpander = function (isExpanded) {\n",
" const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n",
" let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n",
" svg.classList.add(&quot;expanderSvg&quot;)\n",
" let path = document.createElementNS(svgNs, &quot;path&quot;)\n",
" if (isExpanded) {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n",
" } else {\n",
" svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n",
" path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n",
" }\n",
" path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n",
" svg.appendChild(path)\n",
" return svg\n",
" }\n",
"\n",
" this.renderTable = function (id) {\n",
"\n",
" let table = this.getTableElement(id)\n",
"\n",
" if (table === null) return\n",
"\n",
" table.innerHTML = &quot;&quot;\n",
"\n",
" let df = table.df\n",
" let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n",
"\n",
" &sol;&sol; header\n",
" let header = document.createElement(&quot;thead&quot;)\n",
" table.appendChild(header)\n",
"\n",
" let renderData = this.computeRenderData(df)\n",
" for (let j = 0; j &lt; renderData.length; j++) {\n",
" let rowData = renderData[j]\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" let isLastRow = j === renderData.length - 1\n",
" header.appendChild(tr);\n",
" for (let i = 0; i &lt; rowData.length; i++) {\n",
" let cell = rowData[i]\n",
" let th = document.createElement(&quot;th&quot;);\n",
" th.setAttribute(&quot;colspan&quot;, cell.span)\n",
" let colId = cell.id\n",
" let col = df.cols[colId];\n",
" if (!cell.empty) {\n",
" if (col.children.length === 0) {\n",
" th.innerHTML = col.name\n",
" } else {\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" col.expanded = !col.expanded\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(col.expanded))\n",
" link.innerHTML += col.name\n",
" th.appendChild(link)\n",
" }\n",
" }\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (isLastRow)\n",
" classes += &quot; bottomBorder&quot;\n",
" if (classes.length &gt; 0)\n",
" th.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(th)\n",
" }\n",
" }\n",
"\n",
" &sol;&sol; body\n",
" let body = document.createElement(&quot;tbody&quot;)\n",
" table.appendChild(body)\n",
"\n",
" let columns = renderData.pop()\n",
" for (let row = 0; row &lt; df.nrow; row++) {\n",
" let tr = document.createElement(&quot;tr&quot;);\n",
" body.appendChild(tr)\n",
" for (let i = 0; i &lt; columns.length; i++) {\n",
" let cell = columns[i]\n",
" let td = document.createElement(&quot;td&quot;);\n",
" let colId = cell.id\n",
" let col = df.cols[colId]\n",
" let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n",
" if (col.rightAlign)\n",
" classes += &quot; rightAlign&quot;\n",
" if (classes.length &gt; 0)\n",
" td.setAttribute(&quot;class&quot;, classes)\n",
" tr.appendChild(td)\n",
" let value = col.values[row]\n",
" if (value.frameId !== undefined) {\n",
" let frameId = value.frameId\n",
" let expanded = rootDf.expandedFrames.has(frameId)\n",
" let link = document.createElement(&quot;a&quot;)\n",
" link.className = &quot;expander&quot;\n",
" let that = this\n",
" link.onclick = function () {\n",
" if (rootDf.expandedFrames.has(frameId))\n",
" rootDf.expandedFrames.delete(frameId)\n",
" else rootDf.expandedFrames.add(frameId)\n",
" that.renderTable(id)\n",
" }\n",
" link.appendChild(this.createExpander(expanded))\n",
" link.innerHTML += value.value\n",
" if (expanded) {\n",
" td.appendChild(link)\n",
" td.appendChild(document.createElement(&quot;p&quot;))\n",
" const childTable = document.createElement(&quot;table&quot;)\n",
" childTable.className = &quot;dataframe&quot;\n",
" childTable.id = &quot;df_&quot; + frameId\n",
" let childDf = rootDf.childFrames[frameId]\n",
" childTable.df = childDf\n",
" td.appendChild(childTable)\n",
" this.renderTable(frameId)\n",
" if (childDf.nrow !== childDf.totalRows) {\n",
" const footer = document.createElement(&quot;p&quot;)\n",
" footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n",
" td.appendChild(footer)\n",
" }\n",
" } else {\n",
" td.appendChild(link)\n",
" }\n",
" } else if (value.style !== undefined) {\n",
" td.innerHTML = value.value\n",
" td.setAttribute(&quot;style&quot;, value.style)\n",
" } else td.innerHTML = value\n",
" this.nodeScriptReplace(td)\n",
" }\n",
" }\n",
" }\n",
"\n",
" this.nodeScriptReplace = function (node) {\n",
" if (this.nodeScriptIs(node) === true) {\n",
" node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n",
" } else {\n",
" let i = -1, children = node.childNodes;\n",
" while (++i &lt; children.length) {\n",
" this.nodeScriptReplace(children[i]);\n",
" }\n",
" }\n",
"\n",
" return node;\n",
" }\n",
"\n",
" this.nodeScriptClone = function (node) {\n",
" let script = document.createElement(&quot;script&quot;);\n",
" script.text = node.innerHTML;\n",
"\n",
" let i = -1, attrs = node.attributes, attr;\n",
" while (++i &lt; attrs.length) {\n",
" script.setAttribute((attr = attrs[i]).name, attr.value);\n",
" }\n",
" return script;\n",
" }\n",
"\n",
" this.nodeScriptIs = function (node) {\n",
" return node.tagName === 'SCRIPT';\n",
" }\n",
" })()\n",
"\n",
" window.call_DataFrame = function (f) {\n",
" return f();\n",
" };\n",
"\n",
" let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n",
" if (funQueue) {\n",
" funQueue.forEach(function (f) {\n",
" f();\n",
" });\n",
" funQueue = [];\n",
" }\n",
"})()\n",
"\n",
"&sol;*&lt;!--*&sol;\n",
"call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;fullName: String&bsol;&quot;&gt;fullName&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;JetBrains&sol;YouTrackSharp&quot;,&quot;JetBrains&sol;colorSchemeTool&quot;,&quot;JetBrains&sol;ideavim&quot;,&quot;JetBrains&sol;Grammar-Kit&quot;,&quot;JetBrains&sol;la-clojure&quot;,&quot;JetBrains&sol;MPS&quot;,&quot;JetBrains&sol;intellij-community&quot;,&quot;JetBrains&sol;youtrack-rest-python-library&quot;,&quot;JetBrains&sol;intellij-scala&quot;,&quot;JetBrains&sol;teamcity-messages&quot;,&quot;JetBrains&sol;kotlin&quot;,&quot;JetBrains&sol;kotlin-web-demo&quot;,&quot;JetBrains&sol;intellij-plugin-verifier&quot;,&quot;JetBrains&sol;intellij-samples&quot;,&quot;JetBrains&sol;youtrack-workflows&quot;,&quot;JetBrains&sol;intellij-plugins&quot;,&quot;JetBrains&sol;resharper-nuget&quot;,&quot;JetBrains&sol;mnemonics&quot;,&quot;JetBrains&sol;kara&quot;,&quot;JetBrains&sol;jediterm&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;htmlUrl: URL&bsol;&quot;&gt;htmlUrl&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrackSharp' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;YouTrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;colorSchemeTool' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;colorSch&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;ideavim&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;Grammar-Kit&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;la-clojure&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;MPS' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;MPS&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-community' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-rest-python-library' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-scala' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity-messages' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;teamcity&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin&lt;&sol;a&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin-web-demo&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin-web-demo' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;kotlin-w&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-plugin-verifier&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-plugin-verifier' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-samples&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-samples' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-workflows&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack-workflows' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-plugins&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;intellij-plugins' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;https:&sol;&sol;github.com&sol;JetBrains&sol;resharper-nuget&bsol;&quot;&gt;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;resharper-nuget' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;resharpe&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;a&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;mnemonics' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;mnemonics&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;kara' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;kara&lt;&sol;a&gt;&quot;,&quot;&lt;a href='https:&sol;&sol;github.com&sol;JetBrains&sol;jediterm' target='_blank'&gt;https:&sol;&sol;github.com&sol;JetBrains&sol;jediterm&lt;&sol;a&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;stars: Int&bsol;&quot;&gt;stars&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;167&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;113&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;146&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;164&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1737&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;94&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;66&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;76&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;483&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;topics: List&lt;String&gt;&bsol;&quot;&gt;topics&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;jetbrains&bsol;njetbrains-youtrack&bsol;nyoutrack&bsol;nyoutrack-api&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;jetbrains&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;jetbrains-youtrack&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;ideavim&bsol;nintellij&bsol;nintellij-platform&bsol;njb-official&bsol;nkotlin&bsol;nvim&bsol;nvim-emulator&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;ideavim&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij-pl&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;domain-specific-language&bsol;ndsl&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;domain-specific-language&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;dsl&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;code-editor&bsol;nide&bsol;nintellij&bsol;nintellij-community&bsol;nintellij-platform&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;code-editor&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;ide&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;i&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;i&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;intellij-idea&bsol;nintellij-plugin&bsol;nscala&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;intellij-idea&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intellij-plugin&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;scala&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;compiler&bsol;ngradle-plugin&bsol;nintellij-plugin&bsol;nkotlin&bsol;nkotlin-library&bsol;nmaven-plugin&bsol;nprogramming-language&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;compiler&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;gradle-plugin&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;intel&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;jetbrains&bsol;nnuget&bsol;nresharper&bsol;nresharper-extension&bsol;nresharper-plugin&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;jetbrains&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;nuget&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;resharper&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;jetbrains&bsol;nmnemonic&bsol;nresharper&bsol;nresharper-extension&bsol;nresharper-plugin&bsol;&quot;&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;[&lt;&sol;span&gt;jetbrains&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;mnemonic&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;resharper&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;, &lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;null&bsol;&quot;&gt;[ ]&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;watchers: Int&bsol;&quot;&gt;watchers&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;115&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;290&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6120&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1241&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;12926&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;118&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1066&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;125&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;39402&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;167&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;113&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;146&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;164&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1737&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;94&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;66&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;76&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;483&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"{ name: &quot;&lt;span title=&bsol;&quot;topicCount: Int&bsol;&quot;&gt;topicCount&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;4&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;7&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;7&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;5&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n",
"], id: -2130706422, rootId: -2130706422, totalRows: 137 } ) });\n",
"&sol;*--&gt;*&sol;\n",
"\n",
"call_DataFrame(function() { DataFrame.renderTable(-2130706422) });\n",
"\n",
"\n",
" &lt;&sol;script&gt;\n",
" &lt;&sol;html&gt;\"></iframe>\n",
" <script>\n",
" function o_resize_iframe_out_6() {\n",
" let elem = document.getElementById(\"iframe_out_6\");\n",
" resize_iframe_out_6(elem);\n",
" setInterval(resize_iframe_out_6, 5000, elem);\n",
" }\n",
" function resize_iframe_out_6(el) {\n",
" let h = el.contentWindow.document.body.scrollHeight;\n",
" el.height = h === 0 ? 0 : h + 41;\n",
" }\n",
" </script> <html theme='dark'>\n",
" <head>\n",
" <style type=\"text/css\">\n",
" :root {\n",
" --background: #fff;\n",
" --background-odd: #f5f5f5;\n",
" --background-hover: #d9edfd;\n",
" --header-text-color: #474747;\n",
" --text-color: #848484;\n",
" --text-color-dark: #000;\n",
" --text-color-medium: #737373;\n",
" --text-color-pale: #b3b3b3;\n",
" --inner-border-color: #aaa;\n",
" --bold-border-color: #000;\n",
" --link-color: #296eaa;\n",
" --link-color-pale: #296eaa;\n",
" --link-hover: #1a466c;\n",
"}\n",
"\n",
":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n",
" --background: #303030;\n",
" --background-odd: #3c3c3c;\n",
" --background-hover: #464646;\n",
" --header-text-color: #dddddd;\n",
" --text-color: #b3b3b3;\n",
" --text-color-dark: #dddddd;\n",
" --text-color-medium: #b2b2b2;\n",
" --text-color-pale: #737373;\n",
" --inner-border-color: #707070;\n",
" --bold-border-color: #777777;\n",
" --link-color: #008dc0;\n",
" --link-color-pale: #97e1fb;\n",
" --link-hover: #00688e;\n",
"}\n",
"\n",
"p.dataframe_description {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe {\n",
" font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n",
" font-size: 12px;\n",
" background-color: var(--background);\n",
" color: var(--text-color-dark);\n",
" border: none;\n",
" border-collapse: collapse;\n",
"}\n",
"\n",
"table.dataframe th, td {\n",
" padding: 6px;\n",
" border: 1px solid transparent;\n",
" text-align: left;\n",
"}\n",
"\n",
"table.dataframe th {\n",
" background-color: var(--background);\n",
" color: var(--header-text-color);\n",
"}\n",
"\n",
"table.dataframe td {\n",
" vertical-align: top;\n",
" white-space: nowrap;\n",
"}\n",
"\n",
"table.dataframe th.bottomBorder {\n",
" border-bottom-color: var(--bold-border-color);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(odd) {\n",
" background: var(--background-odd);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:nth-child(even) {\n",
" background: var(--background);\n",
"}\n",
"\n",
"table.dataframe tbody > tr:hover {\n",
" background: var(--background-hover);\n",
"}\n",
"\n",
"table.dataframe a {\n",
" cursor: pointer;\n",
" color: var(--link-color);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"table.dataframe tr:hover > td a {\n",
" color: var(--link-color-pale);\n",
"}\n",
"\n",
"table.dataframe a:hover {\n",
" color: var(--link-hover);\n",
" text-decoration: underline;\n",
"}\n",
"\n",
"table.dataframe img {\n",
" max-width: fit-content;\n",
"}\n",
"\n",
"table.dataframe th.complex {\n",
" background-color: var(--background);\n",
" border: 1px solid var(--background);\n",
"}\n",
"\n",
"table.dataframe .leftBorder {\n",
" border-left-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightBorder {\n",
" border-right-color: var(--inner-border-color);\n",
"}\n",
"\n",
"table.dataframe .rightAlign {\n",
" text-align: right;\n",
"}\n",
"\n",
"table.dataframe .expanderSvg {\n",
" width: 8px;\n",
" height: 8px;\n",
" margin-right: 3px;\n",
"}\n",
"\n",
"table.dataframe .expander {\n",
" display: flex;\n",
" align-items: center;\n",
"}\n",
"\n",
"/* formatting */\n",
"\n",
"table.dataframe .null {\n",
" color: var(--text-color-pale);\n",
"}\n",
"\n",
"table.dataframe .structural {\n",
" color: var(--text-color-medium);\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .dataFrameCaption {\n",
" font-weight: bold;\n",
"}\n",
"\n",
"table.dataframe .numbers {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe td:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"table.dataframe tr:hover .formatted .structural, .null {\n",
" color: var(--text-color-dark);\n",
"}\n",
"\n",
"\n",
" </style>\n",
" </head>\n",
" <body>\n",
" <table class=\"dataframe\" id=\"static_df_-2130706421\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">fullName</th><th class=\"bottomBorder\" style=\"text-align:left\">htmlUrl</th><th class=\"bottomBorder\" style=\"text-align:left\">stars</th><th class=\"bottomBorder\" style=\"text-align:left\">topics</th><th class=\"bottomBorder\" style=\"text-align:left\">watchers</th><th class=\"bottomBorder\" style=\"text-align:left\">topicCount</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">JetBrains/YouTrackSharp</td><td style=\"vertical-align:top\">https://github.com/JetBrains/YouTrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td><td style=\"vertical-align:top\">[jetbrains, jetbrains-youtrack, youtr<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">115</td><td style=\"vertical-align:top\">4</td></tr><tr><td style=\"vertical-align:top\">JetBrains/colorSchemeTool</td><td style=\"vertical-align:top\">https://github.com/JetBrains/colorSch<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">290</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">290</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/ideavim</td><td style=\"vertical-align:top\">https://github.com/JetBrains/ideavim</td><td style=\"vertical-align:top\">6120</td><td style=\"vertical-align:top\">[ideavim, intellij, intellij-platform<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">6120</td><td style=\"vertical-align:top\">7</td></tr><tr><td style=\"vertical-align:top\">JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">https://github.com/JetBrains/Grammar-Kit</td><td style=\"vertical-align:top\">534</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">534</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/la-clojure</td><td style=\"vertical-align:top\">https://github.com/JetBrains/la-clojure</td><td style=\"vertical-align:top\">218</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">218</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/MPS</td><td style=\"vertical-align:top\">https://github.com/JetBrains/MPS</td><td style=\"vertical-align:top\">1241</td><td style=\"vertical-align:top\">[domain-specific-language, dsl]</td><td style=\"vertical-align:top\">1241</td><td style=\"vertical-align:top\">2</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-community</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td><td style=\"vertical-align:top\">[code-editor, ide, intellij, intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">12926</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-rest-python-library</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">118</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">118</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-scala</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">1066</td><td style=\"vertical-align:top\">[intellij-idea, intellij-plugin, scala]</td><td style=\"vertical-align:top\">1066</td><td style=\"vertical-align:top\">3</td></tr><tr><td style=\"vertical-align:top\">JetBrains/teamcity-messages</td><td style=\"vertical-align:top\">https://github.com/JetBrains/teamcity<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">125</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">125</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/kotlin</td><td style=\"vertical-align:top\">https://github.com/JetBrains/kotlin</td><td style=\"vertical-align:top\">39402</td><td style=\"vertical-align:top\">[compiler, gradle-plugin, intellij-pl<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">39402</td><td style=\"vertical-align:top\">7</td></tr><tr><td style=\"vertical-align:top\">JetBrains/kotlin-web-demo</td><td style=\"vertical-align:top\">https://github.com/JetBrains/kotlin-w<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">167</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">167</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-plugin-verifier</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">113</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">113</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-samples</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">146</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">146</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/youtrack-workflows</td><td style=\"vertical-align:top\">https://github.com/JetBrains/youtrack<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">164</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">164</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/intellij-plugins</td><td style=\"vertical-align:top\">https://github.com/JetBrains/intellij<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">1737</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">1737</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/resharper-nuget</td><td style=\"vertical-align:top\">https://github.com/JetBrains/resharpe<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">94</td><td style=\"vertical-align:top\">[jetbrains, nuget, resharper, resharp<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">94</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">JetBrains/mnemonics</td><td style=\"vertical-align:top\">https://github.com/JetBrains/mnemonics</td><td style=\"vertical-align:top\">66</td><td style=\"vertical-align:top\">[jetbrains, mnemonic, resharper, resh<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">66</td><td style=\"vertical-align:top\">5</td></tr><tr><td style=\"vertical-align:top\">JetBrains/kara</td><td style=\"vertical-align:top\">https://github.com/JetBrains/kara</td><td style=\"vertical-align:top\">76</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">76</td><td style=\"vertical-align:top\">0</td></tr><tr><td style=\"vertical-align:top\">JetBrains/jediterm</td><td style=\"vertical-align:top\">https://github.com/JetBrains/jediterm</td><td style=\"vertical-align:top\">483</td><td style=\"vertical-align:top\">[ ]</td><td style=\"vertical-align:top\">483</td><td style=\"vertical-align:top\">0</td></tr></tbody></table>\n",
" </body>\n",
" <script>\n",
" document.getElementById(\"static_df_-2130706421\").style.display = \"none\";\n",
" </script>\n",
" </html>"
],
"application/kotlindataframe+json": "{\"$version\":\"2.2.0\",\"metadata\":{\"columns\":[\"fullName\",\"htmlUrl\",\"stars\",\"topics\",\"watchers\",\"topicCount\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"java.net.URL\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.collections.List<kotlin.String>\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"}],\"nrow\":137,\"ncol\":6,\"is_formatted\":false},\"kotlin_dataframe\":[{\"fullName\":\"JetBrains/YouTrackSharp\",\"htmlUrl\":\"https://github.com/JetBrains/YouTrackSharp\",\"stars\":115,\"topics\":[\"jetbrains\",\"jetbrains-youtrack\",\"youtrack\",\"youtrack-api\"],\"watchers\":115,\"topicCount\":4},{\"fullName\":\"JetBrains/colorSchemeTool\",\"htmlUrl\":\"https://github.com/JetBrains/colorSchemeTool\",\"stars\":290,\"topics\":[],\"watchers\":290,\"topicCount\":0},{\"fullName\":\"JetBrains/ideavim\",\"htmlUrl\":\"https://github.com/JetBrains/ideavim\",\"stars\":6120,\"topics\":[\"ideavim\",\"intellij\",\"intellij-platform\",\"jb-official\",\"kotlin\",\"vim\",\"vim-emulator\"],\"watchers\":6120,\"topicCount\":7},{\"fullName\":\"JetBrains/Grammar-Kit\",\"htmlUrl\":\"https://github.com/JetBrains/Grammar-Kit\",\"stars\":534,\"topics\":[],\"watchers\":534,\"topicCount\":0},{\"fullName\":\"JetBrains/la-clojure\",\"htmlUrl\":\"https://github.com/JetBrains/la-clojure\",\"stars\":218,\"topics\":[],\"watchers\":218,\"topicCount\":0},{\"fullName\":\"JetBrains/MPS\",\"htmlUrl\":\"https://github.com/JetBrains/MPS\",\"stars\":1241,\"topics\":[\"domain-specific-language\",\"dsl\"],\"watchers\":1241,\"topicCount\":2},{\"fullName\":\"JetBrains/intellij-community\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-community\",\"stars\":12926,\"topics\":[\"code-editor\",\"ide\",\"intellij\",\"intellij-community\",\"intellij-platform\"],\"watchers\":12926,\"topicCount\":5},{\"fullName\":\"JetBrains/youtrack-rest-python-library\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-rest-python-library\",\"stars\":118,\"topics\":[],\"watchers\":118,\"topicCount\":0},{\"fullName\":\"JetBrains/intellij-scala\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-scala\",\"stars\":1066,\"topics\":[\"intellij-idea\",\"intellij-plugin\",\"scala\"],\"watchers\":1066,\"topicCount\":3},{\"fullName\":\"JetBrains/teamcity-messages\",\"htmlUrl\":\"https://github.com/JetBrains/teamcity-messages\",\"stars\":125,\"topics\":[],\"watchers\":125,\"topicCount\":0},{\"fullName\":\"JetBrains/kotlin\",\"htmlUrl\":\"https://github.com/JetBrains/kotlin\",\"stars\":39402,\"topics\":[\"compiler\",\"gradle-plugin\",\"intellij-plugin\",\"kotlin\",\"kotlin-library\",\"maven-plugin\",\"programming-language\"],\"watchers\":39402,\"topicCount\":7},{\"fullName\":\"JetBrains/kotlin-web-demo\",\"htmlUrl\":\"https://github.com/JetBrains/kotlin-web-demo\",\"stars\":167,\"topics\":[],\"watchers\":167,\"topicCount\":0},{\"fullName\":\"JetBrains/intellij-plugin-verifier\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-plugin-verifier\",\"stars\":113,\"topics\":[],\"watchers\":113,\"topicCount\":0},{\"fullName\":\"JetBrains/intellij-samples\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-samples\",\"stars\":146,\"topics\":[],\"watchers\":146,\"topicCount\":0},{\"fullName\":\"JetBrains/youtrack-workflows\",\"htmlUrl\":\"https://github.com/JetBrains/youtrack-workflows\",\"stars\":164,\"topics\":[],\"watchers\":164,\"topicCount\":0},{\"fullName\":\"JetBrains/intellij-plugins\",\"htmlUrl\":\"https://github.com/JetBrains/intellij-plugins\",\"stars\":1737,\"topics\":[],\"watchers\":1737,\"topicCount\":0},{\"fullName\":\"JetBrains/resharper-nuget\",\"htmlUrl\":\"https://github.com/JetBrains/resharper-nuget\",\"stars\":94,\"topics\":[\"jetbrains\",\"nuget\",\"resharper\",\"resharper-extension\",\"resharper-plugin\"],\"watchers\":94,\"topicCount\":5},{\"fullName\":\"JetBrains/mnemonics\",\"htmlUrl\":\"https://github.com/JetBrains/mnemonics\",\"stars\":66,\"topics\":[\"jetbrains\",\"mnemonic\",\"resharper\",\"resharper-extension\",\"resharper-plugin\"],\"watchers\":66,\"topicCount\":5},{\"fullName\":\"JetBrains/kara\",\"htmlUrl\":\"https://github.com/JetBrains/kara\",\"stars\":76,\"topics\":[],\"watchers\":76,\"topicCount\":0},{\"fullName\":\"JetBrains/jediterm\",\"htmlUrl\":\"https://github.com/JetBrains/jediterm\",\"stars\":483,\"topics\":[],\"watchers\":483,\"topicCount\":0}]}"
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-09-15T13:05:19.724809784Z",
"start_time": "2025-09-15T13:05:19.071724480Z"
}
},
"cell_type": "code",
"source": [
"// Write the updated DataFrame to a CSV file.\n",
"dfNew.writeCsv(\"jetbrains_repositories_new.csv\")"
],
"outputs": [],
"execution_count": 5
}
],
"metadata": {
"kernelspec": {
"display_name": "Kotlin",
"language": "kotlin",
"name": "kotlin"
},
"language_info": {
"name": "kotlin",
"version": "1.9.23",
"mimetype": "text/x-kotlin",
"file_extension": ".kt",
"pygments_lexer": "kotlin",
"codemirror_mode": "text/x-kotlin",
"nbconvert_exporter": ""
}
},
"nbformat": 4,
"nbformat_minor": 0
}