File: input-validation.py

package info (click to toggle)
prompt-toolkit 3.0.51-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 6,232 kB
  • sloc: python: 30,894; makefile: 151; sh: 6
file content (36 lines) | stat: -rwxr-xr-x 750 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python
"""
Simple example of input validation.
"""

from prompt_toolkit import prompt
from prompt_toolkit.validation import Validator


def is_valid_email(text):
    return "@" in text


validator = Validator.from_callable(
    is_valid_email,
    error_message="Not a valid e-mail address (Does not contain an @).",
    move_cursor_to_end=True,
)


def main():
    # Validate when pressing ENTER.
    text = prompt(
        "Enter e-mail address: ", validator=validator, validate_while_typing=False
    )
    print(f"You said: {text}")

    # While typing
    text = prompt(
        "Enter e-mail address: ", validator=validator, validate_while_typing=True
    )
    print(f"You said: {text}")


if __name__ == "__main__":
    main()