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

تتمثل مهمتك في تنفيذ وظيفة "anonymize_data_file"، والتي تأخذ مسارًا إلى ملف بيانات JSON محدد بسطر جديد وعلامة منطقية اختيارية "preserve_keys". يجب أن تقوم الوظيفة بقراءة ملف البيانات، وإخفاء هوية المفاتيح و/أو القيم بناءً على العلامة، وكتابة البيانات مجهولة المصدر في ملف جديد.

يجب أن تقوم الوظيفة بالخطوات التالية:

1. اقرأ محتوى ملف البيانات.
2. قم بتقسيم المحتوى إلى كائنات JSON فردية بناءً على أحرف السطر الجديد (`"\n"`).
3. بالنسبة لكل كائن JSON، قم بإخفاء هوية المفاتيح و/أو القيم بناءً على علامة `preserve_keys`:
   - إذا كانت قيمة `preserve_keys` هي `True`، فقم بإخفاء هوية القيم فقط. استبدل كل قيمة بسلسلة من العلامات النجمية (""*"`)، بنفس طول القيمة الأصلية. يجب أن تظل المفاتيح دون تغيير.
   - إذا كانت قيمة `preserve_keys` `خطأ`، فقم بإخفاء هوية كل من المفاتيح والقيم. استبدل كل مفتاح وقيمة بسلسلة من العلامات النجمية (`"*"`)، بنفس طول المفتاح/القيمة الأصلية.
4. قم بربط كائنات JSON المجهولة مرة أخرى في سلسلة واحدة، مفصولة بأحرف السطر الجديد.
5. اكتب البيانات مجهولة المصدر في ملف جديد يحمل نفس اسم الملف الأصلي، ولكن مع اللاحقة ".anonymized".

** التوقيع الوظيفي: **

```بيثون
تعريف anonymize_data_file(file_path: str, keep_keys: bool = True) -> لا شيء:
    يمر
```

**مدخل:**

تأخذ الدالة `anonymize_data_file` معلمتين:
- `file_path` (1 <= len(file_path) <= 100): سلسلة تمثل المسار إلى ملف بيانات JSON المحدد بسطر جديد. الملف موجود وقابل للقراءة.
- `preserve_keys` (اختياري): علامة منطقية تشير إلى ما إذا كان سيتم الاحتفاظ بالمفاتيح في البيانات مجهولة المصدر. إذا كان "صحيحًا"، فيجب إخفاء هوية القيم فقط. إذا كان "خطأ"، فيجب أن تكون المفاتيح والقيم مجهولة المصدر. القيمة الافتراضية هي "صحيح".

**انتاج:**

الدالة `anonymize_data_file` لا تُرجع أي شيء. يجب أن يكتب البيانات مجهولة المصدر في ملف جديد بنفس اسم الملف الأصلي، ولكن مع لاحقة ".anonymized". يجب إنشاء الملف الجديد في نفس الدليل مثل الملف الأصلي.

**ملحوظة:**
- قد يحتوي ملف الإدخال على كمية كبيرة من البيانات، لذا تأكد من استخدام أساليب فعالة لقراءة البيانات ومعالجتها وكتابتها.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}