1
0

ui.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. class Ui:
  2. from .run import run, config # NOTE: before justpy
  3. from .elements.button import Button as button
  4. from .elements.checkbox import Checkbox as checkbox
  5. from .elements.custom_example import CustomExample as custom_example
  6. from .elements.dialog import Dialog as dialog
  7. from .elements.icon import Icon as icon
  8. from .elements.image import Image as image
  9. from .elements.input import Input as input
  10. from .elements.joystick import Joystick as joystick
  11. from .elements.html import Html as html
  12. from .elements.label import Label as label
  13. from .elements.link import Link as link
  14. from .elements.log import Log as log
  15. from .elements.markdown import Markdown as markdown
  16. from .elements.menu import Menu as menu
  17. from .elements.menu_item import MenuItem as menu_item
  18. from .elements.notify import Notify as notify
  19. from .elements.number import Number as number
  20. from .elements.page import Page as page
  21. from .elements.radio import Radio as radio
  22. from .elements.scene import Scene as scene
  23. from .elements.select import Select as select
  24. from .elements.slider import Slider as slider
  25. from .elements.svg import Svg as svg
  26. from .elements.switch import Switch as switch
  27. from .elements.toggle import Toggle as toggle
  28. from .elements.upload import Upload as upload
  29. from .elements.plot import Plot as plot
  30. from .elements.line_plot import LinePlot as line_plot
  31. from .elements.row import Row as row
  32. from .elements.column import Column as column
  33. from .elements.card import Card as card
  34. from .elements.card import CardSection as card_section
  35. from .timer import Timer as timer
  36. from .lifecycle import startup_tasks, on_startup, shutdown_tasks, on_shutdown
  37. def __init__(self, app) -> None:
  38. self.app = app
  39. def get(self, path: str):
  40. """
  41. Use as a decorator for a function like @ui.get('/another/route/{id}').
  42. :param path: String that starts with a '/'.
  43. :return:
  44. """
  45. def decorator(func):
  46. from starlette.routing import Route
  47. self.add_route(Route(path, func))
  48. return func
  49. return decorator
  50. def add_route(self, route):
  51. """
  52. :param route: A starlette Route including a path and a function to be called.
  53. :return:
  54. """
  55. self.app.routes.insert(0, route)