Python 3.5¶
Voici une liste des PEP finalisées/acceptées pour Python 3.5, regroupées selon leur impact sur MicroPython.
Extensions de la syntaxe |
Statut |
|
Généralisations supplémentaires du dépaquetage |
Partiel |
|
Un nouvel opérateur de multiplication matricielle |
Complet |
|
Coroutines avec la syntaxe |
Complet |
|
Extensions et changements de l’environnement d’exécution |
||
Formatage avec % pour les chaînes binaires |
Complet |
|
Réessai des appels système qui échouent avec |
Complet |
|
Changement de la gestion de |
Complet |
|
Changements de la bibliothèque standard |
||
|
||
|
Complet |
|
Changements divers |
||
Prise en charge améliorée des applications zip Python |
||
Rendre le lanceur Python conscient des environnements virtuels |
Non pertinent |
|
Indications de type (à titre consultatif uniquement) |
Complet [1] |
|
Élimination des fichiers PYO |
Non pertinent |
|
Refonte du chargement des modules d’extension |
||
Autres changements du langage :
Ajout des gestionnaires d’erreurs namereplace. Les gestionnaires d’erreurs backslashreplace fonctionnent désormais avec le décodage et la traduction. |
|
Les docstrings des propriétés sont désormais modifiables. Cela est particulièrement utile pour les docstrings de collections.namedtuple() |
|
Les importations circulaires impliquant des importations relatives sont désormais prises en charge. |
Nouveaux modules :
Changements des modules natifs :
La classe OrderedDict est désormais implémentée en C, ce qui la rend de 4 à 100 fois plus rapide. |
|
Les vues OrderedDict.items(), OrderedDict.keys() et OrderedDict.values() prennent désormais en charge l’itération avec reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Les docstrings produites par namedtuple() peuvent désormais être mises à jour. |
|
La classe UserString implémente désormais les méthodes __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() et maketrans() pour correspondre aux méthodes équivalentes de str. |
|
La comparaison d’éléments dans merge() peut désormais être personnalisée en passant une fonction clé via un nouvel argument nommé optionnel key, et un nouvel argument nommé optionnel reverse peut être utilisé pour inverser la comparaison des éléments |
|
Une nouvelle méthode BufferedIOBase.readinto1(), qui utilise au plus un appel aux méthodes RawIOBase.read() ou RawIOBase.readinto() du flux brut sous-jacent |
|
Le décodeur JSON lève désormais JSONDecodeError au lieu de ValueError afin de fournir de meilleures informations de contexte sur l’erreur. |
|
Deux nouvelles constantes ont été ajoutées au module math : inf et nan. |
Complet |
Une nouvelle fonction isclose() offre un moyen de tester l’égalité approximative. |
|
Une nouvelle fonction gcd() a été ajoutée. La fonction fractions.gcd() est désormais dépréciée. |
|
La nouvelle fonction scandir(), renvoyant un itérateur d’objets DirEntry, a été ajoutée. |
|
La fonction urandom() utilise désormais l’appel système getrandom() sous Linux 3.17 ou plus récent, et getentropy() sous OpenBSD 5.6 et plus récent, supprimant la nécessité d’utiliser /dev/urandom et évitant les échecs dus à un possible épuisement des descripteurs de fichiers. |
|
De nouvelles fonctions get_blocking() et set_blocking() permettent d’obtenir et de définir le mode bloquant d’un descripteur de fichier (O_NONBLOCK). |
|
Il existe une nouvelle fonction os.path.commonpath() renvoyant le plus long sous-chemin commun de chaque nom de chemin passé |
|
Les références et les références conditionnelles à des groupes de longueur fixe sont désormais autorisées dans les assertions arrière (lookbehind) |
|
Le nombre de groupes de capture dans les expressions régulières n’est plus limité à 100. |
|
Les fonctions sub() et subn() remplacent désormais les groupes non appariés par des chaînes vides au lieu de lever une exception. |
|
Les exceptions re.error possèdent de nouveaux attributs, msg, pattern, pos, lineno et colno, qui fournissent de meilleures informations de contexte sur l’erreur |
|
Les fonctions avec délais d’expiration utilisent désormais une horloge monotone, au lieu d’une horloge système. |
|
Une nouvelle méthode socket.sendfile() permet d’envoyer un fichier sur un socket en utilisant la fonction haute performance os.sendfile() sous UNIX, ce qui rend les téléversements de 2 à 3 fois plus rapides qu’avec un simple socket.send() |
|
La méthode socket.sendall() ne réinitialise plus le délai d’expiration du socket à chaque réception ou envoi d’octets. Le délai d’expiration du socket correspond désormais à la durée totale maximale pour envoyer toutes les données. |
|
L’argument backlog de la méthode socket.listen() est désormais optionnel. Par défaut, il est défini à SOMAXCONN ou à 128, selon la plus petite valeur. |
Complet |
Prise en charge des BIO en mémoire |
|
Prise en charge de la négociation de protocole de couche applicative |
|
Il existe une nouvelle méthode SSLSocket.version() pour interroger la version de protocole réellement utilisée. |
|
La classe SSLSocket implémente désormais une méthode SSLSocket.sendfile(). |
|
La méthode SSLSocket.send() lève désormais soit l’exception ssl.SSLWantReadError soit l’exception ssl.SSLWantWriteError sur un socket non bloquant si l’opération devait bloquer. Auparavant, elle renvoyait 0. |
|
La fonction cert_time_to_seconds() interprète désormais le temps en entrée comme de l’UTC et non comme de l’heure locale, conformément à la RFC 5280. De plus, la valeur de retour est toujours un int. |
|
De nouvelles méthodes SSLObject.shared_ciphers() et SSLSocket.shared_ciphers() renvoient la liste des chiffrements envoyés par le client pendant la poignée de main. |
|
Les méthodes SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() et SSLSocket.write() de la classe SSLSocket ne réinitialisent plus le délai d’expiration du socket à chaque réception ou envoi d’octets. |
|
La fonction match_hostname() prend désormais en charge la correspondance des adresses IP. |
|
Une nouvelle fonction set_coroutine_wrapper() permet de définir un point d’ancrage global qui sera appelé chaque fois qu’un objet coroutine est créé par une fonction async def. Une fonction correspondante get_coroutine_wrapper() peut être utilisée pour obtenir l’enveloppe actuellement définie. |
|
Une nouvelle fonction is_finalizing() peut être utilisée pour vérifier si l’interpréteur Python est en cours d’arrêt. |
|
La fonction monotonic() est désormais toujours disponible |
|
Notes