Skip to main content

Python & JS micro framework for realtime web UI applications

Project description

Sundash

Python & JS micro framework for realtime web UI applications

  • ASGI-based -- minimal 3rd party dependencies and clean core part
  • Flexible and extensible -- easy to customize, add 3rd party integrations
  • Realtime -- operating through websockets bus, client & backend in app
  • Lightweight frontend -- based on Parcel
  • Crafted with ❤️

Link to project on PyPi: https://pypi.org/project/sundash/

Installation

Require Python 3.12 and npm

    pip install sundash

Frontend

FIXME:

Frontend build not working now, when install from PyPi

Need to upgrade frontend and build system

    npm install

Examples

Check examples folder.

Run example (counter with buttons and user interaction):

    python -m examples counter

Basic example

    import datetime as dt

    from sundash import EVERY_SECOND
    from sundash import App
    from sundash import Component
    from sundash import on
    

    app = App()

    now = lambda: dt.datetime.now().strftime('%H:%M:%S')


    class Clock(Component):
        html = '<p><b>Time: </b>{{ time }}<p/>'

        class Vars:
            # you can pass init values (static or procedural)
            time: str = now

        # run callback when user open webpage
        @on(EVERY_SECOND)
        async def update(self, _):
            await self.set('time', now())  # live update of value

    # add plain HTML or own components
    app.run(layout=('<h1>🕰️ Clock</h1>', Clock))

clock

В чем идея?

Хочу пробрасывать real-time интерфейс к JS либам, чтобы была возможность написать любую веб-морду для любых системных инструментов.

Примеры использования: любые админки, торговые терминалы, дашборды мониторинга, тулзы для аналитики. Все кастомное и интерактивное, что хочется нарисовать, но ты бэкендер и хочешь писать преимущественно на Python с минимальным использованием JavaScript-а, без тяжеловесного инструментария фронтендеров (React и пр).

Development

  • Required: npm, nodejs, python 3.12, poetry, virtualenv
  • Install JS dependencies: npm install
  • Install Python dependencies: poetry install --with=dev
  • Run local linters: poe q
  • Publish package: poetry publish --build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sundash-0.0.4.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

sundash-0.0.4-py3-none-any.whl (13.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page