This class diagram was generated by PyNSource GUI by importing all code under src/pubsub. 
Several relationships are missing, so some cleanup will be required. However, it is a start!

+---------------------------+                         
|       PublisherBase       |                         
|---------------------------|                         
| __treeConfig              |  ---->  [ TopicManager ]
| __topicMgr                |                         
|---------------------------|                         
| __init__                  |                         
| getTopicMgr               |                         
| getListenerExcHandler     |                         
| setListenerExcHandler     |                         
| addNotificationHandler    |                         
| clearNotificationHandlers |                         
| setNotificationFlags      |                         
| getNotificationFlags      |                         
| setTopicUnspecifiedFatal  |                         
| sendMessage               |                         
| subscribe                 |                         
| unsubscribe               |                         
| unsubAll                  |                         
+---------------------------+                         
          .            
         /_\           
          |            
          |            
          |            
          |            
          |            
+---------------------+
|   PublisherKwargs   |
|---------------------|
| sendMessage         |
| getMsgProtocol      |
+---------------------+
          .            
         /_\           
          |            
          |            
          |            
          |            
          |            
+---------------------+
| PublisherArg1Stage2 |
|---------------------|
| Msg                 |
|---------------------|
| __init__            |
| sendMessage         |
| getMsgProtocol      |
+---------------------+
                  
                  
                  
                  
+----------------+
|  RuntimeError  |
+----------------+
         .                                                                                                                                                                                                                                                                                                                              
        /_\                                                                                                                                                                                                                                                                                                                             
         |                   [ RuntimeError ]                                              [ RuntimeError ]               [ RuntimeError ]                 [ RuntimeError ]              [ RuntimeError ]             [ RuntimeError ]              [ RuntimeError ]                [ RuntimeError ]               [ RuntimeError ]     
         |                          .                                                             .                              .                                .                             .                            .                             .                               .                              .             
         |                         /_\                                                           /_\                            /_\                              /_\                           /_\                          /_\                           /_\                             /_\                            /_\            
         |                          |                                                             |                              |                                |                             |                            |                             |                               |                              |             
         |                          |                                                             |                              |                                |                             |                            |                             |                               |                              |             
+-------------------+       +------------------+                                        +---------------------+       +------------------------+       +------------------------+       +------------------+       +---------------------+       +----------------------+       +-----------------------+       +----------------------+
|   UndefinedTopic  |       | ExcHandlerError  |                                        | ListenerSpecInvalid |       | ListenerNotValidatable |       | ListenerSpecIncomplete |       | TopicNameInvalid |       | SenderTooManyKwargs |       | SenderWrongKwargName |       | SenderMissingReqdArgs |       | SenderUnknownOptArgs |
|-------------------|       |------------------|                                        |---------------------|       |------------------------|       |------------------------|       |------------------|       |---------------------|       |----------------------|       |-----------------------|       |----------------------|
| __init__          |       | badExcListenerID |  ---->  [ traceback.format_exc ]       | __init__            |       | __init__               |       | __init__               |       | __init__         |       | __init__            |       | __init__             |       | __init__              |       | __init__             |
+-------------------+       | exc              |                                        +---------------------+       +------------------------+       +------------------------+       +------------------+       +---------------------+       +----------------------+       +-----------------------+       +----------------------+
         |                  |------------------|                                                                                                                                                                                                                                                                                        
         |                  | __init__         |                                                                                                                                                                                                                                                                                        
         |                  +------------------+                                                                                                                                                                                                                                                                                        
         .           
        /_\          
         |           
         |           
         |           
         |           
         |           
+-------------------+
| UndefinedSubtopic |
|-------------------|
| __init__          |
+-------------------+
                      
                      
                      
                      
+--------------------+
|     TypeError      |
+--------------------+
         .            
        /_\           
         |            
         |            
         |            
         |            
         |            
+--------------------+
| ListenerInadequate |
|--------------------|
| msg                |
| args               |
| module             |
| idStr              |
|--------------------|
| __init__           |
| __str__            |
+--------------------+
                                                         
                                                         
                                                         
                                                         
+---------------------+                                  
|     ListenerBase    |                                  
|---------------------|                                  
| AUTO_TOPIC          |  ---->  [ weakmethod.getWeakRef ]
| acceptsAllKwargs    |                                  
| _autoTopicArgName   |                                  
| _callable           |                                  
| __onDead            |                                  
| __nameID            |                                  
| __module            |                                  
| __id                |                                  
| __hash              |                                  
|---------------------|                                  
| __init__            |                                  
| __call__            |                                  
| name                |                                  
| typeName            |                                  
| module              |                                  
| getCallable         |                                  
| isDead              |                                  
| wantsTopicObjOnCall |                                  
| _unlinkFromTopic_   |                                  
| _calledWhenDead     |                                  
| __notifyOnDead      |                                  
| __eq__              |                                  
| __ne__              |                                  
| __hash__            |                                  
| __str__             |                                  
+---------------------+                                  
    .       
   /_\      
    |       
    |       
    |       
    |       
    |       
+----------+
| Listener |
|----------|
| __call__ |
+----------+
                     
                     
                     
                     
+-------------------+
|   ValidatorBase   |
|-------------------|
| _topicArgs        |
| _topicKwargs      |
|-------------------|
| __init__          |
| validate          |
| isValid           |
| _validateArgs     |
+-------------------+
         .           
        /_\          
         |           
         |           
         |           
         |           
         |           
+-------------------+
| ListenerValidator |
|-------------------|
| _validateArgs     |
+-------------------+
                        
                        
                        
                        
+----------------------+
| INotificationHandler |
|----------------------|
| notifySubscribe      |
| notifyUnsubscribe    |
| notifyDeadListener   |
| notifySend           |
| notifyNewTopic       |
| notifyDelTopic       |
+----------------------+
         .                                                                                  
        /_\                                                                                 
         |                    [ INotificationHandler ]           [ INotificationHandler ]   
         |                               .                                  .               
         |                              /_\                                /_\              
         |                               |                                  |               
         |                               |                                  |               
+--------------------+       +--------------------------+       +--------------------------+
| NotifyByWriteFile  |       |  NotifyByPubsubMessage   |       | IgnoreNotificationsMixin |
|--------------------|       |--------------------------|       |--------------------------|
| defaultPrefix      |       | topicRoot                |       | notifySubscribe          |
| __pre              |       | topics                   |       | notifyUnsubscribe        |
| __fileObj          |       | _pubTopic                |       | notifyDeadListener       |
|--------------------|       | __sending                |       | notifySend               |
| __init__           |       |--------------------------|       | notifyNewTopic           |
| changeFile         |       | __init__                 |       | notifyDelTopic           |
| notifySubscribe    |       | createNotificationTopics |       +--------------------------+
| notifyUnsubscribe  |       | notifySubscribe          |                                   
| notifyDeadListener |       | notifyUnsubscribe        |                                   
| notifySend         |       | notifyDeadListener       |                                   
| notifyNewTopic     |       | notifySend               |                                   
| notifyDelTopic     |       | notifyNewTopic           |                                   
+--------------------+       | notifyDelTopic           |                                   
                             | __doNotification         |                                   
                             +--------------------------+                                   
                      
                      
                      
                      
+--------------------+
| ITopicDefnProvider |
|--------------------|
| getDefn            |
| topicNames         |
| __iter__           |
+--------------------+
         .                                 
        /_\                                
         |                                 
         |                                 
         |                                 
         |                                 
         |                                 
+-------------------+                      
| TopicDefnProvider |                      
|-------------------|                      
| typeRegistry      |  ---->  [ TopicDefn ]
| __topicDefns      |                      
| __treeDocs        |                      
|-------------------|                      
| __init__          |                      
| getTreeDoc        |                      
| getDefn           |                      
| topicNames        |                      
+-------------------+                      
                           
                           
                           
                           
+-------------------------+
|  ITopicDefnDeserializer |
|-------------------------|
| getTreeDoc              |
| getNextTopic            |
| doneIter                |
| resetIter               |
+-------------------------+
            .                                                                                                                                                            
           /_\                                                                                                                                                           
            |                                                          [ ITopicDefnDeserializer ]          [ ITopicDefnDeserializer ]                                    
            |                                                                      .                                   .                                                 
            |                                                                     /_\                                 /_\                                                
            |                                                                      |                                   |                                                 
            |                                                                      |                                   |                                                 
+-------------------------+                                           +----------------------------+       +-------------------------+                                   
| TopicDefnDeserialString |                                           |   TopicDefnDeserialClass   |       | TopicDefnDeserialModule |                                   
|-------------------------|                                           |----------------------------|       |-------------------------|                                   
| __filename              |  ---->  [ TopicDefnDeserialModule ]       | __rootTopics               |       | __classDeserial         |  ---->  [ TopicDefnDeserialClass ]
| __modDeserial           |                                           | __iterStarted              |       |-------------------------|                                   
|-------------------------|                                           | __nextTopic                |       | __init__                |                                   
| __init__                |                                           | __rootDoc                  |       | getTreeDoc              |                                   
| createTmpModule         |                                           |----------------------------|       | getNextTopic            |                                   
| getTreeDoc              |                                           | __init__                   |       | doneIter                |                                   
| getNextTopic            |                                           | getTreeDoc                 |       | resetIter               |                                   
| doneIter                |                                           | addDefnFromClassObj        |       | getDefinedTopics        |                                   
| resetIter               |                                           | getNextTopic               |       +-------------------------+                                   
| getDefinedTopics        |                                           | resetIter                  |                                                                     
+-------------------------+                                           | getDefinedTopics           |                                                                     
                                                                      | __findTopics               |                                                                     
                                                                      | __getTopicClasses          |                                                                     
                                                                      | __setArgsDocsFromProtoDocs |                                                                     
                                                                      +----------------------------+                                                                     
                                 
                                 
                                 
                                 
+-------------------------------+
|         PublisherMixin        |
+-------------------------------+
               .                                      
              /_\                                     
               |                                      
               |                                      
               |                                      
               |                                      
               |                                      
+-------------------------------+                     
|             Topic             |                     
|-------------------------------|                     
| __tupleName                   |  ---->  [ ArgsInfo ]
| __handlingUncaughtListenerExc |                     
| _treeConfig                   |                     
| __validator                   |                     
| __listeners                   |                     
| __description                 |                     
| __msgArgs                     |                     
| __parentTopic                 |                     
| __subTopics                   |                     
|-------------------------------|                     
| __init__                      |                     
| setDescription                |                     
| getDescription                |                     
| setMsgArgSpec                 |                     
| getArgs                       |                     
| getArgDescriptions            |                     
| setArgDescriptions            |                     
| isSendable                    |                     
| filterMsgArgs                 |                     
| isAll                         |                     
| isRoot                        |                     
| getName                       |                     
| getNameTuple                  |                     
| getNodeName                   |                     
| getParent                     |                     
| hasSubtopic                   |                     
| getSubtopic                   |                     
| getSubtopics                  |                     
| getNumListeners               |                     
| hasListener                   |                     
| hasListeners                  |                     
| getListeners                  |                     
| validate                      |                     
| isValid                       |                     
| subscribe                     |                     
| unsubscribe                   |                     
| unsubscribeAllListeners       |                     
| _getListenerSpec              |                     
| _publish                      |                     
| __sendMessage                 |                     
| __finalize                    |                     
| _undefineSelf_                |                     
| __undefineBranch              |                     
| __adoptSubtopic               |                     
| __abandonSubtopic             |                     
| __onDeadListener              |                     
| __str__                       |                     
+-------------------------------+                     
               
               
               
               
+-------------+
|  ValueError |
+-------------+
      .        
     /_\       
      |        
      |        
      |        
      |        
      |        
+-------------+
| InvalidName |
|-------------|
| __init__    |
+-------------+
                           
                           
                           
                           
+-------------------------+
|    ITopicTreeVisitor    |
|-------------------------|
| _accept                 |
| _startTraversal         |
| _onTopic                |
| _startChildren          |
| _endChildren            |
| _doneTraversal          |
+-------------------------+
            .                                      
           /_\                                     
            |                                      
            |                                      
            |                                      
            |                                      
            |                                      
+-------------------------+                        
|     TopicTreePrinter    |                        
|-------------------------|                        
| allowedExtras           |  ---->  [ TextWrapper ]
| ALL_TOPICS_NAME         |                        
| __contentMeth           |                        
| __destination           |                        
| __output                |                        
| __content               |                        
| __width                 |                        
| __wrapper               |                        
| __indent                |                        
| __indentStep            |                        
| __topicsBullet          |                        
| __topicItemsBullet      |                        
| __topicArgsBullet       |                        
|-------------------------|                        
| __init__                |                        
| getOutput               |                        
| _doneTraversal          |                        
| _onTopic                |                        
| _startChildren          |                        
| _endChildren            |                        
| __formatDefn            |                        
| __printTopicDescription |                        
| __printTopicArgsAll     |                        
| __printTopicArgNames    |                        
| __printTopicListeners   |                        
+-------------------------+                        
                    
                    
                    
                    
+------------------+
|   IExcHandler    |
|------------------|
| __call__         |
+------------------+
        .           
       /_\          
        |           
        |           
        |           
        |           
        |           
+------------------+
|   ExcPublisher   |
|------------------|
| topicUncaughtExc |
| __topicObj       |
|------------------|
| __init__         |
| init             |
| __call__         |
+------------------+
                                                                            
                                                                            
                                                                            
                                                                            
+-----------------------+       +----------+       +-----------------------+
|      CallArgsInfo     |       | Message  |       | weakmethod.getWeakRef |
|-----------------------|       |----------|       +-----------------------+
| acceptsAllKwargs      |       | topic    |                                
| acceptsAllUnnamedArgs |       | data     |                                
| allParams             |       |----------|                                
| numRequired           |       | __init__ |                                
| autoTopicArgName      |       | __str__  |                                
|-----------------------|       +----------+                                
| __init__              |                                                   
| getAllArgs            |                                                   
| getOptionalArgs       |                                                   
| getRequiredArgs       |                                                   
| __setupAutoTopic      |                                                   
+-----------------------+                                                   
                                                                           
                                                                           
                                                                           
                                                                           
+------------------------+       +--------------+       +-----------------+
|    NotificationMgr     |       | TopicManager |       |   ArgSpecGiven  |
|------------------------|       +--------------+       |-----------------|
| __notifyOnSend         |                              | SPEC_GIVEN_NONE |
| __notifyOnSubscribe    |                              | SPEC_GIVEN_ALL  |
| __notifyOnUnsubscribe  |                              | reqdArgs        |
| __notifyOnNewTopic     |                              | argsSpecType    |
| __notifyOnDelTopic     |                              | argsDocs        |
| __notifyOnDeadListener |                              |-----------------|
| __handlers             |                              | __init__        |
| __atExitRegistered     |                              | setAll          |
|------------------------|                              | isComplete      |
| __init__               |                              | getOptional     |
| addHandler             |                              | __str__         |
| getHandlers            |                              +-----------------+
| clearHandlers          |                                                 
| notifySubscribe        |                                                 
| notifyUnsubscribe      |                                                 
| notifySend             |                                                 
| notifyNewTopic         |                                                 
| notifyDelTopic         |                                                 
| notifyDeadListener     |                                                 
| getFlagStates          |                                                 
| setFlagStates          |                                                 
| __registerForAppExit   |                                                 
+------------------------+                                                 
                                                                                                                  
                                                                                                                  
                                                                                                                  
                                                                                                                  
+-------------+       +-------------------------+       +-------------------------+                               
|  TopicDefn  |       | MasterTopicDefnProvider |       |     TopicTreeAsSpec     |                               
|-------------|       |-------------------------|       |-------------------------|                               
| nameTuple   |       | __providers             |       | INDENT_CH               |  ---->  [ TextWrapper ]       
| description |       | __treeConfig            |       | __traverser             |  ---->  [ TopicTreeTraverser ]
| argsDocs    |       |-------------------------|       | __destination           |                               
| required    |       | __init__                |       | __output                |                               
|-------------|       | addProvider             |       | __header                |                               
| __init__    |       | clear                   |       | __footer                |                               
| isComplete  |       | getNumProviders         |       | __lastWasAll            |                               
+-------------+       | getDefn                 |       | __width                 |                               
                      | isDefined               |       | __wrapper               |                               
                      +-------------------------+       | __indentStep            |                               
                                                        | __indent                |                               
                                                        | __comment               |                               
                                                        |-------------------------|                               
                                                        | __init__                |                               
                                                        | fmItem                  |                               
                                                        | getOutput               |                               
                                                        | traverse                |                               
                                                        | _accept                 |                               
                                                        | _startTraversal         |                               
                                                        | _doneTraversal          |                               
                                                        | _onTopic                |                               
                                                        | _startChildren          |                               
                                                        | _endChildren            |                               
                                                        | __printTopicDescription |                               
                                                        | __printTopicArgSpec     |                               
                                                        | __formatItem            |                               
                                                        | __formatBlock           |                               
                                                        +-------------------------+                               
                                                                           
                                                                           
                                                                           
                                                                           
+--------------------+       +-------------+       +----------------------+
| TopicTreeTraverser |       | TextWrapper |       | traceback.format_exc |
+--------------------+       +-------------+       +----------------------+
                                                                    
                                                                    
                                                                    
                                                                    
+----------+       +-------+       +----------+                     
| ArgsInfo |       | topic |       | WeakNone |                     
+----------+       +-------+       |----------|                     
                                   | __call__ |  ---->  [ WeakNone ]
                                   +----------+                     
                                                                                                                         
                                                                                                                         
                                                                                                                         
                                                                                                                         
+-------------------------+                                   +-------------------+                           +---------+
|        TreeConfig       |                                   |     WeakMethod    |                           | WeakRef |
|-------------------------|                                   |-------------------|                           +---------+
| notificationMgr         |  ---->  [ NotificationMgr ]       | notifyDead        |  ---->  [ WeakRef ]                  
| listenerExcHandler      |  ---->  [ weakref.ref ]           | objRef            |                                      
| raiseOnTopicUnspecified |                                   | fun               |                                      
|-------------------------|                                   | cls               |                                      
| __init__                |                                   |-------------------|                                      
+-------------------------+                                   | __init__          |                                      
                                                              | __onNotifyDeadObj |                                      
                                                              | __call__          |                                      
                                                              | __eq__            |                                      
                                                              | __hash__          |                                      
                                                              | __repr__          |                                      
                                                              | refs              |                                      
                                                              +-------------------+                                      
                                                                                                     
                                                                                                     
                                                                                                     
                                                                                                     
+---------------+       +-------------+       +--------------------+                                 
|   IterState   |       | weakref.ref |       |   TracebackInfo    |                                 
|---------------|       +-------------+       |--------------------|                                 
| filteredArgs  |                             | ExcClass           |  ---->  [ traceback.extract_tb ]
| argsChecked   |                             | excArg             |                                 
|---------------|                             | traceback          |                                 
| __init__      |                             |--------------------|                                 
| checkMsgArgs  |                             | __init__           |                                 
| filterMsgArgs |                             | getFormattedList   |                                 
+---------------+                             | getFormattedString |                                 
                                              | __str__            |                                 
                                              +--------------------+                                 
                                                                 
                                                                 
                                                                 
                                                                 
+----------------------+       +-----------+       +------------+
| traceback.extract_tb |       |    Enum   |       |  Callback  |
+----------------------+       |-----------|       |------------|
                               | nextValue |       | __callable |
                               | values    |       |------------|
                               | desc      |       | __init__   |
                               | value     |       | __call__   |
                               |-----------|       +------------+
                               | __init__  |                     
                               +-----------+                     
                                             
                                             
                                             
                                             
+-----------+                        +------+
| StructMsg |                        | Data |
|-----------|                        +------+
| data      |  ---->  [ Data ]               
|-----------|                                
| __init__  |                                
+-----------+                                
