code: def registerPlexObject(cls):
      
      etype = getattr(cls, 'STREAMTYPE', cls.TYPE)
      ehash = '%s.%s' % (cls.TAG, etype) if etype else cls.TAG
      if ehash in PLEXOBJECTS:
          raise Exception('Ambiguous PlexObject definition %s(tag=%s, type=%s) with %s' %
              (cls.__name__, cls.TAG, etype, PLEXOBJECTS[ehash].__name__))
      PLEXOBJECTS[ehash] = cls
      return cls
docs: Registry of library types we may come across when parsing XML. This allows us to
          define a few helper functions to dynamically convery the XML into objects. See
          buildItem() below for an example.