Библиотека для упрощённого ввода данных от пользователя в консоли с валидацией.
Project description
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, который будет повторяться до корректного ввода
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easyinput_grim-0.1.0.tar.gz.
File metadata
- Download URL: easyinput_grim-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c30f82d9e6f6457ac9312acd95cc78e079ce1409286d0ce078a605ac462b91e
|
|
| MD5 |
449ffa2d9a9618f4b98b9f08a1af5824
|
|
| BLAKE2b-256 |
27dc7ae3efb83ff0bfbe8e96fc83d7ab02733facc7d38f9015a725ecc3bcf6c5
|
File details
Details for the file easyinput_grim-0.1.0-py3-none-any.whl.
File metadata
- Download URL: easyinput_grim-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8d16066cee083e07cff41d9dd50f561cba6f54e37f0ae7540c0f1fcd8ee7dd0
|
|
| MD5 |
1577f9e0a5b3b35e8ae9ba5bd502775d
|
|
| BLAKE2b-256 |
a0d783e5b2a6c16faf5f032c4cb40bd84fdb90e33c4e16bbab61a795c92dc791
|