SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »GIMP 3.2 byl oficiálně vydán (Mastodon, 𝕏). Přehled novinek v poznámkách k vydání.
FRANK OS je open-source operační systém pro mikrokontrolér RP2350 (s FRANK M2 board) postavený na FreeRTOS, který přetváří tento levný čip na plně funkční počítač s desktopovým uživatelským rozhraním ve stylu Windows 95 se správcem oken, terminálem, prohlížečem souborů a knihovnou aplikací, ovládaný PS/2 myší a klávesnicí, s DVI video výstupem. Otázkou zůstává, zda by 520 KB SRAM stačilo každému 😅.
Administrativa amerického prezidenta Donalda Trumpa by měla dostat zhruba deset miliard dolarů (asi 214 miliard Kč) za zprostředkování dohody o převzetí kontroly nad aktivitami sociální sítě TikTok ve Spojených státech.
Projekt Debian aktualizoval obrazy stabilní větve „Trixie“ (13.4). Shrnuje opravy za poslední dva měsíce, 111 aktualizovaných balíčků a 67 bezpečnostních hlášení. Opravy se týkají mj. chyb v glibc nebo webovém serveru Apache.
Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.
Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
Třídy výjimek mohou od nynějška být nového stylu (new-stylled, zavedeno v Pythonu 2.2) a ne klasické třídy, jako tomu bylo doposud. Současně s tím se všechny zabudované výjimky změnily na new-stylled. Rovněž došlo k přeskupení dědičností:
BaseException # Novinka v Pythonu 2.5
|- KeyboardInterrupt
|- SystemExit
|- Exception
|- (all other current built-in exceptions)
To nyní lidem dovolí jednoduše zachytávat všechny výjimky, které ukazují na chybu v programu. Takové KeyboardInterrupt, nebo SystemExit nejsou chyby, přičemž je nutné je znovu vyvolat (jinak aplikace nepůjde shodit pomocí Ctlr+C, za což jistě dostaneme mnoho děkovných dopisů od spokojených uživatelů). Takže se muselo udělat něco jako:
try:
...
except (KeyboardInterrupt, SystemExit):
raise
except:
# Zalogování chyby ...
# Program pokračuje v běhu...
Od nynějška stačí k dosažení stejného výsledku napsat except Exception. Python 3.0 by pak měl vyžadovat, aby byly všechny výjimky zděděny od BaseException nebo některého z jeho potomků. S tím souvisí i to, že řetězcové výjimky, které jsou dlouho označené jako deprecated, budou od nynějška generovat varování. Cílem je v některé z následujících verzí jejich podporu úplně odstranit.
PEP 352, Required Superclass for Exceptions PEP sepsal Brett Cannon a Guido van Rossum; implementoval Brett Cannon.
Vývojáři NumPy měli problém, který se dal vyřešit pouze přidáním další speciální metody __index__. Pokud používáme konstrukci [start:stop:step], hodnoty pro start, stop a step mohou být pouze celá nebo dlouhá celá čísla. NumPy definuje celou řadu specializovaných celočíselných typů, jako znaménkové a neznaménkové, 8, 16, 32 a 64 bitové, ale neexistoval způsob, jak je používat ve slice konstrukci.
Není možné použít existující metodu __int__, protože ta byla použíta k převodu na typ int. Také by použití této metody mělo za následek skutečnost, že čísla s řádovou čárkou by se stala povolenými indexy, což je pochopitelně nežádoucí chování. Takže byla přidána nová speciální metoda __index__, která nemá žádné parametry a vrací celé číslo, které představuje index.
class C:
def __index__ (self):
return self.value
Podmínkou je, že návratová hodnota musí být integer nebo long integer. Pokud ne, dojde k výjimce TypeError.
PEP 357, Allowing Any Object to be Used for Slicing
PEP sepsal a implementoval Travis Oliphant
Slovník dostal nový háček pro to, aby umožnil podtřídám vrátit nějakou výchozí hodnotu, pokud nebyl daný klíč nalezen. Pokud nebyl nalezen, je zavolána metoda __missing__(key). Tento háček implementuje nová třída dict v modulu collections. Následující příklad ukazuje definici slovníku, vracející nulu pro každou nenalezenou hodnotu:
class zerodict (dict):
def __missing__ (self, key):
return 0
>>> d = zerodict({1:1, 2:2})
>>> print d[1], d[2]
1 2
>>> print d[3], d[4]
0 0
Jak 8bitové, tak Unicode řetězce mají dvě nové metody partition(sep) a rpartition(sep), které usnadňují některé často používané konstrukce. Metoda find(S) totiž často hledá index, který je použit pro vlastní rozdělení řetězce a získání částí před a za oddělovačem. Volání metody partition(sep) potom sloučí tyto dva kroky do jediného volání a vrací trojici (část před, oddělovač, část za). Pokud není oddělovač nalezen, celý řetězec je na prvním místě, zbylé dva jsou prázdné. Metoda rpartition(sep) také vrací trojici, ale prohledává řetězec od konce.
>>> ('http://www.python.org').partition('://')
('http', '://', 'www.python.org')
>>> ('file:/usr/share/doc/index.html').partition('://')
('file:/usr/share/doc/index.html', '', '')
>>> (u'Subject: a quick question').partition(':')
(u'Subject', u':', u' a quick question')
>>> 'www.python.org'.rpartition('.')
('www.python', '.', 'org')
>>> 'www.python.org'.rpartition(':')
('', '', 'www.python.org')
>>> 'www.python.org'.partition('.')
('www', '.', 'python.org')
>>> 'www.python.org'.rpartition('.')
('www.python', '.', 'org')
(Implementoval Fredrik Lundh podle návrhů Raymonda Hettingera.)
Metody řetězců startswith() a endswith() mohou jako parametr mít i ntici
def is_image_file (filename):
return filename.endswith(('.gif', '.jpg', '.tiff'))
(Implementoval Georg Brandl podle návrhů Toma Lynna.)
Zabudované funkce min() a max() mohou mít parametr key podobně jako řadící metoda sort(). Tím je funkce s jedním parametrem, která je volána pro každou hodnotu v seznamu. Funkce min()/max() vrací prvek s nejmenší/největší návratovou hodnotou této funkce.
>>> L = ['medium', 'longest', 'short'] >>> print max(L, key=len) longest >>> print max(L) short # Řetězec 'short' má lexikograficky největší hodnotu
(Vložil Steven Bethard a Raymond Hettinger.)
Nové zabudované funkce any() a all(), vyhodnotí, zda iterátor obsahuje nějakou pravdivou nebo nepravdivou hodnotu. Funkce any() vrací True, pokud je nějaká hodnota vrácená iterátorem True. Funkce all() potom vrací True jen v případě, že všechny iterátory vrací True.
(Navrhl Guido van Rossum, a implementoval Raymond Hettinger.)
Výsledkem speciální metody __hash__() může být jak regulární integer, tak i jeho dlouhá varianta. V předchozích verzích mohlo být výsledkem této metody pouze standardní číslo, ale od nynější verze vrací zabudovaná funkce id() libovolné nenulové číslo, přičemž uživatelé často implementují metodu __hash__() jako return id(self).
Pro všechny moduly je výchozím kódováním ASCII. Pokud bude modul obsahovat 8bitový literál a nebude mít explicitně deklarovaný typ, vyvolá se SyntaxError. V předchozí verzi to vyvolalo pouze varování. V PEP 263 je popis, jak deklarovat kódování. Pro latin1 stačí napsat na začátek zdrojového kódu:
# -*- coding: latin1 -*-
Nové varování UnicodeWarning, které je vyvoláno v případě, že porovnáváte Unicode řetězec s 8bitovým, který není možné zkonvertovat do Unicode použitím výchozího ASCII kódování. Výsledek porovnání je False:
>>> chr(128) == unichr(128) # Nelze konvertovat chr(128) do Unicode __main__:1: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal False >>> chr(127) == unichr(127) # chr(127) can be converted True
Předtím tato konstrukce vyvolala výjimku UnicodeDecodeError, ale v této verzi jazyka by to mohlo způsobovat problém při přístupu do slovníku. Pokud použijete unichr(128) a chr(128) jako klíče, dostanete výjimku UnicodeDecodeError.
(Implementoval Marc-André Lemburg.)
Jedna z nepříjemných chyb, kterou programátoři v Pythonu občas dělají, je, že zapomínají vložit __init__.py v adresáři balíčku. Ladění této chyby je nepříjemné a většinou vyžaduje spuštění interpreteru s parametrem -v k výpisu všech prohledávaných cest. Ve 2.5 se vygeneruje ImportWarning, pokud chcete importovat balíček bez __init__.py. Toto varování je ve výchozím nastavení potichu ignorováno, ale parametrem -Wd si jej můžete zobrazit.
(Implementoval Thomas Wouters.)
Seznam bázových tříd v definici třídy může být prázdný. Tento kód je nyní v pořádku:
class C():
pass
(Implementoval Brett Cannon.)
V interaktivním interpreteru byly quit a exit dlouhou dobu řetězce, které některým novým uživatelům pomáhaly s ukončením interpreteru.
# Python 2.4 >>> quit 'Use Ctrl-D (i.e. EOF) to exit.'
V Pythonu 2.5 jsou quit a exit objekty, které jednak produkují užitečný výstup, ale navíc jsou volatelné. Je tedy možné zapsat quit(), nebo exit() k ukončení interpreteru.
# Python 2.5 >>> quit 'Use Ctrl-D (i.e. EOF) to exit.'
(Implementoval Georg Brandl.)
Interpret Pythonu může nyní přijímat standardní dlouhé parametry --help a --version a na Windows akceptuje /? pro zobrazení nápovědy.
(Implementoval Georg Brandl.)
Mnoho optimalizací bylo vyvinuto na NeedForSpeed sprint, který se konal na Islandu, v hlavním městě Rejkjavík 21. až 28. května 2006. Byl zaměřen na vylepšení výkonu CPythonu a sponzorován společností EWT LLC spolu s CPP Games. Zde jsou některá vylepšení:
long(str, base) je od nynějška rychlejší pro dlouhé řetězce, protože je počítáno menší množství průběřných výsledků. Špička je teď mezi osmisty až tisíci číslicemi, pro které je vylepšená funkce až šestkrát rychlejší. (Poslal Alan McIntyre a bylo přijato na NeedForSpeed sprint.)struct nyní překládá formátovací řetězce struktur do své interní reprezentace a ukládá je do mezipaměti, což zvýšilo rychlost o 20 %. (Přidal Bob Ippolito na NeedForSpeed sprint.)a = 2 + 3, ve vygenerovaném kódu se objeví a = 5 (Navrhl a implementoval Raymond Hettinger.)Navíc se v nové verzi objevily nebo podstatně zlepšily balíky
ctypes - umožňuje přímé volání funkcí ze sdílených knihoven
import ctypes
libc=ctypes.CDLL('libc.so.6')
result=libc.printf("Hello ctypes\n")
Na standardní výstup se vypíše řetězec a v result máme počet vypsaných znaků.
ElementTree - část knihovny Frederika Lundha ElementTree byla začleněna do balíčku xml.etree. Dostupné moduly jsou ElementTree, ElementPath, ElementInclude, včetně akcelerátoru cElementTree z ElementTree 1.2.6.hashlib - nový modul hashlib napsaný Gregorgem P. Smithem nahrazuje md5 a sha moduly. Obsahuje další hashe (SHA-224, SHA-256, SHA-384, a SHA-512). Pokud je dostupné OpenSSL, modul používá algoritmy z ní.sqlite3 - modul pysqlite, wrapper pro embedded databázi SQLite byl přidán do standardní knihovny pod názvem sqlite3.wsgiref - Web Server Gateway Interface (WSGI) v1.0 je standardní rozhraní mezi webovými servery a webovými aplikacemi v Pythonu a je popsán v PEP 333. Tento balík je referenční implementace této specifikace.Naše krátké seznámení se s novinkami Pythonu 2.5 je u konce.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
I staré chyby si zaslouží opravu:
"množství průběŘných výsledků"
a
"osmisty" by se asi mělo psát s mezerou jako "osmi sty". Kdyby to byl osmistý, pak dohromady.