Python 3.5¶
فيما يلي قائمة بمقترحات PEP المنتهية/المقبولة للإصدار Python 3.5 مُجمّعة حسب تأثيرها على MicroPython.
إضافات إلى بناء الجملة |
الحالة |
|
تعميمات إضافية لفك التغليف |
جزئي |
|
عامل جديد لضرب المصفوفات |
مكتمل |
|
الكوروتينات مع بناء الجملة |
مكتمل |
|
إضافات وتغييرات على وقت التشغيل |
||
تنسيق % للسلاسل الثنائية |
مكتمل |
|
إعادة محاولة استدعاءات النظام التي تفشل بـ |
مكتمل |
|
تغيير معالجة |
مكتمل |
|
تغييرات المكتبة القياسية |
||
|
||
|
مكتمل |
|
تغييرات متنوعة |
||
تحسين دعم تطبيق zip في Python |
||
جعل مُشغّل Python على دراية بالبيئات الافتراضية |
غير ذي صلة |
|
تلميحات الأنواع (إرشادية فقط) |
مكتمل [1] |
|
إلغاء ملفات PYO |
غير ذي صلة |
|
إعادة تصميم تحميل وحدات الامتدادات |
||
تغييرات أخرى في اللغة:
أُضيف معالج الأخطاء namereplace. وأصبح معالج الأخطاء backslashreplace يعمل الآن مع فك الترميز والترجمة. |
|
أصبحت سلاسل توثيق الخصائص (docstrings) قابلة للكتابة الآن. وهذا مفيد بشكل خاص لسلاسل توثيق collections.namedtuple() |
|
أصبحت عمليات الاستيراد الدائرية التي تتضمن استيرادات نسبية مدعومة الآن. |
وحدات جديدة:
التغييرات على الوحدات المدمجة:
أصبح الصنف OrderedDict مُنفَّذًا الآن بلغة C، مما يجعله أسرع بمقدار 4 إلى 100 ضعف. |
|
أصبحت العروض OrderedDict.items() و OrderedDict.keys() و OrderedDict.values() تدعم الآن التكرار العكسي عبر reversed(). |
|
تُعرِّف الآن فئة deque توابع index() و*insert()* و*copy()*, وتدعم عاملَي + و*. |
|
أصبح بالإمكان الآن تحديث سلاسل التوثيق التي تنتجها namedtuple(). |
|
أصبح الصنف UserString ينفّذ الآن الطرق __getnewargs__() و __rmod__() و casefold() و format_map() و isprintable() و maketrans() لمطابقة الطرق المقابلة في str. |
|
أصبح بالإمكان الآن تخصيص مقارنة العناصر في merge() بتمرير دالة مفتاح في وسيط مفتاحي اختياري جديد key، ويمكن استخدام وسيط مفتاحي اختياري جديد reverse لعكس مقارنة العناصر |
|
طريقة جديدة BufferedIOBase.readinto1()، تستخدم استدعاءً واحدًا على الأكثر للطريقتين RawIOBase.read() أو RawIOBase.readinto() الخاصتين بالتدفق الخام الأساسي |
|
أصبح مُفكّك ترميز JSON يطلق الآن JSONDecodeError بدلًا من ValueError لتوفير معلومات سياقية أفضل عن الخطأ. |
|
أُضيف ثابتان جديدان إلى وحدة math: inf و nan. |
مكتمل |
توفّر دالة جديدة isclose() طريقة لاختبار التساوي التقريبي. |
|
أُضيفت دالة جديدة gcd(). وأصبحت الدالة fractions.gcd() مُهمَلة الآن. |
|
أُضيفت الدالة الجديدة scandir() التي تعيد مُكرِّرًا لكائنات DirEntry. |
|
أصبحت الدالة urandom() تستخدم الآن استدعاء النظام getrandom() على Linux 3.17 أو أحدث، و getentropy() على OpenBSD 5.6 وأحدث، مما يلغي الحاجة إلى استخدام /dev/urandom ويتجنب الإخفاقات الناتجة عن النفاد المحتمل لواصفات الملفات. |
|
تتيح الدالتان الجديدتان get_blocking() و set_blocking() الحصول على وضع الحجب لواصف الملف وضبطه (O_NONBLOCK.) |
|
هناك دالة جديدة os.path.commonpath() تعيد أطول مسار فرعي مشترك بين كل اسم مسار مُمرَّر |
|
أصبحت المراجع والمراجع الشرطية للمجموعات ذات الطول الثابت مسموحًا بها الآن في تأكيدات النظر للخلف (lookbehind) |
|
لم يعد عدد مجموعات الالتقاط في التعبيرات النمطية محدودًا بـ 100. |
|
أصبحت الدالتان sub() و subn() تستبدلان الآن المجموعات غير المطابقة بسلاسل فارغة بدلًا من إطلاق استثناء. |
|
أصبح لاستثناءات re.error سمات جديدة هي msg و pattern و pos و lineno و colno، التي توفّر معلومات سياقية أفضل عن الخطأ |
|
أصبحت الدوال ذات المهلات الزمنية تستخدم الآن ساعة رتيبة (monotonic) بدلًا من ساعة النظام. |
|
تتيح الطريقة الجديدة socket.sendfile() إرسال ملف عبر مقبس باستخدام الدالة عالية الأداء os.sendfile() على UNIX، مما يجعل عمليات الرفع أسرع بمقدار 2 إلى 3 أضعاف مقارنة باستخدام socket.send() العادية |
|
لم تعد الطريقة socket.sendall() تعيد ضبط المهلة الزمنية للمقبس في كل مرة تُستقبل فيها بايتات أو تُرسل. أصبحت المهلة الزمنية للمقبس الآن هي الحد الأقصى للمدة الإجمالية لإرسال كل البيانات. |
|
أصبح وسيط backlog في الطريقة socket.listen() اختياريًا الآن. وافتراضيًا يُضبط على SOMAXCONN أو على 128، أيهما أقل. |
مكتمل |
دعم Memory BIO |
|
دعم التفاوض على بروتوكول طبقة التطبيق |
|
هناك طريقة جديدة SSLSocket.version() للاستعلام عن إصدار البروتوكول الفعلي المستخدم. |
|
أصبح الصنف SSLSocket ينفّذ الآن طريقة SSLSocket.sendfile(). |
|
أصبحت الطريقة SSLSocket.send() تطلق الآن إما الاستثناء ssl.SSLWantReadError أو ssl.SSLWantWriteError على مقبس غير حاجب إذا كانت العملية ستُحجَب. في السابق، كانت تعيد 0. |
|
أصبحت الدالة cert_time_to_seconds() تفسّر الآن وقت الإدخال على أنه UTC وليس وقتًا محليًا، وفقًا لـ RFC 5280. علاوة على ذلك، تكون القيمة المُعادة دائمًا عددًا صحيحًا (int). |
|
تعيد الطريقتان الجديدتان SSLObject.shared_ciphers() و SSLSocket.shared_ciphers() قائمة الشيفرات التي أرسلها العميل أثناء المصافحة. |
|
لم تعد الطرق SSLSocket.do_handshake() و SSLSocket.read() و SSLSocket.shutdown() و SSLSocket.write() الخاصة بالصنف SSLSocket تعيد ضبط المهلة الزمنية للمقبس في كل مرة تُستقبل فيها بايتات أو تُرسل. |
|
أصبحت الدالة match_hostname() تدعم الآن مطابقة عناوين IP. |
|
تتيح الدالة الجديدة set_coroutine_wrapper() ضبط خطاف عام (hook) سيُستدعى كلما أُنشئ كائن كوروتين بواسطة دالة async def. ويمكن استخدام الدالة المقابلة get_coroutine_wrapper() للحصول على المُغلِّف المضبوط حاليًا. |
|
يمكن استخدام دالة جديدة is_finalizing() للتحقق مما إذا كان مفسّر Python في طور الإغلاق. |
|
أصبحت الدالة monotonic() متاحة دائمًا الآن |
|
ملاحظات