| """Module contains :class:`.ValidationWindow` which can be used to display error.""" |
|
|
| from typing import Optional |
|
|
| from prompt_toolkit.filters.base import FilterOrBool |
| from prompt_toolkit.formatted_text.base import AnyFormattedText |
| from prompt_toolkit.layout.containers import ConditionalContainer, Float, Window |
| from prompt_toolkit.layout.controls import FormattedTextControl |
|
|
|
|
| class ValidationWindow(ConditionalContainer): |
| """Conditional `prompt_toolkit` :class:`~prompt_toolkit.layout.Window` that displays error. |
| |
| Args: |
| invalid_message: Error message to display when error occured. |
| filter: Condition to display the error window. |
| """ |
|
|
| def __init__( |
| self, invalid_message: AnyFormattedText, filter: FilterOrBool, **kwargs |
| ) -> None: |
| super().__init__( |
| Window( |
| FormattedTextControl(invalid_message), dont_extend_height=True, **kwargs |
| ), |
| filter=filter, |
| ) |
|
|
|
|
| class ValidationFloat(Float): |
| """:class:`~prompt_toolkit.layout.Float` wrapper around :class:`.ValidationWindow`. |
| |
| Args: |
| invalid_message: Error message to display when error occured. |
| filter: Condition to display the error window. |
| left: Distance to left. |
| right: Distance to right. |
| bottom: Distance to bottom. |
| top: Distance to top. |
| """ |
|
|
| def __init__( |
| self, |
| invalid_message: AnyFormattedText, |
| filter: FilterOrBool, |
| left: Optional[int] = None, |
| right: Optional[int] = None, |
| bottom: Optional[int] = None, |
| top: Optional[int] = None, |
| **kwargs |
| ) -> None: |
| super().__init__( |
| content=ValidationWindow( |
| invalid_message=invalid_message, filter=filter, **kwargs |
| ), |
| left=left, |
| right=right, |
| bottom=bottom, |
| top=top, |
| ) |
|
|