1# http://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6from __future__ import absolute_import, print_function
8import logging
10from pyrocko.io.io_common import get_stats, touch # noqa
11from pyrocko import model as pmodel
12from ... import model
14from pyrocko import guts
16logger = logging.getLogger('psq.io.yaml')
19def provided_formats():
20 return ['yaml']
23def detect_pyrocko_yaml(first512):
24 try:
25 first512 = first512.decode('utf-8')
26 except UnicodeDecodeError:
27 return False
29 for line in first512.splitlines():
30 if line.startswith('--- !pf.'):
31 return True
33 return False
36def detect(first512):
37 if detect_pyrocko_yaml(first512):
38 return 'yaml'
40 return None
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 name=obj.name or '',
50 tmin=obj.time,
51 tmax=obj.time)
53 if 'event' in content:
54 nut.content = obj
56 yield nut