From 6951ff5e60c370de71cd264bb54b156416b328e8 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 13:29:49 +0000 Subject: [PATCH 01/28] Move almost all of the docs config into a "common" file With #631 in mind, start by moving the vast bulk of the documentation configuration into a "common" file, and just keep the `nav` in the main configuration file. The thinking here is that I want two entry points -- one for building the full docs for the Textual website, and one for building a local version of the docs. Because mkdocs doesn't allow for inheriting a configuration and also splicing into the `nav`, we'll be looking to duplicate the `nav` for now -- this will likely change eventually as that'll be a maintenance overhead that we don't really want (will likely look at templating it or something). For now though, let's look at the best way of splitting things up and seeing how we can generate two different versions of the docs. --- mkdocs-common.yml | 113 ++++++++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 116 +--------------------------------------------- 2 files changed, 114 insertions(+), 115 deletions(-) create mode 100644 mkdocs-common.yml diff --git a/mkdocs-common.yml b/mkdocs-common.yml new file mode 100644 index 000000000..0e3c77e1b --- /dev/null +++ b/mkdocs-common.yml @@ -0,0 +1,113 @@ +site_name: Textual +site_url: https://textual.textualize.io/ +repo_url: https://github.com/textualize/textual/ +edit_uri: edit/main/docs/ + +markdown_extensions: + - attr_list + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - md_in_html + - admonition + - def_list + - meta + + - toc: + permalink: true + baselevel: 1 + - pymdownx.keys + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.highlight: + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.superfences: + custom_fences: + - name: textual + class: textual + format: !!python/name:textual._doc.format_svg + - name: rich + class: rich + format: !!python/name:textual._doc.rich + - pymdownx.inlinehilite + - pymdownx.superfences + - pymdownx.snippets + - pymdownx.tabbed: + alternate_style: true + - pymdownx.snippets + - markdown.extensions.attr_list + +theme: + name: material + custom_dir: docs/custom_theme + features: + - navigation.tabs + - navigation.indexes + - navigation.tabs.sticky + - navigation.footer + - content.code.annotate + - content.code.copy + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + accent: purple + toggle: + icon: material/weather-sunny + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + toggle: + icon: material/weather-night + name: Switch to light mode + +plugins: + +- blog: +- rss: + match_path: blog/posts/.* + date_from_meta: + as_creation: date + categories: + - categories + - release + - tags +- search: +- autorefs: +- mkdocstrings: + custom_templates: docs/_templates + default_handler: python + handlers: + python: + options: + show_root_heading: true + show_root_full_path: false + show_source: false + filters: + - "!^_" + - "^__init__$" + - "!^can_replace$" + watch: + - src/textual +- exclude: + glob: + - "**/_template.md" + + +extra_css: + - stylesheets/custom.css + + +extra: + social: + - icon: fontawesome/brands/twitter + link: https://twitter.com/textualizeio + name: textualizeio on Twitter + - icon: fontawesome/brands/github + link: https://github.com/textualize/textual/ + name: Textual on Github + - icon: fontawesome/brands/discord + link: https://discord.gg/Enf6Z3qhVr + name: Textual Discord server +copyright: Copyright © Textualize, Inc diff --git a/mkdocs.yml b/mkdocs.yml index 1748de127..87cf933be 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,4 @@ -site_name: Textual -site_url: https://textual.textualize.io/ -repo_url: https://github.com/textualize/textual/ -edit_uri: edit/main/docs/ +INHERIT: mkdocs-common.yml nav: - Introduction: @@ -176,114 +173,3 @@ nav: - "api/widget.md" - "Blog": - blog/index.md - - - -markdown_extensions: - - attr_list - - pymdownx.emoji: - emoji_index: !!python/name:materialx.emoji.twemoji - emoji_generator: !!python/name:materialx.emoji.to_svg - - md_in_html - - admonition - - def_list - - meta - - - toc: - permalink: true - baselevel: 1 - - pymdownx.keys - - pymdownx.tasklist: - custom_checkbox: true - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.superfences: - custom_fences: - - name: textual - class: textual - format: !!python/name:textual._doc.format_svg - - name: rich - class: rich - format: !!python/name:textual._doc.rich - - pymdownx.inlinehilite - - pymdownx.superfences - - pymdownx.snippets - - pymdownx.tabbed: - alternate_style: true - - pymdownx.snippets - - markdown.extensions.attr_list - -theme: - name: material - custom_dir: docs/custom_theme - features: - - navigation.tabs - - navigation.indexes - - navigation.tabs.sticky - - navigation.footer - - content.code.annotate - - content.code.copy - palette: - - media: "(prefers-color-scheme: light)" - scheme: default - accent: purple - toggle: - icon: material/weather-sunny - name: Switch to dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - primary: black - toggle: - icon: material/weather-night - name: Switch to light mode - -plugins: - -- blog: -- rss: - match_path: blog/posts/.* - date_from_meta: - as_creation: date - categories: - - categories - - release - - tags -- search: -- autorefs: -- mkdocstrings: - custom_templates: docs/_templates - default_handler: python - handlers: - python: - options: - show_root_heading: true - show_root_full_path: false - show_source: false - filters: - - "!^_" - - "^__init__$" - - "!^can_replace$" - watch: - - src/textual -- exclude: - glob: - - "**/_template.md" - - -extra_css: - - stylesheets/custom.css - - -extra: - social: - - icon: fontawesome/brands/twitter - link: https://twitter.com/textualizeio - name: textualizeio on Twitter - - icon: fontawesome/brands/github - link: https://github.com/textualize/textual/ - name: Textual on Github - - icon: fontawesome/brands/discord - link: https://discord.gg/Enf6Z3qhVr - name: Textual Discord server -copyright: Copyright © Textualize, Inc From dcdad6230fe6b7e898239d6c1d76b9dffeb8a0c2 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 13:58:15 +0000 Subject: [PATCH 02/28] Move the blog config out into the "live site" config --- mkdocs-common.yml | 9 --------- mkdocs.yml | 11 +++++++++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/mkdocs-common.yml b/mkdocs-common.yml index 0e3c77e1b..f2b4a9d1b 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -64,15 +64,6 @@ theme: plugins: -- blog: -- rss: - match_path: blog/posts/.* - date_from_meta: - as_creation: date - categories: - - categories - - release - - tags - search: - autorefs: - mkdocstrings: diff --git a/mkdocs.yml b/mkdocs.yml index 87cf933be..00ab04b57 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,16 @@ INHERIT: mkdocs-common.yml +plugins: + - blog: + - rss: + match_path: blog/posts/.* + date_from_meta: + as_creation: date + categories: + - categories + - release + - tags + nav: - Introduction: - "index.md" From 9acbc0cd67717dd355c195f1da7863709a27abc7 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 13:58:44 +0000 Subject: [PATCH 03/28] Add a method of building a local copy of the docs This will build the docs into a directory called docs-local, sans the blog. Note the near-total copy/paste of the `nav` due to how mydocs does configuration inheritance; this is fine for now. --- .gitignore | 1 + Makefile | 2 + mkdocs-local.yml | 175 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+) create mode 100644 mkdocs-local.yml diff --git a/.gitignore b/.gitignore index f97bd86a6..9922d3d18 100644 --- a/.gitignore +++ b/.gitignore @@ -110,6 +110,7 @@ venv.bak/ # mkdocs documentation /site +/docs-local # mypy .mypy_cache/ diff --git a/Makefile b/Makefile index 9d71e69d7..dac8be349 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,8 @@ docs-serve: mkdocs serve docs-build: mkdocs build +docs-local-build: + mkdocs build --config-file mkdocs-local.yml docs-deploy: rm -rf .screenshot_cache mkdocs gh-deploy diff --git a/mkdocs-local.yml b/mkdocs-local.yml new file mode 100644 index 000000000..c922851f1 --- /dev/null +++ b/mkdocs-local.yml @@ -0,0 +1,175 @@ +INHERIT: mkdocs-common.yml + +site_dir: docs-local + +nav: + - Introduction: + - "index.md" + - "getting_started.md" + - "help.md" + - "tutorial.md" + - Guide: + - "guide/index.md" + - "guide/devtools.md" + - "guide/app.md" + - "guide/styles.md" + - "guide/CSS.md" + - "guide/design.md" + - "guide/queries.md" + - "guide/layout.md" + - "guide/events.md" + - "guide/input.md" + - "guide/actions.md" + - "guide/reactivity.md" + - "guide/widgets.md" + - "guide/animation.md" + - "guide/screens.md" + - "roadmap.md" + - Reference: + - "reference/index.md" + - CSS Types: + - "css_types/index.md" + - "css_types/border.md" + - "css_types/color.md" + - "css_types/horizontal.md" + - "css_types/integer.md" + - "css_types/name.md" + - "css_types/number.md" + - "css_types/overflow.md" + - "css_types/percentage.md" + - "css_types/scalar.md" + - "css_types/text_align.md" + - "css_types/text_style.md" + - "css_types/vertical.md" + - Events: + - "events/index.md" + - "events/blur.md" + - "events/descendant_blur.md" + - "events/descendant_focus.md" + - "events/enter.md" + - "events/focus.md" + - "events/hide.md" + - "events/key.md" + - "events/leave.md" + - "events/load.md" + - "events/mount.md" + - "events/mouse_capture.md" + - "events/click.md" + - "events/mouse_down.md" + - "events/mouse_move.md" + - "events/mouse_release.md" + - "events/mouse_scroll_down.md" + - "events/mouse_scroll_up.md" + - "events/mouse_up.md" + - "events/paste.md" + - "events/resize.md" + - "events/screen_resume.md" + - "events/screen_suspend.md" + - "events/show.md" + - Styles: + - "styles/index.md" + - "styles/align.md" + - "styles/background.md" + - "styles/border.md" + - "styles/box_sizing.md" + - "styles/color.md" + - "styles/content_align.md" + - "styles/display.md" + - "styles/dock.md" + - Grid: + - "styles/grid/index.md" + - "styles/grid/column_span.md" + - "styles/grid/grid_columns.md" + - "styles/grid/grid_gutter.md" + - "styles/grid/grid_rows.md" + - "styles/grid/grid_size.md" + - "styles/grid/row_span.md" + - "styles/height.md" + - "styles/layer.md" + - "styles/layers.md" + - "styles/layout.md" + - Links: + - "styles/links/index.md" + - "styles/links/link_background.md" + - "styles/links/link_color.md" + - "styles/links/link_hover_background.md" + - "styles/links/link_hover_color.md" + - "styles/links/link_hover_style.md" + - "styles/links/link_style.md" + - "styles/margin.md" + - "styles/max_height.md" + - "styles/max_width.md" + - "styles/min_height.md" + - "styles/min_width.md" + - "styles/offset.md" + - "styles/opacity.md" + - "styles/outline.md" + - "styles/overflow.md" + - "styles/padding.md" + - Scrollbar colors: + - "styles/scrollbar_colors/index.md" + - "styles/scrollbar_colors/scrollbar_background.md" + - "styles/scrollbar_colors/scrollbar_background_active.md" + - "styles/scrollbar_colors/scrollbar_background_hover.md" + - "styles/scrollbar_colors/scrollbar_color.md" + - "styles/scrollbar_colors/scrollbar_color_active.md" + - "styles/scrollbar_colors/scrollbar_color_hover.md" + - "styles/scrollbar_colors/scrollbar_corner_color.md" + - "styles/scrollbar_gutter.md" + - "styles/scrollbar_size.md" + - "styles/text_align.md" + - "styles/text_opacity.md" + - "styles/text_style.md" + - "styles/tint.md" + - "styles/visibility.md" + - "styles/width.md" + - Widgets: + - "widgets/button.md" + - "widgets/checkbox.md" + - "widgets/data_table.md" + - "widgets/directory_tree.md" + - "widgets/footer.md" + - "widgets/header.md" + - "widgets/index.md" + - "widgets/input.md" + - "widgets/label.md" + - "widgets/list_item.md" + - "widgets/list_view.md" + - "widgets/placeholder.md" + - "widgets/static.md" + - "widgets/text_log.md" + - "widgets/tree.md" + - API: + - "api/index.md" + - "api/app.md" + - "api/binding.md" + - "api/button.md" + - "api/checkbox.md" + - "api/color.md" + - "api/containers.md" + - "api/coordinate.md" + - "api/data_table.md" + - "api/directory_tree.md" + - "api/dom_node.md" + - "api/events.md" + - "api/footer.md" + - "api/geometry.md" + - "api/header.md" + - "api/input.md" + - "api/label.md" + - "api/list_view.md" + - "api/list_item.md" + - "api/message_pump.md" + - "api/message.md" + - "api/pilot.md" + - "api/placeholder.md" + - "api/query.md" + - "api/reactive.md" + - "api/screen.md" + - "api/static.md" + - "api/text_log.md" + - "api/timer.md" + - "api/tree.md" + - "api/tree_node.md" + - "api/walk.md" + - "api/widget.md" From e6fbe71c0475c791136579fab630c77c15342e53 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 14:05:21 +0000 Subject: [PATCH 04/28] Solve the problem of local docs and directory/index.html links See https://github.com/Textualize/textual/issues/631#issuecomment-1418960080 -- this addresses that problem pretty much perfectly. --- mkdocs-local.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs-local.yml b/mkdocs-local.yml index c922851f1..d6249854f 100644 --- a/mkdocs-local.yml +++ b/mkdocs-local.yml @@ -1,6 +1,7 @@ INHERIT: mkdocs-common.yml site_dir: docs-local +use_directory_urls: false nav: - Introduction: From a8ded8f0a6720239649574360110c7fbbfb3b8ae Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 14:28:13 +0000 Subject: [PATCH 05/28] Move some more live-site config into the correct config file --- mkdocs-common.yml | 4 +--- mkdocs.yml | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mkdocs-common.yml b/mkdocs-common.yml index f2b4a9d1b..4f1fe51f4 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -1,7 +1,6 @@ site_name: Textual -site_url: https://textual.textualize.io/ + repo_url: https://github.com/textualize/textual/ -edit_uri: edit/main/docs/ markdown_extensions: - attr_list @@ -64,7 +63,6 @@ theme: plugins: -- search: - autorefs: - mkdocstrings: custom_templates: docs/_templates diff --git a/mkdocs.yml b/mkdocs.yml index 00ab04b57..d75186c46 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,6 +1,10 @@ INHERIT: mkdocs-common.yml +site_url: https://textual.textualize.io/ +edit_uri: edit/main/docs/ + plugins: + - search: - blog: - rss: match_path: blog/posts/.* From 4e4353b2ce1c1eebe0e50d64f0df6a2d2900db91 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 16:04:52 +0000 Subject: [PATCH 06/28] Remove the dictionary example from the front page of the docs Sometimes, when building the docs, this would end up being a bit of an "empty" example in that the time taken to get the result back from the API would be so long that the output would be of the request just in progress. So we've decided to drop this from the front page. --- docs/index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/index.md b/docs/index.md index 4d1c05832..1ce69322d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -81,10 +81,6 @@ Build sophisticated user interfaces with a simple Python API. Run your apps in t ``` -```{.textual path="docs/examples/events/dictionary.py" columns="100" lines="30" press="tab,_,t,e,x,t,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_"} -``` - - ```{.textual path="docs/examples/guide/layout/combining_layouts.py" columns="100", lines="30"} ``` From aece00e1dca8fc688149c1fe47ded3b6e2601a4d Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 6 Feb 2023 16:06:50 +0000 Subject: [PATCH 07/28] Remove the keystrokes from the dictionary example in events guide As well as not being necessary for the example, it also had the problem of not actually having the input in focus (there was no press of 'tab' to kick things off) and so the other keys didn't go into the `Input` as they were supposed to. --- docs/guide/events.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/events.md b/docs/guide/events.md index 2fa5195c2..1b50d56a4 100644 --- a/docs/guide/events.md +++ b/docs/guide/events.md @@ -183,7 +183,7 @@ Let's look at an example which looks up word definitions from an [api](https://d === "Output" - ```{.textual path="docs/examples/events/dictionary.py" press="t,e,x,t,_,_,_,_,_,_,_,_,_,_,_"} + ```{.textual path="docs/examples/events/dictionary.py"} ``` Note the highlighted line in the above code which calls `asyncio.create_task` to run a coroutine in the background. Without this you would find typing in to the text box to be unresponsive. From a8aaa7ad820afab39202f5a89ad0cb9d755214d1 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 10:06:05 +0000 Subject: [PATCH 08/28] Experiment with the mkdocs offline plugin In doing so, don't emphasise online docs over offline, but instead make this about an online/offline split and both are as important as each other. --- .gitignore | 2 +- Makefile | 8 ++++---- mkdocs-common.yml | 18 +++++++++--------- mkdocs-local.yml => mkdocs-offline.yml | 6 ++++-- mkdocs.yml => mkdocs-online.yml | 1 - 5 files changed, 18 insertions(+), 17 deletions(-) rename mkdocs-local.yml => mkdocs-offline.yml (99%) rename mkdocs.yml => mkdocs-online.yml (99%) diff --git a/.gitignore b/.gitignore index 9922d3d18..61f16442a 100644 --- a/.gitignore +++ b/.gitignore @@ -110,7 +110,7 @@ venv.bak/ # mkdocs documentation /site -/docs-local +/docs-offline # mypy .mypy_cache/ diff --git a/Makefile b/Makefile index dac8be349..44a28966a 100644 --- a/Makefile +++ b/Makefile @@ -12,11 +12,11 @@ format-check: black --check src docs-serve: rm -rf .screenshot_cache - mkdocs serve + mkdocs serve --config-file mkdocs-online.yml docs-build: - mkdocs build -docs-local-build: - mkdocs build --config-file mkdocs-local.yml + mkdocs build --config-file mkdocs-online.yml +docs-build-offline: + mkdocs build --config-file mkdocs-offline.yml docs-deploy: rm -rf .screenshot_cache mkdocs gh-deploy diff --git a/mkdocs-common.yml b/mkdocs-common.yml index 4f1fe51f4..995a1aef9 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -62,12 +62,12 @@ theme: name: Switch to light mode plugins: - -- autorefs: -- mkdocstrings: - custom_templates: docs/_templates - default_handler: python - handlers: + - search: + - autorefs: + - mkdocstrings: + custom_templates: docs/_templates + default_handler: python + handlers: python: options: show_root_heading: true @@ -79,9 +79,9 @@ plugins: - "!^can_replace$" watch: - src/textual -- exclude: - glob: - - "**/_template.md" + - exclude: + glob: + - "**/_template.md" extra_css: diff --git a/mkdocs-local.yml b/mkdocs-offline.yml similarity index 99% rename from mkdocs-local.yml rename to mkdocs-offline.yml index d6249854f..6a8a5b37e 100644 --- a/mkdocs-local.yml +++ b/mkdocs-offline.yml @@ -1,7 +1,9 @@ INHERIT: mkdocs-common.yml -site_dir: docs-local -use_directory_urls: false +plugins: + - offline + +site_dir: docs-offline nav: - Introduction: diff --git a/mkdocs.yml b/mkdocs-online.yml similarity index 99% rename from mkdocs.yml rename to mkdocs-online.yml index d75186c46..2e4f2d1ca 100644 --- a/mkdocs.yml +++ b/mkdocs-online.yml @@ -4,7 +4,6 @@ site_url: https://textual.textualize.io/ edit_uri: edit/main/docs/ plugins: - - search: - blog: - rss: match_path: blog/posts/.* From 496667abedf7340cc217db75bfc924961f4c7280 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 10:29:20 +0000 Subject: [PATCH 09/28] Tidy up the Makefile a bit This removes the duplication of the screen cache cleaning, and also turns it into a target so you can do it yourself from the command line if needed. It also marks all the phony targets as such (that is, targets that aren't actually items in the filesystem). --- Makefile | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 44a28966a..c72c8d742 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,43 @@ +.PHONY: test test: pytest --cov-report term-missing --cov=textual tests/ -vv + +.PHONY: unit-test unit-test: pytest --cov-report term-missing --cov=textual tests/ -vv -m "not integration_test" + +.PHONY: test-snapshot-update test-snapshot-update: pytest --cov-report term-missing --cov=textual tests/ -vv --snapshot-update + +.PHONY: typecheck typecheck: mypy src/textual + +.PHONY: format format: black src + +.PHONY: format-check format-check: black --check src -docs-serve: + +.PHONY: clean-screenshot-cache +clean-screenshot-cache: rm -rf .screenshot_cache + +.PHONY: docs-serve +docs-serve: clean-screenshot-cache mkdocs serve --config-file mkdocs-online.yml + +.PHONY: docs-build docs-build: mkdocs build --config-file mkdocs-online.yml + +.PHONY: docs-build-offline docs-build-offline: mkdocs build --config-file mkdocs-offline.yml -docs-deploy: - rm -rf .screenshot_cache + +.PHONY: docs-deploy +docs-deploy: clean-screenshot-cache mkdocs gh-deploy From 19bde351a650b2a8ff5326405ebc66184679c6d9 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 10:52:46 +0000 Subject: [PATCH 10/28] Get search appearing again Search had gone from everywhere. Turns out that there's a very particular way you have to specify the plugins in YAML if you want to use INHERIT. --- mkdocs-common.yml | 36 ++++++++++++++++++------------------ mkdocs-offline.yml | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mkdocs-common.yml b/mkdocs-common.yml index 995a1aef9..231012723 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -62,26 +62,26 @@ theme: name: Switch to light mode plugins: - - search: - - autorefs: - - mkdocstrings: - custom_templates: docs/_templates - default_handler: python - handlers: - python: - options: - show_root_heading: true - show_root_full_path: false - show_source: false - filters: - - "!^_" - - "^__init__$" - - "!^can_replace$" + search: + autorefs: + mkdocstrings: + custom_templates: docs/_templates + default_handler: python + handlers: + python: + options: + show_root_heading: true + show_root_full_path: false + show_source: false + filters: + - "!^_" + - "^__init__$" + - "!^can_replace$" watch: - src/textual - - exclude: - glob: - - "**/_template.md" + exclude: + glob: + - "**/_template.md" extra_css: diff --git a/mkdocs-offline.yml b/mkdocs-offline.yml index 6a8a5b37e..417646d1d 100644 --- a/mkdocs-offline.yml +++ b/mkdocs-offline.yml @@ -1,7 +1,7 @@ INHERIT: mkdocs-common.yml plugins: - - offline + offline: site_dir: docs-offline From f2f33233d9ae53f240874539d05f1396af749498 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 13:25:12 +0000 Subject: [PATCH 11/28] Upgrade mkdocs-material --- poetry.lock | 168 +++++++++++++++++++++++++++++++++++++++---------- pyproject.toml | 2 +- 2 files changed, 135 insertions(+), 35 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7cd75899a..178f54a9c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -654,14 +654,14 @@ socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "identify" -version = "2.5.15" +version = "2.5.17" description = "File identification library for Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "identify-2.5.15-py2.py3-none-any.whl", hash = "sha256:1f4b36c5f50f3f950864b2a047308743f064eaa6f6645da5e5c780d1c7125487"}, - {file = "identify-2.5.15.tar.gz", hash = "sha256:c22aa206f47cc40486ecf585d27ad5f40adbfc494a3fa41dc3ed0499a23b123f"}, + {file = "identify-2.5.17-py2.py3-none-any.whl", hash = "sha256:7d526dd1283555aafcc91539acc061d8f6f59adb0a7bba462735b0a318bff7ed"}, + {file = "identify-2.5.17.tar.gz", hash = "sha256:93cc61a861052de9d4c541a7acb7e3dcc9c11b398a2144f6e52ae5285f5f4f06"}, ] [package.extras] @@ -920,23 +920,25 @@ mkdocs = "*" [[package]] name = "mkdocs-material" -version = "8.5.11" +version = "9.0.11" description = "Documentation that simply works" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "mkdocs_material-8.5.11-py3-none-any.whl", hash = "sha256:c907b4b052240a5778074a30a78f31a1f8ff82d7012356dc26898b97559f082e"}, - {file = "mkdocs_material-8.5.11.tar.gz", hash = "sha256:b0ea0513fd8cab323e8a825d6692ea07fa83e917bb5db042e523afecc7064ab7"}, + {file = "mkdocs_material-9.0.11-py3-none-any.whl", hash = "sha256:90a1e1ed41e90de5d0ab97c874b7bf6af488d0faf4aaea8e5868e01f3f1ed923"}, + {file = "mkdocs_material-9.0.11.tar.gz", hash = "sha256:aff49e4ce622a107ed563b3a6a37dc3660a45a0e4d9e7d4d2c13ce9dc02a7faf"}, ] [package.dependencies] -jinja2 = ">=3.0.2" +colorama = ">=0.4" +jinja2 = ">=3.0" markdown = ">=3.2" -mkdocs = ">=1.4.0" +mkdocs = ">=1.4.2" mkdocs-material-extensions = ">=1.1" -pygments = ">=2.12" -pymdown-extensions = ">=9.4" +pygments = ">=2.14" +pymdown-extensions = ">=9.9.1" +regex = ">=2022.4.24" requests = ">=2.26" [[package]] @@ -1215,14 +1217,14 @@ reports = ["lxml"] [[package]] name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] @@ -1541,6 +1543,104 @@ files = [ [package.dependencies] pyyaml = "*" +[[package]] +name = "regex" +version = "2022.10.31" +description = "Alternative regular expression module, to replace re." +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f"}, + {file = "regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90"}, + {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144"}, + {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc"}, + {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66"}, + {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af"}, + {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc"}, + {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66"}, + {file = "regex-2022.10.31-cp310-cp310-win32.whl", hash = "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1"}, + {file = "regex-2022.10.31-cp310-cp310-win_amd64.whl", hash = "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5"}, + {file = "regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe"}, + {file = "regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542"}, + {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7"}, + {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e"}, + {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c"}, + {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1"}, + {file = "regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4"}, + {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f"}, + {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5"}, + {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c"}, + {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c"}, + {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7"}, + {file = "regex-2022.10.31-cp311-cp311-win32.whl", hash = "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af"}, + {file = "regex-2022.10.31-cp311-cp311-win_amd64.whl", hash = "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61"}, + {file = "regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5"}, + {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443"}, + {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742"}, + {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e"}, + {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa"}, + {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e"}, + {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4"}, + {file = "regex-2022.10.31-cp36-cp36m-win32.whl", hash = "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066"}, + {file = "regex-2022.10.31-cp36-cp36m-win_amd64.whl", hash = "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6"}, + {file = "regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11"}, + {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec"}, + {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9"}, + {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1"}, + {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8"}, + {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5"}, + {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95"}, + {file = "regex-2022.10.31-cp37-cp37m-win32.whl", hash = "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394"}, + {file = "regex-2022.10.31-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0"}, + {file = "regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d"}, + {file = "regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6"}, + {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318"}, + {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff"}, + {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a"}, + {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73"}, + {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d"}, + {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c"}, + {file = "regex-2022.10.31-cp38-cp38-win32.whl", hash = "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc"}, + {file = "regex-2022.10.31-cp38-cp38-win_amd64.whl", hash = "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453"}, + {file = "regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49"}, + {file = "regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7"}, + {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4"}, + {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5"}, + {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1"}, + {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8"}, + {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8"}, + {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892"}, + {file = "regex-2022.10.31-cp39-cp39-win32.whl", hash = "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1"}, + {file = "regex-2022.10.31-cp39-cp39-win_amd64.whl", hash = "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692"}, + {file = "regex-2022.10.31.tar.gz", hash = "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"}, +] + [[package]] name = "requests" version = "2.28.2" @@ -1583,34 +1683,34 @@ idna2008 = ["idna"] [[package]] name = "rich" -version = "13.2.0" +version = "13.3.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.2.0-py3-none-any.whl", hash = "sha256:7c963f0d03819221e9ac561e1bc866e3f95a02248c1234daa48954e6d381c003"}, - {file = "rich-13.2.0.tar.gz", hash = "sha256:f1a00cdd3eebf999a15d85ec498bfe0b1a77efe9b34f645768a54132ef444ac5"}, + {file = "rich-13.3.1-py3-none-any.whl", hash = "sha256:8aa57747f3fc3e977684f0176a88e789be314a99f99b43b75d1e9cb5dc6db9e9"}, + {file = "rich-13.3.1.tar.gz", hash = "sha256:125d96d20c92b946b983d0d392b84ff945461e5a06d3867e9f9e575f8697b67f"}, ] [package.dependencies] markdown-it-py = ">=2.1.0,<3.0.0" -pygments = ">=2.6.0,<3.0.0" +pygments = ">=2.14.0,<3.0.0" typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} [package.extras] -jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] +jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "setuptools" -version = "66.1.1" +version = "67.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-66.1.1-py3-none-any.whl", hash = "sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b"}, - {file = "setuptools-66.1.1.tar.gz", hash = "sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8"}, + {file = "setuptools-67.2.0-py3-none-any.whl", hash = "sha256:16ccf598aab3b506593c17378473978908a2734d7336755a8769b480906bec1c"}, + {file = "setuptools-67.2.0.tar.gz", hash = "sha256:b440ee5f7e607bb8c9de15259dba2583dd41a38879a7abc1d43a71c59524da48"}, ] [package.extras] @@ -1837,14 +1937,14 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.17.1" +version = "20.18.0" description = "Virtual Python Environment builder" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "virtualenv-20.17.1-py3-none-any.whl", hash = "sha256:ce3b1684d6e1a20a3e5ed36795a97dfc6af29bc3970ca8dab93e11ac6094b3c4"}, - {file = "virtualenv-20.17.1.tar.gz", hash = "sha256:f8b927684efc6f1cc206c9db297a570ab9ad0e51c16fa9e45487d36d1905c058"}, + {file = "virtualenv-20.18.0-py3-none-any.whl", hash = "sha256:9d61e4ec8d2c0345dab329fb825eb05579043766a4b26a2f66b28948de68c722"}, + {file = "virtualenv-20.18.0.tar.gz", hash = "sha256:f262457a4d7298a6b733b920a196bf8b46c8af15bf1fd9da7142995eff15118e"}, ] [package.dependencies] @@ -1854,8 +1954,8 @@ importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.8\""} platformdirs = ">=2.4,<3" [package.extras] -docs = ["proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-argparse (>=0.3.2)", "sphinx-rtd-theme (>=1)", "towncrier (>=22.8)"] -testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23)", "pytest (>=7.2.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"] [[package]] name = "watchdog" @@ -1989,18 +2089,18 @@ typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [[package]] name = "zipp" -version = "3.11.0" +version = "3.12.1" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "zipp-3.11.0-py3-none-any.whl", hash = "sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa"}, - {file = "zipp-3.11.0.tar.gz", hash = "sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766"}, + {file = "zipp-3.12.1-py3-none-any.whl", hash = "sha256:6c4fe274b8f85ec73c37a8e4e3fa00df9fb9335da96fb789e3b96b318e5097b3"}, + {file = "zipp-3.12.1.tar.gz", hash = "sha256:a3cac813d40993596b39ea9e93a18e8a2076d5c378b8bc88ec32ab264e04ad02"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [extras] @@ -2009,4 +2109,4 @@ dev = ["aiohttp", "click", "msgpack"] [metadata] lock-version = "2.0" python-versions = "^3.7" -content-hash = "b70dc64a3c9e7a7b765252f5dd1a5de8ed6efacd0695cde32ff983b14ec55ca6" +content-hash = "8b7c3330ea6ad356b3d0c2e0ee7a2bea7674b482982dc57fe36e88638ca0b4ce" diff --git a/pyproject.toml b/pyproject.toml index 6d283c933..3bfc8dbe4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,7 @@ mypy = "^0.990" pytest-cov = "^2.12.1" mkdocs = "^1.3.0" mkdocstrings = {extras = ["python"], version = "^0.20.0"} -mkdocs-material = "^8.2.15" +mkdocs-material = "^9.0.11" pre-commit = "^2.13.0" pytest-aiohttp = "^1.0.4" time-machine = "^2.6.0" From 45af25a248afc509b697612283cf14844959f972 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 13:25:39 +0000 Subject: [PATCH 12/28] Use the privacy plugin when building the offline docs This has the effect of bundling up a bunch of files that would otherwise be pulled in from the net on the client side. As well as enhancing the viewer's privacy, it also means that we increase someone's ability to view documentation locally without the need for any sort of working net connection. --- mkdocs-offline.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs-offline.yml b/mkdocs-offline.yml index 417646d1d..16b3d7993 100644 --- a/mkdocs-offline.yml +++ b/mkdocs-offline.yml @@ -2,6 +2,7 @@ INHERIT: mkdocs-common.yml plugins: offline: + privacy: site_dir: docs-offline From fcd84c564c107ccadf47079dbe03afb8e44fee60 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Tue, 7 Feb 2023 16:46:34 +0000 Subject: [PATCH 13/28] Add a build command that also builds offline docs Also include them in the source tarball. --- Makefile | 4 ++++ pyproject.toml | 1 + 2 files changed, 5 insertions(+) diff --git a/Makefile b/Makefile index c72c8d742..d1fab0705 100644 --- a/Makefile +++ b/Makefile @@ -41,3 +41,7 @@ docs-build-offline: .PHONY: docs-deploy docs-deploy: clean-screenshot-cache mkdocs gh-deploy + +.PHONY: build +build: docs-build-offline + poetry build diff --git a/pyproject.toml b/pyproject.toml index 3bfc8dbe4..4dc9fedbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ classifiers = [ include = [ "src/textual/py.typed", { path = "docs/examples", format = "sdist" }, + { path = "docs-offline/**/*", format = "sdist" }, { path = "tests", format = "sdist" } ] From e9fab413779a6f1e01b5b8fbdbff380fb29f7fc9 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 08:24:08 +0000 Subject: [PATCH 14/28] Relock Updating mkdocs insiders' on my personal machine so I can test building docs there and it wanted to relock again. --- poetry.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 178f54a9c..cf9699dca 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1280,22 +1280,22 @@ files = [ [[package]] name = "platformdirs" -version = "2.6.2" +version = "3.0.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-2.6.2-py3-none-any.whl", hash = "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490"}, - {file = "platformdirs-2.6.2.tar.gz", hash = "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2"}, + {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, + {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, ] [package.dependencies] typing-extensions = {version = ">=4.4", markers = "python_version < \"3.8\""} [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -1937,21 +1937,21 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "virtualenv" -version = "20.18.0" +version = "20.19.0" description = "Virtual Python Environment builder" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.18.0-py3-none-any.whl", hash = "sha256:9d61e4ec8d2c0345dab329fb825eb05579043766a4b26a2f66b28948de68c722"}, - {file = "virtualenv-20.18.0.tar.gz", hash = "sha256:f262457a4d7298a6b733b920a196bf8b46c8af15bf1fd9da7142995eff15118e"}, + {file = "virtualenv-20.19.0-py3-none-any.whl", hash = "sha256:54eb59e7352b573aa04d53f80fc9736ed0ad5143af445a1e539aada6eb947dd1"}, + {file = "virtualenv-20.19.0.tar.gz", hash = "sha256:37a640ba82ed40b226599c522d411e4be5edb339a0c0de030c0dc7b646d61590"}, ] [package.dependencies] distlib = ">=0.3.6,<1" filelock = ">=3.4.1,<4" importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.8\""} -platformdirs = ">=2.4,<3" +platformdirs = ">=2.4,<4" [package.extras] docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] From 4055373725165495153910d74561ef3e1be2c3ba Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 08:24:50 +0000 Subject: [PATCH 15/28] Add a Makefile target for cleaning up the offline docs Sometimes I want to be able to test from a fresh start, so this will be helpful. --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index d1fab0705..cdc58649e 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,10 @@ docs-build: docs-build-offline: mkdocs build --config-file mkdocs-offline.yml +.PHONY: clean-offline-docs +clean-offline-docs: + rm -rf docs-offline + .PHONY: docs-deploy docs-deploy: clean-screenshot-cache mkdocs gh-deploy From 9500fa925a49c90bb7ad603f1c8a81deb6bf7cd9 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 08:26:34 +0000 Subject: [PATCH 16/28] Add a Makefile target that cleans everything cleanable --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index cdc58649e..08665bd2c 100644 --- a/Makefile +++ b/Makefile @@ -49,3 +49,6 @@ docs-deploy: clean-screenshot-cache .PHONY: build build: docs-build-offline poetry build + +.PHONY: clean +clean: clean-screenshot-cache clean-offline-docs From fb5346c8943c493758b0213113d0e88617be5579 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 08:40:47 +0000 Subject: [PATCH 17/28] Don't show the repository stats in offline mode They require a connection, which isn't very offline... --- mkdocs-common.yml | 2 -- mkdocs-online.yml | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mkdocs-common.yml b/mkdocs-common.yml index 231012723..5b21dd4fc 100644 --- a/mkdocs-common.yml +++ b/mkdocs-common.yml @@ -1,7 +1,5 @@ site_name: Textual -repo_url: https://github.com/textualize/textual/ - markdown_extensions: - attr_list - pymdownx.emoji: diff --git a/mkdocs-online.yml b/mkdocs-online.yml index 2e4f2d1ca..57b7e98f5 100644 --- a/mkdocs-online.yml +++ b/mkdocs-online.yml @@ -1,5 +1,6 @@ INHERIT: mkdocs-common.yml +repo_url: https://github.com/textualize/textual/ site_url: https://textual.textualize.io/ edit_uri: edit/main/docs/ From 93f449366fcb6f12585d885ba9c407086cc58f2e Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 08:41:16 +0000 Subject: [PATCH 18/28] Modify blog/rss plugin config to make search work again Inheriting config for mkdocs requires that you use key/value pairs for the plugins not a list of objects. --- mkdocs-online.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mkdocs-online.yml b/mkdocs-online.yml index 57b7e98f5..274f90ee9 100644 --- a/mkdocs-online.yml +++ b/mkdocs-online.yml @@ -5,15 +5,15 @@ site_url: https://textual.textualize.io/ edit_uri: edit/main/docs/ plugins: - - blog: - - rss: - match_path: blog/posts/.* - date_from_meta: - as_creation: date - categories: - - categories - - release - - tags + blog: + rss: + match_path: blog/posts/.* + date_from_meta: + as_creation: date + categories: + - categories + - release + - tags nav: - Introduction: From fbdbd8928dd39ce14ae385ff27ba58ce48997733 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 09:46:47 +0000 Subject: [PATCH 19/28] Always `poetry run` commands that need a venv It's a `Makefile` so it's handy to not have to think about if you need to be within a poetry venv when running `make`. This commit adds a `poetry run` before any command that needs the venv. This means that people who aren't in a venv can just `make something` and it'll "just work", and the same is true for those who are in a venv. --- Makefile | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 08665bd2c..22c059f59 100644 --- a/Makefile +++ b/Makefile @@ -1,26 +1,28 @@ +run := poetry run + .PHONY: test test: - pytest --cov-report term-missing --cov=textual tests/ -vv + $(run) pytest --cov-report term-missing --cov=textual tests/ -vv .PHONY: unit-test unit-test: - pytest --cov-report term-missing --cov=textual tests/ -vv -m "not integration_test" + $(run) pytest --cov-report term-missing --cov=textual tests/ -vv -m "not integration_test" .PHONY: test-snapshot-update test-snapshot-update: - pytest --cov-report term-missing --cov=textual tests/ -vv --snapshot-update + $(run) pytest --cov-report term-missing --cov=textual tests/ -vv --snapshot-update .PHONY: typecheck typecheck: - mypy src/textual + $(run) mypy src/textual .PHONY: format format: - black src + $(run) black src .PHONY: format-check format-check: - black --check src + $(run) black --check src .PHONY: clean-screenshot-cache clean-screenshot-cache: @@ -28,15 +30,15 @@ clean-screenshot-cache: .PHONY: docs-serve docs-serve: clean-screenshot-cache - mkdocs serve --config-file mkdocs-online.yml + $(run) mkdocs serve --config-file mkdocs-online.yml .PHONY: docs-build docs-build: - mkdocs build --config-file mkdocs-online.yml + $(run) mkdocs build --config-file mkdocs-online.yml .PHONY: docs-build-offline docs-build-offline: - mkdocs build --config-file mkdocs-offline.yml + $(run) mkdocs build --config-file mkdocs-offline.yml .PHONY: clean-offline-docs clean-offline-docs: @@ -44,7 +46,7 @@ clean-offline-docs: .PHONY: docs-deploy docs-deploy: clean-screenshot-cache - mkdocs gh-deploy + $(run) mkdocs gh-deploy .PHONY: build build: docs-build-offline From 35be18f0e6524a88e31450ba26c1126a7c1308fd Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 10:00:48 +0000 Subject: [PATCH 20/28] Explain the elaborate include path for docs in pyproject.toml While it's still fresh in my mind as to why I wrote it like this, comment to the effect so I'm not surprised by it in the future, or so someone else reading it can know what the thinking was here. --- pyproject.toml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4dc9fedbf..086780ec1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,8 +24,13 @@ classifiers = [ include = [ "src/textual/py.typed", { path = "docs/examples", format = "sdist" }, - { path = "docs-offline/**/*", format = "sdist" }, - { path = "tests", format = "sdist" } + { path = "tests", format = "sdist" }, + # The reason for the slightly convoluted path specification here is that + # poetry populates the exclude list with the content of .gitignore, and + # it also seems like exclude tumps include. So here we specify that we + # want to package up the content of the docs-offline directory in a way + # that works around that. + { path = "docs-offline/**/*", format = "sdist" } ] [tool.poetry.scripts] From 5e172dd6357d7d35635ae6b16db3cea619b07592 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 10:02:02 +0000 Subject: [PATCH 21/28] Fully exclude the blog files from the offline docs build The blog files were still getting included and packages, just not linked to from the resulting "site". This meant that the final tarball was much bigger than it needed to be, due to animated gifs and movs an the like. This brings the tarball down from around 27M to 6.4M. --- mkdocs-offline.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mkdocs-offline.yml b/mkdocs-offline.yml index 16b3d7993..228d03b9f 100644 --- a/mkdocs-offline.yml +++ b/mkdocs-offline.yml @@ -3,6 +3,10 @@ INHERIT: mkdocs-common.yml plugins: offline: privacy: + exclude: + glob: + - "**/_template.md" + - blog/* site_dir: docs-offline From a295c5f9687ce4ce2ddcae373d6889ae48bfe351 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 14:36:56 +0000 Subject: [PATCH 22/28] Work towards having a single nav file The idea here is that there is a single file for the nav for all the docs, both online and offline. The nav will be the full online nav in all its blog glory, and then the build system will strip out the nav items relating to the blog when building the offline version. There's a wrinkle or two still in here; the main one being that when doing a docs-serve, it seems that the cleaning up of the online nav doesn't happen when you Ctrl-C out of the server. I'm not 100% sure of the cause of this (there could be a couple of different reasons). For now... I'm ensuring that the online/offline nav files are excluded from git. It would be nice to find out how best to always ensure that the online nav file is removed so nobody attempting to update the docs gets confused about what to edit. --- .gitignore | 2 + Makefile | 25 +++++-- mkdocs-nav.yml | 175 ++++++++++++++++++++++++++++++++++++++++++++ mkdocs-offline.yml | 172 -------------------------------------------- mkdocs-online.yml | 176 --------------------------------------------- 5 files changed, 196 insertions(+), 354 deletions(-) create mode 100644 mkdocs-nav.yml diff --git a/.gitignore b/.gitignore index 61f16442a..d0620ea4a 100644 --- a/.gitignore +++ b/.gitignore @@ -111,6 +111,8 @@ venv.bak/ # mkdocs documentation /site /docs-offline +/mkdocs-nav-online.yml +/mkdocs-nav-offline.yml # mypy .mypy_cache/ diff --git a/Makefile b/Makefile index 22c059f59..788471e86 100644 --- a/Makefile +++ b/Makefile @@ -28,17 +28,30 @@ format-check: clean-screenshot-cache: rm -rf .screenshot_cache +.PHONY: docs-offline-nav +docs-offline-nav: + echo "INHERIT: mkdocs-offline.yml" > mkdocs-nav-offline.yml + grep -v "\- \"*[Bb]log" mkdocs-nav.yml >> mkdocs-nav-offline.yml + +.PHONY: docs-online-nav +docs-online-nav: + echo "INHERIT: mkdocs-online.yml" > mkdocs-nav-online.yml + cat mkdocs-nav.yml >> mkdocs-nav-online.yml + .PHONY: docs-serve -docs-serve: clean-screenshot-cache - $(run) mkdocs serve --config-file mkdocs-online.yml +docs-serve: clean-screenshot-cache docs-online-nav + $(run) mkdocs serve --config-file mkdocs-nav-online.yml + rm -f mkdocs-nav-online.yml .PHONY: docs-build -docs-build: - $(run) mkdocs build --config-file mkdocs-online.yml +docs-build: docs-online-nav + $(run) mkdocs build --config-file mkdocs-nav-online.yml + rm -f mkdocs-nav-online.yml .PHONY: docs-build-offline -docs-build-offline: - $(run) mkdocs build --config-file mkdocs-offline.yml +docs-build-offline: docs-offline-nav + $(run) mkdocs build --config-file mkdocs-nav-offline.yml + rm -f mkdocs-nav-offline.yml .PHONY: clean-offline-docs clean-offline-docs: diff --git a/mkdocs-nav.yml b/mkdocs-nav.yml new file mode 100644 index 000000000..e453e9276 --- /dev/null +++ b/mkdocs-nav.yml @@ -0,0 +1,175 @@ +nav: + - Introduction: + - "index.md" + - "getting_started.md" + - "help.md" + - "tutorial.md" + - Guide: + - "guide/index.md" + - "guide/devtools.md" + - "guide/app.md" + - "guide/styles.md" + - "guide/CSS.md" + - "guide/design.md" + - "guide/queries.md" + - "guide/layout.md" + - "guide/events.md" + - "guide/input.md" + - "guide/actions.md" + - "guide/reactivity.md" + - "guide/widgets.md" + - "guide/animation.md" + - "guide/screens.md" + - "roadmap.md" + - Reference: + - "reference/index.md" + - CSS Types: + - "css_types/index.md" + - "css_types/border.md" + - "css_types/color.md" + - "css_types/horizontal.md" + - "css_types/integer.md" + - "css_types/name.md" + - "css_types/number.md" + - "css_types/overflow.md" + - "css_types/percentage.md" + - "css_types/scalar.md" + - "css_types/text_align.md" + - "css_types/text_style.md" + - "css_types/vertical.md" + - Events: + - "events/index.md" + - "events/blur.md" + - "events/descendant_blur.md" + - "events/descendant_focus.md" + - "events/enter.md" + - "events/focus.md" + - "events/hide.md" + - "events/key.md" + - "events/leave.md" + - "events/load.md" + - "events/mount.md" + - "events/mouse_capture.md" + - "events/click.md" + - "events/mouse_down.md" + - "events/mouse_move.md" + - "events/mouse_release.md" + - "events/mouse_scroll_down.md" + - "events/mouse_scroll_up.md" + - "events/mouse_up.md" + - "events/paste.md" + - "events/resize.md" + - "events/screen_resume.md" + - "events/screen_suspend.md" + - "events/show.md" + - Styles: + - "styles/index.md" + - "styles/align.md" + - "styles/background.md" + - "styles/border.md" + - "styles/box_sizing.md" + - "styles/color.md" + - "styles/content_align.md" + - "styles/display.md" + - "styles/dock.md" + - Grid: + - "styles/grid/index.md" + - "styles/grid/column_span.md" + - "styles/grid/grid_columns.md" + - "styles/grid/grid_gutter.md" + - "styles/grid/grid_rows.md" + - "styles/grid/grid_size.md" + - "styles/grid/row_span.md" + - "styles/height.md" + - "styles/layer.md" + - "styles/layers.md" + - "styles/layout.md" + - Links: + - "styles/links/index.md" + - "styles/links/link_background.md" + - "styles/links/link_color.md" + - "styles/links/link_hover_background.md" + - "styles/links/link_hover_color.md" + - "styles/links/link_hover_style.md" + - "styles/links/link_style.md" + - "styles/margin.md" + - "styles/max_height.md" + - "styles/max_width.md" + - "styles/min_height.md" + - "styles/min_width.md" + - "styles/offset.md" + - "styles/opacity.md" + - "styles/outline.md" + - "styles/overflow.md" + - "styles/padding.md" + - Scrollbar colors: + - "styles/scrollbar_colors/index.md" + - "styles/scrollbar_colors/scrollbar_background.md" + - "styles/scrollbar_colors/scrollbar_background_active.md" + - "styles/scrollbar_colors/scrollbar_background_hover.md" + - "styles/scrollbar_colors/scrollbar_color.md" + - "styles/scrollbar_colors/scrollbar_color_active.md" + - "styles/scrollbar_colors/scrollbar_color_hover.md" + - "styles/scrollbar_colors/scrollbar_corner_color.md" + - "styles/scrollbar_gutter.md" + - "styles/scrollbar_size.md" + - "styles/text_align.md" + - "styles/text_opacity.md" + - "styles/text_style.md" + - "styles/tint.md" + - "styles/visibility.md" + - "styles/width.md" + - Widgets: + - "widgets/button.md" + - "widgets/checkbox.md" + - "widgets/data_table.md" + - "widgets/directory_tree.md" + - "widgets/footer.md" + - "widgets/header.md" + - "widgets/index.md" + - "widgets/input.md" + - "widgets/label.md" + - "widgets/list_item.md" + - "widgets/list_view.md" + - "widgets/placeholder.md" + - "widgets/static.md" + - "widgets/text_log.md" + - "widgets/tree.md" + - API: + - "api/index.md" + - "api/app.md" + - "api/binding.md" + - "api/button.md" + - "api/checkbox.md" + - "api/color.md" + - "api/containers.md" + - "api/coordinate.md" + - "api/data_table.md" + - "api/directory_tree.md" + - "api/dom_node.md" + - "api/events.md" + - "api/footer.md" + - "api/geometry.md" + - "api/header.md" + - "api/input.md" + - "api/label.md" + - "api/list_view.md" + - "api/list_item.md" + - "api/message_pump.md" + - "api/message.md" + - "api/pilot.md" + - "api/placeholder.md" + - "api/query.md" + - "api/reactive.md" + - "api/screen.md" + - "api/scroll_view.md" + - "api/static.md" + - "api/strip.md" + - "api/text_log.md" + - "api/timer.md" + - "api/tree.md" + - "api/tree_node.md" + - "api/walk.md" + - "api/widget.md" + - "Blog": + - blog/index.md diff --git a/mkdocs-offline.yml b/mkdocs-offline.yml index 228d03b9f..0d367af42 100644 --- a/mkdocs-offline.yml +++ b/mkdocs-offline.yml @@ -9,175 +9,3 @@ plugins: - blog/* site_dir: docs-offline - -nav: - - Introduction: - - "index.md" - - "getting_started.md" - - "help.md" - - "tutorial.md" - - Guide: - - "guide/index.md" - - "guide/devtools.md" - - "guide/app.md" - - "guide/styles.md" - - "guide/CSS.md" - - "guide/design.md" - - "guide/queries.md" - - "guide/layout.md" - - "guide/events.md" - - "guide/input.md" - - "guide/actions.md" - - "guide/reactivity.md" - - "guide/widgets.md" - - "guide/animation.md" - - "guide/screens.md" - - "roadmap.md" - - Reference: - - "reference/index.md" - - CSS Types: - - "css_types/index.md" - - "css_types/border.md" - - "css_types/color.md" - - "css_types/horizontal.md" - - "css_types/integer.md" - - "css_types/name.md" - - "css_types/number.md" - - "css_types/overflow.md" - - "css_types/percentage.md" - - "css_types/scalar.md" - - "css_types/text_align.md" - - "css_types/text_style.md" - - "css_types/vertical.md" - - Events: - - "events/index.md" - - "events/blur.md" - - "events/descendant_blur.md" - - "events/descendant_focus.md" - - "events/enter.md" - - "events/focus.md" - - "events/hide.md" - - "events/key.md" - - "events/leave.md" - - "events/load.md" - - "events/mount.md" - - "events/mouse_capture.md" - - "events/click.md" - - "events/mouse_down.md" - - "events/mouse_move.md" - - "events/mouse_release.md" - - "events/mouse_scroll_down.md" - - "events/mouse_scroll_up.md" - - "events/mouse_up.md" - - "events/paste.md" - - "events/resize.md" - - "events/screen_resume.md" - - "events/screen_suspend.md" - - "events/show.md" - - Styles: - - "styles/index.md" - - "styles/align.md" - - "styles/background.md" - - "styles/border.md" - - "styles/box_sizing.md" - - "styles/color.md" - - "styles/content_align.md" - - "styles/display.md" - - "styles/dock.md" - - Grid: - - "styles/grid/index.md" - - "styles/grid/column_span.md" - - "styles/grid/grid_columns.md" - - "styles/grid/grid_gutter.md" - - "styles/grid/grid_rows.md" - - "styles/grid/grid_size.md" - - "styles/grid/row_span.md" - - "styles/height.md" - - "styles/layer.md" - - "styles/layers.md" - - "styles/layout.md" - - Links: - - "styles/links/index.md" - - "styles/links/link_background.md" - - "styles/links/link_color.md" - - "styles/links/link_hover_background.md" - - "styles/links/link_hover_color.md" - - "styles/links/link_hover_style.md" - - "styles/links/link_style.md" - - "styles/margin.md" - - "styles/max_height.md" - - "styles/max_width.md" - - "styles/min_height.md" - - "styles/min_width.md" - - "styles/offset.md" - - "styles/opacity.md" - - "styles/outline.md" - - "styles/overflow.md" - - "styles/padding.md" - - Scrollbar colors: - - "styles/scrollbar_colors/index.md" - - "styles/scrollbar_colors/scrollbar_background.md" - - "styles/scrollbar_colors/scrollbar_background_active.md" - - "styles/scrollbar_colors/scrollbar_background_hover.md" - - "styles/scrollbar_colors/scrollbar_color.md" - - "styles/scrollbar_colors/scrollbar_color_active.md" - - "styles/scrollbar_colors/scrollbar_color_hover.md" - - "styles/scrollbar_colors/scrollbar_corner_color.md" - - "styles/scrollbar_gutter.md" - - "styles/scrollbar_size.md" - - "styles/text_align.md" - - "styles/text_opacity.md" - - "styles/text_style.md" - - "styles/tint.md" - - "styles/visibility.md" - - "styles/width.md" - - Widgets: - - "widgets/button.md" - - "widgets/checkbox.md" - - "widgets/data_table.md" - - "widgets/directory_tree.md" - - "widgets/footer.md" - - "widgets/header.md" - - "widgets/index.md" - - "widgets/input.md" - - "widgets/label.md" - - "widgets/list_item.md" - - "widgets/list_view.md" - - "widgets/placeholder.md" - - "widgets/static.md" - - "widgets/text_log.md" - - "widgets/tree.md" - - API: - - "api/index.md" - - "api/app.md" - - "api/binding.md" - - "api/button.md" - - "api/checkbox.md" - - "api/color.md" - - "api/containers.md" - - "api/coordinate.md" - - "api/data_table.md" - - "api/directory_tree.md" - - "api/dom_node.md" - - "api/events.md" - - "api/footer.md" - - "api/geometry.md" - - "api/header.md" - - "api/input.md" - - "api/label.md" - - "api/list_view.md" - - "api/list_item.md" - - "api/message_pump.md" - - "api/message.md" - - "api/pilot.md" - - "api/placeholder.md" - - "api/query.md" - - "api/reactive.md" - - "api/screen.md" - - "api/static.md" - - "api/text_log.md" - - "api/timer.md" - - "api/tree.md" - - "api/tree_node.md" - - "api/walk.md" - - "api/widget.md" diff --git a/mkdocs-online.yml b/mkdocs-online.yml index f35acfe80..58aea3fc7 100644 --- a/mkdocs-online.yml +++ b/mkdocs-online.yml @@ -14,179 +14,3 @@ plugins: - categories - release - tags - -nav: - - Introduction: - - "index.md" - - "getting_started.md" - - "help.md" - - "tutorial.md" - - Guide: - - "guide/index.md" - - "guide/devtools.md" - - "guide/app.md" - - "guide/styles.md" - - "guide/CSS.md" - - "guide/design.md" - - "guide/queries.md" - - "guide/layout.md" - - "guide/events.md" - - "guide/input.md" - - "guide/actions.md" - - "guide/reactivity.md" - - "guide/widgets.md" - - "guide/animation.md" - - "guide/screens.md" - - "roadmap.md" - - Reference: - - "reference/index.md" - - CSS Types: - - "css_types/index.md" - - "css_types/border.md" - - "css_types/color.md" - - "css_types/horizontal.md" - - "css_types/integer.md" - - "css_types/name.md" - - "css_types/number.md" - - "css_types/overflow.md" - - "css_types/percentage.md" - - "css_types/scalar.md" - - "css_types/text_align.md" - - "css_types/text_style.md" - - "css_types/vertical.md" - - Events: - - "events/index.md" - - "events/blur.md" - - "events/descendant_blur.md" - - "events/descendant_focus.md" - - "events/enter.md" - - "events/focus.md" - - "events/hide.md" - - "events/key.md" - - "events/leave.md" - - "events/load.md" - - "events/mount.md" - - "events/mouse_capture.md" - - "events/click.md" - - "events/mouse_down.md" - - "events/mouse_move.md" - - "events/mouse_release.md" - - "events/mouse_scroll_down.md" - - "events/mouse_scroll_up.md" - - "events/mouse_up.md" - - "events/paste.md" - - "events/resize.md" - - "events/screen_resume.md" - - "events/screen_suspend.md" - - "events/show.md" - - Styles: - - "styles/index.md" - - "styles/align.md" - - "styles/background.md" - - "styles/border.md" - - "styles/box_sizing.md" - - "styles/color.md" - - "styles/content_align.md" - - "styles/display.md" - - "styles/dock.md" - - Grid: - - "styles/grid/index.md" - - "styles/grid/column_span.md" - - "styles/grid/grid_columns.md" - - "styles/grid/grid_gutter.md" - - "styles/grid/grid_rows.md" - - "styles/grid/grid_size.md" - - "styles/grid/row_span.md" - - "styles/height.md" - - "styles/layer.md" - - "styles/layers.md" - - "styles/layout.md" - - Links: - - "styles/links/index.md" - - "styles/links/link_background.md" - - "styles/links/link_color.md" - - "styles/links/link_hover_background.md" - - "styles/links/link_hover_color.md" - - "styles/links/link_hover_style.md" - - "styles/links/link_style.md" - - "styles/margin.md" - - "styles/max_height.md" - - "styles/max_width.md" - - "styles/min_height.md" - - "styles/min_width.md" - - "styles/offset.md" - - "styles/opacity.md" - - "styles/outline.md" - - "styles/overflow.md" - - "styles/padding.md" - - Scrollbar colors: - - "styles/scrollbar_colors/index.md" - - "styles/scrollbar_colors/scrollbar_background.md" - - "styles/scrollbar_colors/scrollbar_background_active.md" - - "styles/scrollbar_colors/scrollbar_background_hover.md" - - "styles/scrollbar_colors/scrollbar_color.md" - - "styles/scrollbar_colors/scrollbar_color_active.md" - - "styles/scrollbar_colors/scrollbar_color_hover.md" - - "styles/scrollbar_colors/scrollbar_corner_color.md" - - "styles/scrollbar_gutter.md" - - "styles/scrollbar_size.md" - - "styles/text_align.md" - - "styles/text_opacity.md" - - "styles/text_style.md" - - "styles/tint.md" - - "styles/visibility.md" - - "styles/width.md" - - Widgets: - - "widgets/button.md" - - "widgets/checkbox.md" - - "widgets/data_table.md" - - "widgets/directory_tree.md" - - "widgets/footer.md" - - "widgets/header.md" - - "widgets/index.md" - - "widgets/input.md" - - "widgets/label.md" - - "widgets/list_item.md" - - "widgets/list_view.md" - - "widgets/placeholder.md" - - "widgets/static.md" - - "widgets/text_log.md" - - "widgets/tree.md" - - API: - - "api/index.md" - - "api/app.md" - - "api/binding.md" - - "api/button.md" - - "api/checkbox.md" - - "api/color.md" - - "api/containers.md" - - "api/coordinate.md" - - "api/data_table.md" - - "api/directory_tree.md" - - "api/dom_node.md" - - "api/events.md" - - "api/footer.md" - - "api/geometry.md" - - "api/header.md" - - "api/input.md" - - "api/label.md" - - "api/list_view.md" - - "api/list_item.md" - - "api/message_pump.md" - - "api/message.md" - - "api/pilot.md" - - "api/placeholder.md" - - "api/query.md" - - "api/reactive.md" - - "api/screen.md" - - "api/scroll_view.md" - - "api/static.md" - - "api/strip.md" - - "api/text_log.md" - - "api/timer.md" - - "api/tree.md" - - "api/tree_node.md" - - "api/walk.md" - - "api/widget.md" - - "Blog": - - blog/index.md From 5376b015f58bdf8eed5af54f5331ca759eb869dc Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Wed, 8 Feb 2023 14:58:06 +0000 Subject: [PATCH 23/28] Bring the docs deployment target into the new approach This one's a little vague right now, and I'm not sure how best to test this. Looking at the mkdocs documentation it isn't clear to me that you *can* provide the config file to the gh-build command, but there's example command lines in the docs showing that you can. Need to see if there's a safe way to test this out -- the last thing I want to do is nuke our website. --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 788471e86..6daaa8e39 100644 --- a/Makefile +++ b/Makefile @@ -58,8 +58,9 @@ clean-offline-docs: rm -rf docs-offline .PHONY: docs-deploy -docs-deploy: clean-screenshot-cache - $(run) mkdocs gh-deploy +docs-deploy: clean-screenshot-cache docs-online-nav + $(run) mkdocs gh-deploy --config-file mkdocs-nav-online.yml + rm -f mkdocs-nav-online.yml .PHONY: build build: docs-build-offline From 1956f7f9d768f888ae437857af44108c1528a3f8 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Feb 2023 15:36:04 +0000 Subject: [PATCH 24/28] Rename the switch--switch component class to switch--slider Following on from #1751: originally Switch was called Checkbox and the moving part was, for the component class, called a checkbox--switch; after renaming the widget to Switch that component class ended up being switch--switch; which wasn't ideal. We decided to go with it as-is, but I just realised that internally the code calls it a slider. So this leans into that and I'm renaming the component class switch--slider. This removes the doubling-up of the name and also makes the code more consistent. --- docs/examples/widgets/switch.css | 2 +- src/textual/widgets/_switch.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/examples/widgets/switch.css b/docs/examples/widgets/switch.css index fb6a0d220..20fd57ba8 100644 --- a/docs/examples/widgets/switch.css +++ b/docs/examples/widgets/switch.css @@ -22,7 +22,7 @@ Switch { background: darkslategrey; } -#custom-design > .switch--switch { +#custom-design > .switch--slider { color: dodgerblue; background: darkslateblue; } diff --git a/src/textual/widgets/_switch.py b/src/textual/widgets/_switch.py index cdc9f21a6..f6aa88601 100644 --- a/src/textual/widgets/_switch.py +++ b/src/textual/widgets/_switch.py @@ -31,12 +31,12 @@ class Switch(Widget, can_focus=True): """ COMPONENT_CLASSES: ClassVar[set[str]] = { - "switch--switch", + "switch--slider", } """ | Class | Description | | :- | :- | - | `switch--switch` | Targets the switch of the switch. | + | `switch--slider` | Targets the slider of the switch. | """ DEFAULT_CSS = """ @@ -48,7 +48,7 @@ class Switch(Widget, can_focus=True): padding: 0 2; } - Switch > .switch--switch { + Switch > .switch--slider { background: $panel-darken-2; color: $panel-lighten-2; } @@ -65,7 +65,7 @@ class Switch(Widget, can_focus=True): } - Switch.-on > .switch--switch { + Switch.-on > .switch--slider { color: $success; } """ @@ -128,7 +128,7 @@ class Switch(Widget, can_focus=True): self.set_class(slider_pos == 1, "-on") def render(self) -> RenderableType: - style = self.get_component_rich_style("switch--switch") + style = self.get_component_rich_style("switch--slider") return ScrollBarRender( virtual_size=100, window_size=50, From 451fa3e50a06fce87c789535c36d4a2589918d62 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Feb 2023 15:52:14 +0000 Subject: [PATCH 25/28] Fix a typo --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ba65722f6..954588fbd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ include = [ { path = "tests", format = "sdist" }, # The reason for the slightly convoluted path specification here is that # poetry populates the exclude list with the content of .gitignore, and - # it also seems like exclude tumps include. So here we specify that we + # it also seems like exclude trumps include. So here we specify that we # want to package up the content of the docs-offline directory in a way # that works around that. { path = "docs-offline/**/*", format = "sdist" } From be9e34ba9a0e6dd309b70e2f3031dd50b5660880 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Feb 2023 16:06:00 +0000 Subject: [PATCH 26/28] Switch docstring additions and tweaks --- src/textual/widgets/_switch.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/textual/widgets/_switch.py b/src/textual/widgets/_switch.py index f6aa88601..c0a01188f 100644 --- a/src/textual/widgets/_switch.py +++ b/src/textual/widgets/_switch.py @@ -144,12 +144,17 @@ class Switch(Widget, can_focus=True): return 1 def on_click(self) -> None: + """Toggle the state of the switch.""" self.toggle() def action_toggle(self) -> None: + """Toggle the state of the switch.""" self.toggle() def toggle(self) -> None: - """Toggle the switch value. As a result of the value changing, - a Switch.Changed message will be posted.""" + """Toggle the switch value. + + As a result of the value changing, a `Switch.Changed` message will + be posted. + """ self.value = not self.value From 9dc0a4b57df9f99174cc52db4aba02303ef3964a Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Feb 2023 16:18:34 +0000 Subject: [PATCH 27/28] Add setup and update targets to the Makefile Simply adds `make setup` as a shorthand for running the poetry command that does the initial install for local development, and also `make update` to do a package update. Simply aimed as handy extras for development. --- Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Makefile b/Makefile index 6daaa8e39..de1bea195 100644 --- a/Makefile +++ b/Makefile @@ -68,3 +68,11 @@ build: docs-build-offline .PHONY: clean clean: clean-screenshot-cache clean-offline-docs + +.PHONY: setup +setup: + poetry install --extras dev + +.PHONY: update +update: + poetry update From e8d8c9352795ab1e7357a841f8470a674a3759a8 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Thu, 9 Feb 2023 16:25:53 +0000 Subject: [PATCH 28/28] Remove hatch.toml --- hatch.toml | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 hatch.toml diff --git a/hatch.toml b/hatch.toml deleted file mode 100644 index 1e25a12b1..000000000 --- a/hatch.toml +++ /dev/null @@ -1,38 +0,0 @@ -[envs.default] -features = ["dev"] -dependencies = [ - "jinja2 < 3.1.0", - "pytest >= 7.1.3, <8", - "pytest-aiohttp >= 1.0.4, <2", - "pytest-cov >= 2.12.1, <3", - "syrupy >= 3.0.0, <4", - "time-machine >= 2.6.0, <3", -] -[envs.default.scripts] -test = "pytest --cov-report term-missing --cov=textual tests/ -vv" -test-snapshot-update = "pytest --cov-report term-missing --cov=textual tests/ -vv --snapshot-update" -unit-test = 'pytest --cov-report term-missing --cov=textual tests/ -vv -m "not integration_test"' - -[envs.lint] -detached = true -dependencies = [ - "black >= 22.3.0, <23", - "mypy >= 0.982, <1", - "pre-commit >= 2.12.1, <3", -] -[envs.lint.scripts] -format = "black src" -check = "black --check src" -typing = "mypy src/textual" - -[envs.docs] -dependencies = [ - "mkdocs >= 1.3.0, <2", - "mkdocs-material >= 8.2.15, <9", - "mkdocstrings[python] >= 0.19.0, <1", -] -[envs.docs.scripts] -build = "mkdocs build" -deploy = "mkdocs gh-deploy" -serve = "mkdocs serve" -help = "mkdocs --help"