Skip to content

Commit

Permalink
feat(ingest): support reserved keywords in model codegen (#6351)
Browse files Browse the repository at this point in the history
  • Loading branch information
hsheth2 committed Nov 3, 2022
1 parent ff885f0 commit 0ca3383
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
1 change: 1 addition & 0 deletions metadata-ingestion/scripts/avro_codegen.py
Expand Up @@ -197,6 +197,7 @@ def generate(schemas_path: str, outdir: str) -> None:
"mxe/MetadataChangeLog.avsc",
"mxe/PlatformEvent.avsc",
"platform/event/v1/EntityChangeEvent.avsc",
"metadata/query/filter/Filter.avsc", # temporarily added to test reserved keywords support
}

# Find all the aspect schemas / other important schemas.
Expand Down
2 changes: 1 addition & 1 deletion metadata-ingestion/setup.py
Expand Up @@ -35,7 +35,7 @@ def get_long_description():
"entrypoints",
"docker",
"expandvars>=0.6.5",
"avro-gen3==0.7.6",
"avro-gen3==0.7.7",
# "avro-gen3 @ git+https://github.com/acryldata/avro_gen@master#egg=avro-gen3",
"avro>=1.10.2,<1.11",
"python-dateutil>=2.8.0",
Expand Down
19 changes: 19 additions & 0 deletions metadata-ingestion/tests/unit/serde/test_serde.py
Expand Up @@ -290,3 +290,22 @@ def test_missing_optional_in_union() -> None:
original = models.DataHubPolicyInfoClass.from_obj(original_json)

assert revised == original


def test_reserved_keywords() -> None:
filter1 = models.FilterClass()
assert filter1.or_ is None

filter2 = models.FilterClass(
or_=[
models.ConjunctiveCriterionClass(
and_=[
models.CriterionClass(field="foo", value="var", negated=True),
]
)
]
)
assert "or" in filter2.to_obj()

filter3 = models.FilterClass.from_obj(filter2.to_obj())
assert filter2 == filter3

0 comments on commit 0ca3383

Please sign in to comment.