obspy/obspy — pull request #699 by megies (2013-12-19 13:24:05+00:00)
Title: Trace processing info decorator

This standardizes and generalizes the way we store processing information with the trace, using inspect module in a decorator that can be attached to any method of Trace:
```python
>>> paz_sts2 = {'poles': [-0.037004+0.037016j, -0.037004-0.037016j,
... -251.33+0j,
... -131.04-467.29j, -131.04+467.29j],
... 'zeros': [0j, 0j],
... 'gain': 60077000.0,
... 'sensitivity': 2516778400.0}

>>> print read()[0].detrend().
... simulate(paz_remove=paz_sts2, water_level=60, sacsim=True).
... resample(250).differentiate().filter("bandpass", freqmin=0.1, freqmax=20)
["0.9.0rc1-15-g8be0:taper:max_percentage=0.05:max_length=None:type='cosine':side='both'",
"0.9.0rc1-15-g8be0:detrend:type='simple':options={}",
"0.9.0rc1-15-g8be0:simulate:paz_simulate=None:remove_sensitivity=True:paz_remove={'zeros': [0j, 0j], 'sensitivity': 2516778400.0, 'poles': [(-0.037004+0.037016j), (-0.037004-0.037016j), (-251.33+0j), (-131.04-467.29j), (-131.04+467.29j)], 'gain': 60077000.0}:simulate_sensitivity=True:water_level=60:sacsim=True",
"0.9.0rc1-15-g8be0:resample:sampling_rate=250:strict_length=False:window='hanning':no_filter=True",
"0.9.0rc1-15-g8be0:differentiate:type='gradient':options={}",
"0.9.0rc1-15-g8be0:filter:type='bandpass':options={'freqmax': 20, 'freqmin': 0.1}"]
```

However, this currently uses `getcallargs` in `inspect` module that is not present in Python 2.6, so we can not use this approach currently..