* WiP: Move the devtools and related code to `textual-dev` (#2834)
* Remove the textual script from the project file
This is moving into the textual-dev package.
* Remove the textual CLI code from Textual
This has all gone to live in textual-dev.
* Remove the devtools testing from Textual's unit tests
They've moved over to textual-dev instead.
* Remove the devtools server from Textual itself
The start of the process to remove as much of the core devtools as possible
from Textual.
* Switch the console docs example screenshot over to textual_dev
* Remove rednerables.py from Textual
* Remove the last parts of devtools from Textual
This is the last step. It remains to be seen if this is sustainable, but for
testing purposes this is the extreme case we're aiming for. I *think* this
will work though.
Hereon we'll be needing to do an editable install of textual-dev into
textual, and more generally and once this is "live" we'll be needing to make
sure that textual[dev] is installed when doing development work on textual
apps.
The thing that remains to be seen however is how this all works
with *developing* Textual itself. Will I always need to do an editable
install? Still got to figure that one out.
* Start to whittle down the pyproject file
The next step is to try and work out what can come out of the pyproject
file.
* Remove aiohttp from Textual
* Remove some more development dependencies we don't need any more
* Relock
* Remove the pointer to the previews directory
* Reintroduce the border preview snapshot test
* Reintroduce the color preview snapshot test
* Reinstate the key press for the border preview snapshot test
* Reintroduce the easing preview snapshot test
* Reintroduce the keys tool snapshot test
* Add pytest-asyncio as a development dependency
* Relock
* Pin the textual-dev version to 0.1.0 or later
Mostly to try and get the tests kicked off properly.
* Relock dependencies
* Further `textual-dev` changes (#2850)
* Remove the textual script from the project file
This is moving into the textual-dev package.
* Remove the textual CLI code from Textual
This has all gone to live in textual-dev.
* Remove the devtools testing from Textual's unit tests
They've moved over to textual-dev instead.
* Remove the devtools server from Textual itself
The start of the process to remove as much of the core devtools as possible
from Textual.
* Switch the console docs example screenshot over to textual_dev
* Remove rednerables.py from Textual
* Remove the last parts of devtools from Textual
This is the last step. It remains to be seen if this is sustainable, but for
testing purposes this is the extreme case we're aiming for. I *think* this
will work though.
Hereon we'll be needing to do an editable install of textual-dev into
textual, and more generally and once this is "live" we'll be needing to make
sure that textual[dev] is installed when doing development work on textual
apps.
The thing that remains to be seen however is how this all works
with *developing* Textual itself. Will I always need to do an editable
install? Still got to figure that one out.
* Start to whittle down the pyproject file
The next step is to try and work out what can come out of the pyproject
file.
* Remove aiohttp from Textual
* Remove some more development dependencies we don't need any more
* Relock
* Remove the pointer to the previews directory
* Reintroduce the border preview snapshot test
* Reintroduce the color preview snapshot test
* Reinstate the key press for the border preview snapshot test
* Reintroduce the easing preview snapshot test
* Reintroduce the keys tool snapshot test
* Add pytest-asyncio as a development dependency
* Relock
* Pin the textual-dev version to 0.1.0 or later
Mostly to try and get the tests kicked off properly.
* Relock dependencies
* Whitespace cleaning
* Swap mentions of textual[dev] to textual-dev
* Remove the dev extra
* Tweak README.md in response to PR review
* Tweak animation.md in response to PR review
* Tweak getting_started.md in response to PR review
* bump version
* lock
* drop dev
* more
* version bump
---------
Co-authored-by: Dave Pearson <davep@davep.org>
See #2720. I'm not 100% sure about this one; I don't think it's been
modified since the AUTO_FOCUS change was made, so I believe this will be
restoring the example to its intended state.
* Add Widget.border_title and border_subtitle.
Related issues: #1864
* Test setting border_(sub)title.
* Add border (sub)title references to StylesCache.
These internal references will make it easier for the instance of 'StylesCache' to know which border (sub)title to use, if/when needed.
* Add method to render border label.
* Add styles to align border (sub)title.
* Render border labels.
* Update styles template.
* Make new 'render_row' parameters optional.
* Add (sub)title border snapshot tests.
* Document border (sub)title and styles.
* Pass (sub)title directly as arguments.
Get rid of the watchers to make data flow easier to follow.
Related comment: https://github.com/Textualize/textual/pull/2064/files\#r1137746697
* Tweak example.
* Fix render_border_label.
This was wrong because border labels can be composed of multiple segments if they contain multiple styles. Additionally, we want to render a single blank space of padding around the title.
* Ensure we get no label when there's no space.
* Add tests for border label rendering.
* 'render_border_label' now returns iterable of segments.
* Add label to render_row.
* Fix calling signature in tests.
* Add padding to snapshot tests.
* Fix changelog.
* Update snapshot tests.
* Update snapshot tests.
* Border labels expand if there's no corners.
* Update CHANGELOG.md
* Fix docs.
* Remove irrelevant line.
* Fix snapshot tests.
* Don't share Console among tests.
* Simplify example in styles guide.
* Avoid expensive function call when possible.
* rewording
* positive branch first
* remove wasteful indirection
* fix changelog
---------
Co-authored-by: Will McGugan <willmcgugan@gmail.com>