Add docs for Pretty, fix some reference issues in docs (#2678)

This commit is contained in:
darrenburns
2023-05-29 17:11:39 +01:00
committed by GitHub
parent 73d55725b5
commit ca17d8194e
9 changed files with 83 additions and 5 deletions

View File

@@ -0,0 +1,24 @@
from textual.app import App, ComposeResult
from textual.widgets import Pretty
DATA = {
"title": "Back to the Future",
"releaseYear": 1985,
"director": "Robert Zemeckis",
"genre": "Adventure, Comedy, Sci-Fi",
"cast": [
{"actor": "Michael J. Fox", "character": "Marty McFly"},
{"actor": "Christopher Lloyd", "character": "Dr. Emmett Brown"},
],
}
class PrettyExample(App):
def compose(self) -> ComposeResult:
yield Pretty(DATA)
app = PrettyExample()
if __name__ == "__main__":
app.run()

View File

@@ -158,6 +158,16 @@ Display placeholder content while you are designing a UI.
```{.textual path="docs/examples/widgets/placeholder.py"}
```
## Pretty
Display a pretty-formatted Rich renderable.
[Pretty reference](./widgets/pretty.md){ .md-button .md-button--primary }
```{.textual path="docs/examples/widgets/pretty.py"}
```
## ProgressBar
A configurable progress bar with ETA and percentage complete.

44
docs/widgets/pretty.md Normal file
View File

@@ -0,0 +1,44 @@
# Pretty
Display a pretty-formatted object.
- [ ] Focusable
- [ ] Container
## Example
The example below shows a pretty-formatted `dict`, but `Pretty` can display any Python object.
=== "Output"
```{.textual path="docs/examples/widgets/pretty.py"}
```
=== "pretty.py"
```python
--8<-- "docs/examples/widgets/pretty.py"
```
## Reactive Attributes
This widget has no reactive attributes.
## Messages
This widget posts no messages.
## Bindings
This widget has no bindings.
## Component Classes
This widget has no component classes.
---
::: textual.widgets.Pretty
options:
heading_level: 2

View File

@@ -32,6 +32,7 @@ This widget sends no messages.
## See Also
* [Label](./label.md)
* [Pretty](./pretty.md)
---

View File

@@ -146,6 +146,7 @@ nav:
- "widgets/markdown.md"
- "widgets/option_list.md"
- "widgets/placeholder.md"
- "widgets/pretty.md"
- "widgets/progress_bar.md"
- "widgets/radiobutton.md"
- "widgets/radioset.md"

View File

@@ -193,8 +193,6 @@ class Validator(ABC):
then the `describe_failure` method on `Validator` will be called.
value: The value that was considered invalid. This is optional, and only needs to be supplied if required
in your `Input.Changed` handler.
validator: The validator that performed the validation. This is optional, and only needs to be supplied if
required in your `Input.Changed` handler.
failures: The reasons the validator failed. If not supplied, a generic `Failure` will be included in the
ValidationResult returned from this function.

View File

@@ -570,7 +570,7 @@ class SelectionList(Generic[SelectionType], OptionList):
"""Get the selection option with the given ID.
Args:
index: The ID of the selection option to get.
option_id: The ID of the selection option to get.
Returns:
The selection option with the ID.

View File

@@ -354,7 +354,7 @@ class Tabs(Widget, can_focus=True):
"""Remove a tab.
Args:
tab_id: The Tab's id.
tab_or_id: The Tab's id.
"""
if tab_or_id is None:
return

View File

@@ -98,7 +98,7 @@ class TreeNode(Generic[TreeDataType]):
id: The ID of the node.
label: The label for the node.
data: Optional data to associate with the node.
expand: Should the node be attached in an expanded state?
expanded: Should the node be attached in an expanded state?
allow_expand: Should the node allow being expanded by the user?
"""
self._tree = tree