Metadata-Version: 2.4
Name: persianize
Version: 0.1.0
Summary: تبدیل سبک و بدون وابستگی کاراکترهای عربی (حروف و اعداد) به فارسی
Author: Sadra Jabbari
License: MIT
Project-URL: Homepage, https://github.com/zigzagjimbo/persianize
Project-URL: Repository, https://github.com/zigzagjimbo/persianize
Keywords: persian,farsi,arabic,normalize,text-processing,nlp
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Natural Language :: Persian
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# persianize

کتابخونه‌ی سبک و بدون وابستگی (zero-dependency) پایتون برای تبدیل کاراکترهای عربی به معادل فارسی — هم حروف، هم اعداد.

## چرا این کتابخونه؟

متن‌های فارسی‌ای که از منابع عربی، کیبوردهای عربی، یا OCR میان، معمولاً حروف و ارقام عربی توشون قاطی فارسیه (مثلاً `ي` به‌جای `ی`، یا `١٢٣` به‌جای `۱۲۳`). این باعث می‌شه جست‌وجو، مقایسه‌ی رشته‌ها، یا پردازش متن (NLP) نتیجه‌ی اشتباه بده. `persianize` این مشکل رو با یک تابع ساده حل می‌کنه.

## نصب

```bash
pip install persianize
```

یا برای توسعه از روی سورس:

```bash
git clone https://github.com/zigzagjimbo/persianize.git
cd persianize
pip install -e ".[dev]"
```

## استفاده به‌عنوان کتابخونه

```python
from persianize import normalize

text = "كتابخانة علي در سال ١٤٠٣ باز شد."
print(normalize(text))
# کتابخانه علی در سال ۱۴۰۳ باز شد.
```

### توابع در دسترس

| تابع | کاربرد |
|---|---|
| `normalize(text, digits=True, strip_diacritics=False)` | تبدیل کامل: حروف + (اختیاری) اعداد + (اختیاری) حذف اعراب |
| `convert_letters(text)` | فقط تبدیل حروف عربی به فارسی |
| `convert_digits(text)` | فقط تبدیل ارقام عربی به فارسی |
| `remove_diacritics(text)` | حذف اعراب (فتحه، ضمه، کسره، تشدید...) و کشیده |

### مثال‌های بیشتر

```python
from persianize import convert_letters, convert_digits, remove_diacritics

convert_letters("كتاب")        # 'کتاب'
convert_digits("٠١٢٣")         # '۰۱۲۳'
remove_diacritics("مُحَمَّد")     # 'محمد'
```

## استفاده از خط فرمان (CLI)

```bash
# از آرگومان مستقیم
persianize "كتاب علي"

# از فایل
persianize -f input.txt -o output.txt

# از stdin (pipe)
echo "١٤٠٣" | persianize

# بدون تبدیل اعداد
persianize --no-digits "كتاب ١٤٠٣"

# حذف اعراب هم انجام شود
persianize --strip-diacritics "مُحَمَّد"
```

## چه چیزی تبدیل می‌شه؟

**حروف:**

| عربی | فارسی |
|---|---|
| ي | ی |
| ك | ک |
| ة | ه |
| ى | ی |
| ؤ | و |
| ئ | ی |
| أ / إ | ا |

**اعداد:** `٠١٢٣٤٥٦٧٨٩` → `۰۱۲۳۴۵۶۷۸۹`

**اعراب (اختیاری با `strip_diacritics=True`):** فتحه، ضمه، کسره، تشدید، سکون، تنوین، مدّ، کشیده

## اجرای تست‌ها

```bash
pip install pytest
pytest
```

## لایسنس

MIT
