code: def split(self, s):
          
          parts = []
          b = 0
          while 1:
              m = self.splitp.match(s, b)
              if m is None:
                  break
              b, e = m.span()
              parts.append(s[b:e])
              b = e + 1
          return parts
docs: Split the string on (.) while preserving any (.) inside the
          '{}' alternalte syntax for full ns qualification.
          @param s: A plain or qualifed name.
          @type s: str
          @return: A list of the name's parts.
          @rtype: [str,..]