code: def description(self):
          
          s = []
          indent = (lambda n :  '\n%*s'%(n*3,' '))
          s.append('Service ( %s ) tns="%s"' % (self.service.name, self.wsdl.tns[1]))
          s.append(indent(1))
          s.append('Prefixes (%d)' % len(self.prefixes))
          for p in self.prefixes:
              s.append(indent(2))
              s.append('%s = "%s"' % p)
          s.append(indent(1))
          s.append('Ports (%d):' % len(self.ports))
          for p in self.ports:
              s.append(indent(2))
              s.append('(%s)' % p[0].name)
              s.append(indent(3))
              s.append('Methods (%d):' % len(p[1]))
              for m in p[1]:
                  sig = []
                  s.append(indent(4))
                  sig.append(m[0])
                  sig.append('(')
                  sig.append(', '.join("%s %s" % (self.xlate(p[1]), p[0]) for p
                      in m[1]))
                  sig.append(')')
                  try:
                      s.append(''.join(sig))
                  except Exception:
                      pass
              s.append(indent(3))
              s.append('Types (%d):' % len(self.types))
              for t in self.types:
                  s.append(indent(4))
                  s.append(self.xlate(t[0]))
          s.append('\n\n')
          return ''.join(s)
docs: Get a textual description of the service for which this object represents.
          @return: A textual description.
          @rtype: str