Skip to content

Commit d2bd46e

Browse files
committed
Simplify
1 parent 560988c commit d2bd46e

2 files changed

Lines changed: 60 additions & 299 deletions

File tree

asymmetric-idl-types/compatibility-modelling.py

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,81 @@
1+
from dataclasses import dataclass
12

2-
3+
@dataclass
34
class SchemaVersion(object):
5+
services: List[Service]
6+
7+
@dataclass
8+
class Service(object):
9+
name: str
10+
methods: List[Method]
11+
12+
13+
@dataclass
14+
class Method(object):
15+
name: str
16+
request: Message
17+
response: Message
18+
19+
20+
@dataclass
21+
class Message(object):
22+
name: str
23+
fields: List[Field]
24+
25+
26+
@dataclass
27+
class Field(object):
28+
name: str
29+
type: Type
30+
label: str
31+
id_number: int
32+
33+
@dataclass
34+
class Type(object):
35+
name: str
36+
kind: str
37+
38+
@dataclass
39+
class Enum(object):
40+
name: str
41+
values: List[EnumValue]
42+
43+
@dataclass
44+
class EnumValue(object):
45+
name: str
46+
value: int
447

548
def check_proposal(
649
client_schema_versions: List[SchemaVersion],
750
server_schema_versions: List[SchemaVersion],
851
proposed_schema_version: SchemaVersion):
952

53+
for client_schema_version in client_schema_versions:
54+
check_schema(
55+
client_schema_version=client_schema_version,
56+
server_schema_version=proposed_schema_version
57+
)
1058

11-
for client_schema_version:
59+
for server_schema_version in server_schema_versions:
60+
check_schema(
61+
client_schema_version=proposed_schema_version,
62+
server_schema_version=server_schema_version)
1263

1364

65+
def check_schema(client_schema_version: SchemaVersion, server_schema_version: SchemaVersion):
66+
pass
1467

1568

69+
def check_method(client_method: Method, server_method: Method):
70+
check_message(producer_message=client_method.request, consumer_message=server_method.request)
71+
check_message(producer_message=server_method.response, consumer_message=client_method.response)
1672

73+
def check_message(producer_message: Message, consumer_message: Message):
1774
pass
1875

1976

20-
21-
22-
def check_schema(client_schema_version: SchemaVersion, servesr_schema_version: SchemaVersion):
77+
def check_field(producer_field: Optional[Field], consumer_field: Optional[Field]):
2378
pass
2479

2580

2681

27-
28-
# [ CLIENT v0, CLIENT V1, PROPOSED ]
29-
# X X X
30-
# X X X
31-
# [ SERVER v0, SERVER V1, PROPOSED]

asymmetric-idl-types/dump.md

Lines changed: 0 additions & 289 deletions
This file was deleted.

0 commit comments

Comments
 (0)