guisnetworkingand python can take us like all python programsthis system is scriptable--once you've learned its general structureyou can easily change it to work as you likeby modifying its source code and like all python programsthis one is portable--you can run it on any system with python and network connectionwithout having to change its code such advantages become automatic when your software is coded in an open sourceportableand readable language like python source code modules and size this is something of self-study exercise because pymailgui is fairly large and mostly applies concepts we've already learnedwe won' go into much detail about its actual code insteadit is listed for you to read on your own encourage you to study the source and comments and to run this program live to get feel for its operationexample save-mail files are included so you can even experiment offline as you study and run this programyou'll also want to refer back to the modules we introduced earlier in the book and are reusing hereto gain full understanding of the system for referencehere are the major examples that will see new action in this example - pp internet email mailtools (packageserver sends and receivesparsingconstruction (client-side scripting example - pp gui tools threadtools py thread queue management for gui callbacks (gui tools example - pp gui tools windows py border configuration for top-level window (gui tools example - pp gui texteditor texteditor py text widget used in mail view windowsand in some pop ups (gui examples some of these modules in turn use additional examples we coded earlier but that are not imported by pymailgui itself (texteditorfor instanceuses guimaker to create its windows and toolbarnaturallywe'll also be coding new modules here the following new modules are intended to be potentially useful in other programspopuputil py various pop-up windowswritten for general use messagecache py cache manager that keeps track of mail already loaded wraplines py utility for wrapping long lines of messages mailconfig py user configuration parameters--server namesfontsand so on (augmented here the pymailgui client