Your Data, Your Language, Your Products
The emerging trend of tool-building for data scientists is manifestly by the immense traction PyScript gained within the tech community upon its initiation. This momentum shows a collective desire to simplify the journey of creating data products. Data scientists, that already posses a wide range of knowledge, can accelerate the development of data applications without diving into a new ecosystem like Javascript.
As advocates of Python for data product development, we’re always observing the the evolution of its ecossystem. At Palaimon GmbH, our expertise with ipywidgets (a lib with interactive HTML widgets for Jupyter Notebooks) has led to innovations like Ipyannotator, an open source framework dedicated to data annotation, but using ipywidgets has some challenges and as the applications grows in complexity, they became increasingly difficult t o manage.
Solara, an open-source framework, draws inspiration from the JavaScript ecosystem to create reusable components using a strategy that has stood the test of time. Our experiments with Solara have demonstrated its capability to facilitate the crafting of larger and more intricate data applications
Solara
Solara enables the crafting of expansive data applications by incorporating concepts from React. Its declarative code style makes the codebase more concise, reduces errors, and simplifies comprehension. Solara’s design facilitates easy code reuse through componentization, feature that was ambiguous when developing with ipywidgets.
While ipywidgets are commonly paired with the voilà library to convert Jupyter notebooks into web applications for non-technical users, Solara boasts its own web server. This allows for the sharing of a more tailored web application compared to voilà.
In my exploration of Solara for video and image annotation, I discovered that its built-in plotly component lacked the capabilities to construct an annotator. However, I successfully developed a custom plotly component and was able to contribute with the new feature. I’m immensely satisfied with using Solara for such tool development and the ease of reusing its components.
Below is an example of the annotator feature integrated into the library: