I’ve been having major performance problems creating clients with large WSDL and XSD files.  Here’s a question about caching I posted on StackOverflow, but never got an answer to.  I think I might be misunderstanding the way suds does caching.  Can anyone confirm that my thinking is wrong?
 
Thanks,
Mike
 
 
Suds is not reusing cached WSDLs and XSDs, although I expect it to
 
I'm pretty sure suds is not caching my WSDLs and XSDs like I expect it to. Here's how I know that cached objects are not being used:
  1. It takes about 30 seconds to create a client: client = Client(url)
  2. The logger entries show consistent digestion of the XSD and WSDL files during the entire 30 seconds
  3. Wireshark is showing consistent TCP traffic to the server storing the XSD and WSDL files during the entire 30 seconds
  4. I see the files in the cache being updated each time I run my program
I have a small program that creates a suds client, sends a single request, gets the response, then ends. My expectation is that each time I run the program, it should fetch the WSDL and XSD files from the file cache, not from the URLs. Here's why I think that:
  1. client.options.cache.duration is set to ('days', 1)
  2. client.options.cache.location is set to c:\docume~1\mlin\locals~1\temp\suds and I see the cache files being generated and re-generated each time I run the program
  3. For a moment I thought that maybe the cache is not reused between runs of a program, but I don't think a file cache would be used if that were the case, because an in-memory cache would do just fine
Am I misunderstanding how suds caching is supposed to work?