Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci_generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ env:
GOPRIVATE: "github.com/apigear-io/*"
GH_ACCESS_TOKEN: ${{ secrets.APIGEAR_REPOS }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
go_version: "1.20.x"
go_version: "1.21.x"

jobs:
generate:
Expand Down
2 changes: 1 addition & 1 deletion apigear/goldenmaster.solution.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ schema: "apigear.solution/1.0"
name: demo
version: "0.1.0"

layers:
targets:
- name: goldenmaster
inputs:
- testbed.advanced.module.yaml
Expand Down
12 changes: 6 additions & 6 deletions goldenmaster/tb_same1_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ class Enum2(IntEnum):
VALUE2 = 2

class Struct1(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")

def __init__(self, **kw):
super().__init__(**kw)

class Struct2(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")

def __init__(self, **kw):
super().__init__(**kw)
Expand Down
12 changes: 6 additions & 6 deletions goldenmaster/tb_same2_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ class Enum2(IntEnum):
VALUE2 = 2

class Struct1(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")

def __init__(self, **kw):
super().__init__(**kw)

class Struct2(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")

def __init__(self, **kw):
super().__init__(**kw)
Expand Down
8 changes: 4 additions & 4 deletions goldenmaster/testbed1_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ def dict(self, **kwargs):
return super().dict(**kwargs)

class StructBool(EnhancedModel):
field_bool: bool = Field(None, alias="fieldBool")
field_bool: bool = Field(False, alias="fieldBool")

def __init__(self, **kw):
super().__init__(**kw)

class StructInt(EnhancedModel):
field_int: int = Field(None, alias="fieldInt")
field_int: int = Field(0, alias="fieldInt")

def __init__(self, **kw):
super().__init__(**kw)

class StructFloat(EnhancedModel):
field_float: float = Field(None, alias="fieldFloat")
field_float: float = Field(0.0, alias="fieldFloat")

def __init__(self, **kw):
super().__init__(**kw)

class StructString(EnhancedModel):
field_string: str = Field(None, alias="fieldString")
field_string: str = Field("", alias="fieldString")

def __init__(self, **kw):
super().__init__(**kw)
Expand Down
32 changes: 16 additions & 16 deletions goldenmaster/testbed2_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,52 +28,52 @@ class Enum3(IntEnum):
VALUE4 = 4

class Struct1(EnhancedModel):
field1: int = Field(None, alias="field1")
field1: int = Field(0, alias="field1")

def __init__(self, **kw):
super().__init__(**kw)

class Struct2(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")

def __init__(self, **kw):
super().__init__(**kw)

class Struct3(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")

def __init__(self, **kw):
super().__init__(**kw)

class Struct4(EnhancedModel):
field1: int = Field(None, alias="field1")
field2: int = Field(None, alias="field2")
field3: int = Field(None, alias="field3")
field4: int = Field(None, alias="field4")
field1: int = Field(0, alias="field1")
field2: int = Field(0, alias="field2")
field3: int = Field(0, alias="field3")
field4: int = Field(0, alias="field4")

def __init__(self, **kw):
super().__init__(**kw)

class NestedStruct1(EnhancedModel):
field1: Struct1 = Field(None, alias="field1")
field1: Struct1 = Field(Struct1(), alias="field1")

def __init__(self, **kw):
super().__init__(**kw)

class NestedStruct2(EnhancedModel):
field1: Struct1 = Field(None, alias="field1")
field2: Struct2 = Field(None, alias="field2")
field1: Struct1 = Field(Struct1(), alias="field1")
field2: Struct2 = Field(Struct2(), alias="field2")

def __init__(self, **kw):
super().__init__(**kw)

class NestedStruct3(EnhancedModel):
field1: Struct1 = Field(None, alias="field1")
field2: Struct2 = Field(None, alias="field2")
field3: Struct3 = Field(None, alias="field3")
field1: Struct1 = Field(Struct1(), alias="field1")
field2: Struct2 = Field(Struct2(), alias="field2")
field3: Struct3 = Field(Struct3(), alias="field3")

def __init__(self, **kw):
super().__init__(**kw)
Expand Down
14 changes: 14 additions & 0 deletions rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ features:
documents:
- source: "api/__init__.py.tpl"
target: "__init__.py"
force: true
- source: "api/api.py.tpl"
target: "api.py"
force: true
- name: scaffold
scopes:
- match: system
Expand Down Expand Up @@ -40,18 +42,23 @@ features:
documents:
- source: "http/server.py.tpl"
target: "http/server.py"
force: true
- match: module
prefix: "{{snake .Module.Name}}_http/"
documents:
- source: "http/__init__.py"
target: "__init__.py"
raw: true
force: true
- source: "http/client.py.tpl"
target: "client.py"
force: true
- source: "http/routes.py.tpl"
target: "routes.py"
force: true
- source: "http/shared.py.tpl"
target: "shared.py"
force: true
- name: olink
requires: [api, scaffold]
scopes:
Expand All @@ -60,18 +67,25 @@ features:
- source: "olink/OLINK_README.md"
target: "OLINK_README.md"
raw: true
force: true
- source: "olink/system_server.py.tpl"
target: "olink_server.py"
force: true
- source: "olink/system_client.py.tpl"
target: "olink_client.py"
force: true
- match: module
prefix: "{{snake .Module.Name}}_olink/"
documents:
- source: "olink/__init__.py.tpl"
target: "__init__.py"
force: true
- source: "olink/sources.py.tpl"
target: "sources.py"
force: true
- source: "olink/sinks.py.tpl"
target: "sinks.py"
force: true
- source: "olink/shared.py.tpl"
target: "shared.py"
force: true
2 changes: 1 addition & 1 deletion templates/api/api.py.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class {{Camel .Name }}(IntEnum):

class {{Camel .Name }}(EnhancedModel):
{{- range $struct.Fields }}
{{snake .Name }}: {{pyType "" .}} = Field(None, alias="{{.Name}}")
{{snake .Name }}: {{pyType "" .}} = Field({{pyDefault "" .}}, alias="{{.Name}}")
{{- else }}
pass
{{- end }}
Expand Down