Simple and safe console input validation for Python
Project description
askput
askput is a lightweight Python library for safe, validated, and interactive console input.
It removes repetitive input-validation logic and helps you build clean, readable CLI programs with minimal effort.
Why askput?
Python’s built-in input():
- always returns strings
- provides no validation
- leads to repeated
try / exceptblocks
askput offers a clean abstraction over these problems while staying simple and dependency-free.
Features
- Integer and float input with bounds
- String length validation
- Email validation
- Secure password input
- Strong password rules
- Yes/No confirmations
- Phrase-based confirmation for dangerous actions
- Menu-based choice selection
- Regex (pattern) based input
- Multiple values input
- Fully tested with
pytest - Zero external dependencies
Installation
pip install askput
Usages
Basic Usage
from askput import ask
age = ask.int("Enter age", min=18)
price = ask.float("Enter price", min=0)
name = ask.string("Enter name", min_len=2)
email = ask.email("Enter email")
print(age, price, name, email)
Passwords and Confirmations
from askput import ask
age = ask.int("Enter age", min=18)
price = ask.float("Enter price", min=0)
name = ask.string("Enter name", min_len=2)
email = ask.email("Enter email")
print(age, price, name, email)
from askput import ask
password = ask.password("Enter password")
strong_password = ask.password_strong("Create strong password")
confirm = ask.confirm("Continue?")
delete = ask.confirm_phrase("Type DELETE to continue", "DELETE")
Choice / Menu Input
from askput import ask
role = ask.choice(
"Select role",
["Admin", "User", "Guest"]
)
print("Selected role:", role)
##Pattern and Multiple Input
from askput import ask
code = ask.pattern("Enter code", r"^[A-Z]{3}\d{3}$")
tags = ask.multi("Enter tags (comma separated)")
print(code, tags)
Example: Simple CLI Flow
from askput import ask
role = ask.choice("Role", ["Admin", "User"])
age = ask.int("Age", min=18)
password = ask.password_strong("Password")
if ask.confirm("Submit form?"):
print("Form submitted")
Testing
askput is fully tested using pytest.
pytest
All tests are before every release.
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
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 askput-0.1.5.tar.gz.
File metadata
- Download URL: askput-0.1.5.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d11f1d2fff9f5a037de2de093cb197be6e1292e0fcaa8d228b2a30b7d82fffde
|
|
| MD5 |
8ea9ac555bc040527428d9d64fa9044a
|
|
| BLAKE2b-256 |
c17f56ddf7c493d1a9f76197a74ab2cd39cec43a74a37d4a75fa7a43d10728b4
|
File details
Details for the file askput-0.1.5-py3-none-any.whl.
File metadata
- Download URL: askput-0.1.5-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a18119ce27ce0a131205eda5cde785024cf6225006af6961c65779d5f2a50c32
|
|
| MD5 |
0cc889276c2a955da9712aca65a022e4
|
|
| BLAKE2b-256 |
7032648d315508b60cbbfd440f7095c575d235075ff86e3bc73db9ac920899ea
|