Python 3.5

Az alábbiakban a Python 3.5 véglegesített/elfogadott PEP-jeinek listája található, a MicroPythonra gyakorolt hatásuk szerint csoportosítva.

A szintaxis bővítései

Állapot

PEP 448

További kicsomagolási általánosítások

Részleges

PEP 465

Egy új mátrixszorzó operátor

Teljes

PEP 492

Korutinok async és await szintaxissal

Teljes

A futásidő bővítései és változásai

PEP 461

% formázás bináris karakterláncokhoz

Teljes

PEP 475

Az EINTR hibával meghiúsuló rendszerhívások újrapróbálkozása

Teljes

PEP 479

A StopIteration kezelésének megváltoztatása generátorokon belül

Teljes

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

PEP 471

os.scandir()

PEP 485

math.isclose(), egy függvény a közelítő egyenlőség tesztelésére

Teljes

Egyéb változások

PEP 441

Továbbfejlesztett Python zip-alkalmazás támogatás

PEP 486

A Python Launcher felkészítése a virtuális környezetekre

Nem releváns

PEP 484

Típusjelölések (csak tanácsadó jellegű)

Teljes [1]

PEP 488

A PYO fájlok megszüntetése

Nem releváns

PEP 489

A bővítménymodulok betöltésének újratervezése

Egyéb nyelvi változások:

Hozzáadásra került a namereplace hibakezelő. A backslashreplace hibakezelő mostantól dekódolással és fordítással is működik.

A tulajdonságok (property) dokumentációs karakterláncai mostantól írhatók. Ez különösen hasznos a collections.namedtuple() dokumentációs karakterláncai esetén

A relatív importokat tartalmazó körkörös importok mostantól támogatottak.

Új modulok:

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

collections

Az OrderedDict osztály mostantól C nyelven van megvalósítva, ami 4-100-szor gyorsabbá teszi.

Az OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() nézetek mostantól támogatják a reversed() iterációt.

A deque osztály mostantól definiálja az index(), insert() és copy() metódusokat, valamint támogatja a + és * operátorokat.

A namedtuple() által előállított dokumentációs karakterláncok mostantól frissíthetők.

A UserString osztály mostantól megvalósítja a __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() és maketrans() metódusokat, hogy megfeleljen a str megfelelő metódusainak.

heapq

A merge() elemösszehasonlítása mostantól testreszabható egy kulcsfüggvény átadásával egy új opcionális key kulcsszó-argumentumban, és egy új opcionális reverse kulcsszó-argumentum használható az elemösszehasonlítás megfordítására

io

Egy új BufferedIOBase.readinto1() metódus, amely legfeljebb egy hívást használ a mögöttes nyers adatfolyam RawIOBase.read() vagy RawIOBase.readinto() metódusaira

json

A JSON dekódoló mostantól JSONDecodeError kivételt vált ki a ValueError helyett, hogy jobb kontextusinformációt nyújtson a hibáról.

math

Két új konstans került hozzáadásra a math modulhoz: inf és nan.

Teljes

Egy új isclose() függvény biztosít módot a közelítő egyenlőség tesztelésére.

Egy új gcd() függvény került hozzáadásra. A fractions.gcd() függvény mostantól elavult.

os

Hozzáadásra került az új scandir() függvény, amely DirEntry objektumok iterátorát adja vissza.

Az urandom() függvény mostantól a getrandom() rendszerhívást használja Linux 3.17-en vagy újabbon, és a getentropy() rendszerhívást OpenBSD 5.6-on és újabbon, megszüntetve a /dev/urandom használatának szükségességét, és elkerülve a potenciális fájlleíró-kimerülésből adódó hibákat.

Az új get_blocking() és set_blocking() függvények lehetővé teszik egy fájlleíró blokkolási módjának lekérdezését és beállítását (O_NONBLOCK.)

Van egy új os.path.commonpath() függvény, amely az egyes átadott útvonalnevek leghosszabb közös alútvonalát adja vissza

re

A rögzített hosszúságú csoportokra való hivatkozások és feltételes hivatkozások mostantól engedélyezettek a lookbehind feltételekben

A reguláris kifejezésekben a rögzítő csoportok száma többé nem korlátozódik 100-ra.

A sub() és subn() függvények mostantól üres karakterláncokkal helyettesítik a nem illeszkedő csoportokat ahelyett, hogy kivételt váltanának ki.

A re.error kivételeknek új attribútumaik vannak: msg, pattern, pos, lineno és colno, amelyek jobb kontextusinformációt nyújtanak a hibáról

socket

Az időtúllépéssel rendelkező függvények mostantól monoton órát használnak rendszeróra helyett.

Egy új socket.sendfile() metódus lehetővé teszi egy fájl socketen keresztüli küldését a nagy teljesítményű os.sendfile() függvény használatával UNIX-on, ami 2-3-szor gyorsabb feltöltéseket eredményez, mint a sima socket.send() használata

A socket.sendall() metódus többé nem állítja vissza a socket időtúllépését minden alkalommal, amikor bájtokat fogadnak vagy küldenek. A socket időtúllépése mostantól az összes adat elküldésének maximális teljes időtartama.

A socket.listen() metódus backlog argumentuma mostantól opcionális. Alapértelmezetten a SOMAXCONN vagy 128 értékre van állítva, amelyik kisebb.

Teljes

ssl

Memory BIO támogatás

Application-Layer Protocol Negotiation támogatás

Van egy új SSLSocket.version() metódus a ténylegesen használt protokollverzió lekérdezésére.

Az SSLSocket osztály mostantól megvalósítja a SSLSocket.sendfile() metódust.

A SSLSocket.send() metódus mostantól az ssl.SSLWantReadError vagy ssl.SSLWantWriteError kivételt váltja ki egy nem blokkoló socketen, ha a művelet blokkolna. Korábban 0-t adott vissza.

A cert_time_to_seconds() függvény mostantól UTC-ként, nem pedig helyi időként értelmezi a bemeneti időt, az RFC 5280 szerint. Ráadásul a visszatérési érték mindig egy int.

Az új SSLObject.shared_ciphers() és SSLSocket.shared_ciphers() metódusok a kliens által a kézfogás során küldött titkosítások listáját adják vissza.

Az SSLSocket osztály SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() és SSLSocket.write() metódusai többé nem állítják vissza a socket időtúllépését minden alkalommal, amikor bájtokat fogadnak vagy küldenek.

A match_hostname() függvény mostantól támogatja az IP-címek illesztését.

sys

Egy új set_coroutine_wrapper() függvény lehetővé teszi egy globális hook beállítását, amelyet minden alkalommal meghívnak, amikor egy korutinobjektumot hoz létre egy async def függvény. Egy megfelelő get_coroutine_wrapper() függvény használható az éppen beállított csomagoló lekérésére.

Egy új is_finalizing() függvény használható annak ellenőrzésére, hogy a Python értelmező leállás alatt van-e.

time

A monotonic() függvény mostantól mindig elérhető

Megjegyzések