1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

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

5 

6import logging 

7 

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

9from pyrocko import model as pmodel 

10from ... import model 

11 

12from pyrocko import guts 

13 

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

15 

16 

17def provided_formats(): 

18 return ['yaml'] 

19 

20 

21def detect_pyrocko_yaml(first512): 

22 try: 

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

24 except UnicodeDecodeError: 

25 return False 

26 

27 for line in first512.splitlines(): 

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

29 return True 

30 

31 return False 

32 

33 

34def detect(first512): 

35 if detect_pyrocko_yaml(first512): 

36 return 'yaml' 

37 

38 return None 

39 

40 

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

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

43 if isinstance(obj, pmodel.Event): 

44 nut = model.make_event_nut( 

45 file_segment=0, 

46 file_element=iobj, 

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

48 tmin=obj.time, 

49 tmax=obj.time) 

50 

51 if 'event' in content: 

52 nut.content = obj 

53 

54 yield nut