Skip to main content

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

Project description

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

Параметр Тип По умолчанию Описание
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyinput_grim-0.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyinput_grim-0.1.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

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

Hashes for easyinput_grim-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c30f82d9e6f6457ac9312acd95cc78e079ce1409286d0ce078a605ac462b91e
MD5 449ffa2d9a9618f4b98b9f08a1af5824
BLAKE2b-256 27dc7ae3efb83ff0bfbe8e96fc83d7ab02733facc7d38f9015a725ecc3bcf6c5

See more details on using hashes here.

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

Hashes for easyinput_grim-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8d16066cee083e07cff41d9dd50f561cba6f54e37f0ae7540c0f1fcd8ee7dd0
MD5 1577f9e0a5b3b35e8ae9ba5bd502775d
BLAKE2b-256 a0d783e5b2a6c16faf5f032c4cb40bd84fdb90e33c4e16bbab61a795c92dc791

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page