From 928ab661f7fe86b772e53ad37bb06e581acf0f06 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Mar 2023 17:41:40 +0000 Subject: [PATCH 01/16] Don't watch the generated mkdocs configs (#1985) I got a bit carried away with what to watch, and it looks like the mkdocs watch plugin doesn't much care for watching for files that don't exist but may. --- mkdocs-common.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/mkdocs-common.yml b/mkdocs-common.yml index 017255951..ac5ae5a9e 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -80,8 +80,6 @@ plugins: - "!^can_replace$" watch: - mkdocs-common.yml - - mkdocs-nav-offline.yml - - mkdocs-nav-online.yml - mkdocs-offline.yml - mkdocs-online.yml - src/textual From e95a65fa56e5b19715180f9e17c7f6747ba15ec5 Mon Sep 17 00:00:00 2001 From: TomJGooding <101601846+TomJGooding@users.noreply.github.com> Date: Wed, 8 Mar 2023 17:42:25 +0000 Subject: [PATCH 02/16] docs(compound example): fix typo (#1984) --- docs/examples/guide/compound/compound01.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples/guide/compound/compound01.py b/docs/examples/guide/compound/compound01.py index 66d8745ea..fcec10f72 100644 --- a/docs/examples/guide/compound/compound01.py +++ b/docs/examples/guide/compound/compound01.py @@ -42,7 +42,7 @@ class CompoundApp(App): """ def compose(self) -> ComposeResult: - yield InputWithLabel("Fist Name") + yield InputWithLabel("First Name") yield InputWithLabel("Last Name") yield InputWithLabel("Email") From 8cb28b66683fbd186ae57d25582e14d1437fcde5 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 9 Mar 2023 00:46:53 -0600 Subject: [PATCH 03/16] Update button.md example sentence (#1988) The example was missing a word --- docs/widgets/button.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/widgets/button.md b/docs/widgets/button.md index d5b07ec96..38359d0e8 100644 --- a/docs/widgets/button.md +++ b/docs/widgets/button.md @@ -10,7 +10,7 @@ when it has focus. ## Example The example below shows each button variant, and its disabled equivalent. -Clicking any of the non-disabled buttons in the example app below will result the app exiting and the details of the selected button being printed to the console. +Clicking any of the non-disabled buttons in the example app below will result in the app exiting and the details of the selected button being printed to the console. === "Output" From 3a627e0881db1793312da846d98e1fcf2c04c39b Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 09:45:34 +0000 Subject: [PATCH 04/16] more reliable pause (#1993) --- docs/index.md | 2 +- src/textual/app.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 1ce69322d..b3ca42e71 100644 --- a/docs/index.md +++ b/docs/index.md @@ -71,7 +71,7 @@ Build sophisticated user interfaces with a simple Python API. Run your apps in t -```{.textual path="examples/calculator.py" columns=100 lines=41 press="3,.,1,4,5,9,2,_,_,_,_,_,_,_,_"} +```{.textual path="examples/calculator.py" columns=100 lines=41 press="3,.,1,4,5,9,2,wait:400"} ``` ```{.textual path="examples/pride.py"} diff --git a/src/textual/app.py b/src/textual/app.py index b387a718a..4e795debb 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -868,6 +868,8 @@ class App(Generic[ReturnType], DOMNode): _, wait_ms = key.split(":") print(f"(pause {wait_ms}ms)") await asyncio.sleep(float(wait_ms) / 1000) + await app._animator.wait_until_complete() + await wait_for_idle(0) else: if len(key) == 1 and not key.isalnum(): key = _character_to_key(key) From 44c7a3d8fc759b92ec41fcc12d9eb112a995b678 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 10:12:47 +0000 Subject: [PATCH 05/16] bump typing extensions (#1996) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ce2d1fbdf..3edcaf7f6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,7 +42,7 @@ rich = ">12.6.0" markdown-it-py = {extras = ["plugins", "linkify"], version = "^2.1.0"} #rich = {path="../rich", develop=true} importlib-metadata = "^4.11.3" -typing-extensions = "^4.0.0" +typing-extensions = "^4.4.0" # Dependencies below are required for devtools only aiohttp = { version = ">=3.8.1", optional = true } From a5695edcb5ac2cc039310bde15beee62b995b198 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Mar 2023 11:38:58 +0000 Subject: [PATCH 06/16] Swap out the primary Markdown bullet for one that works everywhere (#1997) * Swap out the primary Markdown bullet for one that works everywhere The primary bullet wasn't displaying well on Windows in the Windows terminal. * Refresh the snapshot tests Imagine that, changing how something looks needs that the snapshot tests get updated. *facepalm* --- CHANGELOG.md | 1 + src/textual/widgets/_markdown.py | 4 +- .../__snapshots__/test_snapshots.ambr | 262 +++++++++--------- 3 files changed, 134 insertions(+), 133 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a008e826f..a0733b856 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Updated styling to make it clear DataTable grows horizontally https://github.com/Textualize/textual/pull/1946 - Changed the `Checkbox` character due to issues with Windows Terminal and Windows 10 https://github.com/Textualize/textual/issues/1934 - Changed the `RadioButton` character due to issues with Windows Terminal and Windows 10 and 11 https://github.com/Textualize/textual/issues/1934 +- Changed the `Markdown` initial bullet character due to issues with Windows Terminal and Windows 10 and 11 https://github.com/Textualize/textual/issues/1982 ### Added diff --git a/src/textual/widgets/_markdown.py b/src/textual/widgets/_markdown.py index f352683f7..8e36b3e5e 100644 --- a/src/textual/widgets/_markdown.py +++ b/src/textual/widgets/_markdown.py @@ -393,7 +393,7 @@ class MarkdownBullet(Widget): } """ - symbol = reactive("●​") + symbol = reactive("\u25CF") """The symbol for the bullet.""" def render(self) -> Text: @@ -500,7 +500,7 @@ class Markdown(Widget): """ COMPONENT_CLASSES = {"em", "strong", "s", "code_inline"} - BULLETS = ["⏺ ", "▪ ", "‣ ", "• ", "⭑ "] + BULLETS = ["\u25CF ", "▪ ", "‣ ", "• ", "⭑ "] def __init__( self, diff --git a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr index c6c0346c4..312c72e6d 100644 --- a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr +++ b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr @@ -14707,140 +14707,140 @@ font-weight: 700; } - .terminal-2166823333-matrix { + .terminal-4078770422-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-2166823333-title { + .terminal-4078770422-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-2166823333-r1 { fill: #e1e1e1 } - .terminal-2166823333-r2 { fill: #121212 } - .terminal-2166823333-r3 { fill: #c5c8c6 } - .terminal-2166823333-r4 { fill: #0053aa } - .terminal-2166823333-r5 { fill: #dde8f3;font-weight: bold } - .terminal-2166823333-r6 { fill: #939393;font-weight: bold } - .terminal-2166823333-r7 { fill: #24292f } - .terminal-2166823333-r8 { fill: #e2e3e3;font-weight: bold } - .terminal-2166823333-r9 { fill: #4ebf71;font-weight: bold } - .terminal-2166823333-r10 { fill: #e1e1e1;font-style: italic; } - .terminal-2166823333-r11 { fill: #e1e1e1;font-weight: bold } + .terminal-4078770422-r1 { fill: #e1e1e1 } + .terminal-4078770422-r2 { fill: #121212 } + .terminal-4078770422-r3 { fill: #c5c8c6 } + .terminal-4078770422-r4 { fill: #0053aa } + .terminal-4078770422-r5 { fill: #dde8f3;font-weight: bold } + .terminal-4078770422-r6 { fill: #939393;font-weight: bold } + .terminal-4078770422-r7 { fill: #24292f } + .terminal-4078770422-r8 { fill: #e2e3e3;font-weight: bold } + .terminal-4078770422-r9 { fill: #4ebf71;font-weight: bold } + .terminal-4078770422-r10 { fill: #e1e1e1;font-style: italic; } + .terminal-4078770422-r11 { fill: #e1e1e1;font-weight: bold } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - MarkdownExampleApp + MarkdownExampleApp - + - - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - Markdown Document - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - This is an example of Textual's Markdown widget. - - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - Features - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - Markdown syntax and extensions are supported. - - ⏺ Typography emphasisstronginline code etc. - ⏺ Headers - ⏺ Lists (bullet and ordered) - ⏺ Syntax highlighted code blocks - ⏺ Tables! - - - - + + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + Markdown Document + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + This is an example of Textual's Markdown widget. + + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + Features + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + Markdown syntax and extensions are supported. + + ● Typography emphasisstronginline code etc. + ● Headers + ● Lists (bullet and ordered) + ● Syntax highlighted code blocks + ● Tables! + + + + @@ -14871,145 +14871,145 @@ font-weight: 700; } - .terminal-3185906023-matrix { + .terminal-2722304184-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-3185906023-title { + .terminal-2722304184-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-3185906023-r1 { fill: #c5c8c6 } - .terminal-3185906023-r2 { fill: #24292f } - .terminal-3185906023-r3 { fill: #121212 } - .terminal-3185906023-r4 { fill: #e1e1e1 } - .terminal-3185906023-r5 { fill: #e2e3e3 } - .terminal-3185906023-r6 { fill: #96989b } - .terminal-3185906023-r7 { fill: #0053aa } - .terminal-3185906023-r8 { fill: #008139 } - .terminal-3185906023-r9 { fill: #dde8f3;font-weight: bold } - .terminal-3185906023-r10 { fill: #939393;font-weight: bold } - .terminal-3185906023-r11 { fill: #e2e3e3;font-weight: bold } - .terminal-3185906023-r12 { fill: #14191f } - .terminal-3185906023-r13 { fill: #4ebf71;font-weight: bold } - .terminal-3185906023-r14 { fill: #e1e1e1;font-style: italic; } - .terminal-3185906023-r15 { fill: #e1e1e1;font-weight: bold } + .terminal-2722304184-r1 { fill: #c5c8c6 } + .terminal-2722304184-r2 { fill: #24292f } + .terminal-2722304184-r3 { fill: #121212 } + .terminal-2722304184-r4 { fill: #e1e1e1 } + .terminal-2722304184-r5 { fill: #e2e3e3 } + .terminal-2722304184-r6 { fill: #96989b } + .terminal-2722304184-r7 { fill: #0053aa } + .terminal-2722304184-r8 { fill: #008139 } + .terminal-2722304184-r9 { fill: #dde8f3;font-weight: bold } + .terminal-2722304184-r10 { fill: #939393;font-weight: bold } + .terminal-2722304184-r11 { fill: #e2e3e3;font-weight: bold } + .terminal-2722304184-r12 { fill: #14191f } + .terminal-2722304184-r13 { fill: #4ebf71;font-weight: bold } + .terminal-2722304184-r14 { fill: #e1e1e1;font-style: italic; } + .terminal-2722304184-r15 { fill: #e1e1e1;font-weight: bold } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - MarkdownExampleApp + MarkdownExampleApp - + - - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - ▼  Markdown Viewer - ├──  FeaturesMarkdown Viewer - ├──  Tables - └──  Code Blocks▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - This is an example of Textual's MarkdownViewer - widget. - - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - Features▇▇ - - ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ - Markdown syntax and extensions are supported. - - ⏺ Typography emphasisstronginline code - etc. - ⏺ Headers - ⏺ Lists (bullet and ordered) - ⏺ Syntax highlighted code blocks - ⏺ Tables! - - ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - + + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + ▼  Markdown Viewer + ├──  FeaturesMarkdown Viewer + ├──  Tables + └──  Code Blocks▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + This is an example of Textual's MarkdownViewer + widget. + + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + Features▇▇ + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + Markdown syntax and extensions are supported. + + ● Typography emphasisstronginline code + etc. + ● Headers + ● Lists (bullet and ordered) + ● Syntax highlighted code blocks + ● Tables! + + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + From 2bbd5c2f3d5907693ebf0c1c870a1c66699af45b Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 11:39:14 +0000 Subject: [PATCH 07/16] blog on creating tasks (#1987) * blog on creating tasks * a --- docs/blog/posts/creating-tasks-overhead.md | 76 ++++++++++++++++++ .../assets/fonts/BerkeleyMono-Bold.ttf | Bin 0 -> 93500 bytes .../assets/fonts/BerkeleyMono-BoldItalic.ttf | Bin 0 -> 95444 bytes .../assets/fonts/BerkeleyMono-Italic.ttf | Bin 0 -> 94488 bytes .../assets/fonts/BerkeleyMono-Regular.ttf | Bin 0 -> 92672 bytes 5 files changed, 76 insertions(+) create mode 100644 docs/blog/posts/creating-tasks-overhead.md create mode 100644 docs/custom_theme/assets/fonts/BerkeleyMono-Bold.ttf create mode 100644 docs/custom_theme/assets/fonts/BerkeleyMono-BoldItalic.ttf create mode 100644 docs/custom_theme/assets/fonts/BerkeleyMono-Italic.ttf create mode 100644 docs/custom_theme/assets/fonts/BerkeleyMono-Regular.ttf diff --git a/docs/blog/posts/creating-tasks-overhead.md b/docs/blog/posts/creating-tasks-overhead.md new file mode 100644 index 000000000..c21a19565 --- /dev/null +++ b/docs/blog/posts/creating-tasks-overhead.md @@ -0,0 +1,76 @@ +--- +draft: false +date: 2023-03-08 +categories: + - DevLog +authors: + - willmcgugan +--- + +# Overhead of Python Asyncio tasks + +Every widget in Textual, be it a button, tree view, or a text input, runs an [asyncio](https://docs.python.org/3/library/asyncio.html) task. There is even a task for [scrollbar corners](https://github.com/Textualize/textual/blob/e95a65fa56e5b19715180f9e17c7f6747ba15ec5/src/textual/scrollbar.py#L365) (the little space formed when horizontal and vertical scrollbars meet). + + + +!!! info + + It may be IO that gives AsyncIO its name, but Textual doesn't do any IO of its own. Those tasks are used to power *message queues*, so that widgets (UI components) can do whatever they do at their own pace. + +Its fair to say that Textual apps launch a lot of tasks. Which is why when I was trying to optimize startup (for apps with 1000s of widgets) I suspected it was task related. + +I needed to know how much of an overhead it was to launch tasks. Tasks are lighter weight than threads, but how much lighter? The only way to know for certain was to profile. + +The following code launches a load of *do nothing* tasks, then waits for them to shut down. This would give me an idea of how performant `create_task` is, and also a *baseline* for optimizations. I would know the absolute limit of any optimizations I make. + +```python +from asyncio import create_task, wait, run +from time import process_time as time + + +async def time_tasks(count=100) -> float: + """Time creating and destroying tasks.""" + + async def nop_task() -> None: + """Do nothing task.""" + pass + + start = time() + tasks = [create_task(nop_task()) for _ in range(count)] + await wait(tasks) + elapsed = time() - start + return elapsed + + +for count in range(100_000, 1000_000 + 1, 100_000): + create_time = run(time_tasks(count)) + create_per_second = 1 / (create_time / count) + print(f"{count:,} tasks \t {create_per_second:0,.0f} tasks per/s") +``` + +And here is the output: + +``` +100,000 tasks 280,003 tasks per/s +200,000 tasks 255,275 tasks per/s +300,000 tasks 248,713 tasks per/s +400,000 tasks 248,383 tasks per/s +500,000 tasks 241,624 tasks per/s +600,000 tasks 260,660 tasks per/s +700,000 tasks 244,510 tasks per/s +800,000 tasks 247,455 tasks per/s +900,000 tasks 242,744 tasks per/s +1,000,000 tasks 259,715 tasks per/s +``` + +!!! info + + Running on an M1 MacBook Pro. + +This tells me I can create, run, and shutdown 260K tasks per second. + +That's fast. + +Clearly `create_task` is as close as you get to free in the Python world, and I would need to look elsewhere for optimizations. Turns out Textual spends far more time processing CSS rules than creating tasks (obvious in retrospect). I've noticed some big wins there, so the next version of Textual will be faster to start apps with a metric tonne of widgets. + +But I still need to know what to do with those scrollbar corners. A task for two characters. I don't even... diff --git a/docs/custom_theme/assets/fonts/BerkeleyMono-Bold.ttf b/docs/custom_theme/assets/fonts/BerkeleyMono-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..651bbc55bff238564f135c2927aef30342d53a4e GIT binary patch literal 93500 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 z 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 Cv4G$J literal 0 HcmV?d00001 diff --git a/docs/custom_theme/assets/fonts/BerkeleyMono-BoldItalic.ttf b/docs/custom_theme/assets/fonts/BerkeleyMono-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bfa5c592598b632682994aba3dce7fdd35f93597 GIT binary patch literal 95444 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

K} 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 Zt1nsXPq;|0z38pu*QeL853t1P<=^ Date: Thu, 9 Mar 2023 11:39:30 +0000 Subject: [PATCH 08/16] Add `ContentSwitcher` (#1983) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add the basic ContentSwitcher widget * Docstring tidy * Add a visible_content property to the ContentSwitcher * Clarify that children of ContentSwitcher with no IDs get ignored * Simplify setting the display value * Add the start of an example ContentSwitcher for the docs * Tweak the example layout to better fit in small spaces * Add the content switcher to the API docs * Add a guide entry for the ContentSwitcher This one is a wee bit more involved than most other widget entries in the guide in that it doesn't obviously do anything itself, but needs developer-input to make it do something useful. As such the outline here isn't as clean as it could be, but I think it conveys everything necessary without getting too complicated. * Add the reactive attribute table to the ContentSwitcher guide * Update the README * Add a refresh after everything has been flipped in the switcher As noted in the code, this should not be necessary and I don't believe it has anything to do with this code. I would suspect some lower-level issue with flipping between different widgets within a container. I need to find a way to make an isolated reproduction that isn't about this particular widget. Meanwhile though this works with the refresh(). * Swap current from var to reactive This solves the explicit refresh issue, but only because the refresh is implied due to the use of a reactive over a var. As such this sort of addresses #1979 by ignoring the issue rather than diving into it. I still suspect that I shouldn't need to do this, and that perhaps there's a refresh issue when you flip display. So I'll keep #1979 kicking around and at some point see if I can recreate in isolation. * Add unit tests for the content switcher * Add snapshot tests for the ContentSwitcher * Clarify that an exception can be thrown on a bad ID * Try and help other Pythons * Add a pause at the end of the second switcher snapshot test I'm getting a lot of fails in CI; none of them are actual problems. Hopefully this will cure it. * Paaaaaaaaause More of a test than anything else really. My particular snapshot test is failing but kinda randomly in each environment each time -- sometimes Windows, sometimes GNU/Linux, different Python versions. So... yeah, let's try this and see if it makes it through; otherwise I may need to rethink this. * New pause So it turns out that _ doesn't do anything any more; and instead there's a "wait:" syntax! So let's give that a try. * Learning my alphabet... * Fix a typo in the docs. Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com> * Add missing full stop. Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com> * Add a missing word Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com> * Try a longer wait on the switcher I'm starting to suspect that this doesn't come down to a timing issue; especially given that the snapshot report seems to be showing some oddity in the length of the vertical scrollbar. But... I want to be as sure as possible so let's double the length of the wait. Bit a bit of me is starting to wonder if I've somehow managed to create the perfect storm for scrollbars and you don't always get the same result every time. Seems unlikely, but if it's not timing it's that or lots of cosmic rays. * Test a longer pause on the content switcher test The idea here being that it takes 200ms for the button to pop again. * Refresh the snapshots This time. THIS TIME! * Experiment: is the issue the same name for two tests? * Experiment: drop the different source files, try terminal size Having got over the issue of the button not ending up in the same state, we're stuck with the scrollbar having different sizes. Having tried other options let's go with tweaking the terminal size. * Do a little less work when changing current Rather than set everything invisible then the new one visible, every time current is changed, instead just make sure everything is invisible up front and then just swap the affected children each time. This does mean that if someone messes with the children under the hood they may see oddness happening, but less work while being less defensive seems fair here. --------- Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com> --- CHANGELOG.md | 1 + docs/api/content_switcher.md | 1 + docs/examples/widgets/content_switcher.css | 27 ++ docs/examples/widgets/content_switcher.py | 64 +++ docs/widgets/content_switcher.md | 54 +++ mkdocs-nav.yml | 2 + src/textual/widgets/__init__.py | 2 + src/textual/widgets/__init__.pyi | 1 + src/textual/widgets/_content_switcher.py | 90 ++++ .../__snapshots__/test_snapshots.ambr | 434 ++++++++++++++++++ tests/snapshot_tests/test_snapshots.py | 11 + tests/test_content_switcher.py | 95 ++++ 12 files changed, 782 insertions(+) create mode 100644 docs/api/content_switcher.md create mode 100644 docs/examples/widgets/content_switcher.css create mode 100644 docs/examples/widgets/content_switcher.py create mode 100644 docs/widgets/content_switcher.md create mode 100644 src/textual/widgets/_content_switcher.py create mode 100644 tests/test_content_switcher.py diff --git a/CHANGELOG.md b/CHANGELOG.md index a0733b856..15e8cf97e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Breaking change: Added `toggle_button` attribute to RadioButton and Checkbox events, replaces `input` https://github.com/Textualize/textual/pull/1940 - A percentage alpha can now be applied to a border https://github.com/Textualize/textual/issues/1863 - Added `Color.multiply_alpha`. +- Added `ContentSwitcher` https://github.com/Textualize/textual/issues/1945 ### Fixed diff --git a/docs/api/content_switcher.md b/docs/api/content_switcher.md new file mode 100644 index 000000000..ef2cfe930 --- /dev/null +++ b/docs/api/content_switcher.md @@ -0,0 +1 @@ +::: textual.widgets.ContentSwitcher diff --git a/docs/examples/widgets/content_switcher.css b/docs/examples/widgets/content_switcher.css new file mode 100644 index 000000000..b8546b117 --- /dev/null +++ b/docs/examples/widgets/content_switcher.css @@ -0,0 +1,27 @@ +Screen { + align: center middle; +} + +#buttons { + margin-top: 1; + height: 3; + width: auto; +} + +ContentSwitcher { + background: $panel; + border: round $primary; + width: 90%; + height: 80%; +} + +DataTable { + background: $panel; +} + +MarkdownH2 { + background: $primary; + color: yellow; + border: none; + padding: 0; +} diff --git a/docs/examples/widgets/content_switcher.py b/docs/examples/widgets/content_switcher.py new file mode 100644 index 000000000..1a774a805 --- /dev/null +++ b/docs/examples/widgets/content_switcher.py @@ -0,0 +1,64 @@ +from textual.app import App, ComposeResult +from textual.containers import Horizontal +from textual.widgets import Button, ContentSwitcher, DataTable, Markdown + +MARKDOWN_EXAMPLE = """# Three Flavours Cornetto + +The Three Flavours Cornetto trilogy is an anthology series of British +comedic genre films directed by Edgar Wright. + +## Shaun of the Dead + +| Flavour | UK Release Date | Director | +| -- | -- | -- | +| Strawberry | 2004-04-09 | Edgar Wright | + +## Hot Fuzz + +| Flavour | UK Release Date | Director | +| -- | -- | -- | +| Classico | 2007-02-17 | Edgar Wright | + +## The World's End + +| Flavour | UK Release Date | Director | +| -- | -- | -- | +| Mint | 2013-07-19 | Edgar Wright | +""" + + +class ContentSwitcherApp(App[None]): + CSS_PATH = "content_switcher.css" + + def compose(self) -> ComposeResult: + with Horizontal(id="buttons"): # (1)! + yield Button("DataTable", id="data-table") # (2)! + yield Button("Markdown", id="markdown") # (3)! + + with ContentSwitcher(initial="data-table"): # (4)! + yield DataTable(id="data-table") + yield Markdown(MARKDOWN_EXAMPLE, id="markdown") + + def on_button_pressed(self, event: Button.Pressed) -> None: + self.query_one(ContentSwitcher).current = event.button.id # (5)! + + def on_mount(self) -> None: + table = self.query_one(DataTable) + table.add_columns("Book", "Year") + table.add_rows( + [ + (title.ljust(35), year) + for title, year in ( + ("Dune", 1965), + ("Dune Messiah", 1969), + ("Children of Dune", 1976), + ("God Emperor of Dune", 1981), + ("Heretics of Dune", 1984), + ("Chapterhouse: Dune", 1985), + ) + ] + ) + + +if __name__ == "__main__": + ContentSwitcherApp().run() diff --git a/docs/widgets/content_switcher.md b/docs/widgets/content_switcher.md new file mode 100644 index 000000000..b9369452b --- /dev/null +++ b/docs/widgets/content_switcher.md @@ -0,0 +1,54 @@ +# ContentSwitcher + +A widget for containing and switching display between multiple child +widgets. + +- [ ] Focusable +- [X] Container + +## Example + +The example below uses a `ContentSwitcher` in combination with two `Button`s +to create a simple tabbed view. Note how each `Button` has an ID set, and +how each child of the `ContentSwitcher` has a corresponding ID; then a +`Button.Clicked` handler is used to set `ContentSwitcher.current` to switch +between the different views. + +=== "Output" + + ```{.textual path="docs/examples/widgets/content_switcher.py"} + ``` + +=== "content_switcher.py" + + ~~~python + --8<-- "docs/examples/widgets/content_switcher.py" + ~~~ + + 1. A `Horizontal` to hold the buttons, each with a unique ID. + 2. This button will select the `DataTable` in the `ContentSwitcher`. + 3. This button will select the `Markdown` in the `ContentSwitcher`. + 4. Note that the intial visible content is set by its ID, see below. + 5. When a button is pressed, its ID is used to switch to a different widget in the `ContentSwitcher`. Remember that IDs are unique within parent, so the buttons and the widgets in the `ContentSwitcher` can share IDs. + +=== "content_switcher.css" + + ~~~sass + --8<-- "docs/examples/widgets/content_switcher.css" + ~~~ + +When the user presses the "Markdown" button the view is switched: + +```{.textual path="docs/examples/widgets/content_switcher.py" lines="40" press="tab,tab,enter"} +``` + +## Reactive Attributes + +| Name | Type | Default | Description | +|-----------|-----------------|---------|----------------------------------------------------------------------| +| `current` | `str` \| `None` | `None` | The ID of the currently-visible child. `None` means nothing is visible. | + + +## See Also + +* [ContentSwitcher][textual.widgets.ContentSwitcher] code reference diff --git a/mkdocs-nav.yml b/mkdocs-nav.yml index 3750fc9d7..820d601a7 100644 --- a/mkdocs-nav.yml +++ b/mkdocs-nav.yml @@ -122,6 +122,7 @@ nav: - Widgets: - "widgets/button.md" - "widgets/checkbox.md" + - "widgets/content_switcher.md" - "widgets/data_table.md" - "widgets/directory_tree.md" - "widgets/footer.md" @@ -148,6 +149,7 @@ nav: - "api/checkbox.md" - "api/color.md" - "api/containers.md" + - "api/content_switcher.md" - "api/coordinate.md" - "api/data_table.md" - "api/directory_tree.md" diff --git a/src/textual/widgets/__init__.py b/src/textual/widgets/__init__.py index 0b85c9126..5dc515dea 100644 --- a/src/textual/widgets/__init__.py +++ b/src/textual/widgets/__init__.py @@ -12,6 +12,7 @@ if typing.TYPE_CHECKING: from ..widget import Widget from ._button import Button from ._checkbox import Checkbox + from ._content_switcher import ContentSwitcher from ._data_table import DataTable from ._directory_tree import DirectoryTree from ._footer import Footer @@ -35,6 +36,7 @@ if typing.TYPE_CHECKING: __all__ = [ "Button", "Checkbox", + "ContentSwitcher", "DataTable", "DirectoryTree", "Footer", diff --git a/src/textual/widgets/__init__.pyi b/src/textual/widgets/__init__.pyi index 3d2edfc06..5fe292f2d 100644 --- a/src/textual/widgets/__init__.pyi +++ b/src/textual/widgets/__init__.pyi @@ -1,6 +1,7 @@ # This stub file must re-export every classes exposed in the __init__.py's `__all__` list: from ._button import Button as Button from ._checkbox import Checkbox as Checkbox +from ._content_switcher import ContentSwitcher as ContentSwitcher from ._data_table import DataTable as DataTable from ._directory_tree import DirectoryTree as DirectoryTree from ._footer import Footer as Footer diff --git a/src/textual/widgets/_content_switcher.py b/src/textual/widgets/_content_switcher.py new file mode 100644 index 000000000..72ab0f96a --- /dev/null +++ b/src/textual/widgets/_content_switcher.py @@ -0,0 +1,90 @@ +"""Provides a widget for switching between the display of its immediate children.""" + +from __future__ import annotations + +from typing import Optional + +from ..containers import Container +from ..reactive import reactive +from ..widget import Widget + + +class ContentSwitcher(Container): + """A widget for switching between different children. + + Note: + All child widgets that are to be switched between need a unique ID. + Children that have no ID will be hidden and ignored. + """ + + current: reactive[str | None] = reactive[Optional[str]](None) + """The ID of the currently-displayed widget. + + If set to `None` then no widget is visible. + + Note: + If set to an unknown ID, this will result in + [NoMatches][textual.css.query.NoMatches] being raised. + """ + + def __init__( + self, + *children: Widget, + name: str | None = None, + id: str | None = None, + classes: str | None = None, + disabled: bool = False, + initial: str | None = None, + ) -> None: + """Initialise the content switching widget. + + Args: + *children: The widgets to switch between. + name: The name of the content switcher. + id: The ID of the content switcher in the DOM. + classes: The CSS classes of the content switcher. + disabled: Whether the content switcher is disabled or not. + initial: The ID of the initial widget to show. + + Note: + If `initial` is not supplied no children will be shown to start + with. + """ + super().__init__( + *children, + name=name, + id=id, + classes=classes, + disabled=disabled, + ) + self._initial = initial + + def on_mount(self) -> None: + """Perform the initial setup of the widget once the DOM is ready.""" + # On startup, ensure everything is hidden. + with self.app.batch_update(): + for child in self.children: + child.display = False + # Then set the initial display. + self.current = self._initial + + @property + def visible_content(self) -> Widget | None: + """A reference to the currently-visible widget. + + `None` if nothing is visible. + """ + return self.get_child_by_id(self.current) if self.current is not None else None + + def watch_current(self, old: str | None, new: str | None) -> None: + """React to the current visible child choice being changed. + + Args: + old: The old widget ID (or `None` if there was no widget). + new: The new widget ID (or `None` if nothing should be shown). + """ + with self.app.batch_update(): + if old is not None: + self.get_child_by_id(old).display = False + if new is not None: + self.get_child_by_id(new).display = True diff --git a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr index 312c72e6d..b69597054 100644 --- a/tests/snapshot_tests/__snapshots__/test_snapshots.ambr +++ b/tests/snapshot_tests/__snapshots__/test_snapshots.ambr @@ -1167,6 +1167,440 @@ ''' # --- +# name: test_content_switcher_example_initial + ''' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ContentSwitcherApp + + + + + + + + + + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + DataTableMarkdown + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + ────────────────────────────────────────────────────────────────────── +  Book                                 Year  +  Dune                                 1965  +  Dune Messiah                         1969  +  Children of Dune                     1976  +  God Emperor of Dune                  1981  +  Heretics of Dune                     1984  +  Chapterhouse: Dune                   1985  + + + + + + + + + + + ────────────────────────────────────────────────────────────────────── + + + + + + ''' +# --- +# name: test_content_switcher_example_switch + ''' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ContentSwitcherApp + + + + + + + + + + + + + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + DataTableMarkdown + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + ─────────────────────────────────────────── + ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + Three Flavours Cornetto + + ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ + The Three Flavours Cornetto trilogy + is an anthology series of British + comedic genre films directed by  + Edgar Wright. + + Shaun of the Dead + +  Flavour     UK Release Date  Dir + + + Hot Fuzz + +  Flavour   UK Release Date  Direc + + + The World's End + +  Flavour  UK Release Date  Direct + + + + + + + + + + + + + + + + ─────────────────────────────────────────── + + + + + + + + ''' +# --- # name: test_css_property[align.py] ''' diff --git a/tests/snapshot_tests/test_snapshots.py b/tests/snapshot_tests/test_snapshots.py index 26e044060..7d338f1d5 100644 --- a/tests/snapshot_tests/test_snapshots.py +++ b/tests/snapshot_tests/test_snapshots.py @@ -1,3 +1,4 @@ +from os import terminal_size from pathlib import Path import pytest @@ -164,6 +165,16 @@ def test_radio_set_example(snap_compare): assert snap_compare(WIDGET_EXAMPLES_DIR / "radio_set.py") +def test_content_switcher_example_initial(snap_compare): + assert snap_compare(WIDGET_EXAMPLES_DIR / "content_switcher.py") + + +def test_content_switcher_example_switch(snap_compare): + assert snap_compare(WIDGET_EXAMPLES_DIR / "content_switcher.py", press=[ + "tab", "tab", "enter", "wait:500" + ], terminal_size=(50, 50)) + + # --- CSS properties --- # We have a canonical example for each CSS property that is shown in their docs. # If any of these change, something has likely broken, so snapshot each of them. diff --git a/tests/test_content_switcher.py b/tests/test_content_switcher.py new file mode 100644 index 000000000..8c194b5a9 --- /dev/null +++ b/tests/test_content_switcher.py @@ -0,0 +1,95 @@ +from __future__ import annotations + +import pytest + +from textual.app import App, ComposeResult +from textual.css.query import NoMatches +from textual.widget import Widget +from textual.widgets import ContentSwitcher + + +class SwitcherApp(App[None]): + def __init__(self, initial: str | None = None) -> None: + super().__init__() + self._initial = initial + + def compose(self) -> ComposeResult: + with ContentSwitcher(initial=self._initial): + for n in range(5): + yield Widget(id=f"w{n}") + + +async def test_no_initial_display() -> None: + """Test starting a content switcher with nothing shown.""" + async with SwitcherApp().run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current is None + assert all( + not child.display for child in pilot.app.query_one(ContentSwitcher).children + ) + + +async def test_initial_display() -> None: + """Test starting a content switcher with a widget initially shown.""" + async with SwitcherApp("w3").run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current == "w3" + for child in pilot.app.query_one(ContentSwitcher).children: + assert child.display is (child.id == "w3") + + +async def test_no_initial_display_then_set() -> None: + """Test starting a content switcher with nothing shown then setting the display.""" + async with SwitcherApp().run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current is None + assert all( + not child.display for child in pilot.app.query_one(ContentSwitcher).children + ) + pilot.app.query_one(ContentSwitcher).current = "w3" + assert pilot.app.query_one(ContentSwitcher).current == "w3" + for child in pilot.app.query_one(ContentSwitcher).children: + assert child.display is (child.id == "w3") + + +async def test_initial_display_then_change() -> None: + """Test starting a content switcher with a widget initially shown then changing it.""" + async with SwitcherApp("w3").run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current == "w3" + for child in pilot.app.query_one(ContentSwitcher).children: + assert child.display is (child.id == "w3") + pilot.app.query_one(ContentSwitcher).current = "w2" + assert pilot.app.query_one(ContentSwitcher).current == "w2" + for child in pilot.app.query_one(ContentSwitcher).children: + assert child.display is (child.id == "w2") + + +async def test_initial_display_then_hide() -> None: + """Test starting a content switcher with a widget initially shown then hide all.""" + async with SwitcherApp("w3").run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current == "w3" + for child in pilot.app.query_one(ContentSwitcher).children: + assert child.display is (child.id == "w3") + pilot.app.query_one(ContentSwitcher).current = None + assert pilot.app.query_one(ContentSwitcher).current is None + assert all( + not child.display for child in pilot.app.query_one(ContentSwitcher).children + ) + + +@pytest.mark.xfail( + reason="The expected exception doesn't appear to make it to pytest -- perhaps related to https://github.com/Textualize/textual/issues/1972" +) +async def test_initial_display_unknown_id() -> None: + """Test setting an initial display to an unknown widget ID.""" + with pytest.raises(NoMatches): + async with SwitcherApp("does-not-exist").run_test(): + pass + + +async def test_set_current_to_unknown_id() -> None: + """Test attempting to switch to an unknown widget ID.""" + async with SwitcherApp().run_test() as pilot: + assert pilot.app.query_one(ContentSwitcher).current is None + assert all( + not child.display for child in pilot.app.query_one(ContentSwitcher).children + ) + with pytest.raises(NoMatches): + pilot.app.query_one(ContentSwitcher).current = "does-not-exist" From 72e32f22062500c7a7720b46c13bdf2ffaa431f0 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 11:55:02 +0000 Subject: [PATCH 09/16] prevent double errors (#1998) * prevent double errors * track invalid css --- src/textual/app.py | 2 -- src/textual/css/stylesheet.py | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/textual/app.py b/src/textual/app.py index 4e795debb..add4df575 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -1460,7 +1460,6 @@ class App(Generic[ReturnType], DOMNode): Args: error: An exception instance. """ - if hasattr(error, "__rich__"): # Exception has a rich method, so we can defer to that for the rendering self.panic(error) @@ -1985,7 +1984,6 @@ class App(Generic[ReturnType], DOMNode): Returns: True if the event has handled. """ - print("ACTION", action, default_namespace) if isinstance(action, str): target, params = actions.parse(action) else: diff --git a/src/textual/css/stylesheet.py b/src/textual/css/stylesheet.py index 1c6c9de5f..e3f9dd0b1 100644 --- a/src/textual/css/stylesheet.py +++ b/src/textual/css/stylesheet.py @@ -128,6 +128,7 @@ class Stylesheet: self.__variable_tokens: dict[str, list[Token]] | None = None self.source: dict[str, CssSource] = {} self._require_parse = False + self._invalid_css: set[str] = set() def __rich_repr__(self) -> rich.repr.Result: yield list(self.source.keys()) @@ -188,6 +189,7 @@ class Stylesheet: """ self._variables = variables self.__variable_tokens = None + self._invalid_css = set() def _parse_rules( self, @@ -304,10 +306,20 @@ class Stylesheet: """ rules: list[RuleSet] = [] add_rules = rules.extend + for path, (css, is_default_rules, tie_breaker) in self.source.items(): - css_rules = self._parse_rules( - css, path, is_default_rules=is_default_rules, tie_breaker=tie_breaker - ) + if css in self._invalid_css: + continue + try: + css_rules = self._parse_rules( + css, + path, + is_default_rules=is_default_rules, + tie_breaker=tie_breaker, + ) + except Exception: + self._invalid_css.add(css) + raise if any(rule.errors for rule in css_rules): error_renderable = StylesheetErrors(css_rules) raise StylesheetParseError(error_renderable) From f929e133b28e8a767bbfab72dae6338be5cbb6b2 Mon Sep 17 00:00:00 2001 From: darrenburns Date: Thu, 9 Mar 2023 11:56:38 +0000 Subject: [PATCH 10/16] Generate MouseUp events (#1968) * Remove redundant import * Generate a MouseUp event when dragging stops * Update CHANGELOG.md * Ensure button is propagated through to artificial MouseUp event --- CHANGELOG.md | 1 + src/textual/driver.py | 26 ++++++++++++++++++++++++++ src/textual/drivers/linux_driver.py | 1 - 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e8cf97e..dcd56a3f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Fixed bug that prevented pilot from pressing some keys https://github.com/Textualize/textual/issues/1815 - DataTable race condition that caused crash https://github.com/Textualize/textual/pull/1962 +- Fixed scrollbar getting "stuck" to cursor when cursor leaves window during drag https://github.com/Textualize/textual/pull/1968 - DataTable crash when enter pressed when table is empty https://github.com/Textualize/textual/pull/1973 ## [0.13.0] - 2023-03-02 diff --git a/src/textual/driver.py b/src/textual/driver.py index 7707d736b..afe852bfd 100644 --- a/src/textual/driver.py +++ b/src/textual/driver.py @@ -6,6 +6,7 @@ from typing import TYPE_CHECKING from . import _clock, events from ._types import MessageTarget +from .events import MouseUp if TYPE_CHECKING: from rich.console import Console @@ -26,6 +27,8 @@ class Driver(ABC): self._size = size self._loop = asyncio.get_running_loop() self._mouse_down_time = _clock.get_time_no_wait() + self._dragging = False + self._dragging_button = None @property def is_headless(self) -> bool: @@ -41,6 +44,29 @@ class Driver(ABC): """Performs some additional processing of events.""" if isinstance(event, events.MouseDown): self._mouse_down_time = event.time + elif isinstance(event, events.MouseMove): + if event.button and not self._dragging: + self._dragging = True + self._dragging_button = event.button + elif self._dragging and self._dragging_button != event.button: + # Artificially generate a MouseUp event when we stop "dragging" + self.send_event( + MouseUp( + x=event.x, + y=event.y, + delta_x=event.delta_x, + delta_y=event.delta_y, + button=self._dragging_button, + shift=event.shift, + meta=event.meta, + ctrl=event.ctrl, + screen_x=event.screen_x, + screen_y=event.screen_y, + style=event.style, + ) + ) + self._dragging = False + self._dragging_button = None self.send_event(event) diff --git a/src/textual/drivers/linux_driver.py b/src/textual/drivers/linux_driver.py index c5fd1b368..b67f05ed4 100644 --- a/src/textual/drivers/linux_driver.py +++ b/src/textual/drivers/linux_driver.py @@ -17,7 +17,6 @@ if TYPE_CHECKING: import rich.repr from .. import events, log -from .._profile import timer from .._types import MessageTarget from .._xterm_parser import XTermParser from ..driver import Driver From aad6d98aa52e9f8540670b7340aa87a8783fa084 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Mar 2023 14:01:48 +0000 Subject: [PATCH 11/16] More documentation tweaks (#2001) * Change the title of some widget references to their class names The widget reference index had a slight mixture of widget title styles, some being their class name, others being "written English" type titles. This settles on the titles always being the class name. * Add a link to the ContentSwitcher to the widget gallery No screenshot for this, on purpose. By definition this widget isn't visible, except via other widgets that it's enclosing and handling. * Have mkdocs watch the main nav file * Mark the content switcher off the roadmap --- docs/roadmap.md | 2 +- docs/widget_gallery.md | 8 ++++++++ docs/widgets/list_item.md | 2 +- docs/widgets/list_view.md | 2 +- docs/widgets/markdown_viewer.md | 2 +- mkdocs-common.yml | 1 + 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/roadmap.md b/docs/roadmap.md index 0c10fef40..478ac534e 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -41,7 +41,7 @@ Widgets are key to making user-friendly interfaces. The builtin widgets should c * [x] Error / warning variants - [ ] Color picker - [X] Checkbox -- [ ] Content switcher +- [X] Content switcher - [x] DataTable * [x] Cell select * [x] Row / Column select diff --git a/docs/widget_gallery.md b/docs/widget_gallery.md index 400340bae..149804326 100644 --- a/docs/widget_gallery.md +++ b/docs/widget_gallery.md @@ -35,6 +35,14 @@ A classic checkbox control. ``` +## ContentSwitcher + +A widget for containing and switching display between multiple child +widgets. + +[ContentSwitcher reference](./widgets/content_switcher.md){ .md-button .md-button--primary } + + ## DataTable A powerful data table, with configurable cursors. diff --git a/docs/widgets/list_item.md b/docs/widgets/list_item.md index 698214159..7a33e29d2 100644 --- a/docs/widgets/list_item.md +++ b/docs/widgets/list_item.md @@ -1,4 +1,4 @@ -# List Item +# ListItem `ListItem` is the type of the elements in a `ListView`. diff --git a/docs/widgets/list_view.md b/docs/widgets/list_view.md index 8bca015df..6e294323e 100644 --- a/docs/widgets/list_view.md +++ b/docs/widgets/list_view.md @@ -1,4 +1,4 @@ -# List View +# ListView Displays a vertical list of `ListItem`s which can be highlighted and selected. Supports keyboard navigation. diff --git a/docs/widgets/markdown_viewer.md b/docs/widgets/markdown_viewer.md index d865f4466..0fc2f06e4 100644 --- a/docs/widgets/markdown_viewer.md +++ b/docs/widgets/markdown_viewer.md @@ -1,4 +1,4 @@ -# Markdown Viewer +# MarkdownViewer A Widget to display Markdown content with an optional Table of Contents. diff --git a/mkdocs-common.yml b/mkdocs-common.yml index ac5ae5a9e..5b419ffb7 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -80,6 +80,7 @@ plugins: - "!^can_replace$" watch: - mkdocs-common.yml + - mkdocs-nav.yml - mkdocs-offline.yml - mkdocs-online.yml - src/textual From f61a50b79007a56d8f156a44d1d1eab29a2732e6 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 14:13:12 +0000 Subject: [PATCH 12/16] prevent stuck scrollbar (#2003) * prevent stuck scrollbar * update changelog * remove debug * remove debug --- CHANGELOG.md | 2 +- src/textual/driver.py | 54 +++++++++++++++++++++++----------------- src/textual/scrollbar.py | 8 ++++-- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcd56a3f0..6ee4642d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Fixed bug that prevented pilot from pressing some keys https://github.com/Textualize/textual/issues/1815 - DataTable race condition that caused crash https://github.com/Textualize/textual/pull/1962 -- Fixed scrollbar getting "stuck" to cursor when cursor leaves window during drag https://github.com/Textualize/textual/pull/1968 +- Fixed scrollbar getting "stuck" to cursor when cursor leaves window during drag https://github.com/Textualize/textual/pull/1968 https://github.com/Textualize/textual/pull/2003 - DataTable crash when enter pressed when table is empty https://github.com/Textualize/textual/pull/1973 ## [0.13.0] - 2023-03-02 diff --git a/src/textual/driver.py b/src/textual/driver.py index afe852bfd..0e8ac6412 100644 --- a/src/textual/driver.py +++ b/src/textual/driver.py @@ -27,8 +27,8 @@ class Driver(ABC): self._size = size self._loop = asyncio.get_running_loop() self._mouse_down_time = _clock.get_time_no_wait() - self._dragging = False - self._dragging_button = None + self._down_buttons: list[int] = [] + self._last_move_event: events.MouseMove | None = None @property def is_headless(self) -> bool: @@ -44,29 +44,37 @@ class Driver(ABC): """Performs some additional processing of events.""" if isinstance(event, events.MouseDown): self._mouse_down_time = event.time + if event.button: + self._down_buttons.append(event.button) + elif isinstance(event, events.MouseUp): + if event.button: + self._down_buttons.remove(event.button) elif isinstance(event, events.MouseMove): - if event.button and not self._dragging: - self._dragging = True - self._dragging_button = event.button - elif self._dragging and self._dragging_button != event.button: - # Artificially generate a MouseUp event when we stop "dragging" - self.send_event( - MouseUp( - x=event.x, - y=event.y, - delta_x=event.delta_x, - delta_y=event.delta_y, - button=self._dragging_button, - shift=event.shift, - meta=event.meta, - ctrl=event.ctrl, - screen_x=event.screen_x, - screen_y=event.screen_y, - style=event.style, + if ( + self._down_buttons + and not event.button + and self._last_move_event is not None + ): + buttons = list(dict.fromkeys(self._down_buttons).keys()) + self._down_buttons.clear() + move_event = self._last_move_event + for button in buttons: + self.send_event( + MouseUp( + x=move_event.x, + y=move_event.y, + delta_x=0, + delta_y=0, + button=button, + shift=event.shift, + meta=event.meta, + ctrl=event.ctrl, + screen_x=move_event.screen_x, + screen_y=move_event.screen_y, + style=event.style, + ) ) - ) - self._dragging = False - self._dragging_button = None + self._last_move_event = event self.send_event(event) diff --git a/src/textual/scrollbar.py b/src/textual/scrollbar.py index bc2ed6dd7..df5516ce9 100644 --- a/src/textual/scrollbar.py +++ b/src/textual/scrollbar.py @@ -291,6 +291,7 @@ class ScrollBar(Widget): def _on_hide(self, event: events.Hide) -> None: if self.grabbed: self.release_mouse() + self.grabbed = None def _on_enter(self, event: events.Enter) -> None: self.mouse_over = True @@ -299,10 +300,12 @@ class ScrollBar(Widget): self.mouse_over = False def action_scroll_down(self) -> None: - self.post_message(ScrollDown() if self.vertical else ScrollRight()) + if not self.grabbed: + self.post_message(ScrollDown() if self.vertical else ScrollRight()) def action_scroll_up(self) -> None: - self.post_message(ScrollUp() if self.vertical else ScrollLeft()) + if not self.grabbed: + self.post_message(ScrollUp() if self.vertical else ScrollLeft()) def action_grab(self) -> None: self.capture_mouse() @@ -313,6 +316,7 @@ class ScrollBar(Widget): async def _on_mouse_up(self, event: events.MouseUp) -> None: if self.grabbed: self.release_mouse() + self.grabbed = None event.stop() def _on_mouse_capture(self, event: events.MouseCapture) -> None: From 1f1222b1ce7bcda77ca58c964377205b69178d06 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 14:53:10 +0000 Subject: [PATCH 13/16] Version 0.14.0 release and blog (#2004) * new release, and blog * Edit copy --- CHANGELOG.md | 2 +- docs/blog/posts/release0-14.0.md | 77 ++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 docs/blog/posts/release0-14.0.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ee4642d1..a3177338b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [0.14.0] - Unreleased +## [0.14.0] - 2023-03-09 ### Changed diff --git a/docs/blog/posts/release0-14.0.md b/docs/blog/posts/release0-14.0.md new file mode 100644 index 000000000..6c9221177 --- /dev/null +++ b/docs/blog/posts/release0-14.0.md @@ -0,0 +1,77 @@ +--- +draft: false +date: 2022-03-09 +categories: + - Release +title: "Textual 0.14.0 shakes up posting messages" +authors: + - willmcgugan +--- + +# Textual 0.14.0 shakes up posting messages + +Textual version 0.14.0 has landed just a week after 0.13.0. + +!!! note + + We like fast releases for Textual. Fast releases means quicker feedback, which means better code. + +What's new? + + + +We did a little shake-up of posting [messages](../../guide/events.md) which will simplify building widgets. But this does mean a few breaking changes. + +There are two methods in Textual to post messages: `post_message` and `post_message_no_wait`. The former was asynchronous (you needed to `await` it), and the latter was a regular method call. These two methods have been replaced with a single `post_message` method. + +To upgrade your project to Textual 0.14.0, you will need to do the following: + +- Remove `await` keywords from any calls to `post_message`. +- Replace any calls to `post_message_no_wait` with `post_message`. + + +Additionally, we've simplified constructing messages classes. Previously all messages required a `sender` argument, which had to be manually set. This was a clear violation of our "no boilerplate" policy, and has been dropped. There is still a `sender` property on messages / events, but it is set automatically. + +So prior to 0.14.0 you might have posted messages like the following: + +```python +async self.post_message(self.Changed(self, item=self.item)) +``` + +You can now replace it with this simpler function call: + +```python +self.post_message(self.Change(item=self.item)) +``` + +This also means that you will need to drop the sender from any custom messages you have created. + +If this was code pre-0.14.0: + +```python +class MyWidget(Widget): + + class Changed(Message): + """My widget change event.""" + def __init__(self, sender:MessageTarget, item_index:int) -> None: + self.item_index = item_index + super().__init__(sender) + +``` + +You would need to make the following change (dropping `sender`). + +```python +class MyWidget(Widget): + + class Changed(Message): + """My widget change event.""" + def __init__(self, item_index:int) -> None: + self.item_index = item_index + super().__init__() + +``` + +If you have any problems upgrading, join our [Discord server](https://discord.gg/Enf6Z3qhVr), we would be happy to help. + +See the [release notes](https://github.com/Textualize/textual/releases/tag/v0.14.0) for the full details on this update. diff --git a/pyproject.toml b/pyproject.toml index 3edcaf7f6..a3291312e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "textual" -version = "0.13.0" +version = "0.14.0" homepage = "https://github.com/Textualize/textual" description = "Modern Text User Interface framework" authors = ["Will McGugan "] From e2d88572c2b9d5e07122d77e7e93d7b4b1dbeabf Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 14:53:39 +0000 Subject: [PATCH 14/16] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3177338b..98a750b19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -562,6 +562,7 @@ https://textual.textualize.io/blog/2022/11/08/version-040/#version-040 - New handler system for messages that doesn't require inheritance - Improved traceback handling +[0.14.0]: https://github.com/Textualize/textual/compare/v0.13.0...v0.14.0 [0.13.0]: https://github.com/Textualize/textual/compare/v0.12.1...v0.13.0 [0.12.1]: https://github.com/Textualize/textual/compare/v0.12.0...v0.12.1 [0.12.0]: https://github.com/Textualize/textual/compare/v0.11.1...v0.12.0 From 5de2b6f9344048445b06f25c543a34e516acb75e Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 14:58:55 +0000 Subject: [PATCH 15/16] rename --- docs/blog/posts/{release0-14.0.md => release0-14-0.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/blog/posts/{release0-14.0.md => release0-14-0.md} (100%) diff --git a/docs/blog/posts/release0-14.0.md b/docs/blog/posts/release0-14-0.md similarity index 100% rename from docs/blog/posts/release0-14.0.md rename to docs/blog/posts/release0-14-0.md From 503c03730ed2fb2029925aa43623dde1cd0b9600 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 9 Mar 2023 15:01:21 +0000 Subject: [PATCH 16/16] fix blog --- docs/blog/posts/release0-14-0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/posts/release0-14-0.md b/docs/blog/posts/release0-14-0.md index 6c9221177..359750338 100644 --- a/docs/blog/posts/release0-14-0.md +++ b/docs/blog/posts/release0-14-0.md @@ -1,6 +1,6 @@ --- draft: false -date: 2022-03-09 +date: 2023-03-09 categories: - Release title: "Textual 0.14.0 shakes up posting messages"