Coverage for /usr/local/lib/python3.13/dist-packages/pyrocko/__init__.py: 50%
42 statements
« prev ^ index » next coverage.py v7.6.0, created at 2025-12-04 10:41 +0000
« prev ^ index » next coverage.py v7.6.0, created at 2025-12-04 10:41 +0000
1# https://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6'''
7A toolbox and library for seismology.
8'''
10import sys
12try:
13 from .info import * # noqa
14 __version__ = version # noqa
15except ImportError:
16 pass # not available in dev mode
18grumpy = 0 # noqa
21def get_logger():
22 from .util import logging
23 return logging.getLogger('pyrocko')
26class ExternalProgramMissing(Exception):
27 pass
30def app_init(
31 log_level='info',
32 progress_viewer='terminal',
33 program_name=None,
34 multiprocessing_start_method='spawn'):
36 '''
37 Setup logging and progress indicators for Pyrocko scripts.
39 This is a shortcut for calling :py:func:`pyrocko.util.setup_logging` and
40 :py:func:`pyrocko.progress.set_default_viewer`.
42 :param program_name:
43 ``programname`` argument for :py:func:`pyrocko.util.setup_logging`
44 :type program_name:
45 str
47 :param log_level:
48 ``levelname`` argument for :py:func:`pyrocko.util.setup_logging`
49 :type log_level:
50 str
52 :param progress_viewer:
53 ``viewer`` argument for
54 :py:func:`pyrocko.progress.set_default_viewer`
55 '''
56 from pyrocko import util, progress
57 if program_name is None:
58 program_name = sys.argv[0]
60 util.setup_logging(sys.argv[0], log_level)
61 progress.set_default_viewer(progress_viewer)
62 import multiprocessing
63 current_start_method = multiprocessing.get_start_method(allow_none=True)
64 if current_start_method is None \
65 or current_start_method != multiprocessing_start_method:
67 # in the latter case (it has already been fixed), this should raise
68 # RuntimeError
69 multiprocessing.set_start_method(multiprocessing_start_method)
72def make_squirrel(*args, **kwargs):
73 from pyrocko.squirrel import Squirrel
74 return Squirrel(*args, **kwargs)
77def snuffle(*args, **kwargs):
78 '''
79 Start Snuffler.
81 Calls :py:func:`pyrocko.gui.snuffler.snuffler.snuffle`
82 '''
84 from pyrocko import deps
86 deps.require('PyQt5.Qt')
88 from pyrocko.gui.snuffler import snuffler
89 return snuffler.snuffle(*args, **kwargs)
92def sparrow(*args, **kwargs):
93 '''
94 Start Sparrow.
96 Calls :py:func:`pyrocko.gui.sparrow.main`.
97 '''
99 from pyrocko import deps
101 deps.require('vtk')
102 deps.require('PyQt5.Qt')
103 # deps.import_optional('kite', 'InSAR visualization')
105 from pyrocko.gui.sparrow.main import main
106 return main(*args, **kwargs)
109def drum(*args, **kwargs):
110 '''
111 Start Drum Plot.
113 Calls :py:func:`pyrocko.gui.drum.main`.
114 '''
116 from pyrocko import deps
118 deps.require('PyQt5.Qt')
119 deps.require('serial')
121 from pyrocko.gui.drum.main import main
122 return main(*args, **kwargs)