Reusable Python form validation library
Project description
๐ก๏ธ FormGuard
FormGuard adalah library Python sederhana untuk melakukan validasi input form seperti email, password, dan username. Library ini dirancang agar reusable, mudah digunakan, dan dapat diintegrasikan ke berbagai project seperti backend API, aplikasi web, maupun sistem lainnya.
โจ Features
- ๐ง Validasi Email
- ๐ Validasi Password (strong password)
- ๐ค Validasi Username
- โ ๏ธ Error Handling dengan custom exception
- โป๏ธ Reusable untuk berbagai project
๐ฆ Instalasi
Gunakan mode development:
pip install -e .
๐ Cara Penggunaan
from formguard import validate_email, validate_password, validate_username
validate_email("test@gmail.com")
validate_password("Password123")
validate_username("user1")
๐งช Contoh Pengujian
File: test_validator.py
from formguard import validate_email, validate_password, validate_username
data = [
{"email": "test@gmail.com", "password": "Password123", "username": "user1"},
{"email": "asal", "password": "pass", "username": "us"},
{"email": "user@yahoo.com", "password": "StrongPass1", "username": "user_123"},
]
for d in data:
print("\nTesting data:", d)
try:
validate_email(d["email"])
print("Email โ
valid")
except Exception as e:
print("Email โ", e)
try:
validate_password(d["password"])
print("Password โ
valid")
except Exception as e:
print("Password โ", e)
try:
validate_username(d["username"])
print("Username โ
valid")
except Exception as e:
print("Username โ", e)
๐ Contoh Output
Testing data: {'email': 'test@gmail.com', 'password': 'Password123', 'username': 'user1'}
Email โ
valid
Password โ
valid
Username โ
valid
Testing data: {'email': 'asal', 'password': 'pass', 'username': 'us'}
Email โ Email tidak valid
Password โ Password minimal 8 karakter
Username โ Username terlalu pendek
Testing data: {'email': 'user@yahoo.com', 'password': 'StrongPass1', 'username': 'user_123'}
Email โ
valid
Password โ
valid
Username โ Username hanya boleh huruf dan angka
โ๏ธ Cara Kerja
1. Validasi Email
Menggunakan Regular Expression (Regex) untuk memastikan format:
- ada
@ - ada domain
- ada ekstensi (contoh:
.com)
2. Validasi Password
Password harus memenuhi kriteria:
- minimal 8 karakter
- mengandung huruf besar (A-Z)
- mengandung huruf kecil (a-z)
- mengandung angka (0-9)
3. Validasi Username
- minimal 3 karakter
- hanya huruf dan angka (tanpa simbol)
4. Error Handling
Jika input tidak valid, akan muncul error:
ValidationError: Email tidak valid
๐ฏ Tujuan Library
FormGuard dibuat untuk:
- โ Memvalidasi input user sebelum diproses
- โ Mengurangi kesalahan input (invalid data)
- โ Membantu developer dengan fungsi siap pakai
- โ Digunakan ulang di berbagai project
๐ Use Case (Penggunaan Nyata)
- ๐ Sistem Login & Register
- ๐ Backend API (Flask, FastAPI, Django)
- ๐ฑ Aplikasi Mobile (via backend)
- ๐งพ Form input data pengguna
๐ Struktur Project
formguard_project/
โ
โโโ formguard/
โ โโโ __init__.py
โ โโโ validators.py
โ โโโ sanitizers.py
โ โโโ utils.py
โ โโโ exceptions.py
โ
โโโ pyproject.toml
โโโ setup.py
โโโ README.md
๐ง Kelebihan
- โ Modular (dipisah per fungsi)
- โ Mudah dikembangkan
- โ Clean code
- โ Sesuai standar Python packaging
๐ Kesimpulan
FormGuard adalah solusi sederhana namun efektif untuk memastikan bahwa data input user sudah valid sebelum diproses lebih lanjut. Dengan pendekatan modular dan reusable, library ini dapat digunakan di berbagai jenis aplikasi.
๐จโ๐ป Author
Naufal
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 formguard-0.1.0.tar.gz.
File metadata
- Download URL: formguard-0.1.0.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2531e0a20cb044bc8b25f334783ba8a4a2fafa1e733a3982f363674b5ee1c5f6
|
|
| MD5 |
09640a8901fa099ff6c6048131dc263e
|
|
| BLAKE2b-256 |
3dc4997add184fee6d36556f7a79b115ac44e4184e394329cb2366a0b0097c17
|
File details
Details for the file formguard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: formguard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4da8eea0d908cf502fce8e33224966ea72dc1c8842a347426bee8f5bc9268e50
|
|
| MD5 |
c34abcaafcffc0d1e1ddac27040dcb3c
|
|
| BLAKE2b-256 |
da912488ea290b33e83c3f114fdb8851bb35176707ab9e8b771ed7477af26974
|