Skip to main content

ColabComponent

A React.js inspired Component for building a simple reactive UI in Google Colaboratory.

Why?

Sometimes there is some manual work that has to be done with your data. Instead of building a custom desktop app, why not do so in Colab?

I built this component inspired by the react framework, which provides in my opinion the best tools for quick prototype-like development ideal for custom data exploring and data analysis tools.

How?

The google.colab package offers an interface to run python functions in the output. Combine that with the fact that python notebooks can render full on HTML and you can build UIs using python, HTML, css and javascript!

Install

In a cell run:

!pip3 install ColabComponent

All the required dependencies are installed in the enviroment provided by google.

How to use?

The package utilises Object-Oriented inheritance and is based around the basic class Component.

Component API

property name type description overridable
render method the basic method, where the ui and effects are defined ☑
component_did_mount method a hook that is called, when the component is mounted ☑
component_did_update method a hook that is called, when the component is updated ☑
display method run to display the component ☒
register_effect method registers a python function such that it can be used within the HTML code ☒
state dict holds the info about the state of the component ☒
set_state method the preferred way of updating the component state ☒

Example

from ColabComponent import Component

class Counter(Component):
  def __init__(self):
    super().__init__()
    self.state = {
        'number': 1
    }

    self.use_add = self.register_effect('add', self.add)

  def render(self):
    return f'''
      <h1>{self.state['number']}</h1>
      <button onclick="{self.use_add()}">+1</button>
    '''

  def component_did_mount(self):
    print('mounted')

  def component_did_update(self):
    print('updated')

  def add(self):
    self.set_state({
        'number': self.state['number'] + 1
    })

Counter().display()

Metadata

Release files for ColabComponent 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ColabComponent 0.0.3
File Interpreter ABI Platform
ColabComponent-0.0.3-py3-none-any.whl Python 3 none any Details

Release files / ColabComponent-0.0.3-py3-none-any.whl

Download URL ColabComponent-0.0.3-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6173a938868eac422b5f88feaafb1e456a32dce881b3b5e7ada4059043bd32cc
BLAKE2b-256 checksum
How to use checksums
515bed3db53ed75a9187870df9f49f1c59153952a31c4eb9ae125290da94995a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.4

Release history Release notifications | RSS feed

This release

0.0.3 This release

1 release file

0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page