تم تكليفك بتطوير تطبيق شبكة يحتاج إلى إرسال حزم كبيرة من البيانات بين العميل والخادم. ومع ذلك، يوجد حد أقصى لوحدة الإرسال (MTU) يقيد حجم كل حزمة يمكن إرسالها.

بالنظر إلى مقتطف الشفرة أعلاه، تحتاج إلى تنفيذ وظيفة تسمى "calculate_packet_size" والتي تأخذ عددًا صحيحًا "data_bytes" يمثل عدد البايتات في البيانات المراد إرسالها. يجب أن تقوم هذه الوظيفة بحساب وإرجاع الحد الأقصى لحجم الحزمة (بالبايت) التي يمكن إرسالها، مع الأخذ في الاعتبار قيود وحدة الإرسال الكبرى (MTU).

افترض أنه تم تعيين تقييد MTU على الحد الأقصى لحجم الحزمة وهو 1500 بايت. إذا تجاوزت قيمة "data_bytes" 1500، فيجب أن تقوم الدالة بإرجاع حجم وحدة الإرسال الكبرى (MTU). إذا كانت قيمة "data_bytes" أقل من أو تساوي 1500، فيجب أن تُرجع الدالة قيمة "data_bytes".

ملاحظة: فئة "ProviderOptions" ليست ذات صلة بهذه المشكلة ويمكن تجاهلها.

اكتب دالة `def account_packet_size(data_bytes: int) -> int` لحل المشكلة.
لحل هذه المشكلة، يمكن استخدام المنطق المنطقي في الدالة `calculate_packet_size` لتحقق من الحجم الحالي للحزمة وفقًا للحد الأقصى للMTU. إذا كان الحجم أكبر من 1500 بايت، يتم إرجاع MTU، وإذا كان أقل أو igual، يتم إرجاع الحجم الأصلي للبيانات.

الخطوات المتبعة في الحل هي:

1. حساب الحجم الحالي للحزمة باستخدام الرقم المحدد "data_bytes" (1 بيت يساوي 8 بايت تقريبًا، لأن الأرقام كبيرة).
2. مقارنة الحجم الحالي مع الحد الأقصى للMTU (1500 بايت).
3. إذا كان الحجم أكبر من 1500، إرجاع 1500 بايت.
4. إذا كان الحجم أقل أو igual، إرجاع الحجم الأصلي.

الدالة بالكامل ستكون كالتالي:

```python
def calculate_packet_size(data_bytes: int) -> int:
    mtu = 1500  # الحد الأقصى للMTU

    # حساب حجم الحزمة باستخدام 1 بيت لكل 8 بايت (لتحويل الأرقام الكبيرة إلى أرقام بسيطة)
    packet_size = data_bytes * 8

    # تحقق إذا كان الحجم أكبر من MTU
    if packet_size > mtu:
        return mtu
    else:
        return packet_size
```

باستخدام هذه الدالة، إذا كان هناك إدخال比如说 `data_bytes = 2000`، ستقوم بحساب الحجم الحقيقي للحزمة (1600 بايت) وستعيد 1500 بايت فقط، لأن الحجم يتجاوز حد الإرسال. إذا كان الحجم أقل من أو يساوي 1500، ستعيد الحجم الأصلي.  لحل هذه المشكلة، يمكننا استخدام مفهوم الحساب والتحقق من الشروط. 

الخطوات التالية توضح كيفية تنفيذ هذه الوظيفة:

1. أولاً، نحتاج إلى تحديد القيمة القصوى لوحدة الإرسال (MTU)، وهي 1500 بايت في هذا السياق.

2. ثم، نحتاج إلى تحديد قيمة البيانات التي يتعين إرسالها، والتي تم تمريرها كمعامل   

بناءً على المتطلبات المذكورة، يمكننا كتابة الدالة كما يلي:

```python
def calculate_packet_size(data_bytes: int) -> int:
    if data_bytes > 1500:
        return 1500
    else:
        return data_bytes
```

هذه الدالة تأخذ عدد البايتات في البيانات المراد إرسالها وتقوم بحساب الحجم الأقصى للحزمة التي يمكن إرسالها. إذا كانت البيانات تتجاوز 1500 بايت، فسيتم إرجاع 1500. في  هنا تنفيذ وظيفة تسمى `calculate_packet_size` التي تأخذ عددًا صحيحًا "data_bytes" يمثل عدد البايتات في البيانات المراد إرسالها. تقوم الدالة بحساب وإرجاع الحد الأقصى لحجم الحزمة (بالبايت) التي يمكن إرسالها، مع الأخذ في الاعتبار قيود وحدة الإرسال الكبرى (MTU). ```python def account_packet_size(data_bytes: int) -> int: إذا data_bytes < 1500: raise ValueError (("حجم الحزمة يجب أن يكون أقل من 1500 بايت") إذا data_bytes > 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes <= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أقل من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes < 1500: raise ValueError (("حجم الحزمة يجب أن يكون أقل من 1500 بايت") إذا data_bytes <= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: raise ValueError (("حجم الحزمة يجب أن يكون أكبر من 1500 بايت") إذا data_bytes >= 1500: