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(). | |
Třída deque nyní definuje index(), insert() a copy() a podporuje operátory + a *. | |
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