تم تكليفك بتنفيذ فئة تسمى "Bot" والتي سيتم استخدامها لإنشاء ذكاء اصطناعي (AI) لروبوت تداول العملات الأجنبية (FX). يتم تعريف فئة "Bot" في الوحدة النمطية "oanda_bot.oanda_bot".

يعرض مقتطف الكود أعلاه بيان استيراد يُستخدم لاستيراد فئة `Bot` من الوحدة النمطية `oanda_bot.oanda_bot`. بالإضافة إلى ذلك، يتضمن المقتطف عنصرًا نائبًا `<gh_stars>10-100`. يشير إلى أن فئة `Bot` لها خاصية تسمى `gh_stars`، والتي تمثل شعبية روبوت التداول على GitHub، بقيمة تتراوح بين 10 و100.

مهمتك هي تنفيذ فئة `Bot` والتأكد من أنها تتمتع بالسلوك التالي:

1. يجب أن تحتوي فئة `Bot` على مُنشئ يأخذ معلمتين:
   - `الاسم` (سلسلة) - اسم روبوت التداول.
   - `gh_stars` (عدد صحيح) - شعبية روبوت التداول على GitHub. يجب أن تكون هذه الخاصية افتراضية 10 إذا لم يتم توفير قيمة.

2. يجب أن تحتوي فئة "Bot" على طريقة تسمى "get_popularity" والتي تُرجع شعبية روبوت التداول على GitHub.

3. يجب أن تحتوي فئة "Bot" على طريقة تسمى "set_popularity" والتي تأخذ معلمة واحدة:
   - `gh_stars` (عدد صحيح) - قيمة الشعبية الجديدة لروبوت التداول على GitHub.

   يجب أن تتحقق طريقة `set_popularity` من أن قيمة `gh_stars` المقدمة تقع ضمن النطاق من 10 إلى 100 (شاملاً) وتحديث خاصية `gh_stars` وفقًا لذلك. إذا كانت القيمة المقدمة خارج هذا النطاق، فيجب أن تظل خاصية `gh_stars` دون تغيير.

4. يجب أن تحتوي فئة "البوت" على طريقة تسمى "زيادة_الشعبية" والتي لا تأخذ أي معلمات وتزيد من شعبية روبوت التداول على GitHub بمقدار 10.

5. يجب أن تحتوي فئة "البوت" على طريقة تسمى "تقليل_الشعبية" والتي لا تأخذ أي معلمات وتقلل من شعبية روبوت التداول على GitHub بمقدار 10. يجب ألا تقل قيمة الشعبية عن 10.

**قيود:**
- ستكون المعلمة `name` الخاصة بمنشئ فئة `Bot` عبارة عن سلسلة غير فارغة من الأحرف الأبجدية الرقمية والمسافات (على سبيل المثال، "My Trading Bot").
- ستكون المعلمة `gh_stars` لمنشئ فئة `Bot` وطريقة `set_popularity` عددًا صحيحًا ضمن النطاق من 0 إلى 200 (شاملاً). لن يتم استدعاء الأسلوب `set_popularity` إلا إذا تمت تهيئة مثيل الفئة.
- لن يتم استدعاء طريقتي "increase_popularity" و"decrease_popularity" إلا في حالة تهيئة مثيل الفئة.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}