You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

easyinput-grim

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

easyinput-grim

Библиотека для упрощённого ввода данных от пользователя в консоли с валидацией.

0.1.0
pipPyPI
Maintainers
1

EasyInput-GRIM

PyPI version License: MIT

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 с проверкой формата и домена.

ПараметрТипПо умолчаниюОписание
supportlist[str][""]Список поддерживаемых доменов. "" или "all" означают поддержку всех популярных доменов.
loopboolFalseЕсли True, будет повторять запрос при ошибке. Иначе вернет None.

ask_password()

Запрашивает пароль с маскировкой и проверкой сложности.

ПараметрТипПо умолчаниюОписание
maskstr"*"Символ для маскировки ввода. Если None, ввод не маскируется.
minLengthint1Минимальная длина пароля.
maxLengthint24Максимальная длина пароля.
check_easyboolTrueЕсли True, проверяет пароль по встроенному словарю простых паролей.
loopboolFalseЕсли True, будет повторять запрос при ошибке.
needUpperboolFalseЕсли True, пароль должен содержать хотя бы одну заглавную букву.
needSpeccharboolFalseЕсли True, пароль должен содержать хотя бы один специальный символ.

ask_file()

Запрашивает путь к файлу с проверкой существования, расширения и имени.

ПараметрТипПо умолчаниюОписание
extstr".txt"Требуемое расширение файла. "any" отключает проверку.
namestr"any"Строка, которая должна содержаться в имени файла. "any" отключает проверку.
startWithstr"any"Строка, с которой должно начинаться имя файла. "any" отключает проверку.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_folder()

Запрашивает путь к папке с проверкой на существование и пустоту.

ПараметрТипПо умолчаниюОписание
isEmptyboolTrueЕсли True, проверяет, что папка пуста. Если False, проверяет, что она НЕ пуста.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_birthdate()

Запрашивает дату рождения с проверкой возраста.

ПараметрТипПо умолчаниюОписание
formatstr"dd.mm.yyyy"Формат даты. Поддерживаются: dd.mm.yyyy, mm/dd/yyyy, yyyy-mm-dd.
minAgeint0Минимальный допустимый возраст.
maxAgeint150Максимальный допустимый возраст.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_age()

Запрашивает возраст в заданном диапазоне.

ПараметрТипПо умолчаниюОписание
minAgeint0Минимальный допустимый возраст.
maxAgeint150Максимальный допустимый возраст.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_str()

Запрашивает строку с ограничениями.

ПараметрТипПо умолчаниюОписание
minint0Минимальная длина строки.
maxintinfМаксимальная длина строки.
languageslist[str]["ru", "en"]Список разрешенных языков ("ru", "en").
restrictNumsboolTrueЕсли True, строка не должна содержать цифры.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_num()

Запрашивает число с проверкой.

ПараметрТипПо умолчаниюОписание
minint-infМинимальное допустимое значение.
maxintinfМаксимальное допустимое значение.
evenboolFalseЕсли True, число должно быть четным.
oddboolFalseЕсли True, число должно быть нечетным.
onlylist[int]NoneСписок конкретных допустимых чисел.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

ask_choice()

Предлагает пользователю сделать выбор из списка.

ПараметрТипПо умолчаниюОписание
choicelist[]Список вариантов для выбора. Пользователь может ввести сам вариант или его номер.
loopboolFalseЕсли True, будет повторять запрос при ошибке.

Лицензия

Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.

Keywords

input

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts