Python 3.5¶
Níže je uveden seznam dokončených/přijatých PEP pro Python 3.5 seskupených podle jejich dopadu na MicroPython.
Rozšíření syntaxe |
Stav |
|
Další zobecnění rozbalování |
Částečné |
|
Nový operátor maticového násobení |
Dokončeno |
|
Korutiny se syntaxí |
Dokončeno |
|
Rozšíření a změny běhového prostředí |
||
Formátování pomocí % pro binární řetězce |
Dokončeno |
|
Opakování systémových volání, která selžou s |
Dokončeno |
|
Změna zpracování |
Dokončeno |
|
Změny standardní knihovny |
||
|
||
|
Dokončeno |
|
Různé změny |
||
Vylepšená podpora aplikací Python zip |
||
Zajištění, aby Python Launcher rozpoznával virtuální prostředí |
Není relevantní |
|
Typové nápovědy (pouze poradní) |
Dokončeno [1] |
|
Odstranění souborů PYO |
Není relevantní |
|
Přepracování načítání modulů rozšíření |
||
Další změny jazyka:
Byly přidány obslužné rutiny chyb namereplace. Obslužné rutiny chyb backslashreplace nyní fungují s dekódováním a překladem. |
|
Dokumentační řetězce vlastností jsou nyní zapisovatelné. To je obzvláště užitečné pro dokumentační řetězce collections.namedtuple() |
|
Cyklické importy zahrnující relativní importy jsou nyní podporovány. |
Nové moduly:
Změny ve vestavěných modulech:
Třída OrderedDict je nyní implementována v jazyce C, což ji činí 4 až 100krát rychlejší. |
|
Pohledy OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() nyní podporují iteraci pomocí reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Dokumentační řetězce vytvořené pomocí namedtuple() lze nyní aktualizovat. |
|
Třída UserString nyní implementuje metody __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() a maketrans(), aby odpovídaly příslušným metodám třídy str. |
|
Porovnávání prvků v merge() lze nyní přizpůsobit předáním klíčové funkce v novém volitelném klíčovém argumentu key a nový volitelný klíčový argument reverse lze použít k obrácení porovnávání prvků |
|
Nová metoda BufferedIOBase.readinto1(), která používá nejvýše jedno volání metod RawIOBase.read() nebo RawIOBase.readinto() podkladového surového proudu |
|
Dekodér JSON nyní vyvolává JSONDecodeError namísto ValueError, aby poskytl lepší kontextové informace o chybě. |
|
Do modulu math byly přidány dvě nové konstanty: inf a nan. |
Dokončeno |
Nová funkce isclose() poskytuje způsob testování přibližné rovnosti. |
|
Byla přidána nová funkce gcd(). Funkce fractions.gcd() je nyní zastaralá. |
|
Byla přidána nová funkce scandir(), která vrací iterátor objektů DirEntry. |
|
Funkce urandom() nyní používá systémové volání getrandom() v Linuxu 3.17 nebo novějším a getentropy() v OpenBSD 5.6 a novějším, čímž odpadá potřeba používat /dev/urandom a předchází se selháním kvůli potenciálnímu vyčerpání deskriptorů souborů. |
|
Nové funkce get_blocking() a set_blocking() umožňují získat a nastavit blokovací režim deskriptoru souboru (O_NONBLOCK.) |
|
Existuje nová funkce os.path.commonpath(), která vrací nejdelší společnou podcestu každého předaného názvu cesty |
|
Odkazy a podmíněné odkazy na skupiny s pevnou délkou jsou nyní povoleny v lookbehind asercích |
|
Počet zachytávajících skupin v regulárních výrazech již není omezen na 100. |
|
Funkce sub() a subn() nyní nahrazují neshodující se skupiny prázdnými řetězci namísto vyvolání výjimky. |
|
Výjimky re.error mají nové atributy msg, pattern, pos, lineno a colno, které poskytují lepší kontextové informace o chybě |
|
Funkce s časovými limity nyní používají monotónní hodiny namísto systémových hodin. |
|
Nová metoda socket.sendfile() umožňuje odeslat soubor přes soket pomocí vysoce výkonné funkce os.sendfile() v systému UNIX, což má za následek 2 až 3krát rychlejší nahrávání než při použití prostého socket.send() |
|
Metoda socket.sendall() již neresetuje časový limit soketu pokaždé, když jsou bajty přijaty nebo odeslány. Časový limit soketu je nyní maximální celková doba pro odeslání všech dat. |
|
Argument backlog metody socket.listen() je nyní volitelný. Ve výchozím nastavení je nastaven na SOMAXCONN nebo na 128, podle toho, co je menší. |
Dokončeno |
Podpora Memory BIO |
|
Podpora Application-Layer Protocol Negotiation |
|
Existuje nová metoda SSLSocket.version() pro dotazování na skutečně používanou verzi protokolu. |
|
Třída SSLSocket nyní implementuje metodu SSLSocket.sendfile(). |
|
Metoda SSLSocket.send() nyní na neblokujícím soketu vyvolá buď výjimku ssl.SSLWantReadError, nebo ssl.SSLWantWriteError, pokud by operace blokovala. Dříve vracela 0. |
|
Funkce cert_time_to_seconds() nyní interpretuje vstupní čas jako UTC, a nikoli jako místní čas, v souladu s RFC 5280. Návratová hodnota je navíc vždy typu int. |
|
Nové metody SSLObject.shared_ciphers() a SSLSocket.shared_ciphers() vracejí seznam šifer odeslaných klientem během handshake. |
|
Metody SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() a SSLSocket.write() třídy SSLSocket již neresetují časový limit soketu pokaždé, když jsou bajty přijaty nebo odeslány. |
|
Funkce match_hostname() nyní podporuje porovnávání IP adres. |
|
Nová funkce set_coroutine_wrapper() umožňuje nastavit globální háček, který bude volán pokaždé, když je objekt korutiny vytvořen funkcí async def. Odpovídající get_coroutine_wrapper() lze použít k získání aktuálně nastaveného wrapperu. |
|
Novou funkci is_finalizing() lze použít ke kontrole, zda se interpret Pythonu vypíná. |
|
Funkce monotonic() je nyní vždy dostupná |
|
Poznámky