Skip to content

Latest commit

 

History

History
100 lines (67 loc) · 5.14 KB

README.fa.md

File metadata and controls

100 lines (67 loc) · 5.14 KB

کتابخانه انکودینگ ایران سیستم (Iran System) 🇮🇷

PyPI version License: MIT

کتابخانه‌ای حرفه‌ای و با کارایی بالا برای مدیریت کدگذاری قدیمی ایران سیستم در پایتون. این پکیج یک راهکار جامع برای تبدیل دوطرفه متن‌های یونیکد به ایران‌سیستم با رعایت دقیق استانداردهای میراثی، تشخیص هوشمند زبان و مدیریت بهینه اعداد است.


🚀 ویژگی‌های کلیدی

  • ✅ تبدیل دوطرفه بی‌نقص: تبدیل دقیق میان یونیکد و بایت‌های ایران‌سیستم.
  • ✅ هسته پایتونی مستقل: حذف کامل وابستگی‌های خارجی (مانند arabic_reshaper و python-bidi) برای دستیابی به سرعت و پایداری بالاتر.
  • ✅ پشتیبانی از افزونه C: شامل کدهای بهینه‌سازی شده به زبان C برای پردازش‌های سنگین و سرعت حداکثری.
  • ✅ تشخیص هوشمند زبان و متن:
    • مبتنی بر محتوا: تشخیص خودکار متن فارسی (fa) از انگلیسی (en).
    • مدیریت هوشمند اعداد: تبدیل خودکار اعداد به فرمت ایران‌سیستم در متن‌های فارسی و حفظ فرمت ASCII در متن‌های انگلیسی.
  • ✅ چیدمان بصری (Visual Ordering) دقیق: پیاده‌سازی مو به موی منطق تغییر شکل حروف و معکوس‌سازی متن مطابق با الگوریتم‌های استاندارد کد C.
  • ✅ رابط خط فرمان (CLI): ابزاری کاربردی برای کار مستقیم با انکودینگ در ترمینال.

📦 نصب

pip install iran-encoding

🛠 راهنمای استفاده

استفاده در پایتون

import iran_encoding

# ۱. تبدیل متن یونیکد به ایران‌سیستم
# عملیات Reshaping و Visual Ordering به صورت خودکار اعمال می‌شود
text = "سلام دنیا 123"
encoded = iran_encoding.encode(text)
print(encoded.hex())

# ۲. تبدیل بایت‌های ایران‌سیستم به یونیکد
decoded = iran_encoding.decode(encoded)
print(decoded) # خروجی: "سلام دنیا ۱۲۳"

# ۳. منطق تشخیص زبان
# وجود حروف فارسی باعث فعال شدن لوکال 'fa' می‌شود
print(iran_encoding.detect_locale("Hello سلام")) # 'fa'

# در صورت عدم وجود حروف فارسی، اعداد به انگلیسی تبدیل شده
# و از انکودینگ ASCII استفاده می‌شود
print(iran_encoding.detect_locale("Hello ۱۲۳")) # 'en'

رابط خط فرمان (CLI)

این پکیج ابزاری به نام iran-encoding را در اختیار شما قرار می‌دهد:

# تبدیل متن فارسی به هگز ایران‌سیستم
iran-encoding encode "سلام دنیا"

# تبدیل هگز ایران‌سیستم به متن یونیکد
iran-encoding decode-hex "a8 f3 91 f4"

⚙️ بررسی فنی

برخلاف یونیکد، ایران سیستم یک کدگذاری بصری است؛ به این معنا که کد هر حرف وابسته به شکل آن (اول، وسط، آخر یا تنها) در متن است.

این کتابخانه با استفاده از پورت مستقیم الگوریتم‌های معتبر C، وظایف زیر را انجام می‌دهد: ۱. تغییر شکل (Reshaping) حروف بر اساس حروف مجاور. ۲. مدیریت چیدمان بصری برای نمایش صحیح راست‌به‌چپ. ۳. کنترل توالی‌های عددی و انگلیسی در میان متن فارسی.

این پیاده‌سازی سازگاری ۱۰۰ درصدی با پایگاه‌های داده قدیمی و پایانه‌های سخت‌افزاری را تضمین می‌کند.


🧪 تست و پایداری

ما بر روی کیفیت کد تمرکز ویژه‌ای داریم. تمام بخش‌های اصلی با تست‌های جامع پوشش داده شده‌اند:

python3 -m pytest tests/

📄 لایسنس و پشتیبانی

  • لایسنس: MIT - برای جزئیات بیشتر فایل LICENSE را مشاهده کنید.
  • پشتیبانی: برای سوالات فنی و تجاری با ایمیل Iran-System-encoding@movtigroup.ir در ارتباط باشید.
  • نویسنده: Iran System encoding (MovtiGroup)

مشارکت شما باعث خوشحالی ماست! برای گزارش باگ یا بهبود مستندات، لطفاً در مخزن گیت‌هاب پروژه مشارکت کنید.