Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into refactor/app
Browse files Browse the repository at this point in the history
  • Loading branch information
disrupted committed Jul 9, 2024
2 parents 68704c5 + 9d37a50 commit 776bbad
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 9 deletions.
18 changes: 18 additions & 0 deletions docs/docs/user/changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
# Changelog
## [6.1.0](https://github.com/bakdata/kpops/releases/tag/6.1.0) - Release Date: [2024-07-09]

### 🚀 Features

- Add image tag field to streams-bootstrap app values - [#499](https://github.com/bakdata/kpops/pull/499)

- Delete ignored keys from diff - [#510](https://github.com/bakdata/kpops/pull/510)


### 🏭 Refactor

- Improve dataclass instance check - [#507](https://github.com/bakdata/kpops/pull/507)






## [6.0.2](https://github.com/bakdata/kpops/releases/tag/6.0.2) - Release Date: [2024-07-04]

### 📝 Documentation
Expand Down
5 changes: 3 additions & 2 deletions kpops/components/base_components/base_defaults_component.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import logging
from abc import ABC
from collections.abc import Hashable, Sequence
from dataclasses import asdict, is_dataclass
from dataclasses import asdict
from functools import cached_property
from pathlib import Path
from typing import Any, TypeVar
Expand All @@ -22,6 +22,7 @@
from kpops.config import KpopsConfig, get_config
from kpops.const.file_type import KpopsFileType
from kpops.utils import cached_classproperty
from kpops.utils.dataclasses import is_dataclass_instance
from kpops.utils.dict_ops import (
generate_substitution,
update_nested,
Expand Down Expand Up @@ -165,7 +166,7 @@ def extend_with_defaults(cls, **kwargs: Any) -> dict[str, Any]:
for k, v in kwargs.items():
if isinstance(v, pydantic.BaseModel):
kwargs[k] = v.model_dump(exclude_unset=True)
elif is_dataclass(v):
elif is_dataclass_instance(v):
kwargs[k] = asdict(v)

defaults_file_paths_ = get_defaults_file_paths(
Expand Down
5 changes: 5 additions & 0 deletions kpops/utils/dataclasses.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from dataclasses import is_dataclass


def is_dataclass_instance(obj: object) -> bool:
return is_dataclass(obj) and not isinstance(obj, type)
28 changes: 24 additions & 4 deletions kpops/utils/dict_differ.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from __future__ import annotations

from collections.abc import Mapping
from collections.abc import Mapping, MutableMapping
from dataclasses import dataclass
from difflib import Differ
from enum import Enum
from typing import TYPE_CHECKING, Generic, TypeVar
from typing import TYPE_CHECKING, Any, Generic, TypeVar

import typer
import yaml
Expand Down Expand Up @@ -79,8 +79,28 @@ def __find_changed_key(key_1: list[str] | str, key_2: str = "") -> str:
return f"{key_1}.{key_2}"


def render_diff(d1: Mapping, d2: Mapping, ignore: set[str] | None = None) -> str | None:
differences = list(diff(d1, d2, ignore=ignore))
def render_diff(
d1: MutableMapping[str, Any],
d2: MutableMapping[str, Any],
ignore: set[str] | None = None,
) -> str | None:
def del_ignored_keys(d: MutableMapping[str, Any]) -> None:
"""Delete key to be ignored, dictionary is modified in-place."""
if ignore:
for i in ignore:
key_path = i.split(".")
nested = d
try:
for key in key_path[:-1]:
nested = nested[key]
del nested[key_path[-1]]
except KeyError:
continue

del_ignored_keys(d1)
del_ignored_keys(d2)

differences = list(diff(d1, d2))
if not differences:
return None

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "kpops"
version = "6.0.2"
version = "6.1.0"
description = "KPOps is a tool to deploy Kafka pipelines to Kubernetes"
authors = ["bakdata <[email protected]>"]
license = "MIT"
Expand Down
2 changes: 0 additions & 2 deletions tests/utils/test_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
{"a": 1, "b": 2, "c": 3},
{"a": 2, "d": 1},
{"a"},
" a: 1\n"
"\x1b[32m+ d: 1\n"
"\x1b[0m\x1b[31m- b: 2\n"
"\x1b[0m\x1b[31m- c: 3\n"
Expand All @@ -36,7 +35,6 @@
{"a": {"a": 9, "b": 8}, "d": 1},
{"a.a"},
" a:\n"
" a: 1\n"
"\x1b[31m- b: 2\n"
"\x1b[0m\x1b[33m? ^\n"
"\x1b[0m\x1b[32m+ b: 8\n"
Expand Down

0 comments on commit 776bbad

Please sign in to comment.