Mercurial > hgrepos > Python > libs > ConfigMix
comparison configmix/__init__.py @ 638:ef485419d723
FIX: Now the merge logic does not interpolate variables in any case.
Previously it did sometimes.
| author | Franz Glasner <f.glasner@feldmann-mg.com> |
|---|---|
| date | Fri, 04 Mar 2022 18:14:12 +0100 |
| parents | 9ab72688278b |
| children | 226aae226b8d |
comparison
equal
deleted
inserted
replaced
| 637:4499e9b4855d | 638:ef485419d723 |
|---|---|
| 425 if isinstance(user, dict) and isinstance(default, dict): | 425 if isinstance(user, dict) and isinstance(default, dict): |
| 426 for k, v in default.items(): | 426 for k, v in default.items(): |
| 427 if filter_comments and _is_comment(k): | 427 if filter_comments and _is_comment(k): |
| 428 continue | 428 continue |
| 429 if k in user: | 429 if k in user: |
| 430 if user[k] == constants.DEL_VALUE: | 430 if isinstance(user, Configuration): |
| 431 ukv = user.getitem_ns(k) | |
| 432 else: | |
| 433 ukv = user[k] | |
| 434 if ukv == constants.DEL_VALUE: | |
| 431 # do not copy | 435 # do not copy |
| 432 del user[k] | 436 del user[k] |
| 433 else: | 437 else: |
| 434 if isinstance(user, Configuration): | 438 user[k] = _merge(ukv, v, filter_comments) |
| 435 user[k] = _merge( | |
| 436 user.getitem_ns(k), v, filter_comments) | |
| 437 else: | |
| 438 user[k] = _merge(user[k], v, filter_comments) | |
| 439 else: | 439 else: |
| 440 user[k] = v | 440 user[k] = v |
| 441 _filter_deletions(user) | 441 _filter_deletions(user) |
| 442 return user | 442 return user |
| 443 | 443 |
| 449 if isinstance(user, dict) and isinstance(default, dict): | 449 if isinstance(user, dict) and isinstance(default, dict): |
| 450 for k, v in default.items(): | 450 for k, v in default.items(): |
| 451 if filter_comments and _is_comment(k): | 451 if filter_comments and _is_comment(k): |
| 452 continue | 452 continue |
| 453 if k in user: | 453 if k in user: |
| 454 if user[k] == constants.DEL_VALUE: | 454 if isinstance(user, Configuration): |
| 455 ukv = user.getitem_ns(k) | |
| 456 else: | |
| 457 ukv = user[k] | |
| 458 if ukv == constants.DEL_VALUE: | |
| 455 # do not copy | 459 # do not copy |
| 456 del user[k] | 460 del user[k] |
| 457 else: | 461 else: |
| 458 if isinstance(user, Configuration): | 462 user[k] = _merge(ukv, v, filter_comments) |
| 459 user[k] = _merge( | |
| 460 user.getitem_ns(k), v, filter_comments) | |
| 461 else: | |
| 462 user[k] = _merge(user[k], v, filter_comments) | |
| 463 else: | 463 else: |
| 464 user[k] = v | 464 user[k] = v |
| 465 return user | 465 return user |
| 466 | 466 |
| 467 | 467 |
| 486 if isinstance(user, dict) and isinstance(default, dict): | 486 if isinstance(user, dict) and isinstance(default, dict): |
| 487 for k, v in default.items(): | 487 for k, v in default.items(): |
| 488 if filter_comments and _is_comment(k): | 488 if filter_comments and _is_comment(k): |
| 489 continue | 489 continue |
| 490 if k in user: | 490 if k in user: |
| 491 if user[k] == constants.DEL_VALUE: | 491 if isinstance(user, Configuration): |
| 492 ukv = user.getitem_ns(k) | |
| 493 else: | |
| 494 ukv = user[k] | |
| 495 if ukv == constants.DEL_VALUE: | |
| 492 # do not copy | 496 # do not copy |
| 493 del user[k] | 497 del user[k] |
| 494 else: | 498 else: |
| 495 if isinstance(user, Configuration): | 499 user[k] = _safe_merge(ukv, v, filter_comments) |
| 496 user[k] = _safe_merge( | |
| 497 user.getitem_ns(k), v, filter_comments) | |
| 498 else: | |
| 499 user[k] = _safe_merge(user[k], v, filter_comments) | |
| 500 else: | 500 else: |
| 501 user[k] = copy.deepcopy(v) | 501 user[k] = copy.deepcopy(v) |
| 502 _filter_deletions(user) | 502 _filter_deletions(user) |
| 503 return user | 503 return user |
| 504 | 504 |
| 510 if isinstance(user, dict) and isinstance(default, dict): | 510 if isinstance(user, dict) and isinstance(default, dict): |
| 511 for k, v in default.items(): | 511 for k, v in default.items(): |
| 512 if filter_comments and _is_comment(k): | 512 if filter_comments and _is_comment(k): |
| 513 continue | 513 continue |
| 514 if k in user: | 514 if k in user: |
| 515 if isinstance(user, Configuration): | |
| 516 ukv = user.getitem_ns(k) | |
| 517 else: | |
| 518 ukv = user[k] | |
| 515 if user[k] == constants.DEL_VALUE: | 519 if user[k] == constants.DEL_VALUE: |
| 516 # do not copy | 520 # do not copy |
| 517 del user[k] | 521 del user[k] |
| 518 else: | 522 else: |
| 519 if isinstance(user, Configuration): | 523 user[k] = _safe_merge(ukv, v, filter_comments) |
| 520 user[k] = _safe_merge( | |
| 521 user.getitem_ns(k), v, filter_comments) | |
| 522 else: | |
| 523 user[k] = _safe_merge(user[k], v, filter_comments) | |
| 524 else: | 524 else: |
| 525 user[k] = copy.deepcopy(v) | 525 user[k] = copy.deepcopy(v) |
| 526 return user | 526 return user |
| 527 | 527 |
| 528 | 528 |
