Python 3.4 est disponible
avec 7 nouveaux modules et plusieurs nouveaut�s
Le langage de programmation Python s�est enrichi d�une toute nouvelle version. Il n�y a pas moins de 7 nouveaux modules entre Python 3.4 et 3.3 (s�par�s de 18 mois), tandis qu�entre Python 3.3 et Python 2.7 (s�par�s de 27 mois) il y en avait huit. En termes de propositions d�am�liorations, 14 PEP (Python Enhancement Proposals) ont �t� impl�ment�es dans Python 3.4.
Les 7 nouveaux modules sont sans doute le changement le plus important op�r� pour cette nouvelle version de Python 3.4. Le gestionnaire des versions de Python, Larry Hastings et son �quipe de d�veloppeurs ont ainsi mis sur pied :
- un nouveau module de programmation asynchrone (PEP 3156) nomm� asyncio ;
- Ensurepip, un installeur du programme pip (PEP 453) ;
- Enum, une prise en charge des types d��num�ration (PEP 435) ;
- Pathlib, une API orient�e objet de manipulation de chemins du syst�me de fichiers (PEP 428) ;
- Selectors, un multiplexage d�entr�es‐sorties haut niveau et efficace, bas� sur les primitives du module select et faisant parti de la PEP 3156 ;
- Statistics, des fonctions pour calculer des statistiques math�matiques de donn�es num�riques (PEP 450) ;
- tracemalloc pour tracer les allocations m�moires de Python (PEP 454).
Au-del� de ces nouveaux modules, Python 3.4 se distingue aussi par de nouvelles fonctionnalit�s qui viennent corriger les insuffisances de la derni�re version. Les fichiers et sockets nouvellement cr��s sont par exemple marqu�s comme � non h�ritables �, �vitant ainsi de les passer aux processus fils, ce qui �tait la cause de nombreux probl�mes et failles de s�curit� list�s dans la PEP 446.
Une nouvelle option en ligne de commande pour lancer Python dans un mode isol� du syst�me est d�sormais disponible. Enfin, la gestion des codecs et le format de s�rialisation marshal ont �t� am�lior�s et la compl�tion des commandes par la touche de tabulation est maintenant activ�e par d�faut dans l�interpr�teur interactif.
Des am�liorations significatives ont �t� apport�es � certains modules. Un nouveau protocole de s�rialisation pour le module Pickle (PEP 3154) plus compact et permettant de s�rialiser des objets qui ne pouvaient pas l��tre avec Python 3.3 a �t� adopt�. Les modules inspect et pydoc sont d�sormais capables de faire de l�introspection de mani�re correcte sur une plus grande vari�t� d�objets � callables � (qu�on peut appeler comme une fonction), ce qui am�liore la sortie de la commande help() dans l�interpr�teur interactif de Python. L�API du module ipaddress a aussi �t� d�clar�e stable.
Python 3.4 n�est pas rest� en marge d�un renforcement de la s�curit� de la part des d�veloppeurs. Une nouvelle fonction de hachage s�re nomm�e SipHash est dor�navant utilis�e par d�faut. Le module multiprocessing a une nouvelle option pour �viter d�utiliser os.fork() sous UNIX : les modes spawn et forkserver sont plus s�rs, car ils �vitent de partager des donn�es avec les processus fils.
Sous Windows, les processus fils n�h�ritent plus de tous les handles parents, uniquement ceux qui sont n�cessaires sont h�rit�s. Tous les modules de la biblioth�que standard qui g�rent la SSL prennent maintenant en compte la validation du certificat serveur, y compris la validation du nom d�h�te et la v�rification de la liste de r�vocation de certificats W (Certificate Revocation Lists). Il faut noter qu�une am�lioration de l�impl�mentation CPython Safe object finalization (PEP 442) a �t� aussi faite.
Alors qu�initialement, la date de sortie �tait pr�vue pour le 22 f�vrier 2014, il a �t� choisi de repousser la sortie pour corriger les bogues majeurs, plut�t que de publier une version bogu�e. Comme d�habitude, l�ajout de nouvelles fonctionnalit�s �tait proscrit pendant deux mois dans la branche de d�veloppement principale (� default �).
Une rencontre mondiale Python regroupant plusieurs milliers de d�veloppeurs aura lieu du 9 avril au 17 avril prochain � Montr�al. Les nouveaut�s de Python 3.4 seront pr�sent�es, et une discussion sera men�e autour des nouveaux d�veloppements. Le plus grand d�fi est de rendre plus en plus de modules compatibles.
Source : blog Python
Et vous ?
Que pensez-vous des nouvelles fonctionnalit�s ?
Partager