JupyterLab – какво е това?

От Kristiyan Katsarov
Kristiyan Katsarov
Публикувано октомври 18, 2019

JupyterLab е следващо поколение уеб-базиран потребителски интерфейс на проекта Jupyter. Той е много мощен инструмент за проучване и обучаване. Той разширява функционалностите на Jupyter Notebooks в уеб-базирано приложение, което позволява да се комбинират „тетрадки“ (Notebooks) с текстови редактори, терминали, четци на данни и фигури, разширения и т.н., като същевременно е съвместим с различни езици на програмиране.

Можем да изтъкнем следните характеристики на JupyterLab:

  • Кодови конзоли, които могат да бъдат свързани с ядрото на ноутбука за интерактивни изчисления.
  • Интерактивно управление на съдържанието на клетките и изходите от ноутбука.
  • Редактиране на документи в реално време (Markdown, CSV и т.н.)
  • Съвместим с различни формати на файлове и данни (CSV, JSON, Geojson, PDF, Vega и т.н.)
  • Голямо разнообразие от разширения за персонализиране
  • Отворен код

Разширенията на JupyterLab могат да персонализират или подобрят всяка част от него, включително нови теми, редактори на файлове и персонализирани компоненти.

JupyterLab се обслужва от един и същ сървър и използва същия формат на документ за „тетрадка“ (notebook), като класическия Jupyter Notebook.

Какво представлява Project Jupyter?

Може би е добре да уточним какво всъщност представлява Project Jupyter.

Това е проект с нестопанска цел с отворен код, произлязъл от проекта IPython през 2014 година, тъй като се развива в подкрепа на интерактивната наука за данни и научните изчисления на всички езици на програмиране. Проектът Jupyter винаги ще си остане на 100% софтуер с отворен код, безплатен за използване и пуснат в съответствие с либералните условия на модифицирания BSD лиценз.

Какво представлява Jupyter Notebook?

Следва и да разясним какво представлява Jupyter Notebook.

Jupyter Notebook (известен по-рано като IPython Notebooks) е уеб-базирана интерактивна изчислителна среда за създаване на Jupyter Notebook документи. Терминът „тетрадка“ (notebook) може разговорно да се позовава на много различни структури, основно на уеб приложението Jupyter, уеб сървъра Jupyter Python, или формата за документи Jupyter, в зависимост от контекста. Документ на Jupyter Notebook е документ на JSON, следвайки обобщена схема и съдържащ подреден списък на входни/изходни клетки, които могат да съдържат код, текст (използвайки Markdown), математика, графики и мултимедийни файлове, обикновено завършващи с разширението „.ipynb”.

Jupyter Notebook може да бъде преобразуван в множество отворени стандартни изходни формати (HTML, презентационни слайдове, LaTeX, PDF, ReStructuredText, Markdown, Python) чрез „изтегляне като“ в уеб интерфейса, чрез библиотеката nbconvert, или командата „Jupyter nbconvert”.

Ако всичко това ви идва малко объркващо, запомнете ето тези точки:

  • Project Jupyter предоставя стандарти за визуализиране на езиците на програмиране.
  • Jupyter Notebook е много популярен софтуер за визуализация.
  • JupyterLab е съвременен редизайн на Jupyter Notebook.
  • IPython предоставя инструменти за стартиране на Python код в тези проекти.
  • Според документацията на JupyterLab, то в крайна сметка ще замени Jupyter Notebook.

Някои полезни функции на JupyterLab:

  • Гъвкав изглед в много прозорци: Ако използвате мощен IDE като VSCode, една доста неудовлетворяваща черта на Jupyter Notebook е, че поддържа само един изглед на файловете. Ако искате да използвате едновременно Notebook и терминал на една страница, или ако искате да прегледате файла Markdown от дясната страна, notebook не го поддържа. Но за разлика от Notebook, JupyterLab има гъвкави възможности за изглед на прозорец, които позволяват подобни необходими изисквания.
  • Друга уникална функция е, че можете да изпълнявате блокове с кодове в текстов файл. Например, в документацията markdown, има част от код на Python, който може да щракнете с десен бутон, за да изберете нова конзола от менюто.
  • Можете да разширявате и свивате клетките: Отляво на всяка клетка има синя линия. Като кликнете върху нея, можете да разширите или свиете клетката. Ако има много изходни данни или за момента не ни интересува съдържанието на някои клетки, можем да ги свием.
  • Можем да плъзгаме и пускаме клетките: Друга причина, доказваща гъвкавостта на JupyterLab е, че всяка клетка е на принципа „плъзни-пусни“ (drag-and-drop). Можете да плъзгате и пускате не само в рамките на един notebook, но и между различни такива.
  • JupyterLab се предлага с черно-бели теми и разнообразни теми за подчертаване на текст. Можете да зададете темата в менюто „настройки“.

JupyterLab определено надхвърля Jupyter Notebooks, като позволява на разработчиците да отварят файлове в различни формати, съдържащи данни или други активи, които могат да използват или произвеждат от своя код. Това включва файлове с първичен код на поддържани езици, както и файлове в обикновен текст, CSV и други текстови формати с ограничен текст, JSON, различни изображения и дори PDF формати. Четците и редакторите, които идват на помощ тук, включват пълнофункционален текстов редактор, визуализатор на изображения, табличен преглед на данни и др.

В науката като цяло и по-специално в Data Science (науката за данните) е много важно да споделяте откритията си с другите. Jupyter прави това много лесно. Той не случайно стана популярен сред учените в различни области. Чудесно е да можете да виждате документи с код, записани в JupyterLab, така че да можете да стартирате кода и да проверите резултатите за вас. По същата логика, Jupyter може да ни помогне по-добре да управляваме проучванията в предприятието, като ни позволява да създаваме интерактивни доклади.