From d376274e263d59a65cd8931965ec8d87479575a6 Mon Sep 17 00:00:00 2001 From: Anton Agestam Date: Wed, 27 Mar 2024 18:25:18 +0100 Subject: [PATCH] fix: Address circular dependency in codegen --- codegen/__init__.py | 2 ++ codegen/generate_index.py | 9 ++++++++- codegen/introspect_schema.py | 9 ++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/codegen/__init__.py b/codegen/__init__.py index 136f0096..21269341 100644 --- a/codegen/__init__.py +++ b/codegen/__init__.py @@ -1,3 +1,5 @@ from typing import Final +# Note: the kafka-clients dependency of the Java tester also needs updating when +# this is bumped (in java_tester/build.gradle). build_tag: Final = "3.6.0" diff --git a/codegen/generate_index.py b/codegen/generate_index.py index 9871c61e..01d34fd7 100644 --- a/codegen/generate_index.py +++ b/codegen/generate_index.py @@ -1,21 +1,28 @@ # ruff: noqa: T201 +from __future__ import annotations + import sys from collections import defaultdict from collections.abc import Iterator from collections.abc import Mapping from functools import partial +from typing import TYPE_CHECKING from typing import Final from typing import NamedTuple from typing import TypeAlias from kio.static.constants import EntityType -from kio.static.protocol import Entity from .introspect_schema import base_dir from .introspect_schema import get_message_entities +# Chickens and eggs ... +if TYPE_CHECKING: + from kio.static.protocol import Entity + + target_path: Final = base_dir / "src/kio/schema/index.py" prefix: Final = "kio.schema." indent: Final = " " diff --git a/codegen/introspect_schema.py b/codegen/introspect_schema.py index 76f2fe15..779d2bbd 100644 --- a/codegen/introspect_schema.py +++ b/codegen/introspect_schema.py @@ -1,14 +1,21 @@ +from __future__ import annotations + from collections.abc import Iterator from importlib import import_module from pathlib import Path from pkgutil import walk_packages from types import ModuleType +from typing import TYPE_CHECKING from typing import Final import kio.schema from kio.static.constants import EntityType -from kio.static.protocol import Entity + +# Chickens and eggs ... +if TYPE_CHECKING: + from kio.static.protocol import Entity + base_dir: Final = Path(__file__).parent.parent.resolve() schema_src_dir: Final = Path(kio.schema.__file__).parent.resolve()