I notice that the nntplib.NNTP class can throw exceptions from the underlying socket module without documenting them. What's good practice when your module involves exposing exceptions from an implementation module that client code might not necessarily be aware of?