|
26 | 26 | default_pyros_solver_logger = setup_pyros_logger()
|
27 | 27 |
|
28 | 28 |
|
29 |
| -class LoggerType: |
| 29 | +def logger_domain(obj): |
30 | 30 | """
|
31 |
| - Domain validator for objects castable to logging.Logger. |
32 |
| - """ |
33 |
| - |
34 |
| - def __call__(self, obj): |
35 |
| - """ |
36 |
| - Cast object to logger. |
| 31 | + Domain validator for logger-type arguments. |
37 | 32 |
|
38 |
| - Parameters |
39 |
| - ---------- |
40 |
| - obj : object |
41 |
| - Object to be cast. |
| 33 | + This admits any object of type ``logging.Logger``, |
| 34 | + or which can be cast to ``logging.Logger``. |
| 35 | + """ |
| 36 | + if isinstance(obj, logging.Logger): |
| 37 | + return obj |
| 38 | + else: |
| 39 | + return logging.getLogger(obj) |
42 | 40 |
|
43 |
| - Returns |
44 |
| - ------- |
45 |
| - logging.Logger |
46 |
| - If `str_or_logger` is of type `logging.Logger`,then |
47 |
| - `str_or_logger` is returned. |
48 |
| - Otherwise, ``logging.getLogger(str_or_logger)`` |
49 |
| - is returned. |
50 |
| - """ |
51 |
| - if isinstance(obj, logging.Logger): |
52 |
| - return obj |
53 |
| - else: |
54 |
| - return logging.getLogger(obj) |
55 | 41 |
|
56 |
| - def domain_name(self): |
57 |
| - """Return str briefly describing domain encompassed by self.""" |
58 |
| - return "None, str or logging.Logger" |
| 42 | +logger_domain.domain_name = "None, str or logging.Logger" |
59 | 43 |
|
60 | 44 |
|
61 |
| -class PositiveIntOrMinusOne: |
| 45 | +def positive_int_or_minus_one(obj): |
62 | 46 | """
|
63 |
| - Domain validator for objects castable to a |
64 |
| - strictly positive int or -1. |
| 47 | + Domain validator for objects castable to a strictly |
| 48 | + positive int or -1. |
65 | 49 | """
|
| 50 | + ans = int(obj) |
| 51 | + if ans != float(obj) or (ans <= 0 and ans != -1): |
| 52 | + raise ValueError(f"Expected positive int or -1, but received value {obj!r}") |
| 53 | + return ans |
66 | 54 |
|
67 |
| - def __call__(self, obj): |
68 |
| - """ |
69 |
| - Cast object to positive int or -1. |
70 | 55 |
|
71 |
| - Parameters |
72 |
| - ---------- |
73 |
| - obj : object |
74 |
| - Object of interest. |
75 |
| -
|
76 |
| - Returns |
77 |
| - ------- |
78 |
| - int |
79 |
| - Positive int, or -1. |
80 |
| -
|
81 |
| - Raises |
82 |
| - ------ |
83 |
| - ValueError |
84 |
| - If object not castable to positive int, or -1. |
85 |
| - """ |
86 |
| - ans = int(obj) |
87 |
| - if ans != float(obj) or (ans <= 0 and ans != -1): |
88 |
| - raise ValueError(f"Expected positive int or -1, but received value {obj!r}") |
89 |
| - return ans |
90 |
| - |
91 |
| - def domain_name(self): |
92 |
| - """Return str briefly describing domain encompassed by self.""" |
93 |
| - return "positive int or -1" |
| 56 | +positive_int_or_minus_one.domain_name = "positive int or -1" |
94 | 57 |
|
95 | 58 |
|
96 | 59 | def mutable_param_validator(param_obj):
|
@@ -721,7 +684,7 @@ def pyros_config():
|
721 | 684 | "max_iter",
|
722 | 685 | ConfigValue(
|
723 | 686 | default=-1,
|
724 |
| - domain=PositiveIntOrMinusOne(), |
| 687 | + domain=positive_int_or_minus_one, |
725 | 688 | description=(
|
726 | 689 | """
|
727 | 690 | Iteration limit. If -1 is provided, then no iteration
|
@@ -766,7 +729,7 @@ def pyros_config():
|
766 | 729 | "progress_logger",
|
767 | 730 | ConfigValue(
|
768 | 731 | default=default_pyros_solver_logger,
|
769 |
| - domain=LoggerType(), |
| 732 | + domain=logger_domain, |
770 | 733 | doc=(
|
771 | 734 | """
|
772 | 735 | Logger (or name thereof) used for reporting PyROS solver
|
|
0 commit comments