docs: def register(self, portstr, username, password, pfactory):
          """
          Register a perspective factory PFACTORY to be executed when a PB
          connection arrives on PORTSTR with USERNAME/PASSWORD.  Returns a
          Registration object which can be used to unregister later.
          """
          # do some basic normalization of portstrs
          if isinstance(portstr, type(0)) or ':' not in portstr:
              portstr = "tcp:%s" % portstr
  
          reg = Registration(self, portstr, username)
  
          if portstr not in self.dispatchers:
              disp = self.dispatchers[portstr] = Dispatcher(portstr)
              disp.setServiceParent(self)
          else:
              disp = self.dispatchers[portstr]
  
          disp.register(username, password, pfactory)
  
          return reg