Commits on Source (46)
-
Wieslaw Kedzierski authored
-
Wieslaw Kedzierski authored
-
Wieslaw Kedzierski authored
-
Mateusz Żebrak authored
Seemed like pop_screen in some situations does not guarante that we can update a reactive attribute right after it happens. If such a a reactive attribute causes to query some elements on the screen that should be visible again screen - widgets might be missing. Related callstack: ```bash File "/builds/hive/clive/clive/__private/ui/transaction_summary/common.py", line 231, in __broadcast self.action_dashboard() File "/builds/hive/clive/clive/__private/ui/transaction_summary/common.py", line 208, in action_dashboard self.app.pop_screen_until(DashboardBase) File "/builds/hive/clive/clive/__private/ui/app.py", line 259, in pop_screen_until self.pop_screen() File "/builds/hive/clive/clive/__private/ui/app.py", line 243, in pop_screen return self.__update_screen(lambda: fun()) File "/builds/hive/clive/clive/__private/ui/app.py", line 278, in __update_screen self.title = f"{self.__class__.__name__} ({self.screen.__class__.__name__})" File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/reactive.py", line 276, in __set__ self._check_watchers(obj, name, current_value) File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/reactive.py", line 319, in _check_watchers invoke_watcher(reactable, callback, old_value, value) File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/reactive.py", line 83, in invoke_watcher watch_result = cast(WatchCallbackNoArgsType, watch_function)() File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/widgets/_header.py", line 196, in set_title self.query_one(HeaderTitle).text = self.screen_title File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/dom.py", line 1260, in query_one return query.only_one() if expect_type is None else query.only_one(expect_type) File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/css/query.py", line 255, in only_one self.first(expect_type) if expect_type is not None else self.first() File "/home/hived_admin/.cache/pypoetry/virtualenvs/clive-W0ktORSe-py3.10/lib/python3.10/site-packages/textual/css/query.py", line 226, in first raise NoMatches(f"No nodes match {self!r} on {self.node!r}") textual.css.query.NoMatches: No nodes match <DOMQuery query='HeaderTitle'> on Header() ``` Example job: https://gitlab.syncad.com/hive/clive/-/jobs/1006471 Solution: Do not query HeaderTitle (which is done internally by Textual), but refer to the header title instance instead.
-
Mateusz Żebrak authored
press_and_wait_for_screen This should fix random failures during CI TUI tests (because after pilot.press which changed screen, it seems like Textual doesn't wait enough time for screen to change) ft: https://gitlab.syncad.com/hive/clive/-/jobs/1006471
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
Store transaction history in Clive app instance, in TUI tests rework method for getting transaction id from notification Created common method: extract_message_from_notification that can be used for looking for other things than notification id. Such a method will also check for the expected message in notification history.
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
See Integrations section of 23.9.0 changeolog: https://black.readthedocs.io/en/stable/change_log.html#id42
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Mateusz Żebrak authored
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
-
-
-
-
-
This caused some issues with providers when fast broadast was used on the operatin summary screen and self.provider.content was referenced. That's because of screen resume was posted during each pop_screen and looks like provider catched that ScreenResume after screen yielding that provider was acutally popped (so NoMatches occured when querying provider which notified about change).
-
Previously it was required for the callback do accept one and only one param.
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
Jakub Ziebinski authored
-
-
-
Showing
- .gitlab-ci.yml 2 additions, 0 deletions.gitlab-ci.yml
- .pre-commit-config.yaml 3 additions, 3 deletions.pre-commit-config.yaml
- clive/__private/cli/commands/abc/beekeeper_based_command.py 1 addition, 2 deletionsclive/__private/cli/commands/abc/beekeeper_based_command.py
- clive/__private/cli/common/common_options_base.py 1 addition, 0 deletionsclive/__private/cli/common/common_options_base.py
- clive/__private/cli/exceptions.py 1 addition, 0 deletionsclive/__private/cli/exceptions.py
- clive/__private/core/_async.py 1 addition, 1 deletionclive/__private/core/_async.py
- clive/__private/core/beekeeper/api.py 1 addition, 1 deletionclive/__private/core/beekeeper/api.py
- clive/__private/core/beekeeper/exceptions.py 4 additions, 2 deletionsclive/__private/core/beekeeper/exceptions.py
- clive/__private/core/beekeeper/executable.py 1 addition, 1 deletionclive/__private/core/beekeeper/executable.py
- clive/__private/core/beekeeper/handle.py 8 additions, 2 deletionsclive/__private/core/beekeeper/handle.py
- clive/__private/core/beekeeper/notification_http_server.py 1 addition, 2 deletionsclive/__private/core/beekeeper/notification_http_server.py
- clive/__private/core/beekeeper/notifications.py 1 addition, 2 deletionsclive/__private/core/beekeeper/notifications.py
- clive/__private/core/calcluate_hive_power.py 1 addition, 1 deletionclive/__private/core/calcluate_hive_power.py
- clive/__private/core/callback.py 2 additions, 2 deletionsclive/__private/core/callback.py
- clive/__private/core/commands/abc/command.py 4 additions, 3 deletionsclive/__private/core/commands/abc/command.py
- clive/__private/core/commands/abc/command_in_active.py 2 additions, 3 deletionsclive/__private/core/commands/abc/command_in_active.py
- clive/__private/core/commands/abc/command_restricted.py 3 additions, 3 deletionsclive/__private/core/commands/abc/command_restricted.py
- clive/__private/core/commands/commands.py 10 additions, 16 deletionsclive/__private/core/commands/commands.py
- clive/__private/core/commands/data_retrieval/hive_power_data.py 1 addition, 1 deletion...__private/core/commands/data_retrieval/hive_power_data.py
- clive/__private/core/commands/data_retrieval/proposals_data.py 2 additions, 6 deletions.../__private/core/commands/data_retrieval/proposals_data.py