Metadata-Version: 2.4
Name: pyarabify
Version: 2.2.0
Summary: مكتبة قوية لتحويل لغة Python كاملة إلى العربية مع دعم اللهجات المختلفة
Home-page: https://github.com/6x-u/pyarabify
Author: MERO
Author-email: 
License: MIT
Project-URL: Homepage, https://github.com/6x-u/pyarabify
Project-URL: Repository, https://github.com/6x-u/pyarabify
Project-URL: Bug Tracker, https://github.com/6x-u/pyarabify/issues
Project-URL: Telegram, https://t.me/QP4RM
Keywords: arabic,python,interpreter,localization,translation,عربي,بايثون
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Natural Language :: Arabic
Requires-Python: >=2.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# pyarabify

<div dir="rtl">

## مكتبة لتحويل Python كاملة للعربية

![Version](https://img.shields.io/badge/version-2.2.0-blue.svg)
![Python](https://img.shields.io/badge/python-2.7%2B%20%7C%203.x-green.svg)
![License](https://img.shields.io/badge/license-MIT-orange.svg)

### المطور: MERO
- Telegram: [@QP4RM](https://t.me/QP4RM)
- GitHub: [6x-u](https://github.com/6x-u)

---

## المحتويات

1. [نظرة عامة](#نظرة-عامة)
2. [المميزات](#المميزات)
3. [ما الجديد في 2.2.0](#ما-الجديد-في-220)
4. [التثبيت](#التثبيت)
5. [البدء السريع](#البدء-السريع)
6. [الاستخدام التفصيلي](#الاستخدام-التفصيلي)
7. [اللهجات المدعومة](#اللهجات-المدعومة)
8. [أوامر سطر الأوامر](#أوامر-سطر-الأوامر)
9. [البحث في GitHub](#البحث-في-github)
10. [المساعد الذكي](#المساعد-الذكي)
11. [تحويل المعادلات](#تحويل-المعادلات)
12. [الرسوميات](#الرسوميات)
13. [مولد المشاريع](#مولد-المشاريع)
14. [دعم المكتبات الشهيرة](#دعم-المكتبات-الشهيرة)
15. [الأمثلة والدروس](#الأمثلة-والدروس)
16. [API المرجعي](#api-المرجعي)
17. [المساهمة](#المساهمة)

---

## نظرة عامة

**pyarabify** هي مكتبة Python وقوية تتيح لك كتابة وتنفيذ أكواد Python بالكامل باللغة العربية. تدعم المكتبة جميع إصدارات Python من 2.7 وحتى أحدث إصدار، وتوفر ترجمة لجميع الكلمات المحجوزة، الدوال المدمجة، أنواع الأخطاء، والوحدات الشائعة.

الإصدار 2.2.0 يمثل قفزة نوعية في المكتبة، حيث يضيف:
- لهجتين عربيتين جديدتين (فلسطيني وعراقي)
- مساعد للإجابة على الأسئلة البرمجية
- نظام البحث المتقدم في GitHub
- تحويل المعادلات العربية إلى أكواد قابلة للتنفيذ
- دعم الرسوميات باستخدام Turtle
- مولد مشاريع جاهزة للاستخدام
- تصحيح إملائي تلقائي
- دعم لجميع مكتبات Python 

### لماذا pyarabify؟

- **تعليم البرمجة بالعربية**: مثالية للمبتدئين الذين يفضلون التعلم بلغتهم الأم
- **قاموس ضخم**: أكثر من 12,000+ كلمة مترجمة تغطي كامل لغة Python
- **ست لهجات عربية**: فصحى، مختصر، مصري، خليجي، فلسطيني، عراقي
- **مساعد يجيب على أسئلتك البرمجية بالعربية
- **بحث في GitHub**: ابحث عن المستودعات والمشاريع مباشرة
- **مولد مشاريع**: ابدأ مشروعك بكود جاهز بالعربية
- **قابلة للتوسع**: أضف كلماتك المخصصة بسهولة
- **أخطاء بالعربية**: رسائل خطأ مفهومة ومترجمة بالكامل
- **ترجمة عكسية**: حول أكوادك العربية لإنجليزية والعكس
- **متوافقة 100%**: تعمل مع جميع مكتبات Python القياسية
- **دعم Git**: 57 دالة لإدارة المستودعات بالعربية
- **دعم الويب**: افتح الروابط، احصل على المحتوى، حمل الملفات

---

## المميزات

### 1. ترجمة كاملة للكلمات المحجوزة

```python
import → استرداد / استورد / جيب
from → من
def → دالة / وظيفة / فنكشن
class → صنف / فئة
if → اذا / لو
for → لكل / ل
while → طالما / بينما
try → حاول / جرب
except → ماعدا / إلا
return → ارجع / رجع
True → صحيح / صح
False → خطأ / غلط
None → لاشيء / فارغ / ماكو
```

### 2. دعم جميع الدوال المدمجة

```python
print() → اطبع() / قول()
input() → ادخال() / ادخل()
len() → طول()
range() → نطاق()
open() → افتح()
sum() → مجموع()
max() → اكبر()
min() → اصغر()
type() → نوع()
str() → نص()
int() → عدد_صحيح()
float() → عدد_عشري()
list() → قائمة()
dict() → قاموس()
```

### 3. ترجمة الأخطاء والاستثناءات

```python
ValueError → خطأ_قيمة
TypeError → خطأ_نوع
SyntaxError → خطأ_صيغة
NameError → خطأ_اسم
IndexError → خطأ_فهرس
KeyError → خطأ_مفتاح
FileNotFoundError → خطأ_ملف_غير_موجود
ZeroDivisionError → خطأ_قسمة_على_صفر
```

### 4. ست لهجات عربية مختلفة

1. **الفصحى** (formal): اللغة العربية الفصيحة
2. **مختصر** (short): كلمات مختصرة للكتابة السريعة
3. **مصري** (egyptian): اللهجة المصرية
4. **خليجي** (gulf): اللهجة الخليجية
5. **فلسطيني** (palestinian): اللهجة الفلسطينية
6. **عراقي** (iraqi): اللهجة العراقية

---

## ما الجديد في 2.2.0

### المميزات الجديدة

#### 1. لهجتان عربيتان جديدتان

تمت إضافة دعم للهجتين الفلسطينية والعراقية:

```python
اللهجة الفلسطينية:
جيب math
فنكشن حساب(رقم):
    لو رقم > 0:
        اطبع("موجب")
    والا:
        اطبع("سالب")

اللهجة العراقية:
جيب random
فنكشن لعبة():
    اذا العدد == ماكو:
        اطبع("ماكو عدد")
```

#### 2. البحث المتقدم في GitHub

ابحث عن المستودعات، المستخدمين، والأكواد مباشرة من المكتبة:

```python
from pyarabify import ghb

نتائج = ghb.بحث_في_جيتهب("python machine learning", "repositories", 10)
ghb.عرض_نتائج_البحث(نتائج)

تفاصيل = ghb.تفاصيل_المستودع("username/repo")
```

من سطر الأوامر:
```bash
pyarabify بحث "python machine learning"
```

#### 3. المساعد الذكي

احصل على إجابات لأسئلتك البرمجية:

```python
from pyarabify import hlp

جواب = hlp.اسأل("ما فائدة دالة range؟")
اطبع(جواب)

شرح = hlp.شرح_كود('''
لكل i في نطاق(5):
    اطبع(i)
''')
اطبع(شرح)

نصائح = hlp.اقتراحات(كودك_هنا)
```

من سطر الأوامر:
```bash
pyarabify اسأل "ما فائدة دالة range"
```

#### 4. تحويل المعادلات العربية

حول المعادلات المكتوبة بالعربية إلى أكواد قابلة للتنفيذ:

```python
from pyarabify import mth

معادلة_عربية = "خمسة زائد ثلاثة ضرب اثنان"
معادلة_برمجية = mth.حول_معادلة(معادلة_عربية)
نتيجة = mth.احسب(معادلة_عربية)

اطبع(نتيجة)  # 11
```

الأرقام المدعومة:
```python
صفر, واحد, اثنان, ثلاثة, اربعة, خمسة, ستة, سبعة, ثمانية, تسعة
عشرة, عشرون, ثلاثون, مئة, الف
```

العمليات المدعومة:
```python
زائد (+), ناقص (-), ضرب (*), قسمة (/)
اس (**), باقي (%), جمع, طرح, مضروب
```

#### 5. دعم الرسوميات (Turtle Graphics)

ارسم أشكالاً هندسية باستخدام أوامر:

```python
from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()

سلحفاة.ارسم_دائرة(100)
سلحفاة.ارسم_مربع(150)
سلحفاة.ارسم_مثلث(200)
سلحفاة.ارسم_نجمة(5, 150)
سلحفاة.ارسم_مستطيل(200, 100)

سلحفاة.لون_القلم("أحمر")
سلحفاة.سمك_القلم(3)
سلحفاة.سرعة(5)

سلحفاة.انتظر()
```

#### 6. مولد المشاريع الجاهزة

ابدأ مشروعك بكود جاهز بالكامل بالعربية:

```python
from pyarabify import prj

prj.قائمة_المشاريع()

prj.انشئ_مشروع("آلة_حاسبة")
prj.انشئ_مشروع("قائمة_مهام")
prj.انشئ_مشروع("لعبة_تخمين")
```

من سطر الأوامر:
```bash
pyarabify انشئ_مشروع آلة_حاسبة
cd آلة_حاسبة
pyarabify main.py
```

المشاريع الجاهزة:
- **آلة_حاسبة**: آلة حاسبة كاملة بجميع العمليات
- **قائمة_مهام**: نظام إدارة مهام تفاعلي
- **لعبة_تخمين**: لعبة تخمين الأرقام

#### 7. تصحيح إملائي تلقائي

يصحح الأخطاء الإملائية تلقائياً:

```python
from pyarabify import spl

كود_خاطئ = "اطبغ('مرحباً')"  # خطأ إملائي
كود_صحيح = spl.تصحيح(كود_خاطئ)
اطبع(كود_صحيح)  # اطبع('مرحباً')
```

#### 8. عرض الأخطاء بالعربية (edat)

نظام جديد لعرض رسائل الأخطاء بالعربية مع تحديد مكان الخطأ:

```python
from pyarabify import edat

edat()

اسم_غير_موجود
```

الناتج:
```
============================================================
خطأ: اسم غير معرف
============================================================
الملف: "test.py", السطر: 4
  in <module>

التفاصيل: name 'اسم_غير_موجود' is not defined
============================================================
```

الأخطاء المدعومة:
- NameError → خطأ: اسم غير معرف
- SyntaxError → خطأ في بناء الجملة
- TypeError → خطأ في النوع
- ValueError → خطأ في القيمة
- ZeroDivisionError → خطأ: قسمة على صفر
- FileNotFoundError → خطأ: ملف غير موجود

#### 9. دعم للمكتبات الشهيرة

ترجمة كاملة لأهم مكتبات Python:

```python
numpy:
- array → مصفوفة
- zeros → اصفار
- ones → احاد
- sum → مجموع
- mean → متوسط

pandas:
- DataFrame → جدول_بيانات
- read_csv → اقرأ_csv
- groupby → جمع_حسب

matplotlib.pyplot:
- plot → ارسم
- scatter → نثر
- bar → اعمدة
- xlabel → عنوان_س
- ylabel → عنوان_ص

requests:
- get → احصل
- post → ارسل

datetime:
- datetime → تاريخ_وقت
- now → الان
- today → اليوم

math:
- sqrt → جذر
- sin → جيب
- cos → جيب_تمام
- pi → باي
```

---

## التثبيت

### من PyPI

```bash
pip install pyarabify
```

### من المصدر

```bash
git clone https://github.com/6x-u/pyarabify.git
cd pyarabify
pip install -e .
```

### التحقق من التثبيت

```bash
pyarabify --version
pyarabify اختبر
```

---

## البدء 

### 1. أول برنامج لك بالعربية

```python
from pyarabify import execute

code = '''
اطبع("hi brooo")
'''

execute(code)
```

### 2. استخدام المتغيرات والعمليات

```python
from pyarabify import execute

code = '''
العدد_الأول = 10
العدد_الثاني = 20
المجموع = العدد_الأول + العدد_الثاني
اطبع("المجموع =", المجموع)
'''

execute(code)
```

### 3. تنفيذ ملف

أنشئ ملف `test.py`:
```python
اطبع("مرحباً من الملف!")

دالة جمع(أ, ب):
    ارجع أ + ب

النتيجة = جمع(5, 3)
اطبع("5 + 3 =", النتيجة)
```

نفذ الملف:
```bash
pyarabify test.py
```

---

## الاستخدام 

### 1. الدوال

```python
from pyarabify import execute

code = '''
دالة حساب_المساحة(الطول, العرض):
    المساحة = الطول * العرض
    ارجع المساحة

دالة طباعة_معلومات(الاسم, العمر):
    اطبع("الاسم:", الاسم)
    اطبع("العمر:", العمر)

مساحة_المستطيل = حساب_المساحة(10, 5)
اطبع("المساحة =", مساحة_المستطيل)

طباعة_معلومات("أحمد", 25)
'''

execute(code)
```

### 2. الأصناف (Classes)

```python
from pyarabify import execute

code = '''
صنف طالب:
    دالة __init__(الذات, الاسم, الدرجة):
        الذات.الاسم = الاسم
        الذات.الدرجة = الدرجة
    
    دالة عرض_المعلومات(الذات):
        اطبع("الطالب:", الذات.الاسم)
        اطبع("الدرجة:", الذات.الدرجة)
    
    دالة نجح(الذات):
        اذا الذات.الدرجة >= 50:
            ارجع صحيح
        والا:
            ارجع خطأ

طالب1 = طالب("محمد", 85)
طالب1.عرض_المعلومات()

اذا طالب1.نجح():
    اطبع("ناجح!")
والا:
    اطبع("راسب")
'''

execute(code)
```

### 3. الحلقات

```python
from pyarabify import execute

code = '''
اطبع("حلقة for:")
لكل رقم في نطاق(5):
    اطبع("الرقم:", رقم)

اطبع("\nحلقة while:")
عداد = 0
بينما عداد < 5:
    اطبع("العداد:", عداد)
    عداد = عداد + 1
'''

execute(code)
```

### 4. معالجة الأخطاء

```python
from pyarabify import execute

code = '''
حاول:
    النتيجة = 10 / 0
ماعدا خطأ_قسمة_على_صفر:
    اطبع("خطأ: لا يمكن القسمة على صفر!")

حاول:
    القائمة = [1, 2, 3]
    اطبع(القائمة[10])
ماعدا خطأ_فهرس:
    اطبع("خطأ: الفهرس خارج النطاق")
'''

execute(code)
```

### 5. استخدام المكتبات

```python
from pyarabify import execute

code = '''
استرداد رياضيات كـ ر
استرداد عشوائي كـ ع

دالة حساب_الدائرة(نصف_القطر):
    المساحة = ر.pi * ر.pow(نصف_القطر, 2)
    المحيط = 2 * ر.pi * نصف_القطر
    ارجع المساحة, المحيط

مساحة, محيط = حساب_الدائرة(5)
اطبع("مساحة الدائرة:", مساحة)
اطبع("محيط الدائرة:", محيط)

رقم_عشوائي = ع.randint(1, 100)
اطبع("رقم عشوائي:", رقم_عشوائي)
'''

execute(code)
```

---

## اللهجات 

### 1. الفصحى (formal)

```python
from pyarabify import execute

code = '''
دالة اهلا():
    اطبع("مرحباً بالعربية الفصحى")

اهلا()
'''

execute(code, dialect='formal')
```

### 2. المختصر (short)

```python
from pyarabify import execute

code = '''
دل اهلا():
    قول("مرحباً بالاختصارات")

اهلا()
'''

execute(code, dialect='short')
```

### 3. المصري (egyptian)

```python
from pyarabify import execute

code = '''
وظيفة اهلا():
    اطبع("أهلاً باللهجة المصرية")

اهلا()
'''

execute(code, dialect='egyptian')
```

### 4. الخليجي (gulf)

```python
from pyarabify import execute

code = '''
دالة اهلا():
    اطبع("هلا باللهجة الخليجية")

اهلا()
'''

execute(code, dialect='gulf')
```

### 5. الفلسطيني (palestinian)

```python
from pyarabify import execute

code = '''
فنكشن اهلا():
    لو صح:
        اطبع("أهلين باللهجة الفلسطينية")
    والا:
        اطبع("مش صح")

اهلا()
'''

execute(code, dialect='palestinian')
```

### 6. العراقي (iraqi)

```python
from pyarabify import execute

code = '''
فنكشن اهلا():
    القيمة = ماكو
    اذا القيمة == ماكو:
        اطبع("مرحبا باللهجة العراقية")
    والا:
        اطبع("ماكو مشكلة")

اهلا()
'''

execute(code, dialect='iraqi')
```

---

## أوامر سطر الأوامر

### 1. تنفيذ ملف

```bash
pyarabify program.py
pyarabify program.py --dialect palestinian
pyarabify program.py --show-english
```

### 2. الترجمة

```bash
pyarabify ترجم hello world
pyarabify ترجم "def add(a, b): return a + b"
```

### 3. عرض الأمثلة

```bash
pyarabify مثال الحلقات
pyarabify مثال الدوال
pyarabify مثال الشروط
pyarabify مثال القوائم
pyarabify مثال الأصناف
```

### 4. الاختبار

```bash
pyarabify اختبر
```

### 5. البحث في GitHub

```bash
pyarabify بحث "python machine learning"
pyarabify بحث numpy
pyarabify بحث django
```

### 6. إنشاء مشروع

```bash
pyarabify انشئ_مشروع آلة_حاسبة
pyarabify انشئ_مشروع قائمة_مهام
pyarabify انشئ_مشروع لعبة_تخمين
```

### 7. السؤال

```bash
pyarabify اسأل "ما فائدة دالة range"
pyarabify اسأل "كيف استخدم الحلقات"
```

### 8. الوضع (REPL)

```bash
pyarabify
pyarabify --dialect palestinian
```

مثال:
```
>>> اطبع("مرحباً")
مرحباً
>>> س = 10
>>> ص = 20
>>> اطبع(س + ص)
30
>>> خروج()
```

---

## البحث في GitHub

ابحث عن المستودعات والمشاريع مباشرة:

### من Python

```python
from pyarabify import ghb

اطبع("البحث عن مستودعات Python:")
نتائج = ghb.بحث_مستودعات("python machine learning", 5)
ghb.عرض_نتائج_البحث(نتائج, "repositories")

اطبع("\nالبحث عن مستخدمين:")
مستخدمين = ghb.بحث_مستخدمين("python developer", 3)
ghb.عرض_نتائج_البحث(مستخدمين, "users")

اطبع("\nالبحث في الكود:")
كود = ghb.بحث_كود("def main", 5)
ghb.عرض_نتائج_البحث(كود, "code")

اطبع("\nتفاصيل مستودع:")
تفاصيل = ghb.تفاصيل_المستودع("torvalds/linux")
```

### من سطر الأوامر

```bash
pyarabify بحث "python"
pyarabify بحث "machine learning"
pyarabify بحث "django rest framework"
```

---

## المساعد 

احصل على إجابات فورية وشروحات:

### من Python

```python
from pyarabify import hlp

جواب = hlp.اسأل("ما فائدة دالة range؟")
اطبع(جواب)

جواب = hlp.اسأل("كيف استخدم الحلقات؟")
اطبع(جواب)

جواب = hlp.اسأل("ما الفرق بين list و tuple؟")
اطبع(جواب)

كود = '''
لكل i في نطاق(5):
    اطبع(i)
'''

شرح = hlp.شرح_كود(كود)
اطبع("شرح الكود:")
اطبع(شرح)

اقتراحات = hlp.اقتراحات(كود)
اطبع("اقتراحات التحسين:")
اطبع(اقتراحات)
```

### من سطر الأوامر

```bash
pyarabify اسأل "ما فائدة range"
pyarabify اسأل "كيف استخدم for"
pyarabify اسأل "ما هو lambda"
```

---

## تحويل المعادلات

حول المعادلات العربية إلى أكواد:

```python
from pyarabify import mth

معادلة1 = "خمسة زائد ثلاثة"
نتيجة1 = mth.احسب(معادلة1)
اطبع(معادلة1, "=", نتيجة1)

معادلة2 = "عشرة ضرب اثنان"
نتيجة2 = mth.احسب(معادلة2)
اطبع(معادلة2, "=", نتيجة2)

معادلة3 = "مائة قسمة خمسة"
نتيجة3 = mth.احسب(معادلة3)
اطبع(معادلة3, "=", نتيجة3)

معادلة4 = "اثنان اس عشرة"
نتيجة4 = mth.احسب(معادلة4)
اطبع(معادلة4, "=", نتيجة4)

معادلة_مركبة = "خمسة زائد ثلاثة ضرب اثنان"
نتيجة_مركبة = mth.احسب(معادلة_مركبة)
اطبع(معادلة_مركبة, "=", نتيجة_مركبة)

رقم = mth.حول_نص_لرقم("خمسة")
اطبع("خمسة =", رقم)

رقم2 = mth.حول_نص_لرقم("عشرون")
اطبع("عشرون =", رقم2)
```

---

## الرسوميات

ارسم أشكالاً مذهلة باستخدام Turtle:

```python
from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()

سلحفاة.لون_القلم("أزرق")
سلحفاة.سمك_القلم(3)
سلحفاة.سرعة(5)

اطبع("رسم دائرة...")
سلحفاة.ارسم_دائرة(100)

سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(200, 0)
سلحفاة.اخفض_القلم()

اطبع("رسم مربع...")
سلحفاة.لون_القلم("أحمر")
سلحفاة.ارسم_مربع(150)

سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(-200, 0)
سلحفاة.اخفض_القلم()

اطبع("رسم نجمة...")
سلحفاة.لون_القلم("أخضر")
سلحفاة.ارسم_نجمة(5, 150)

اطبع("رسم مثلث...")
سلحفاة.ارفع_القلم()
سلحفاة.اذهب_الى(0, -200)
سلحفاة.اخفض_القلم()
سلحفاة.لون_القلم("برتقالي")
سلحفاة.ارسم_مثلث(200)

سلحفاة.انتظر()
```

رسم بالتعبئة:

```python
from pyarabify import drw

س = drw.انشئ_سلحفاة()

س.لون_القلم("أسود")
س.لون_التعبئة("أصفر")
س.سمك_القلم(2)

س.ابدأ_التعبئة()
س.ارسم_دائرة(100)
س.انهي_التعبئة()

س.انتظر()
```

---

## مولد المشاريع

ابدأ مشروعك الآن بكود جاهز:

### من Python

```python
from pyarabify import prj

اطبع("المشاريع المتاحة:")
prj.قائمة_المشاريع()

اطبع("\nإنشاء مشروع آلة حاسبة:")
prj.انشئ_مشروع("آلة_حاسبة")

اطبع("\nإنشاء مشروع قائمة المهام:")
prj.انشئ_مشروع("قائمة_مهام", "./مشاريعي")

اطبع("\nإنشاء لعبة تخمين:")
prj.انشئ_مشروع("لعبة_تخمين")
```

### من سطر الأوامر

```bash
pyarabify انشئ_مشروع
pyarabify انشئ_مشروع آلة_حاسبة
pyarabify انشئ_مشروع قائمة_مهام
pyarabify انشئ_مشروع لعبة_تخمين
```

### المشاريع الجاهزة

#### 1. آلة_حاسبة
آلة حاسبة كاملة بجميع العمليات الحسابية (جمع، طرح، ضرب، قسمة)

#### 2. قائمة_مهام
نظام إدارة مهام تفاعلي مع إضافة وحذف وعرض المهام

#### 3. لعبة_تخمين
لعبة تخمين الأرقام مع نظام محاولات ونتائج

---

## دعم المكتبات الشهيرة

جميع المكتبات الشهيرة مدعومة بترجمات كاملة:

### NumPy

```python
استرداد numpy كـ np

مصفوفة = np.مصفوفة([1, 2, 3, 4, 5])
اصفار = np.اصفار((3, 3))
احاد = np.احاد((2, 2))

المجموع = np.مجموع(مصفوفة)
المتوسط = np.متوسط(مصفوفة)
الاكبر = np.اكبر(مصفوفة)
```

### Pandas

```python
استرداد pandas كـ pd

بيانات = {
    'الاسم': ['أحمد', 'محمد', 'فاطمة'],
    'العمر': [25, 30, 28],
    'الراتب': [5000, 6000, 5500]
}

جدول = pd.جدول_بيانات(بيانات)
اطبع(جدول.راس())
اطبع(جدول.وصف())
```

### Matplotlib

```python
استرداد matplotlib.pyplot كـ plt

س = [1, 2, 3, 4, 5]
ص = [2, 4, 6, 8, 10]

plt.ارسم(س, ص)
plt.عنوان_س('المحور السيني')
plt.عنوان_ص('المحور الصادي')
plt.عنوان('رسم بياني')
plt.اعرض()
```

### Requests

```python
استرداد requests كـ req

استجابة = req.احصل('https://api.github.com')
اطبع(استجابة.json())

بيانات = {'key': 'value'}
استجابة = req.ارسل('https://api.example.com', json=بيانات)
```

### DateTime

```python
استرداد datetime

الان = datetime.تاريخ_وقت.الان()
اطبع("التاريخ والوقت الحالي:", الان)

اليوم = datetime.تاريخ.اليوم()
اطبع("التاريخ:", اليوم)
```

### Math

```python
استرداد math كـ ر

جذر_25 = ر.جذر(25)
جيب_90 = ر.جيب(ر.باي / 2)
اس_2_10 = ر.اس(2, 10)

اطبع("جذر 25 =", جذر_25)
اطبع("جيب 90 =", جيب_90)
اطبع("2 أس 10 =", اس_2_10)
```

---

## الأمثلة والدروس

### تشغيل الأمثلة

من سطر الأوامر:
```bash
python -m pyarabify.examples.المتغيرات
python -m pyarabify.examples.الحلقات
python -m pyarabify.examples.الدوال
python -m pyarabify.examples.الشروط
python -m pyarabify.examples.القوائم
python -m pyarabify.examples.الأصناف
```

### الأمثلة المتوفرة

1. **المتغيرات**: تعلم كيفية إنشاء واستخدام المتغيرات
2. **الحلقات**: أمثلة على حلقات for و while
3. **الدوال**: كيفية تعريف واستخدام الدوال
4. **الشروط**: الجمل الشرطية (if, elif, else)
5. **القوائم**: التعامل مع القوائم والعمليات عليها
6. **الأصناف**: البرمجة الكائنية (OOP)

---

## API المرجعي

### execute

تنفيذ كود Python مكتوب بالعربية

```python
from pyarabify import execute

result = execute(
    code='اطبع("مرحباً")',
    dialect='formal',
    show_english=False,
    globals_dict=None,
    locals_dict=None
)
```

المعاملات:
- `code` (str): الكود العربي
- `dialect` (str): اللهجة (formal/short/egyptian/gulf/palestinian/iraqi)
- `show_english` (bool): عرض الكود المترجم
- `globals_dict` (dict): المتغيرات العامة
- `locals_dict` (dict): المتغيرات المحلية

القيمة المرجعة:
- dict: `{'status': 'success/error', 'english_code': '...'}`

---

### execute_file

تنفيذ ملف Python مكتوب بالعربية

```python
from pyarabify import execute_file

execute_file('program.py', dialect='formal', show_english=False)
```

---

### to_english

تحويل كود عربي إلى إنجليزي

```python
from pyarabify import to_english

arabic = 'اطبع("مرحباً")'
english = to_english(arabic, dialect='formal')
اطبع(english)
```

---

### to_arabic

تحويل كود إنجليزي إلى عربي

```python
from pyarabify import to_arabic

english = 'print("Hello")'
arabic = to_arabic(english, dialect='formal')
اطبع(arabic)
```

---

### ArabicParser

فئة المحلل اللغوي

```python
from pyarabify import ArabicParser

parser = ArabicParser(dialect='formal')
parser.add_custom_word('اعرض', 'display')
code = parser.to_english('اعرض("مرحباً")')
```

الدوال:
- `parse(code)`: تحليل وترجمة
- `add_custom_word(arabic, english, category)`: إضافة كلمة
- `set_dialect(dialect)`: تغيير اللهجة
- `get_available_dialects()`: الحصول على اللهجات

---

### git

دوال Git

```python
from pyarabify import git

git.احصل_على_الحالة()
git.اضف_للتتبع(".")
git.احفظ_التغييرات("رسالة")
git.ادفع_إلى_المستودع()
git.اسحب_التحديثات()
git.استنسخ_مستودع("https://github.com/user/repo.git")
```

---

### web

دوال الويب

```python
from pyarabify import web

web.افتح_رابط("https://github.com")
محتوى = web.الحصول("https://api.github.com")
web.تحميل("https://example.com/file.pdf", "ملف.pdf")
```

---

### ghb

البحث في GitHub

```python
from pyarabify import ghb

نتائج = ghb.بحث_في_جيتهب("python", "repositories", 10)
ghb.عرض_نتائج_البحث(نتائج)
تفاصيل = ghb.تفاصيل_المستودع("username/repo")
```

---

### hlp

المساعد 

```python
from pyarabify import hlp

جواب = hlp.اسأل("سؤالك هنا")
شرح = hlp.شرح_كود("كودك هنا")
اقتراحات = hlp.اقتراحات("كودك هنا")
```

---

### mth

تحويل المعادلات العربية

```python
from pyarabify import mth

نتيجة = mth.احسب("خمسة زائد ثلاثة")
معادلة = mth.حول_معادلة("عشرة ضرب اثنان")
رقم = mth.حول_نص_لرقم("خمسون")
```

الدوال المتاحة:
- `احسب(معادلة)`: حساب معادلة عربية وإرجاع النتيجة
- `حول_معادلة(معادلة)`: تحويل معادلة عربية لكود Python
- `حول_نص_لرقم(نص)`: تحويل نص عربي لرقم

---

### drw

الرسوميات باستخدام Turtle

```python
from pyarabify import drw

سلحفاة = drw.انشئ_سلحفاة()
سلحفاة.ارسم_دائرة(100)
سلحفاة.ارسم_مربع(150)
سلحفاة.ارسم_نجمة(5, 100)
سلحفاة.انتظر()
```

الدوال المتاحة:
- `انشئ_سلحفاة()`: إنشاء كائن رسم
- `ارسم_دائرة(نصف_القطر)`: رسم دائرة
- `ارسم_مربع(الطول)`: رسم مربع
- `ارسم_مثلث(الطول)`: رسم مثلث
- `ارسم_نجمة(عدد_الرؤوس, الحجم)`: رسم نجمة
- `ارسم_مستطيل(الطول, العرض)`: رسم مستطيل
- `لون_القلم(اللون)`: تغيير لون القلم
- `سمك_القلم(السمك)`: تغيير سمك القلم
- `سرعة(السرعة)`: تغيير سرعة الرسم

---

### prj

مولد المشاريع

```python
from pyarabify import prj

prj.قائمة_المشاريع()
prj.انشئ_مشروع("آلة_حاسبة")
prj.انشئ_مشروع("قائمة_مهام", "./مجلد")
```

الدوال المتاحة:
- `قائمة_المشاريع()`: عرض المشاريع الجاهزة
- `انشئ_مشروع(اسم, مسار)`: إنشاء مشروع جاهز

المشاريع المتاحة:
- `آلة_حاسبة`: آلة حاسبة كاملة
- `قائمة_مهام`: نظام إدارة مهام
- `لعبة_تخمين`: لعبة تخمين الأرقام

---

### spl

التصحيح الإملائي

```python
from pyarabify import spl

كود_صحيح = spl.تصحيح("اطبغ('مرحباً')")
اقتراحات = spl.اقتراحات_الكلمات("اطبغ")
```

الدوال المتاحة:
- `تصحيح(كود)`: تصحيح الأخطاء الإملائية
- `اقتراحات_الكلمات(كلمة)`: الحصول على اقتراحات

---

### lib

دعم المكتبات 

```python
from pyarabify import lib

ترجمات = lib.get_library_translations("numpy")
```

المكتبات المدعومة:
- numpy
- pandas
- matplotlib
- requests
- datetime
- math
- random
- os
- sys

---

### aut

التثبيت التلقائي

```python
from pyarabify import aut

aut.تثبيت_تلقائي("requests")
aut.استيراد_مع_تثبيت("numpy")
```

الدوال المتاحة:
- `تثبيت_تلقائي(اسم_المكتبة)`: تثبيت مكتبة
- `استيراد_مع_تثبيت(اسم_المكتبة)`: استيراد مع التثبيت

---

### edat

عرض الأخطاء بالعربية

```python
from pyarabify import edat

edat()

اسم_غير_موجود
```

الناتج:
```
============================================================
خطأ: اسم غير معرف
============================================================
الملف: "test.py", السطر: 5
  in <module>

التفاصيل: name 'اسم_غير_موجود' is not defined
============================================================
```

الأخطاء المدعومة:
- `NameError` → خطأ: اسم غير معرف
- `SyntaxError` → خطأ في بناء الجملة
- `TypeError` → خطأ في النوع
- `ValueError` → خطأ في القيمة
- `AttributeError` → خطأ: خاصية غير موجودة
- `KeyError` → خطأ: مفتاح غير موجود
- `IndexError` → خطأ: فهرس خارج النطاق
- `ZeroDivisionError` → خطأ: قسمة على صفر
- `FileNotFoundError` → خطأ: ملف غير موجود

استخدام 

```python
from pyarabify import edat
from pyarabify import execute

edat()

code = '''
دالة قسم(أ, ب):
    ارجع أ / ب

النتيجة = قسم(10, 0)
'''

execute(code)
```

---

---

## APIs

### 1. API ترجمة الأكواد (Translation API)

#### to_english - تحويل عربي لإنجليزي

تحويل كود Python المكتوب بالعربية إلى كود إنجليزي

**التعريف:**
```python
to_english(arabic_code, dialect='formal')
```

**المعاملات:**
- `arabic_code` (str): الكود العربي المراد ترجمته
- `dialect` (str): اللهجة المستخدمة (افتراضياً: 'formal')
  - اللهجات المتاحة: `formal`, `short`, `egyptian`, `gulf`, `palestinian`, `iraqi`

**القيمة المرجعة:**
- (str): الكود الإنجليزي المترجم

**أمثلة تفصيلية:**

```python
from pyarabify import to_english

كود_عربي_1 = 'اطبع("مرحباً بالعالم")'
كود_انجليزي_1 = to_english(كود_عربي_1)
print(كود_انجليزي_1)

كود_عربي_2 = '''
دالة جمع(أ, ب):
    النتيجة = أ + ب
    ارجع النتيجة

المجموع = جمع(5, 3)
اطبع(المجموع)
'''
كود_انجليزي_2 = to_english(كود_عربي_2, dialect='formal')
print(كود_انجليزي_2)

كود_عربي_3 = '''
لو العدد > 10:
    اطبع("كبير")
والا:
    اطبع("صغير")
'''
كود_انجليزي_3 = to_english(كود_عربي_3, dialect='palestinian')
print(كود_انجليزي_3)
```

**حالات استخدام متقدمة:**

```python
from pyarabify import to_english

كود_معقد = '''
صنف شخص:
    دالة __init__(نفسه, الاسم, العمر):
        نفسه.الاسم = الاسم
        نفسه.العمر = العمر
    
    دالة عرف_نفسك(نفسه):
        اطبع("أنا", نفسه.الاسم)
        اطبع("عمري", نفسه.العمر)

احمد = شخص("أحمد", 25)
احمد.عرف_نفسك()
'''

كود_انجليزي = to_english(كود_معقد)
print("الكود المترجم:")
print(كود_انجليزي)
```

---

#### to_arabic - تحويل إنجليزي لعربي

تحويل كود Python الإنجليزي إلى كود عربي

**التعريف:**
```python
to_arabic(english_code, dialect='formal')
```

**المعاملات:**
- `english_code` (str): الكود الإنجليزي المراد ترجمته
- `dialect` (str): اللهجة المستهدفة (افتراضياً: 'formal')

**القيمة المرجعة:**
- (str): الكود العربي المترجم

**أمثلة:**

```python
from pyarabify import to_arabic

english_code_1 = 'print("Hello World")'
arabic_code_1 = to_arabic(english_code_1)
print(arabic_code_1)

english_code_2 = '''
def calculate_sum(a, b):
    result = a + b
    return result

total = calculate_sum(10, 20)
print(total)
'''
arabic_code_2 = to_arabic(english_code_2, dialect='formal')
print(arabic_code_2)

english_code_3 = '''
for i in range(5):
    print(i)
'''
arabic_code_3 = to_arabic(english_code_3, dialect='short')
print(arabic_code_3)
```

**مثال - ترجمة برنامج كامل:**

```python
from pyarabify import to_arabic

full_program = '''
class Calculator:
    def __init__(self):
        self.result = 0
    
    def add(self, value):
        self.result += value
    
    def subtract(self, value):
        self.result -= value
    
    def get_result(self):
        return self.result

calc = Calculator()
calc.add(10)
calc.add(5)
calc.subtract(3)
print("Result:", calc.get_result())
'''

arabic_program = to_arabic(full_program, dialect='formal')
print("البرنامج بالعربية:")
print(arabic_program)
```

---

### 2. API التنفيذ (Execution API)

#### execute - تنفيذ كود عربي

تنفيذ كود Python مكتوب بالعربية 

**التعريف:**
```python
execute(code, dialect='formal', show_english=False, globals_dict=None, locals_dict=None)
```

**المعاملات:**
- `code` (str): الكود العربي المراد تنفيذه
- `dialect` (str): اللهجة المستخدمة (افتراضياً: 'formal')
- `show_english` (bool): عرض الكود المترجم قبل التنفيذ (افتراضياً: False)
- `globals_dict` (dict): قاموس المتغيرات العامة
- `locals_dict` (dict): قاموس المتغيرات المحلية

**القيمة المرجعة:**
- (dict): قاموس يحتوي على:
  - `status`: حالة التنفيذ ('success' أو 'error')
  - `english_code`: الكود الإنجليزي المترجم
  - `error`: رسالة الخطأ (إن وجد)

**أمثله**

```python
from pyarabify import execute

code1 = 'اطبع("هاا")'
result1 = execute(code1)
print("Status:", result1['status'])

code2 = '''
العدد_الأول = 10
العدد_الثاني = 20
المجموع = العدد_الأول + العدد_الثاني
اطبع("المجموع =", المجموع)
'''
result2 = execute(code2, show_english=True)

code3 = '''
دالة حساب_المساحة(الطول, العرض):
    المساحة = الطول * العرض
    ارجع المساحة

مساحة_المستطيل = حساب_المساحة(5, 10)
اطبع("المساحة =", مساحة_المستطيل)
'''
result3 = execute(code3, dialect='formal')
```

**استخدام مع متغيرات :**

```python
from pyarabify import execute

globals_dict = {'x': 100, 'y': 200}
locals_dict = {}

code = '''
المجموع = x + y
اطبع("المجموع =", المجموع)
'''

result = execute(code, globals_dict=globals_dict, locals_dict=locals_dict)
```

**مثال متقدم - برنامج تفاعلي:**

```python
from pyarabify import execute

program = '''
صنف آلة_حاسبة:
    دالة __init__(نفسه):
        نفسه.النتيجة = 0
    
    دالة جمع(نفسه, قيمة):
        نفسه.النتيجة = نفسه.النتيجة + قيمة
        ارجع نفسه.النتيجة
    
    دالة طرح(نفسه, قيمة):
        نفسه.النتيجة = نفسه.النتيجة - قيمة
        ارجع نفسه.النتيجة

آلة = آلة_حاسبة()
اطبع("بعد جمع 10:", آلة.جمع(10))
اطبع("بعد جمع 5:", آلة.جمع(5))
اطبع("بعد طرح 3:", آلة.طرح(3))
'''

result = execute(program, show_english=True)
```

---

#### execute_file - تنفيذ ملف عربي

تنفيذ ملف Python مكتوب بالعربية

**التعريف:**
```python
execute_file(file_path, dialect='formal', show_english=False)
```

**المعاملات:**
- `file_path` (str): مسار الملف
- `dialect` (str): اللهجة المستخدمة
- `show_english` (bool): عرض الكود المترجم

**أمثلة:**

```python
from pyarabify import execute_file

execute_file('program.py')

execute_file('calculator.py', dialect='egyptian')

execute_file('game.py', dialect='palestinian', show_english=True)
```

---

### 3. API عرض الأخطاء (Error Display API)

#### edat - تفعيل معالج الأخطاء العربي

تفعيل نظام عرض الأخطاء بالعربية

**التعريف:**
```python
from pyarabify import edat
edat()
```

**الاستخدام:**

```python
from pyarabify import edat

edat()

اسم_غير_موجود
```

**أمثلة تفصيلية:**

```python
from pyarabify import edat, execute

edat()

code = '''
دالة قسمة(أ, ب):
    اذا ب == 0:
        رفع خطأ_قيمة("لا يمكن القسمة على صفر")
    ارجع أ / ب

النتيجة = قسمة(10, 0)
'''

execute(code)
```

**مثال متقدم - معالجة أخطاء متعددة:**

```python
from pyarabify import edat, execute

edat()

program = '''
حاول:
    قائمة = [1, 2, 3]
    اطبع(قائمة[10])
ماعدا خطأ_فهرس:
    اطبع("الفهرس خارج النطاق")

حاول:
    ملف = افتح("ملف_غير_موجود.txt")
ماعدا خطأ_ملف_غير_موجود:
    اطبع("الملف غير موجود")
'''

execute(program)
```

---

### 4. API تحويل المعادلات (Math Equations API)

#### احسب - حساب معادلة عربية

تقييم معادلة رياضية مكتوبة بالعربية وإرجاع النتيجة

**التعريف:**
```python
from pyarabify.src.mth import احسب
احسب(معادلة)
```

**المعاملات:**
- `معادلة` (str): المعادلة الرياضية بالعربية

**القيمة المرجعة:**
- (int/float): نتيجة المعادلة
- (str): رسالة خطأ إذا فشلت

**الأرقام المدعومة:**
```python
صفر, واحد, اثنان, اثنين, ثلاثة, ثلاثه, اربعة, اربعه, أربعة, أربعه
خمسة, خمسه, ستة, سته, سبعة, سبعه, ثمانية, ثمانيه, تسعة, تسعه
عشرة, عشره, عشرون, عشرين, ثلاثون, ثلاثين, اربعون, اربعين
خمسون, خمسين, ستون, ستين, سبعون, سبعين, ثمانون, ثمانين, تسعون, تسعين
مئة, مائة, مئه, مائه, الف, ألف
```

**العمليات المدعومة:**
```python
زائد (+), جمع (+), اضافة (+)
ناقص (-), طرح (-)
ضرب (*), مضروب (*), في (*)
قسمة (/), مقسوم (/), على (/)
اس (**), قوة (**)
باقي (%)
```

**أمثلة تفصيلية:**

```python
from pyarabify.src.mth import احسب

نتيجة1 = احسب("خمسة زائد ثلاثة")
print(نتيجة1)

نتيجة2 = احسب("عشرة ضرب اثنان")
print(نتيجة2)

نتيجة3 = احسب("مائة قسمة خمسة")
print(نتيجة3)

نتيجة4 = احسب("اثنان اس عشرة")
print(نتيجة4)

نتيجة5 = احسب("خمسة زائد ثلاثة ضرب اثنان")
print(نتيجة5)

نتيجة6 = احسب("عشرون باقي ثلاثة")
print(نتيجة6)
```

**أمثلة معقدة:**

```python
from pyarabify.src.mth import احسب

معادلة1 = "خمسون زائد عشرون ضرب اثنان"
print(f"{معادلة1} = {احسب(معادلة1)}")

معادلة2 = "مائة ناقص خمسون قسمة عشرة"
print(f"{معادلة2} = {احسب(معادلة2)}")

معادلة3 = "ثلاثة اس اربعة زائد عشرة"
print(f"{معادلة3} = {احسب(معادلة3)}")
```

---

#### حول_معادلة - تحويل معادلة لكود

تحويل معادلة عربية إلى كود Python قابل للتنفيذ

**التعريف:**
```python
from pyarabify.src.mth import حول_معادلة
حول_معادلة(معادلة)
```

**أمثلة:**

```python
from pyarabify.src.mth import حول_معادلة

كود1 = حول_معادلة("خمسة زائد ثلاثة")
print(كود1)

كود2 = حول_معادلة("عشرة ضرب اثنان")
print(كود2)
```

---

#### حول_نص_لرقم - تحويل نص لرقم

تحويل نص عربي يمثل رقم إلى قيمة رقمية

**التعريف:**
```python
from pyarabify.src.mth import حول_نص_لرقم
حول_نص_لرقم(نص)
```

**أمثلة:**

```python
from pyarabify.src.mth import حول_نص_لرقم

رقم1 = حول_نص_لرقم("خمسة")
print(رقم1)

رقم2 = حول_نص_لرقم("عشرون")
print(رقم2)

رقم3 = حول_نص_لرقم("مائة")
print(رقم3)
```

---

## إضافة كلمات مخصصة

```python
from pyarabify import ArabicParser

parser = ArabicParser()
parser.add_custom_word('اعرض', 'show', category='builtins')
parser.add_custom_word('سجل', 'log', category='builtins')

code = '''
دالة اعرض(رسالة):
    اطبع("عرض:", رسالة)

اعرض("مرحباً")
'''

from pyarabify import execute
execute(code)
```

---

## القاموس الكامل

### إحصائيات القاموس

- **إجمالي الكلمات**: 12,238+
- **الكلمات المحجوزة**: 60+
- **الدوال المدمجة**: 100+
- **دوال القوائم والنصوص**: 50+
- **الاستثناءات**: 30+
- **المكتبات**: 25+
- **دوال Git**: 57
- **دوال الويب**: 15+
- **اللهجات**: 6

---

## المتطلبات

- Python 2.7 أو أعلى
- Python 3.x (جميع الإصدارات)

لا توجد متطلبات خارجية إلزامية

المتطلبات الاختيارية (للمميزات)
- `turtle` (مثبتة افتراضياً مع Python): للرسوميات
- اتصال بالإنترنت: للبحث في GitHub

---

## الأسئلة الشائعة

### هل يمكنني مزج الكود العربي والإنجليزي؟

نعم، يمكنك استخدام الكود الإنجليزي الأصلي مع الكود العربي

### هل تعمل المكتبة مع Python 2؟

نعم، المكتبة متوافقة مع Python 2.7 وجميع إصدارات Python 3

### كيف أضيف كلمات جديدة؟

```python
from pyarabify import ArabicParser

parser = ArabicParser()
parser.add_custom_word('كلمتك_العربية', 'english_word')
```

### هل يمكنني استخدام المكتبة في مشاريعي التجارية؟

نعم، المكتبة مرخصة تحت MIT License

### هل تدعم المكتبة جميع مكتبات Python؟

المكتبة تترجم أشهر المكتبات، ويمكنك إضافة ترجمات مخصصة لأي مكتبة

### كيف أساهم في المشروع؟

راجع قسم المساهمة أدناه

---

## الترخيص

MIT License - انظر ملف LICENSE للتفاصيل

---

## المساهمة

نرحب بمساهماتك

1. Fork المشروع
2. أنشئ branch جديد
3. Commit تغييراتك
4. Push للـ branch
5. افتح Pull Request

أفكار للمساهمة:
- إضافة لهجات عربية جديدة
- ترجمة مكتبات Python إضافية
- تحسين التصحيح الإملائي
- إضافة أمثلة ودروس جديدة
- تحسين التوثيق

---

## الدعم

- المشاكل التقنية: [GitHub Issues](https://github.com/6x-u/pyarabify/issues)
- التواصل: [@QP4RM](https://t.me/QP4RM) على Telegram
- التوثيق: [GitHub Repository](https://github.com/6x-u/pyarabify)

---

## الشكر والتقدير

شكراً لاستخدامك pyarabify. نأمل أن تساعد هذه المكتبة في نشر البرمجة بالعربية وجعلها متاحة للجميع

إذا أعجبتك المكتبة، لا تنسى إعطائها نجمة على GitHub

---

## خارطة الطريق

### الإصدارات القادمة

**الإصدار 2.3.0** (قريباً):
- دعم Pygame للألعاب
- واجهة (GUI) بالعربية
- المزيد من اللهجات العربية
- دروس تفاعلية متقدمة

**الإصدار 3.0.0** (مستقبلاً):
- محرر أكواد متكامل بالعربية
- منصة تعليمية
- دعم الذكاء الاصطناعي
- ربط مع Arduino و Raspberry Pi

---

**تم التطوير بواسطة MERO**

Telegram: [@QP4RM](https://t.me/QP4RM)
GitHub: [6x-u](https://github.com/6x-u)

نسخة: 2.2.0

</div>
