@@ -1325,40 +1325,32 @@ def create_reference(self, ref, starttime, endtime, net=None, sta=None,
13251325 etc...
13261326 """
13271327
1328- if isinstance ( net , str ) or isinstance ( net , unicode ):
1329- net = ( net ,)
1330- elif isinstance ( net , tuple ) or isinstance ( net , list ) or net is None :
1331- pass
1332- else :
1333- raise ( TypeError ( net ))
1334-
1335- if isinstance ( sta , str ) or isinstance ( sta , unicode ):
1336- sta = ( sta ,)
1337- elif isinstance ( sta , tuple ) or isinstance ( sta , list ) or sta is None :
1338- pass
1339- else :
1340- raise ( TypeError ( sta ) )
1341-
1342- if isinstance ( loc , str ) or isinstance (loc , unicode ):
1343- loc = ( loc ,)
1344- elif isinstance ( loc , tuple ) or isinstance ( loc , list ) or loc is None :
1345- pass
1346- else :
1347- raise ( TypeError ( loc ) )
1328+ def _coerce ( obj ):
1329+ if sys . version_info . major == 3 :
1330+ if isinstance ( obj , str ) :
1331+ obj = ( obj ,)
1332+ elif isinstance ( obj , tuple )\
1333+ or isinstance ( obj , list )\
1334+ or obj is None :
1335+ pass
1336+ else :
1337+ raise ( TypeError ( obj ))
1338+ else :
1339+ if isinstance ( obj , str ) or isinstance ( obj , unicode ) :
1340+ obj = ( obj , )
1341+ elif isinstance ( obj , tuple )\
1342+ or isinstance (obj , list )\
1343+ or obj is None :
1344+ pass
1345+ else :
1346+ raise ( TypeError ( obj ))
1347+ return ( obj )
13481348
1349- if isinstance (chan , str ) or isinstance (chan , unicode ):
1350- chan = (chan ,)
1351- elif isinstance (chan , tuple ) or isinstance (chan , list ) or chan is None :
1352- pass
1353- else :
1354- raise (TypeError (chan ))
1355-
1356- if isinstance (tag , str ) or isinstance (tag , unicode ):
1357- tag = (tag ,)
1358- elif isinstance (tag , tuple ) or isinstance (tag , list ) or tag is None :
1359- pass
1360- else :
1361- raise (TypeError (tag ))
1349+ net = _coerce (net )
1350+ sta = _coerce (sta )
1351+ loc = _coerce (loc )
1352+ chan = _coerce (chan )
1353+ tag = _coerce (tag )
13621354
13631355 _ref_dtype = h5py .special_dtype (ref = h5py .RegionReference )
13641356
@@ -1386,10 +1378,10 @@ def _predicate_locchantag(_key):
13861378 and _predicate_tag (_key ))
13871379
13881380 _wf_grp = self ._waveform_group
1389- for _station_name in itertools . ifilter (_predicate_netsta ,
1390- self ._waveform_group .keys ()):
1391- for _key in itertools . ifilter (_predicate_locchantag ,
1392- _wf_grp [_station_name ].keys ()):
1381+ for _station_name in filter (_predicate_netsta ,
1382+ self ._waveform_group .keys ()):
1383+ for _key in filter (_predicate_locchantag ,
1384+ _wf_grp [_station_name ].keys ()):
13931385
13941386 _net , _sta , _loc , _remainder = _key .split ("." )
13951387 _chan = _remainder .split ("__" )[0 ]
@@ -1494,38 +1486,36 @@ def get_data_for_reference(self, ref, net=None, sta=None, loc=None,
14941486
14951487 etc...
14961488 """
1497- if not isinstance (ref , str ) and not isinstance (ref , unicode ):
1498- raise (TypeError ("reference must be type ::str::" ))
1489+ # if not isinstance(ref, str) and not isinstance(ref, unicode):
1490+ # raise(TypeError("reference must be type ::str::"))
14991491 if ref not in self ._reference_group :
15001492 raise (IOError ("reference does not exist: %s" % ref ))
15011493
1502- if isinstance ( net , str ) or isinstance ( net , unicode ):
1503- net = ( net ,)
1504- elif isinstance ( net , tuple ) or isinstance ( net , list ) or net is None :
1505- pass
1506- else :
1507- raise ( TypeError ( net ))
1508-
1509- if isinstance ( sta , str ) or isinstance ( sta , unicode ):
1510- sta = ( sta ,)
1511- elif isinstance ( sta , tuple ) or isinstance ( sta , list ) or sta is None :
1512- pass
1513- else :
1514- raise ( TypeError ( sta ) )
1515-
1516- if isinstance ( loc , str ) or isinstance (loc , unicode ):
1517- loc = ( loc ,)
1518- elif isinstance ( loc , tuple ) or isinstance ( loc , list ) or loc is None :
1519- pass
1520- else :
1521- raise ( TypeError ( loc ) )
1494+ def _coerce ( obj ):
1495+ if sys . version_info . major == 3 :
1496+ if isinstance ( obj , str ) :
1497+ obj = ( obj ,)
1498+ elif isinstance ( obj , tuple )\
1499+ or isinstance ( obj , list )\
1500+ or obj is None :
1501+ pass
1502+ else :
1503+ raise ( TypeError ( obj ))
1504+ else :
1505+ if isinstance ( obj , str ) or isinstance ( obj , unicode ) :
1506+ obj = ( obj , )
1507+ elif isinstance ( obj , tuple )\
1508+ or isinstance (obj , list )\
1509+ or obj is None :
1510+ pass
1511+ else :
1512+ raise ( TypeError ( obj ))
1513+ return ( obj )
15221514
1523- if isinstance (chan , str ) or isinstance (chan , unicode ):
1524- chan = (chan ,)
1525- elif isinstance (chan , tuple ) or isinstance (chan , list ) or chan is None :
1526- pass
1527- else :
1528- raise (TypeError (chan ))
1515+ net = _coerce (net )
1516+ sta = _coerce (sta )
1517+ loc = _coerce (loc )
1518+ chan = _coerce (chan )
15291519
15301520 def _predicate_net (_key ):
15311521 return (net is None or _key in net )
@@ -1541,20 +1531,16 @@ def _predicate_chan(_key):
15411531
15421532 _st = obspy .Stream ()
15431533 _ref_grp = self ._reference_group [ref ]
1544- for _net in itertools .ifilter (_predicate_net ,
1545- _ref_grp .keys ()):
1534+ for _net in filter (_predicate_net , _ref_grp .keys ()):
15461535 _net_grp = _ref_grp [_net ]
15471536
1548- for _sta in itertools .ifilter (_predicate_sta ,
1549- _net_grp .keys ()):
1537+ for _sta in filter (_predicate_sta , _net_grp .keys ()):
15501538 _sta_grp = _net_grp [_sta ]
15511539
1552- for _loc in itertools .ifilter (_predicate_loc ,
1553- _sta_grp .keys ()):
1540+ for _loc in filter (_predicate_loc , _sta_grp .keys ()):
15541541 _loc_grp = _sta_grp [_loc ]
15551542
1556- for _chan in itertools .ifilter (_predicate_chan ,
1557- _loc_grp .keys ()):
1543+ for _chan in filter (_predicate_chan , _loc_grp .keys ()):
15581544 _ds = _loc_grp [_chan ]
15591545 _ref = _ds [0 ]
15601546 _tr = obspy .Trace (data = self .__file [_ref ][_ref ])
0 commit comments