Rodja Trappe 4 年之前
父节点
当前提交
11844e40cc

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
 __pycache__/
 *.egg-info/
 .*.swp
+dist

+ 0 - 9
spike_classes/elements/button.py

@@ -1,9 +0,0 @@
-import justpy as jp
-from .element import Element
-
-class Button(Element):
-
-    def __init__(self, text: str):
-
-        view = jp.QButton(text=text)
-        super().__init__(view)

+ 0 - 12
spike_classes/elements/element.py

@@ -1,12 +0,0 @@
-import justpy as jp
-
-class Element:
-
-    wp: None
-    view_stack = []
-
-    def __init__(self, view: jp.HTMLBaseComponent):
-
-        self.view_stack[-1].add(view)
-        view.add_page(self.wp)
-        self.view = view

+ 0 - 11
spike_classes/elements/group.py

@@ -1,11 +0,0 @@
-from elements.element import Element
-
-class Group(Element):
-
-    def __enter__(self):
-
-        self.view_stack.append(self.view)
-
-    def __exit__(self, *_):
-
-        self.view_stack.pop()

+ 0 - 9
spike_classes/elements/label.py

@@ -1,9 +0,0 @@
-import justpy as jp
-from .element import Element
-
-class Label(Element):
-
-    def __init__(self, text: str):
-
-        view = jp.Div(text=text)
-        super().__init__(view)

+ 0 - 9
spike_classes/elements/row.py

@@ -1,9 +0,0 @@
-import justpy as jp
-from elements.group import Group
-
-class Row(Group):
-
-    def __init__(self):
-
-        view = jp.QDiv(classes='row items-start', style='gap: 1em', delete_flag=False)
-        super().__init__(view)

+ 0 - 12
spike_classes/main.py

@@ -1,12 +0,0 @@
-#!/usr/bin/env python3
-from nicegui import ui
-
-ui.label('Hello world!')
-ui.button('Click me')
-
-with ui.row():
-    ui.label('left')
-    ui.label('right')
-
-t = ui.label('Timer')
-ui.timer(1.0, lambda: setattr(t.view, 'text', t.view.text + '.'))

+ 0 - 28
spike_classes/nice_gui.py

@@ -1,28 +0,0 @@
-#!/usr/bin/env python3
-import justpy as jp
-import uvicorn
-import sys
-import inspect
-from ui import Ui
-from timer import Timer
-from elements.element import Element
-
-if not inspect.stack()[-2].filename.endswith('spawn.py'):
-    uvicorn.run('nicegui:app', host='0.0.0.0', port=80, lifespan='on', reload=True)
-    sys.exit()
-
-wp = jp.QuasarPage(delete_flag=False, head_html='<script>confirm = () => true;</script>')
-
-main = jp.Div(a=wp, classes='q-ma-md column items-start', style='row-gap: 1em')
-main.add_page(wp)
-jp.justpy(lambda: wp, start_server=False)
-
-@jp.app.on_event('startup')
-def startup():
-    [jp.run_task(t) for t in Timer.tasks]
-
-Element.view_stack = [main]
-Element.wp = wp
-
-app = jp.app
-ui = Ui

+ 0 - 19
spike_classes/timer.py

@@ -1,19 +0,0 @@
-import asyncio
-from elements.element import Element
-
-class Timer:
-
-    tasks = []
-
-    def __init__(self, interval, callback):
-
-        parent = Element.view_stack[-1]
-
-        async def loop():
-
-            while True:
-                callback()
-                await parent.update()
-                await asyncio.sleep(interval)
-
-        self.tasks.append(loop())

+ 0 - 6
spike_classes/ui.py

@@ -1,6 +0,0 @@
-class Ui:
-
-    from elements.label import Label as label
-    from elements.button import Button as button
-    from elements.row import Row as row
-    from timer import Timer as timer

+ 0 - 8
spike_reload/main.py

@@ -1,8 +0,0 @@
-#!/usr/bin/env python3
-from nicegui import ui, pad
-
-print(pad, __name__, "MAIN: create label")
-ui.label('Hello NiceGUI!')
-
-print(pad, __name__, "MAIN: create timer")
-ui.timer()

+ 0 - 56
spike_reload/nice_gui.py

@@ -1,56 +0,0 @@
-#!/usr/bin/env python3
-import traceback
-import justpy as jp
-from starlette.applications import Starlette
-import uvicorn
-import inspect
-import asyncio
-
-pad = '*' * 80
-
-if not inspect.stack()[-2].filename.endswith('spawn.py'):
-    print(pad, "START UVICORN")
-    uvicorn.run('nicegui:ui', host='0.0.0.0', port=80, lifespan='on', reload=True)
-
-wp = jp.WebPage(delete_flag=False, head_html='<script>confirm = () => true;</script>')
-
-main = jp.Div(a=wp, text='Hello JustPy!')
-main.add_page(wp)
-jp.justpy(lambda: wp, start_server=False)
-
-class Ui(Starlette):
-
-    def __init__(self):
-
-        self.__dict__.update(jp.app.__dict__)
-
-        self.tasks = []
-
-        @self.on_event('startup')
-        def startup():
-
-            print(pad, __name__, "startup()")
-            [jp.run_task(t) for t in self.tasks]
-
-    def label(self, text):
-
-        print(pad, __name__, "label()")
-
-        view = jp.Div(text=text)
-        main.add(view)
-        view.add_page(wp)
-
-    def timer(self):
-
-        print(pad, __name__, "timer()")
-
-        async def loop():
-
-            while True:
-                print(pad, __name__, "loop()", flush=True)
-                await asyncio.sleep(1.0)
-
-        self.tasks.append(loop())
-
-ui = Ui()
-

+ 0 - 23
spike_reload/test.py

@@ -1,23 +0,0 @@
-#!/usr/bin/env python3
-import justpy as jp
-import inspect
-import uvicorn
-import asyncio
-
-wp = jp.WebPage(delete_flag=False, head_html='<script>confirm = () => true;</script>')
-
-main = jp.Div(a=wp, text='This minimal test is working nicely. "LOOP" is printed every second.')
-main.add_page(wp)
-jp.justpy(lambda: wp, start_server=False)
-app = jp.app
-
-async def loop():
-    while True:
-        print('LOOP')
-        await asyncio.sleep(1.0)
-jp.run_task(loop())
-
-def run():
-    if not inspect.stack()[-2].filename.endswith('spawn.py'):
-        uvicorn.run('test:app', host='0.0.0.0', port=80, lifespan='on', reload=True)
-run()