init
This commit is contained in:
parent
aac78ff993
commit
daced3babb
24 changed files with 1485 additions and 47 deletions
62
{{ package_name }}/{{ python_package }}/tui/app.py.jinja
Normal file
62
{{ package_name }}/{{ python_package }}/tui/app.py.jinja
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
from pathlib import Path
|
||||
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.containers import Container
|
||||
from textual.css.query import NoMatches
|
||||
from textual.widgets import Footer, Static
|
||||
|
||||
from {{ python_package }}.config import config
|
||||
|
||||
config["tui"] = {}
|
||||
config["tui"]["bindings"] = {}
|
||||
|
||||
|
||||
class Sidebar(Static):
|
||||
def compose(self) -> ComposeResult:
|
||||
yield Container(
|
||||
Static("sidebar"),
|
||||
id="sidebar",
|
||||
)
|
||||
|
||||
|
||||
class Tui(App):
|
||||
"""A Textual app to manage requests."""
|
||||
|
||||
CSS_PATH = Path("__file__").parent / "app.css"
|
||||
BINDINGS = [tuple(b.values()) for b in config["tui"]["bindings"]]
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
"""Create child widgets for the app."""
|
||||
yield Container(Static("hello world"))
|
||||
yield Footer()
|
||||
|
||||
def action_toggle_dark(self) -> None:
|
||||
"""An action to toggle dark mode."""
|
||||
self.dark = not self.dark
|
||||
|
||||
def action_toggle_sidebar(self):
|
||||
try:
|
||||
self.query_one("PromptSidebar").remove()
|
||||
except NoMatches:
|
||||
self.mount(Sidebar())
|
||||
|
||||
|
||||
def run_app():
|
||||
import os
|
||||
import sys
|
||||
|
||||
from textual.features import parse_features
|
||||
|
||||
dev = "--dev" in sys.argv
|
||||
features = set(parse_features(os.environ.get("TEXTUAL", "")))
|
||||
if dev:
|
||||
features.add("debug")
|
||||
features.add("devtools")
|
||||
|
||||
os.environ["TEXTUAL"] = ",".join(sorted(features))
|
||||
app = Tui()
|
||||
app.run()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_app()
|
||||
Loading…
Add table
Add a link
Reference in a new issue