Skip to content

Commit de14d0d

Browse files
authored
Merge pull request #157 from RWTH-EBC/156-not-working-pymoo-methods [PYPI-RELEASE]
156 not working pymoo methods
2 parents 4a8c800 + 8343ced commit de14d0d

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,6 @@
120120
- Improve loading of mat files #150
121121
- v0.5.4
122122
- Add support for wildcard patterns in variable names #154
123+
- v0.5.5
124+
- Fix bug in pymoo optimization methods #156
125+
- Change error for wrong variable names to a warning

ebcpy/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
from .optimization import Optimizer
99

1010

11-
__version__ = '0.5.4'
11+
__version__ = '0.5.5'

ebcpy/optimization.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -505,12 +505,15 @@ def _evaluate(self, x, out, *args, **kwargs):
505505
copy_termination = default_kwargs.pop("copy_termination")
506506
callback = default_kwargs.pop("callback")
507507
display = default_kwargs.pop("display")
508-
509-
default_kwargs["sampling"] = get_sampling(name=default_kwargs["sampling"])
510-
default_kwargs["selection"] = get_selection(name=default_kwargs["selection"])
511-
default_kwargs["crossover"] = get_crossover(name=default_kwargs["crossover"])
512-
default_kwargs["mutation"] = get_mutation(name=default_kwargs["mutation"])
513-
508+
509+
if "selection" in default_kwargs.keys():
510+
default_kwargs["selection"] = get_selection(name=default_kwargs["selection"])
511+
if "crossover" in default_kwargs.keys():
512+
default_kwargs["crossover"] = get_crossover(name=default_kwargs["crossover"])
513+
if "sampling" in default_kwargs.keys():
514+
default_kwargs["sampling"] = get_sampling(name=default_kwargs["sampling"])
515+
if "mutation" in default_kwargs.keys():
516+
default_kwargs["mutation"] = get_mutation(name=default_kwargs["mutation"])
514517
algorithm = pymoo_algorithms[method.lower()](**default_kwargs)
515518

516519
res = minimize(
@@ -586,13 +589,6 @@ def get_default_config(framework: str) -> dict:
586589
}
587590
if framework.lower() == "pymoo":
588591
return {"n_gen": 1000,
589-
"pop_size": 50,
590-
"sampling": "real_random",
591-
"selection": "random",
592-
"crossover": "real_sbx",
593-
"mutation": "real_pm",
594-
"eliminate_duplicates": True,
595-
"n_offsprings": None,
596592
"termination": None,
597593
"seed": 1,
598594
"verbose": False,

ebcpy/utils/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import re
88
from pathlib import Path
99
from typing import Union, List
10+
import warnings
1011

1112

1213
def setup_logger(name: str,
@@ -57,7 +58,7 @@ def get_names(all_names: list, patterns: Union[str, List[str]]) -> List[str]:
5758
without `*` must match exactly. The matching is performed in two steps:
5859
1. Each pattern is translated to a regular expression if it contains `*`,
5960
otherwise used as a literal match.
60-
2. Any pattern that matches no names in `all_names` raises a `KeyError`.
61+
2. Any pattern that matches no names in `all_names` raises a warning.
6162
6263
The returned list preserves the order of `all_names`.
6364
@@ -88,7 +89,7 @@ def get_names(all_names: list, patterns: Union[str, List[str]]) -> List[str]:
8889
unmatched.append(pat)
8990

9091
if unmatched:
91-
raise KeyError(
92+
warnings.warn(
9293
"The following variable names/patterns are not in the given .mat file: "
9394
+ ", ".join(unmatched)
9495
)

tests/test_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -351,11 +351,11 @@ def test_matches(self):
351351

352352
def test_errors(self):
353353
"""
354-
Patterns or literals that match nothing should raise KeyError.
354+
Patterns or literals that match nothing should raise a warning.
355355
"""
356-
with self.assertRaises(KeyError):
356+
with self.assertWarns(UserWarning):
357357
get_names(['alpha', 'beta'], 'unknown')
358-
with self.assertRaises(KeyError):
358+
with self.assertWarns(UserWarning):
359359
get_names(['x1', 'x2'], 'y*')
360360

361361

0 commit comments

Comments
 (0)