14. Interaktywna edycja danych wejściowych oraz podstawianie z historii
***********************************************************************

Niektóre wersje interpretera Python, podobnie jak ułatwienia
znajdowane w powłokach Korn i GNU Bash, wspierają edycję bieżącej
linii danych wejściowych oraz podstawianie z historii. Do
implementacji użyto biblioteki GNU Readline, która wspiera różne style
edytowania. Biblioteka ta ma własną dokumentację, której nie będziemy
tutaj powielać.


14.1. Uzupełnianie z tabulatorem oraz edycja historii
=====================================================

Uzupełnianie zmiennych i nazw modułów jest włączane automatycznie
podczas uruchamiania interpretera w taki sposób, że klawisz "Tab"
wywołuje funkcję uzupełniania; sprawdza nazwy instrukcji Pythona,
bieżące zmienne lokalne oraz dostępne nazwy modułów. Dla wyrażeń
kropkowanych takich jak "string.a", ewaluuje wyrażenie do ostaniej
"'.'", a następnie sugeruje uzupełnienie z atrybutów obiektu
wynikowego. Zauważ, że może to wykonać zdefiniowany w aplikacji kod,
jeżeli obiekt z metodą "__getattr__()" jest częścią wyrażenia.
Domyślna konfiguracja zapisuje także twoją historię do pliku
".python_history" w katalogu użytkownika. Historia będzie ponownie
dostępna podczas następnej interaktywnej sesji interpretera.


14.2. Alternatywy dla interaktywnego interpretera
=================================================

This facility is an enormous step forward compared to earlier versions
of the interpreter; however, some wishes are left: It would be nice if
the proper indentation were suggested on continuation lines (the
parser knows if an "INDENT" token is required next).  The completion
mechanism might use the interpreter's symbol table.  A command to
check (or even suggest) matching parentheses, quotes, etc., would also
be useful.

Jednym z alternatywnych udoskonalonych interaktywnych interpreterów
dostępnych od pewnego czasu jest IPython, który posiada funkcję
uzupełniania tabulatorem, eksplorację obiektów oraz zaawansowane
zarządzanie historią. Można go także wszechstronnie dostosowywać oraz
osadzać w innych aplikacjach. Innym podobnym udoskonalonym
środowiskiem interaktywnego interpretera jest bpython.
