1# http://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6import logging
8from pyrocko.io.io_common import get_stats, touch # noqa
9from pyrocko import model as pmodel
10from ... import model
12from pyrocko import guts
14logger = logging.getLogger('psq.io.yaml')
17def provided_formats():
18 return ['yaml']
21def detect_pyrocko_yaml(first512):
22 try:
23 first512 = first512.decode('utf-8')
24 except UnicodeDecodeError:
25 return False
27 for line in first512.splitlines():
28 if line.startswith('--- !pf.'):
29 return True
31 return False
34def detect(first512):
35 if detect_pyrocko_yaml(first512):
36 return 'yaml'
38 return None
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)
51 if 'event' in content:
52 nut.content = obj
54 yield nut