PyCrust je částí balíku Py, který je zase standardní součástí balíku WxPython. Z toho plyne, že tyto programy užije hlavně programátor grafického prostředí WxPython.
Py
je balík pythonovských modulů, které můžeme volně použít ve svých programech, přičemž k těmto modulům existují i "frontendy", které jim pak umožňují fungovat jako běžné uživatelské programy. Těmito programy jsou PyCrust, PyWrap, PyShell, PyAlaCarte, PyAlaMonde.
Samostatné moduly - tedy pozadí pro zmíněné programy a možnost pro nás použít je v našich aplikacích jsou např:
- buffer = jednoduchý textový editor
- shell = pythonovský shell
- dispatcher = prostředník umožňující komunikaci mezi jinak nezávislými objekty
- ... viz dokumentace
Použití těchto modulů v našich programech je naprosto O.K. protože jsou součástí balíku wxPython - budou tedy vždy nainstalovány (pokud ne, tak to znamená, že jsme nenainstalovali ani wxPython :o).
Nás budou víc zajímat ty uživatelské programy z balíku Py:
PyCrust
je vlastně pythonovský shell (En. shell=crust:-), který je rozšířený o
- prohlížeč jmenných prostorů
- automatické dokončování
- zobrazování tipů (z dokumentačních řetězců funkcí ap.)
- inteligentní historii
Při procházení historie se složené příkazy (def, class, if...) vyvolají vždy jako celek, tedy příkaz i se všemi vnořenými řádky. To je dost významný rozdíl oproti shellu dodávanému s Pythonem. Dále můžeme označit myší text, vložit ho do schránky ctrl+c a on se tam vloží, ale bez těch shellovských promptů.
PyWrap
je wrapper, který umožní spustit wxPython aplikaci v rámci PyCrust shellu a do loop smyčky dodatečně zadávat další příkazy. To opět v klasickém shellu nejde. Tam po spuštění hlavní smyčky není možné interaktivně nic zadávat.
Tohle se hodí hlavně při studiu možností wxPythonu. Prostě si vytvoříme nějaký základ - jednoduchou aplikaci, tu si uložíme a pak spustíme:
$ pywrap mojeapp.py
Objeví se okno mé aplikace a současně i PyCrust, kde do shellu můžu zadávat příkazy. Např:
>>> app.frame.SetBackgroundColor('blue')
>>> app.frame.Refresh()
a pozadí okna se bezprostředně změní. Prostě si s tím teď můžu hrát.
PyAlaCarte, PyAlaMonde
je jednoduchý textový editor. Carte umí pracovat jen na jednom souboru, Monde jich zvládá víc současně. Editor umí zvýrazňování textu. Taky má umět automatické dokončování a zobrazování tipů, ale toho jsem si nějak nevšimnul, ačkoliv v menu to zaškrtnuté mám...