obspy/obspy — pull request #774 by krischer (2014-04-11 10:24:41+00:00)
Title: Various FDSN Changes/Improvements

This PR mainly has the purpose to speedup the execution of the `obspy.fdsn` test suite. On my system it now runs in approximately 40 seconds compared to the 15+ minutes it used to run. I don't think we loose any significant test coverage but this change makes it actually testable across different Python Versions. Overview over what this PR is doing:

* Significant speedup in the execution of the obspy.fdsn test suite.
* It now works across Python 2.7/3.3/3.4. I could not test 2.6 due to another issue which will be fixed in a seperate commit but I do not see any issues with it otherwise.
* Changes the documentation in several places to make it more informative. It now also has some more plots.
* The FDSN client now caches the WADLs. Successive client initializations within one Python execution are now fast as they do not download the WADLs again. This in essence means that the following example (bad code but I've seen it in action) is now feasible:

```python
from obspy.fdsn import Client

while True:
c = Client()
c.get_waveforms(...)
```

* Furthermore it now caches the service versions which is mainly interesting for interactive use as `print client` requires version information from all services.
* The `attach_response=True` option will now send one request per channel. It used to send one per station and discard unused channels but this resulted in potentially hundreds of downloaded responses per trace. This solutions is potentially orders of magnitudes faster. It should probably be backported to the relases branch. d8a12b2
* Some further small bugfixes.

Travis tests will fail due to 827ae127f88cc39d13e164649f19eb687017ec7e being incompatible with Python 2.6.