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() متاحة دائمًا الآن | |
ملاحظات