Coverage for /usr/local/lib/python3.11/dist-packages/grond/optimisers/base.py: 91%
43 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-10-26 18:23 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2023-10-26 18:23 +0000
1import logging
3from pyrocko.guts import Object
4from grond.meta import GrondError, has_get_plot_classes
6guts_prefix = 'grond'
8logger = logging.getLogger('grond.optimisers.base')
11class BadProblem(GrondError):
12 pass
15@has_get_plot_classes
16class Optimiser(Object):
18 def __init__(self, **kwargs):
19 Object.__init__(self, **kwargs)
21 def optimise(self, problem):
22 raise NotImplementedError
24 @property
25 def niterations(self):
26 raise NotImplementedError
28 def get_status(self, history):
29 pass
31 def init_bootstraps(self, problem):
32 raise NotImplementedError
34 @classmethod
35 def get_plot_classes(cls):
36 from . import plot
37 return plot.get_plot_classes()
40class OptimiserConfig(Object):
41 pass
44class OptimiserStatus(object):
45 __slots__ = ['row_names', 'column_data', 'extra_header', 'extra_footer']
47 def __init__(self, row_names, column_data,
48 extra_header=None, extra_footer=None):
49 self.row_names = row_names
50 self.column_data = column_data
51 self.extra_header = extra_header
52 self.extra_footer = extra_footer
54 @property
55 def column_names(self):
56 return self.column_data.keys()
58 @property
59 def ncolumns(self):
60 return len(self.column_data)
62 @property
63 def values(self):
64 return self.column_data.values()
67__all__ = '''
68 BadProblem
69 Optimiser
70 OptimiserConfig
71'''.split()