EasyInput-GRIM

EasyInput-GRIM — это простая и удобная Python-библиотека для получения и валидации данных от пользователя в консоли. Она избавляет от необходимости писать повторяющийся код для проверки email, паролей, чисел, дат и многого другого.
Ключевые возможности
- Маскировка ввода пароля: скрывает вводимые символы звездочками (
*
) или другими символами.
- Гибкая валидация: проверяет email, пароли на сложность, возраст, даты, пути к файлам и папкам.
- Встроенные циклы: может запрашивать ввод повторно до тех пор, пока он не станет корректным (
loop=True
).
- Кроссплатформенность: маскировка пароля работает как на Windows, так и на Linux/macOS.
- Никаких зависимостей: использует только стандартную библиотеку Python.
- Поддержка русского и английского языков для строкового ввода.
Установка
Установить библиотеку можно с помощью pip:
pip install easyinput-grim
Как использовать
Импортируйте нужные функции и вызывайте их.
from easyinput_grim import ask_email, ask_password, ask_choice, ask_birthdate
email = ask_email(support=["gmail.com", "yandex.ru"], loop=True)
print(f"Ваш email: {email}")
password = ask_password(minLength=8, needUpper=True, needSpecchar=True, loop=True)
print("Пароль принят!")
options = ["Яблоко", "Банан", "Апельсин"]
fruit = ask_choice(choice=options, loop=True)
print(f"Вы выбрали: {fruit}")
birth_date = ask_birthdate(minAge=18, maxAge=100, loop=True)
if birth_date:
print(f"Дата рождения: {birth_date.strftime('%d.%m.%Y')}")
Детальное описание API
Ниже представлен полный список функций и их параметров.
ask_email()
Запрашивает email с проверкой формата и домена.
support | list[str] | [""] | Список поддерживаемых доменов. "" или "all" означают поддержку всех популярных доменов. |
loop | bool | False | Если True , будет повторять запрос при ошибке. Иначе вернет None . |
ask_password()
Запрашивает пароль с маскировкой и проверкой сложности.
mask | str | "*" | Символ для маскировки ввода. Если None , ввод не маскируется. |
minLength | int | 1 | Минимальная длина пароля. |
maxLength | int | 24 | Максимальная длина пароля. |
check_easy | bool | True | Если True , проверяет пароль по встроенному словарю простых паролей. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
needUpper | bool | False | Если True , пароль должен содержать хотя бы одну заглавную букву. |
needSpecchar | bool | False | Если True , пароль должен содержать хотя бы один специальный символ. |
ask_file()
Запрашивает путь к файлу с проверкой существования, расширения и имени.
ext | str | ".txt" | Требуемое расширение файла. "any" отключает проверку. |
name | str | "any" | Строка, которая должна содержаться в имени файла. "any" отключает проверку. |
startWith | str | "any" | Строка, с которой должно начинаться имя файла. "any" отключает проверку. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_folder()
Запрашивает путь к папке с проверкой на существование и пустоту.
isEmpty | bool | True | Если True , проверяет, что папка пуста. Если False , проверяет, что она НЕ пуста. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_birthdate()
Запрашивает дату рождения с проверкой возраста.
format | str | "dd.mm.yyyy" | Формат даты. Поддерживаются: dd.mm.yyyy , mm/dd/yyyy , yyyy-mm-dd . |
minAge | int | 0 | Минимальный допустимый возраст. |
maxAge | int | 150 | Максимальный допустимый возраст. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_age()
Запрашивает возраст в заданном диапазоне.
minAge | int | 0 | Минимальный допустимый возраст. |
maxAge | int | 150 | Максимальный допустимый возраст. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_str()
Запрашивает строку с ограничениями.
min | int | 0 | Минимальная длина строки. |
max | int | inf | Максимальная длина строки. |
languages | list[str] | ["ru", "en"] | Список разрешенных языков ("ru" , "en" ). |
restrictNums | bool | True | Если True , строка не должна содержать цифры. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_num()
Запрашивает число с проверкой.
min | int | -inf | Минимальное допустимое значение. |
max | int | inf | Максимальное допустимое значение. |
even | bool | False | Если True , число должно быть четным. |
odd | bool | False | Если True , число должно быть нечетным. |
only | list[int] | None | Список конкретных допустимых чисел. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
ask_choice()
Предлагает пользователю сделать выбор из списка.
choice | list | [] | Список вариантов для выбора. Пользователь может ввести сам вариант или его номер. |
loop | bool | False | Если True , будет повторять запрос при ошибке. |
Лицензия
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE
.