Skip to content

Commit

Permalink
Merge branch 'main' into aiven-anton/advertize-python312-support
Browse files Browse the repository at this point in the history
  • Loading branch information
matyaskuti authored Jan 12, 2024
2 parents ed82a28 + f9c7f92 commit ed748d7
Show file tree
Hide file tree
Showing 595 changed files with 2,609 additions and 1,165 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @Aiven-Open/team-helpful-husky @Aiven-Open/aiven-open-source
19 changes: 15 additions & 4 deletions codegen/generate_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@
from kio.static.primitive import i32Timedelta
from kio.static.primitive import i64Timedelta
from kio.static.primitive import TZAware
from kio.static.protocol import ApiMessage
from kio.static.constants import ErrorCode
from kio.static.constants import EntityType
'''


Expand Down Expand Up @@ -459,6 +459,17 @@ def message_class_vars(
raise NotImplementedError("Unknown message schema type")


def _entity_type_line(
schema: MessageSchema | HeaderSchema | DataSchema,
top_level: bool,
) -> str:
return (
f" __type__: ClassVar = EntityType.{schema.type}\n"
if top_level
else " __type__: ClassVar = EntityType.nested\n"
)


@dataclass(frozen=True, slots=True, kw_only=True)
class ExportName:
name: str
Expand All @@ -480,11 +491,10 @@ def generate_dataclass( # noqa: C901
return
seen.add((name, version))

class_parent_str = "(ApiMessage)" if top_level else ""
class_start = textwrap.dedent(
f"""\
@dataclass(frozen=True, slots=True, kw_only=True)
class {name}{class_parent_str}:
class {name}:
"""
)
class_fields = []
Expand Down Expand Up @@ -565,13 +575,14 @@ class {name}{class_parent_str}:
class_fields.append(f' """{field.about}"""\n')

yield class_start
yield _entity_type_line(schema, top_level)
yield f" __version__: ClassVar[i16] = i16({version})\n"
is_flexible = str(schema.flexibleVersions.matches(version))
yield f" __flexible__: ClassVar[bool] = {is_flexible}\n"
yield from message_class_vars(schema)
yield from class_fields

if name.endswith(capitalize_first(schema.type)):
if top_level:
yield ExportName(name=name, type=schema.type)


Expand Down
19 changes: 12 additions & 7 deletions codegen/generate_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
from types import ModuleType

import kio.schema
from kio.static.protocol import ApiMessage
from kio.static.constants import EntityType
from kio.static.protocol import Entity

from .case import to_snake_case

Expand All @@ -23,7 +24,7 @@ def generate_modules(parent: ModuleType) -> Iterator[ModuleType]:
yield module


def get_entities() -> Iterator[tuple[type, str]]:
def get_entities() -> Iterator[tuple[type[Entity], str]]:
modules = list(generate_modules(import_module("kio.schema")))
for module in modules:
items = module.__dict__.copy()
Expand Down Expand Up @@ -116,11 +117,15 @@ def main() -> None:
entity_snake_case=to_snake_case(entity_type.__name__),
)
)
if issubclass(entity_type, ApiMessage) and entity_type.__name__ not in {
"ProduceRequest", # Records
"FetchResponse", # Records
"FetchSnapshotResponse", # Records
}:
if (
entity_type.__type__ is not EntityType.nested
and entity_type.__name__
not in {
"ProduceRequest", # Records
"FetchResponse", # Records
"FetchSnapshotResponse", # Records
}
):
module_code[module_path].append(
test_code_java.format(
entity_type=entity_type.__name__,
Expand Down
6 changes: 3 additions & 3 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,9 @@ imagesize==1.4.1 \
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
# via sphinx
jinja2==3.1.2 \
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
--hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61
jinja2==3.1.3 \
--hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \
--hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90
# via sphinx
m2r2==0.3.3.post2 \
--hash=sha256:86157721eb6eabcd54d4eea7195890cc58fa6188b8d0abea633383cfbb5e11e3 \
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v0/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
from kio.schema.types import GroupId
from kio.schema.types import ProducerId
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnRequest(ApiMessage):
class AddOffsetsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v0/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
from typing import ClassVar

from kio.schema.response_header.v0.header import ResponseHeader
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnResponse(ApiMessage):
class AddOffsetsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v1/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
from kio.schema.types import GroupId
from kio.schema.types import ProducerId
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnRequest(ApiMessage):
class AddOffsetsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v1/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
from typing import ClassVar

from kio.schema.response_header.v0.header import ResponseHeader
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnResponse(ApiMessage):
class AddOffsetsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v2/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
from kio.schema.types import GroupId
from kio.schema.types import ProducerId
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnRequest(ApiMessage):
class AddOffsetsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(2)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v2/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
from typing import ClassVar

from kio.schema.response_header.v0.header import ResponseHeader
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnResponse(ApiMessage):
class AddOffsetsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(2)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v3/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
from kio.schema.types import GroupId
from kio.schema.types import ProducerId
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnRequest(ApiMessage):
class AddOffsetsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(3)
__flexible__: ClassVar[bool] = True
__api_key__: ClassVar[i16] = i16(25)
Expand Down
5 changes: 3 additions & 2 deletions src/kio/schema/add_offsets_to_txn/v3/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
from typing import ClassVar

from kio.schema.response_header.v1.header import ResponseHeader
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddOffsetsToTxnResponse(ApiMessage):
class AddOffsetsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(3)
__flexible__: ClassVar[bool] = True
__api_key__: ClassVar[i16] = i16(25)
Expand Down
6 changes: 4 additions & 2 deletions src/kio/schema/add_partitions_to_txn/v0/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
from kio.schema.types import ProducerId
from kio.schema.types import TopicName
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.primitive import i32
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnTopic:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -30,7 +31,8 @@ class AddPartitionsToTxnTopic:


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnRequest(ApiMessage):
class AddPartitionsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand Down
7 changes: 5 additions & 2 deletions src/kio/schema/add_partitions_to_txn/v0/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@

from kio.schema.response_header.v0.header import ResponseHeader
from kio.schema.types import TopicName
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnPartitionResult:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -31,6 +32,7 @@ class AddPartitionsToTxnPartitionResult:

@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnTopicResult:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -42,7 +44,8 @@ class AddPartitionsToTxnTopicResult:


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnResponse(ApiMessage):
class AddPartitionsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(0)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand Down
6 changes: 4 additions & 2 deletions src/kio/schema/add_partitions_to_txn/v1/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
from kio.schema.types import ProducerId
from kio.schema.types import TopicName
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.primitive import i32
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnTopic:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -30,7 +31,8 @@ class AddPartitionsToTxnTopic:


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnRequest(ApiMessage):
class AddPartitionsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand Down
7 changes: 5 additions & 2 deletions src/kio/schema/add_partitions_to_txn/v1/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,16 @@

from kio.schema.response_header.v0.header import ResponseHeader
from kio.schema.types import TopicName
from kio.static.constants import EntityType
from kio.static.constants import ErrorCode
from kio.static.primitive import i16
from kio.static.primitive import i32
from kio.static.primitive import i32Timedelta
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnPartitionResult:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -31,6 +32,7 @@ class AddPartitionsToTxnPartitionResult:

@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnTopicResult:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -42,7 +44,8 @@ class AddPartitionsToTxnTopicResult:


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnResponse(ApiMessage):
class AddPartitionsToTxnResponse:
__type__: ClassVar = EntityType.response
__version__: ClassVar[i16] = i16(1)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand Down
6 changes: 4 additions & 2 deletions src/kio/schema/add_partitions_to_txn/v2/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
from kio.schema.types import ProducerId
from kio.schema.types import TopicName
from kio.schema.types import TransactionalId
from kio.static.constants import EntityType
from kio.static.primitive import i16
from kio.static.primitive import i32
from kio.static.protocol import ApiMessage


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnTopic:
__type__: ClassVar = EntityType.nested
__version__: ClassVar[i16] = i16(2)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand All @@ -30,7 +31,8 @@ class AddPartitionsToTxnTopic:


@dataclass(frozen=True, slots=True, kw_only=True)
class AddPartitionsToTxnRequest(ApiMessage):
class AddPartitionsToTxnRequest:
__type__: ClassVar = EntityType.request
__version__: ClassVar[i16] = i16(2)
__flexible__: ClassVar[bool] = False
__api_key__: ClassVar[i16] = i16(24)
Expand Down
Loading

0 comments on commit ed748d7

Please sign in to comment.