يتم إعطاؤك مقتطف رمز يتضمن ثلاث وظائف: `name_for_asset_id`، و`all_name_to_property_id`، و`all_property_id_to_name`. يتم تعريف هذه الوظائف في برنامج نصي بايثون.

تأخذ الدالة `name_for_asset_id` عددًا صحيحًا `asset_id` وترجع الاسم المرتبط بـ `asset_id` هذا إذا كان موجودًا، أو `لا شيء` إذا لم يكن موجودًا. يتم استخدام "asset_id" كمفتاح لاسترداد الاسم من القاموس الذي يتم إرجاعه بواسطة الدالة "all_asset_id_to_name".

الوظيفة `all_name_to_property_id` هي وظيفة مخزنة مؤقتًا تقرأ البيانات من ملف يسمى "property_names.json". تقوم بإرجاع قاموس يقوم بتعيين أسماء الخصائص إلى معرفات الخصائص المقابلة.

تعد وظيفة `all_property_id_to_name` أيضًا وظيفة مخزنة مؤقتًا تقوم باسترداد قاموس أسماء الخصائص إلى معرفات الخصائص باستخدام وظيفة `all_name_to_property_id`. تقوم بإرجاع قاموس يقوم بتعيين معرفات الخصائص لأسماء الخصائص المقابلة.

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

تأكد من التعامل مع أي أخطاء محتملة قد تحدث أثناء قراءة الملف أو البحث في القاموس داخل الحل الخاص بك.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}