better-optimize 0.0.1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: better_optimize
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: A drop-in replacement for scipy optimize functions with quality of life improvements
5
5
  License: MIT License
6
6
  Project-URL: Homepage, https://github.com/jessegrabowski/better_optimize
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-08-17T12:11:53+0200",
11
+ "date": "2024-08-19T18:20:27+0800",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "b23532dae30953db212e84e4785143cc5a0482bc",
15
- "version": "0.0.1"
14
+ "full-revisionid": "3595536b9c1ead4ca6ea916046e4379d86e36ecc",
15
+ "version": "0.0.2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -15,7 +15,7 @@ from better_optimize.utilities import (
15
15
  kwargs_to_options,
16
16
  validate_provided_functions_minimize,
17
17
  )
18
- from better_optimize.wrapper import CostFuncWrapper, optimzer_early_stopping_wrapper
18
+ from better_optimize.wrapper import ObjectiveWrapper, optimzer_early_stopping_wrapper
19
19
 
20
20
 
21
21
  def minimize(
@@ -72,7 +72,6 @@ def minimize(
72
72
  optimizer_kwargs["options"] = options
73
73
 
74
74
  optimizer_kwargs = kwargs_to_options(optimizer_kwargs, method)
75
-
76
75
  maxiter, optimizer_kwargs = determine_maxiter(optimizer_kwargs, method)
77
76
  optimizer_kwargs = determine_tolerance(optimizer_kwargs, method)
78
77
 
@@ -80,7 +79,7 @@ def minimize(
80
79
  args = () if args is None else args
81
80
  use_hess = hess is not None and not isinstance(hess(x0, *args), LinearOperator)
82
81
 
83
- objective = CostFuncWrapper(
82
+ objective = ObjectiveWrapper(
84
83
  maxeval=maxiter,
85
84
  f=f,
86
85
  jac=jac,
@@ -15,7 +15,7 @@ from better_optimize.utilities import (
15
15
  kwargs_to_options,
16
16
  validate_provided_functions_root,
17
17
  )
18
- from better_optimize.wrapper import CostFuncWrapper, optimzer_early_stopping_wrapper
18
+ from better_optimize.wrapper import ObjectiveWrapper, optimzer_early_stopping_wrapper
19
19
 
20
20
 
21
21
  def root(
@@ -74,7 +74,7 @@ def root(
74
74
  maxiter, optimizer_kwargs = determine_maxiter(optimizer_kwargs, method)
75
75
  optimizer_kwargs = determine_tolerance(optimizer_kwargs, method)
76
76
 
77
- objective = CostFuncWrapper(
77
+ objective = ObjectiveWrapper(
78
78
  maxeval=maxiter,
79
79
  f=f,
80
80
  jac=jac,
@@ -122,7 +122,7 @@ def determine_maxiter(
122
122
  optimizer_kwargs: dict, method: minimize_method | root_method
123
123
  ) -> tuple[int, dict]:
124
124
  MAXITER_KWARGS = ["maxiter", "maxfun", "maxfev"]
125
- maxiter = optimizer_kwargs.get("maxiter", 5000)
125
+ maxiter = optimizer_kwargs.pop("maxiter", 5000)
126
126
  optimizer_kwargs["options"].update({"maxiter": maxiter})
127
127
  maxiter_kwargs = [x for x in get_option_kwargs(method)["valid_options"] if x in MAXITER_KWARGS]
128
128
 
@@ -17,7 +17,7 @@ from rich.table import Column
17
17
  _log = logging.getLogger(__name__)
18
18
 
19
19
 
20
- class CostFuncWrapper:
20
+ class ObjectiveWrapper:
21
21
  def __init__(
22
22
  self,
23
23
  f: Callable[[np.ndarray | float, ...], float | np.ndarray | tuple[float, np.ndarray]],
@@ -78,12 +78,13 @@ class CostFuncWrapper:
78
78
 
79
79
  if self.n_eval % self.update_every == 0:
80
80
  self.update_progressbar(value, grad, hess)
81
- self.n_eval += 1
82
81
 
83
82
  if self.n_eval > self.maxeval:
84
83
  self.update_progressbar(value, grad, hess)
85
84
  self.interrupted = True
86
85
 
86
+ self.n_eval += 1
87
+
87
88
  if self.use_hess:
88
89
  return value, grad, hess
89
90
  elif self.use_jac:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: better-optimize
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: A drop-in replacement for scipy optimize functions with quality of life improvements
5
5
  License: MIT License
6
6
  Project-URL: Homepage, https://github.com/jessegrabowski/better_optimize