Jak wykonać autouzupełnianie wiersza polecenia Pythona, ale NIE tylko na początku ciągu znaków

Python, poprzez swoje powiązania readline pozwala na doskonałe automatyczne uzupełnianie wiersza poleceń (jak opisano wtutaj).

Ale uzupełnienie wydaje się działać tylko na początku łańcuchów. Jeśli chcesz dopasować środek lub koniec łańcucha, readline nie działa.

Chciałbym autouzupełniać łańcuchy w programie Pythona w wierszu polecenia, dopasowując wpisany przeze mnie ciąg do dowolnej listy dostępnych ciągów.

Dobrym przykładem typu autouzupełniania, który chciałbym mieć, jest typ, który ma miejsce w GMailu po wpisaniu w polu Do. Jeśli wpiszesz jedno z ostatnich kontaktów, pojawi się ono równie dobrze, jak gdybyś wpisał jej imię.Może być konieczne użycie strzałek w górę iw dół lub innej metody wyboru z pasujących ciągów (i nie jest to konieczne w przypadku linii readline) i jest to w moim przypadku w porządku.Mój szczególny przypadek użycia to program wiersza poleceń, który wysyła e-maile.Szczególne przykłady kodu byłyby bardzo pomocne.

Używanie emulatorów terminali, takich jak klątwy, byłoby w porządku. Musi działać tylko na Linuksie, a nie na Macu lub Windowsie.

Oto przykład: Powiedz, że mam na liście trzy następujące ciągi

['Paul Eden <[email protected]>', 
'Eden Jones <[email protected]>', 
'Somebody Else <[email protected]>']

Chciałbym jakiś kod, który automatycznie uzupełni pierwsze dwa elementy na liście po wpisaniu „Eden”, a następnie pozwolę sobie wybrać jeden z nich (wszystko w linii poleceń za pomocą klawiatury).

questionAnswers(1)

yourAnswerToTheQuestion