obspy/obspy — pull request #798 by krischer (2014-05-16 16:58:24+00:00)
Title: Full future integration

This PR fully integrates the future package into ObsPy. The biggest change is that every single file now has to have (there is a test for it) the following import statements:

```python
from __future__ import (absolute_import, division, print_function,
unicode_literals)
from future.builtins import * # NOQA
```
This enforces a consistent behaviour across the code base. The result is that one now has to essentially write Python 3 code so it might actually be the preferred development platform now. This required lots of changes everywhere but behaviour should now more predictable across Python versions.

It furthermore slims down `obspy.core.compatibility` as much as possible and instead relies on things built into the future package. If you need to import some package that is not identical in Python 2/3, please use the following and **do not permanently activate the hooks** (if you permanently activate the hooks they will be present for everything imported after ObsPy which breaks a lot of modules):

```python
from future import standard_library
with standard_library.hooks():
import queue
import urllib.parse
import urllib.request
```

This has been done for everything currently in the code.

All non-network tests, except [this bug](https://github.com/obspy/obspy/commit/8f090afff326704f9544a10b92d046b3806dec2d) work from 2.6 to 3.4.

* `obspy.arclink` does some weird stuff on Python 2.6. @barsch can you check this out?
* I have no clue if `obspy.earthworm` works as we have no server to test with. Does anyone have one?
* `obspy.iris` has some failures but they seem to be related to changed data on their end. We should still update our test suite.
* Most things in the `obspy.neries` test suite time out.

We should probably merge this very soon as it touches every file and otherwise we end up in merge hell. Other then that I now feel fairly good about the future package and we should probably release 0.10 soonish to test it on more platforms.