Metadata-Version: 2.4
Name: persian-validators
Version: 0.1.0
Summary: Validators for common Iranian/Persian data: national code, phone number, postal code, card number, Jalali/Gregorian dates, and more.
Author: Mohammad Sadra Mohammadi
License: MIT
Project-URL: Homepage, https://github.com/msadra551/persian-validators
Project-URL: Repository, https://github.com/msadra551/persian-validators
Project-URL: Issues, https://github.com/msadra551/persian-validators/issues
Keywords: validator,iran,persian,jalali,national-code,postal-code,card-number
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: Persian
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jdatetime>=4.1.0
Dynamic: license-file

# persian-validators

مجموعه‌ای از کلاس‌های اعتبارسنجی (Validator) برای داده‌های رایج ایرانی/فارسی:
نام و نام‌خانوادگی، کد ملی، تاریخ (جلالی و میلادی)، شماره موبایل، کد پستی، شماره کارت بانکی، ایمیل و رمز عبور.

## نصب

بعد از انتشار روی PyPI:

```bash
pip install persian-validators
```

یا مستقیم از گیت‌هاب:

```bash
pip install git+https://github.com/YOUR_USERNAME/persian-validators.git
```

## استفاده

```python
from persian_validators import NationalCode, PhoneNumber, Email, Password, DateConverter

nc = NationalCode("0012345678")
print(nc.is_valid(), nc.message)

phone = PhoneNumber("09121234567")
print(phone.is_valid(), phone.phone_number)  # -> 989121234567

email = Email("test@example.com")
print(email.is_valid())

password = Password("Abcd1234!@#$")
print(password.is_valid())

date = DateConverter(1402, "مهر", 15, calendar_type="jalali")
print(date.is_valid())
print(date.jalali_to_gregorian())
```

## کلاس‌های موجود

| کلاس | توضیح |
|---|---|
| `PersonName` | اعتبارسنجی نام (فقط حروف و فاصله) |
| `NationalCode` | اعتبارسنجی کد ملی ایران (چک‌سام) |
| `Year` / `Month` / `Day` / `DateConverter` | اعتبارسنجی و تبدیل تاریخ جلالی/میلادی |
| `PhoneNumber` | اعتبارسنجی و نرمال‌سازی شماره موبایل ایران |
| `PostalCode` | اعتبارسنجی کد پستی ۱۰ رقمی |
| `CardNumber` | اعتبارسنجی شماره کارت بانکی (الگوریتم Luhn) |
| `Email` | اعتبارسنجی فرمت ایمیل |
| `Password` | اعتبارسنجی قدرت رمز عبور |

هر کلاس دارای متد `is_valid()` و `__str__()` (پیام خطا یا `"Valid"`) است.

## نیازمندی‌ها

- Python >= 3.8
- [`jdatetime`](https://pypi.org/project/jdatetime/)

## توسعه محلی

```bash
git clone https://github.com/YOUR_USERNAME/persian-validators.git
cd persian-validators
pip install -e .
```

## لایسنس

MIT
