cmd_queue.util.textual_extensions module¶
- class cmd_queue.util.textual_extensions.class_or_instancemethod[source]¶
Bases:
classmethod
Allows a method to behave as a class or instance method
References
https://stackoverflow.com/questions/28237955/same-name-for-classmethod-and-instancemethod
Example
>>> class X: ... @class_or_instancemethod ... def foo(self_or_cls): ... if isinstance(self_or_cls, type): ... return f"bound to the class" ... else: ... return f"bound to the instance" >>> print(X.foo()) bound to the class >>> print(X().foo()) bound to the instance
- class cmd_queue.util.textual_extensions.InstanceRunnableApp[source]¶
Bases:
object
Extension of App that allows for running an instance
CommandLine
xdoctest -m cmd_queue.util.textual_extensions InstanceRunnableApp:0 --interact
Example
>>> # xdoctest: +REQUIRES(module:textual) >>> # xdoctest: +REQUIRES(--interact) >>> from textual import events >>> #from textual.widgets import ScrollView >>> from textual.scroll_view import ScrollView >>> class DemoApp(InstanceRunnableApp): >>> def __init__(self, myvar, **kwargs): >>> super().__init__(**kwargs) >>> self.myvar = myvar >>> async def on_load(self, event: events.Load) -> None: >>> await self.bind("q", "quit", "Quit") >>> async def on_mount(self, event: events.Mount) -> None: >>> self.body = body = ScrollView(auto_width=True) >>> await self.view.dock(body) >>> async def add_content(): >>> from rich.text import Text >>> content = Text(self.myvar) >>> await body.update(content) >>> await self.call_later(add_content) >>> DemoApp.run(myvar='Existing classmethod way of running an App') >>> self = DemoApp(myvar='The instance way of running an App') >>> self.run()
- classmethod _run_as_cls(console=None, screen: bool = True, driver=None, **kwargs)[source]¶
Original classmethod logic
- _run_as_instance(console=None, screen: bool = True, driver=None, **kwargs)[source]¶
New instancemethod logic
- classmethod run(console=None, screen: bool = True, driver=None, **kwargs)[source]¶
Run the app. :Parameters: * console (Console, optional) – Console object. Defaults to None.
screen (bool, optional) – Enable application mode. Defaults to True.
driver (Type[Driver], optional) – Driver class or None for default. Defaults to None.