1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

4# ---|P------/S----------~Lg---------- 

5 

6 

7class EarthquakeCatalog(object): 

8 

9 def get_event(self, name): 

10 raise Exception('This method should be implemented in derived class.') 

11 

12 def iter_event_names(self, time_range, **kwargs): 

13 raise Exception('This method should be implemented in derived class.') 

14 

15 def get_event_names(self, time_range, **kwargs): 

16 return list(self.iter_event_names(time_range, **kwargs)) 

17 

18 def get_events(self, time_range, **kwargs): 

19 return list(self.iter_events(time_range, **kwargs)) 

20 

21 def iter_events(self, time_range, **kwargs): 

22 for name in self.iter_event_names(time_range, **kwargs): 

23 yield self.get_event(name) 

24 

25 

26class NotFound(Exception): 

27 def __init__(self, url=None): 

28 Exception.__init__(self) 

29 self._url = url 

30 

31 def __str__(self): 

32 if self._url: 

33 return 'No results for request %s' % self._url 

34 else: 

35 return 'No results for request'