python' webbrowser modulediscussed earlier in this bookto open browser the text help display is now redundantbut it is retained because the html display currently lacks its ability to open source file viewers thread callback queue speedup the global thread queue dispatches gui update callbacks much faster now--up to times per secondinstead of the prior this is due both to checking more frequently ( timer events per second versus and to dispatching more callbacks per timer event ( versus the prior depending on the interleaving of queue puts and getsthis speeds up initial loads for larger mailboxes by as much as an order of magnitude (factor of )at some potential minor cost in cpu utilization on my windows laptopthoughpymailgui still shows cpu utilization in task manager when idle bumped up the queue' speed to support an email account having , inbox messages (actuallyeven more by the time got around to taking screenshots for this without the speedupinitial header loads for this account took minutes to work through the , progress callbacks ( )even though most reflected messages skipped immediately by the new mail fetch limits (see the next itemwith the speedupthe initial load takes just seconds-perhaps not ideal stillbut this initial headers load is normally performed only once per sessionand this policy strikes balance between cpu resources and responsiveness this email account is an arguably pathological caseof coursebut most initial loads benefit from the faster speed see ' threadtools for most of this change' codeas well as additional background details we could alternatively loop through all queued events on each timer eventbut this may block the gui indefinitely if updates are queued quickly mail fetch limits since pymailgui loads only mail headers initiallynot full mail textand only loads newly arrived headers thereafter depending on your internet and server speedsthoughthis may still be impractical for very large inboxes (as mentionedone of mine currently has some , emailsto support such casesa new mail config setting can be used to limit the number of headers (or full mails if top is unsupportedfetched on loads given this setting npymailgui fetches at most of the most recently arrived mails older mails outside this set are not fetched from the serverbut are displayed as empty/dummy emails which are mostly inoperative (though they can generally still be fetched on demandthis feature is inherited from mailtools code in see the mailconfig module ahead for the user setting associated with it note that even with this fixbecause the threadtools queue system used here dispatches gui events such as progress updates only up to times per seconda , mail inbox still takes major pymailgui changes