Mercurial > hgrepos > Python > libs > ConfigMix
comparison configmix/__init__.py @ 275:e2fd8fea1a4c
Docu: more local lookup
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 03 Oct 2020 15:52:30 +0200 |
| parents | 90bbade12d8e |
| children | af371f9c016d |
comparison
equal
deleted
inserted
replaced
| 274:90bbade12d8e | 275:e2fd8fea1a4c |
|---|---|
| 94 return Configuration(ex) | 94 return Configuration(ex) |
| 95 | 95 |
| 96 | 96 |
| 97 def safe_load(*files, **kwargs): | 97 def safe_load(*files, **kwargs): |
| 98 """Analogous to :func:`load` but do merging with :func:`safe_merge` | 98 """Analogous to :func:`load` but do merging with :func:`safe_merge` |
| 99 instead of :func:`merge` | 99 instead of :func:`.merge` |
| 100 | 100 |
| 101 """ | 101 """ |
| 102 defaults = kwargs.get("defaults") | 102 defaults = kwargs.get("defaults") |
| 103 extras = kwargs.get("extras") | 103 extras = kwargs.get("extras") |
| 104 if defaults is None: | 104 if defaults is None: |
| 437 user[k] = _merge(user[k], v, filter_comments) | 437 user[k] = _merge(user[k], v, filter_comments) |
| 438 return user | 438 return user |
| 439 | 439 |
| 440 | 440 |
| 441 def _merge(user, default, filter_comments): | 441 def _merge(user, default, filter_comments): |
| 442 """Recursion helper for :func:`merge` | 442 """Recursion helper for :func:`.merge` |
| 443 | 443 |
| 444 """ | 444 """ |
| 445 if isinstance(user, dict) and isinstance(default, dict): | 445 if isinstance(user, dict) and isinstance(default, dict): |
| 446 for k, v in default.items(): | 446 for k, v in default.items(): |
| 447 if filter_comments and _is_comment(k): | 447 if filter_comments and _is_comment(k): |
| 452 user[k] = _merge(user[k], v, filter_comments) | 452 user[k] = _merge(user[k], v, filter_comments) |
| 453 return user | 453 return user |
| 454 | 454 |
| 455 | 455 |
| 456 def safe_merge(user, default, filter_comments=True): | 456 def safe_merge(user, default, filter_comments=True): |
| 457 """A more safe version of :func:`merge` that makes deep copies of | 457 """A more safe version of :func:`.merge` that makes deep copies of |
| 458 the returned container objects. | 458 the returned container objects. |
| 459 | 459 |
| 460 Contrary to :func:`merge` no given argument is ever changed | 460 Contrary to :func:`.merge` no given argument is ever changed |
| 461 inplace. Every object from `default` is decoupled from the result | 461 inplace. Every object from `default` is decoupled from the result |
| 462 -- so changing the `default` configuration later does not propagate | 462 -- so changing the `default` configuration later does not propagate |
| 463 into a merged configuration later. | 463 into a merged configuration later. |
| 464 | 464 |
| 465 """ | 465 """ |
