code: def open(self, url):
          
          cache = self.__cache()
          id = self.mangle(url, "wsdl")
          wsdl = cache.get(id)
          if wsdl is None:
              wsdl = self.fn(url, self.options)
              cache.put(id, wsdl)
          else:
              # Cached WSDL Definitions objects may have been created with
              # different options so we update them here with our current ones.
              wsdl.options = self.options
              for imp in wsdl.imports:
                  imp.imported.options = self.options
          return wsdl
docs: Open a WSDL schema at the specified I{URL}.
  
          First, the WSDL schema is looked up in the I{object cache}. If not
          found, a new one constructed using the I{fn} factory function and the
          result is cached for the next open().
  
          @param url: A WSDL URL.
          @type url: str.
          @return: The WSDL object.
          @rtype: I{Definitions}