يتم إعطاؤك مقتطف رمز يتضمن وظيفة `to_importable_name(path: Path) -> اختياري[str]`. تأخذ الدالة كائن "المسار" كمدخل وتحوله إلى اسم قابل للاستيراد. مهمتك هي كتابة دالة `split_path_name(path_string: str) -> اختياري[str]` تأخذ سلسلة تمثل مسار الملف وتقسمها إلى قائمة بأسماء الأدلة واسم الملف. يجب إزالة ملحق الملف من اسم الملف.

اكتب دالة `split_path_name(path_string: str) -> اختياري[str]` والتي تأخذ سلسلة `path_string` كمدخل وترجع سلسلة تمثل الاسم القابل للاستيراد.

**مدخل**
- سلسلة `path_string` تمثل مسار الملف. لن يتجاوز طول `path_string` 1000 حرف.

**انتاج**
- قم بإرجاع سلسلة تمثل الاسم القابل للاستيراد لمسار الملف المحدد. إذا كان اسم الملف "__main__" أو في حالة حدوث أي خطأ أثناء معالجة المسار، فسيتم إرجاع `None`.

**ملحوظة**
- يمكن أن يكون مسار الملف `path_string` مسارًا مطلقًا أو نسبيًا، ويمكن أن يحتوي على أي أحرف صالحة لمسار نظام الملفات.
- يجب إزالة امتداد الملف من اسم الملف.
- إذا كان اسم الملف هو "__init__"، فيجب إزالته من الاسم القابل للاستيراد.
- يجب أن يتكون الاسم القابل للاستيراد من خلال ربط أسماء الدليل بالنقاط (.).

**مثال**
```بيثون
تأكيد Split_path_name("path/to/file.py") == "path.to.file"
تأكيد Split_path_name("../path/to/__init__.py") == "path.to"
تأكيد Split_path_name("main.py") == لا شيء
تأكيد Split_path_name("path/to/invalid\\file.py") == لا شيء
```
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}