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-27 13:25 +0000

1import logging 

2 

3from pyrocko.guts import Object 

4from grond.meta import GrondError, has_get_plot_classes 

5 

6guts_prefix = 'grond' 

7 

8logger = logging.getLogger('grond.optimisers.base') 

9 

10 

11class BadProblem(GrondError): 

12 pass 

13 

14 

15@has_get_plot_classes 

16class Optimiser(Object): 

17 

18 def __init__(self, **kwargs): 

19 Object.__init__(self, **kwargs) 

20 

21 def optimise(self, problem): 

22 raise NotImplementedError 

23 

24 @property 

25 def niterations(self): 

26 raise NotImplementedError 

27 

28 def get_status(self, history): 

29 pass 

30 

31 def init_bootstraps(self, problem): 

32 raise NotImplementedError 

33 

34 @classmethod 

35 def get_plot_classes(cls): 

36 from . import plot 

37 return plot.get_plot_classes() 

38 

39 

40class OptimiserConfig(Object): 

41 pass 

42 

43 

44class OptimiserStatus(object): 

45 __slots__ = ['row_names', 'column_data', 'extra_header', 'extra_footer'] 

46 

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 

53 

54 @property 

55 def column_names(self): 

56 return self.column_data.keys() 

57 

58 @property 

59 def ncolumns(self): 

60 return len(self.column_data) 

61 

62 @property 

63 def values(self): 

64 return self.column_data.values() 

65 

66 

67__all__ = ''' 

68 BadProblem 

69 Optimiser 

70 OptimiserConfig 

71'''.split()