Python 3.6

A Python 3.6 beta 1 2016. szeptember 12-én jelent meg, az új funkciók összefoglalója itt található:

Új szintaktikai funkciók

Állapot

PEP 498

Literális karakterlánc-formázás

Kész

PEP 515

Aláhúzásjelek numerikus literálokban

Kész

PEP 525

Aszinkron generátorok

PEP 526

Szintaxis változó-annotációkhoz (ideiglenes)

Kész

PEP 530

Aszinkron listaértelmezések

Új beépített funkciók

PEP 468

A kwargs sorrendjének megőrzése egy függvényben

PEP 487

Az osztálylétrehozás egyszerűbb testreszabása

Részleges [1]

PEP 520

Az osztályattribútumok definíciós sorrendjének megőrzése

A standard könyvtár változásai

PEP 495

Helyi idő egyértelműsítése

PEP 506

Secrets modul hozzáadása a standard könyvtárhoz

PEP 519

Fájlrendszer-útvonal protokoll hozzáadása

CPython belső működése

PEP 509

Privát verzió hozzáadása a dict-hez

Nem lesz megvalósítva

PEP 523

Képkocka-kiértékelő API hozzáadása a CPythonhoz

Linux/Windows változások

PEP 524

Az os.urandom() blokkolóvá tétele Linuxon (a rendszer indulása során)

PEP 528

A Windows konzol kódolásának módosítása UTF-8-ra

PEP 529

A Windows fájlrendszer-kódolásának módosítása UTF-8-ra

Egyéb nyelvi változások:

Egy global vagy nonlocal utasításnak immár szövegszerűen meg kell jelennie az érintett név első használata előtt, ugyanazon hatókörön belül. Korábban ez SyntaxWarning volt.

Mostantól lehetséges egy speciális metódust None-ra állítani annak jelzésére, hogy a megfelelő művelet nem érhető el. Például ha egy osztály a __iter__() metódust None-ra állítja, az osztály nem iterálható.

A megismételt visszakövetési sorok hosszú sorozatait mostantól a [Previous line repeated {count} more times] formában rövidíti.

Az import mostantól az új ModuleNotFoundError kivételt veti fel, ha nem talál egy modult. Az ImportError-t (try-except szerkezetben) jelenleg ellenőrző kód továbbra is működni fog.

A nulla argumentumú super()-re támaszkodó osztálymetódusok mostantól helyesen működnek, amikor metaosztály-metódusokból hívják meg őket az osztálylétrehozás során.

A beépített modulok változásai:

array

Az array.array kimerített iterátorai mostantól kimerítve maradnak akkor is, ha az iterált tömböt kibővítik.

binascii

A b2a_base64() függvény mostantól elfogad egy opcionális newline kulcsszó-argumentumot annak szabályozására, hogy az újsor karakter hozzá legyen-e fűzve a visszatérési értékhez.

Kész

cmath

Hozzáadásra került az új cmath.tau (τ) konstans.

Új konstansok: cmath.inf és cmath.nan a math.inf és math.nan megfelelőjeként, valamint cmath.infj és cmath.nanj a komplex repr által használt formátumhoz illeszkedően.

collections

Hozzáadásra került az új Collection absztrakt alaposztály, amely a méretezett iterálható tárolóosztályokat reprezentálja.

Az új Reversible absztrakt alaposztály olyan iterálható osztályokat reprezentál, amelyek a __reversed__() metódust is biztosítják.

Az új AsyncGenerator absztrakt alaposztály az aszinkron generátorokat reprezentálja.

A namedtuple() függvény mostantól elfogad egy opcionális module kulcsszó-argumentumot, amelyet, ha megadnak, a visszaadott named tuple osztály __module__ attribútumához használ.

A namedtuple() verbose és rename argumentumai mostantól csak kulcsszóként adhatók meg.

A rekurzív collections.deque példányok mostantól pickle-ölhetők.

hashlib

A BLAKE2 hash-függvények hozzáadásra kerültek a modulhoz. A blake2b() és a blake2s() mindig elérhető, és a BLAKE2 teljes funkciókészletét támogatja.

Hozzáadásra kerültek a SHA-3 hash-függvények: sha3_224(), sha3_256(), sha3_384(), sha3_512(), valamint a SHAKE hash-függvények: shake_128() és shake_256().

A jelszó-alapú kulcsleképező függvény, a scrypt(), mostantól elérhető OpenSSL 1.1.0 és újabb verziókkal.

json

A json.load() és a json.loads() mostantól bináris bemenetet is támogat. A kódolt JSON-t UTF-8, UTF-16 vagy UTF-32 használatával kell ábrázolni.

math

Hozzáadásra került az új math.tau (τ) konstans.

Kész

os

Egy új close() metódus lehetővé teszi egy scandir() iterátor explicit lezárását. A scandir() iterátor mostantól támogatja a context manager protokollt.

Linuxon az os.urandom() mostantól blokkol mindaddig, amíg a rendszer urandom entrópia-készlete inicializálva nincs, a biztonság növelése érdekében.

A Linux getrandom() rendszerhívás (véletlen bájtok lekérése) mostantól az új os.getrandom() függvényként érhető el.

re

Hozzáadásra került a módosító-tartományok támogatása reguláris kifejezésekben. Példák: a «(?i:p)ython» illeszkedik a «python» és a «Python» szövegekre, de a «PYTHON»-ra nem; a «(?i)g(?-i:v)r» illeszkedik a «GvR» és a «gvr» szövegekre, de a «GVR»-re nem.

A Match objektum csoportjai a __getitem__ segítségével érhetők el, ami egyenértékű a group()-pal. Így a mo[«name»] mostantól egyenértékű a mo.group(«name»)-mel.

A Match objektumok mostantól index-szerű objektumokat is támogatnak csoportindexként.

socket

Az ioctl() függvény mostantól támogatja a SIO_LOOPBACK_FAST_PATH vezérlőkódot.

A getsockopt() konstansai – SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC és SO_PASSSEC – mostantól támogatottak.

A setsockopt() mostantól támogatja a setsockopt(level, optname, None, optlen: int) formát.

A socket modul mostantól támogatja az AF_ALG címcsaládot a Linux Kernel crypto API-val való kapcsolódáshoz. Hozzáadásra kerültek az ALG_, SOL_ALG és sendmsg_afalg() elemek.

Hozzáadásra kerültek az új Linux konstansok: TCP_USER_TIMEOUT és TCP_CONGESTION.

ssl

Az ssl támogatja az OpenSSL 1.1.0-t. A minimálisan ajánlott verzió az 1.0.2.

A 3DES eltávolításra került az alapértelmezett titkosítócsomagokból, és hozzáadásra kerültek a ChaCha20 Poly1305 titkosítócsomagok.

Az SSLContext jobb alapértelmezett konfigurációval rendelkezik az opciók és titkosítók terén.

Az SSL munkamenet az új SSLSession osztály segítségével átmásolható egyik kliensoldali kapcsolatból egy másikba. A TLS munkamenet-folytatás felgyorsíthatja a kezdeti kézfogást, csökkentheti a késleltetést és javíthatja a teljesítményt.

Az új get_ciphers() metódussal lekérhető az engedélyezett titkosítók listája a titkosító-prioritás sorrendjében.

Az összes konstans és jelző IntEnum és IntFlags típusúvá lett alakítva.

Hozzáadásra kerültek az SSLContext-hez tartozó, kiszolgáló- és kliensoldal-specifikus TLS protokollok.

Hozzáadásra került az SSLContext.post_handshake_auth a TLS 1.3 kézfogás utáni hitelesítés engedélyezéséhez, valamint az ssl.SSLSocket.verify_client_post_handshake() annak kezdeményezéséhez.

struct

mostantól támogatja az IEEE 754 fél-pontosságú lebegőpontos számokat az «e» formátumleírón keresztül.

sys

Az új getfilesystemencodeerrors() függvény annak a hibamódnak a nevét adja vissza, amelyet a Unicode fájlnevek és a bájtok fájlnevek közötti konverzióhoz használ.

zlib

A compress() és a decompress() függvény mostantól elfogad kulcsszó-argumentumokat.

Megjegyzések