-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap ‐ High Level To‐Do
Dmitriy Leybel edited this page Jul 23, 2024
·
3 revisions
- Simplify non-GUI interface of elements. E.g. ability to easily submit an input and return and output
- API - Integrate Panel server into FastAPI app
- Names of objects being packed into the
OutputPort
need to be (more) visible- Required items can be exposed in the
Element
via initializing a watcher onrequired_items
- Required items can be exposed in the
- Decide how end-user should interact with the model when outside of the Element
- And how the model params should be initialized. The issue with passing a
model_params
dict is that it doesn't change to reflect the changes within theModel
, although we can set it up in theElement
base class to apply to all models.
- And how the model params should be initialized. The issue with passing a
- Need a style/theme/css management system*
- Elements and payloads should have base css assigned to their classes for efficiency(no reloading of css), however, there should also be a path for overrides
- System for augmenting Payload elements
- Reasoning: Certain
Elements
may require payloads to signal something back to them- e.g. context handling may involve a message payload needing a way to send back an add-to-context-signal through a button.
- Implementation: When payloads are created by this
Element
, it augments the Payload in a way that keeps the contractual interface with other Elements, but with additional features - Problem: if the consuming/receiving
Element
isn't directly linked to the augmentingElement
, then thatPayload
may be further augmented, breaking the functionality - Solution: connect the augmenting
Element
to theElement
meant to consume the augmented Payload, and pass the augmentation method(factory?)
- Reasoning: Certain
- Payload(et al) Referencing fix when starting up the server and loading state - unpickled objects lack the same references, lead to redundancy and other side effects
- Need to integrate a reference resolver to fix it. Use IDs and rereference - (injected at a component level?)
- Use different views for the same
Payload
among differentElements
.- One solution would be to create a new Payload and pass custom CSS to the views
- Alternatively,
Payloads
can be created to handle multiple views which are driven by the same model. When the model changes, all of the views change as well. The containing element determines the styling of the Payload within it, so it'll have its own set of views associated with it. (Dict of dicts| {Element: {view_name: view()}} )