Skip to content

Commit 82f865b

Browse files
committed
Add allowed to ScreenLogger
1 parent 67a7a49 commit 82f865b

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

bayes_opt/bayesian_optimization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ def _prime_queue(self, init_points):
212212

213213
def _prime_subscriptions(self):
214214
if not any([len(subs) for subs in self._events.values()]):
215-
_logger = _get_default_logger(self._verbose)
215+
_logger = _get_default_logger(self._verbose, self.is_constrained)
216216
self.subscribe(Events.OPTIMIZATION_START, _logger)
217217
self.subscribe(Events.OPTIMIZATION_STEP, _logger)
218218
self.subscribe(Events.OPTIMIZATION_END, _logger)

bayes_opt/logger.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@
66
from .event import Events
77
from .util import Colours
88

9-
def _get_default_logger(verbose):
10-
return ScreenLogger(verbose=verbose)
9+
def _get_default_logger(verbose, is_constrained):
10+
return ScreenLogger(verbose=verbose, is_constrained=is_constrained)
1111

1212

1313
class ScreenLogger(_Tracker):
1414
_default_cell_size = 9
1515
_default_precision = 4
1616

17-
def __init__(self, verbose=2):
17+
def __init__(self, verbose=2, is_constrained=False):
1818
self._verbose = verbose
19+
self._is_constrained = is_constrained
1920
self._header_length = None
2021
super(ScreenLogger, self).__init__()
2122

@@ -27,6 +28,10 @@ def verbose(self):
2728
def verbose(self, v):
2829
self._verbose = v
2930

31+
@property
32+
def is_constrained(self):
33+
return self._is_constrained
34+
3035
def _format_number(self, x):
3136
if isinstance(x, int):
3237
s = "{x:<{s}}".format(
@@ -47,6 +52,20 @@ def _format_number(self, x):
4752
return s[:self._default_cell_size - 3] + "..."
4853
return s
4954

55+
def _format_bool(self, x):
56+
if 5 > self._default_cell_size:
57+
if x == True:
58+
x_ = 'T'
59+
elif x == False:
60+
x_ = 'F'
61+
else:
62+
x_ = str(x)
63+
s = "{x:<{s}}".format(
64+
x=x_,
65+
s=self._default_cell_size,
66+
)
67+
return s
68+
5069
def _format_key(self, key):
5170
s = "{key:^{s}}".format(
5271
key=key,
@@ -62,6 +81,9 @@ def _step(self, instance, colour=Colours.black):
6281

6382
cells.append(self._format_number(self._iterations + 1))
6483
cells.append(self._format_number(res["target"]))
84+
if self._is_constrained:
85+
cells.append(self._format_bool(res["allowed"]))
86+
6587

6688
for key in instance.space.keys:
6789
cells.append(self._format_number(res["params"][key]))
@@ -72,6 +94,10 @@ def _header(self, instance):
7294
cells = []
7395
cells.append(self._format_key("iter"))
7496
cells.append(self._format_key("target"))
97+
98+
if self._is_constrained:
99+
cells.append(self._format_key("allowed"))
100+
75101
for key in instance.space.keys:
76102
cells.append(self._format_key(key))
77103

0 commit comments

Comments
 (0)