1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

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

5 

6from __future__ import absolute_import, print_function 

7 

8import logging 

9 

10from pyrocko.io.io_common import get_stats, touch # noqa 

11from pyrocko import model as pmodel 

12from ... import model 

13 

14from pyrocko import guts 

15 

16logger = logging.getLogger('psq.io.yaml') 

17 

18 

19def provided_formats(): 

20 return ['yaml'] 

21 

22 

23def detect_pyrocko_yaml(first512): 

24 try: 

25 first512 = first512.decode('utf-8') 

26 except UnicodeDecodeError: 

27 return False 

28 

29 for line in first512.splitlines(): 

30 if line.startswith('--- !pf.'): 

31 return True 

32 

33 return False 

34 

35 

36def detect(first512): 

37 if detect_pyrocko_yaml(first512): 

38 return 'yaml' 

39 

40 return None 

41 

42 

43def iload(format, file_path, segment, content): 

44 for iobj, obj in enumerate(guts.iload_all(filename=file_path)): 

45 if isinstance(obj, pmodel.Event): 

46 nut = model.make_event_nut( 

47 file_segment=0, 

48 file_element=iobj, 

49 codes=model.CodesX(obj.catalog or ''), 

50 tmin=obj.time, 

51 tmax=obj.time) 

52 

53 if 'event' in content: 

54 nut.content = obj 

55 

56 yield nut