diff --git a/python/Makefile b/python/Makefile index 45d9595a..cf6c567c 100644 --- a/python/Makefile +++ b/python/Makefile @@ -14,6 +14,7 @@ generate: require install-deps --input $(HERE)../jsonschema/Envelope.json \ --output $(HERE)src/_messages.py \ --use-generic-container-types \ + --allow-extra-fields \ --allow-population-by-field-name \ --snake-case-field \ --input-file-type=jsonschema \ diff --git a/python/src/_messages.py b/python/src/_messages.py index 97dc5918..e37c6d53 100644 --- a/python/src/_messages.py +++ b/python/src/_messages.py @@ -21,7 +21,7 @@ class MediaType(Enum): class Source(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) uri: str = Field( @@ -38,7 +38,7 @@ class Source(BaseModel): class Location(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) line: int @@ -47,7 +47,7 @@ class Location(BaseModel): class Comment(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the comment") @@ -56,7 +56,7 @@ class Comment(BaseModel): class DocString(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location @@ -75,7 +75,7 @@ class KeywordType(Enum): class TableCell(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the cell") @@ -84,7 +84,7 @@ class TableCell(BaseModel): class TableRow(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the first cell in the row") @@ -94,7 +94,7 @@ class TableRow(BaseModel): class Tag(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="Location of the tag") @@ -104,7 +104,7 @@ class Tag(BaseModel): class JavaMethod(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) class_name: str = Field(..., alias="className") @@ -114,7 +114,7 @@ class JavaMethod(BaseModel): class JavaStackTraceElement(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) class_name: str = Field(..., alias="className") @@ -124,7 +124,7 @@ class JavaStackTraceElement(BaseModel): class Git(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) remote: str @@ -135,7 +135,7 @@ class Git(BaseModel): class Product(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) name: str = Field(..., description="The product name") @@ -144,7 +144,7 @@ class Product(BaseModel): class PickleDocString(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) media_type: str | None = Field(None, alias="mediaType") @@ -160,7 +160,7 @@ class Type(Enum): class PickleTableCell(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) value: str @@ -168,7 +168,7 @@ class PickleTableCell(BaseModel): class PickleTableRow(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) cells: Sequence[PickleTableCell] = Field(..., min_length=1) @@ -176,7 +176,7 @@ class PickleTableRow(BaseModel): class PickleTag(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) name: str @@ -190,7 +190,7 @@ class Type1(Enum): class StepDefinitionPattern(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) source: str @@ -199,7 +199,7 @@ class StepDefinitionPattern(BaseModel): class Group(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) children: Sequence[Group] @@ -209,7 +209,7 @@ class Group(BaseModel): class StepMatchArgument(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) group: Group = Field( @@ -221,7 +221,7 @@ class StepMatchArgument(BaseModel): class StepMatchArgumentsList(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) step_match_arguments: Sequence[StepMatchArgument] = Field(..., alias="stepMatchArguments") @@ -229,7 +229,7 @@ class StepMatchArgumentsList(BaseModel): class TestStep(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) hook_id: str | None = Field(None, alias="hookId", description="Pointer to the `Hook` (if derived from a Hook)") @@ -251,7 +251,7 @@ class TestStep(BaseModel): class Timestamp(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) seconds: int = Field( @@ -266,7 +266,7 @@ class Timestamp(BaseModel): class TestCaseStarted(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) attempt: int = Field( @@ -288,7 +288,7 @@ class TestCaseStarted(BaseModel): class Exception(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) type: str = Field( @@ -305,7 +305,7 @@ class Exception(BaseModel): class TestRunStarted(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) timestamp: Timestamp @@ -323,7 +323,7 @@ class Status(Enum): class Duration(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) seconds: int @@ -335,7 +335,7 @@ class Duration(BaseModel): class TestStepStarted(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) test_case_started_id: str = Field(..., alias="testCaseStartedId") @@ -345,7 +345,7 @@ class TestStepStarted(BaseModel): class UndefinedParameterType(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) expression: str @@ -354,7 +354,7 @@ class UndefinedParameterType(BaseModel): class Attachment(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) body: str = Field( @@ -387,7 +387,7 @@ class Attachment(BaseModel): class DataTable(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location @@ -396,7 +396,7 @@ class DataTable(BaseModel): class Examples(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the `Examples` keyword") @@ -411,7 +411,7 @@ class Examples(BaseModel): class Step(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the steps' `keyword`") @@ -429,7 +429,7 @@ class Step(BaseModel): class SourceReference(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) uri: str | None = None @@ -440,7 +440,7 @@ class SourceReference(BaseModel): class Ci(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) name: str = Field(..., description='Name of the CI product, e.g. "Jenkins", "CircleCI" etc.') @@ -455,7 +455,7 @@ class Ci(BaseModel): class ParameterType(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) name: str = Field(..., description="The name is unique, so we don't need an id.") @@ -468,7 +468,7 @@ class ParameterType(BaseModel): class ParseError(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) source: SourceReference @@ -477,7 +477,7 @@ class ParseError(BaseModel): class PickleTable(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) rows: Sequence[PickleTableRow] @@ -485,7 +485,7 @@ class PickleTable(BaseModel): class StepDefinition(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) id: str @@ -495,7 +495,7 @@ class StepDefinition(BaseModel): class TestCase(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) id: str @@ -505,7 +505,7 @@ class TestCase(BaseModel): class TestCaseFinished(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) test_case_started_id: str = Field(..., alias="testCaseStartedId") @@ -515,7 +515,7 @@ class TestCaseFinished(BaseModel): class TestRunFinished(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) message: str | None = Field( @@ -535,7 +535,7 @@ class TestRunFinished(BaseModel): class TestStepResult(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) duration: Duration @@ -549,7 +549,7 @@ class TestStepResult(BaseModel): class Background(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the `Background` keyword") @@ -562,7 +562,7 @@ class Background(BaseModel): class Scenario(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the `Scenario` keyword") @@ -577,7 +577,7 @@ class Scenario(BaseModel): class Hook(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) id: str @@ -588,7 +588,7 @@ class Hook(BaseModel): class Meta(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) protocol_version: str = Field( @@ -603,7 +603,7 @@ class Meta(BaseModel): class PickleStepArgument(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) doc_string: PickleDocString | None = Field(None, alias="docString") @@ -612,7 +612,7 @@ class PickleStepArgument(BaseModel): class TestStepFinished(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) test_case_started_id: str = Field(..., alias="testCaseStartedId") @@ -623,7 +623,7 @@ class TestStepFinished(BaseModel): class RuleChild(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) background: Background | None = None @@ -632,7 +632,7 @@ class RuleChild(BaseModel): class PickleStep(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) argument: PickleStepArgument | None = None @@ -652,7 +652,7 @@ class PickleStep(BaseModel): class Rule(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the `Rule` keyword") @@ -666,7 +666,7 @@ class Rule(BaseModel): class Pickle(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) id: str = Field(..., description="*\n A unique id for the pickle") @@ -688,7 +688,7 @@ class Pickle(BaseModel): class FeatureChild(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) rule: Rule | None = None @@ -698,7 +698,7 @@ class FeatureChild(BaseModel): class Feature(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) location: Location = Field(..., description="The location of the `Feature` keyword") @@ -717,7 +717,7 @@ class Feature(BaseModel): class GherkinDocument(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) uri: str | None = Field( @@ -730,7 +730,7 @@ class GherkinDocument(BaseModel): class Envelope(BaseModel): model_config = ConfigDict( - extra="forbid", + extra="allow", populate_by_name=True, ) attachment: Attachment | None = None