feat(ingest): headers for codegen Python scripts (#2637)

This commit is contained in:
Kevin Hu 2021-06-11 09:44:18 -07:00 committed by GitHub
parent 61a8994bb6
commit 24268c2021
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 194 additions and 6 deletions

View File

@ -1,18 +1,31 @@
import json import json
from pathlib import Path
from typing import Union
import click import click
from avrogen import write_schema_files from avrogen import write_schema_files
autogen_header = """# flake8: noqa
def suppress_checks_in_file(filepath: str) -> None: # This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
"""Adds a couple lines to the top of a file to suppress flake8 and black""" # Do not modify manually!
# fmt: off
"""
def suppress_checks_in_file(filepath: Union[str, Path]) -> None:
"""
Adds a couple lines to the top of an autogenerated file:
- Comments to suppress flake8 and black.
- A note stating that the file was autogenerated.
"""
with open(filepath, "r+") as f: with open(filepath, "r+") as f:
contents = f.read() contents = f.read()
f.seek(0, 0) f.seek(0, 0)
f.write("# flake8: noqa\n") f.write(autogen_header)
f.write("# fmt: off\n")
f.write(contents) f.write(contents)
f.write("# fmt: on\n") f.write("# fmt: on\n")
@ -21,7 +34,6 @@ def suppress_checks_in_file(filepath: str) -> None:
@click.argument("schema_file", type=click.Path(exists=True)) @click.argument("schema_file", type=click.Path(exists=True))
@click.argument("outdir", type=click.Path()) @click.argument("outdir", type=click.Path())
def generate(schema_file: str, outdir: str) -> None: def generate(schema_file: str, outdir: str) -> None:
# print(f'using {schema_file}')
with open(schema_file) as f: with open(schema_file) as f:
raw_schema_text = f.read() raw_schema_text = f.read()
@ -33,11 +45,15 @@ def generate(schema_file: str, outdir: str) -> None:
redo_spaces = json.dumps(json.loads(schema_json), indent=2) redo_spaces = json.dumps(json.loads(schema_json), indent=2)
write_schema_files(redo_spaces, outdir) write_schema_files(redo_spaces, outdir)
suppress_checks_in_file(f"{outdir}/schema_classes.py")
with open(f"{outdir}/__init__.py", "w"): with open(f"{outdir}/__init__.py", "w"):
# Truncate this file. # Truncate this file.
pass pass
# Add headers for all generated files
generated_files = Path(outdir).glob("**/*.py")
for file in generated_files:
suppress_checks_in_file(file)
if __name__ == "__main__": if __name__ == "__main__":
generate() generate()

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ....schema_classes import KafkaAuditHeaderClass from ....schema_classes import KafkaAuditHeaderClass
KafkaAuditHeader = KafkaAuditHeaderClass KafkaAuditHeader = KafkaAuditHeaderClass
# fmt: on

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import ChartInfoClass from .....schema_classes import ChartInfoClass
from .....schema_classes import ChartQueryClass from .....schema_classes import ChartQueryClass
from .....schema_classes import ChartQueryTypeClass from .....schema_classes import ChartQueryTypeClass
@ -8,3 +14,4 @@ ChartInfo = ChartInfoClass
ChartQuery = ChartQueryClass ChartQuery = ChartQueryClass
ChartQueryType = ChartQueryTypeClass ChartQueryType = ChartQueryTypeClass
ChartType = ChartTypeClass ChartType = ChartTypeClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import AccessLevelClass from .....schema_classes import AccessLevelClass
from .....schema_classes import AuditStampClass from .....schema_classes import AuditStampClass
from .....schema_classes import BrowsePathsClass from .....schema_classes import BrowsePathsClass
@ -48,3 +54,4 @@ OwnershipType = OwnershipTypeClass
Status = StatusClass Status = StatusClass
TagAssociation = TagAssociationClass TagAssociation = TagAssociationClass
VersionTag = VersionTagClass VersionTag = VersionTagClass
# fmt: on

View File

@ -1,6 +1,13 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ......schema_classes import TransformationTypeClass from ......schema_classes import TransformationTypeClass
from ......schema_classes import UDFTransformerClass from ......schema_classes import UDFTransformerClass
TransformationType = TransformationTypeClass TransformationType = TransformationTypeClass
UDFTransformer = UDFTransformerClass UDFTransformer = UDFTransformerClass
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import DashboardInfoClass from .....schema_classes import DashboardInfoClass
DashboardInfo = DashboardInfoClass DashboardInfo = DashboardInfoClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import DataFlowInfoClass from .....schema_classes import DataFlowInfoClass
from .....schema_classes import DataJobInfoClass from .....schema_classes import DataJobInfoClass
from .....schema_classes import DataJobInputOutputClass from .....schema_classes import DataJobInputOutputClass
@ -6,3 +12,4 @@ from .....schema_classes import DataJobInputOutputClass
DataFlowInfo = DataFlowInfoClass DataFlowInfo = DataFlowInfoClass
DataJobInfo = DataJobInfoClass DataJobInfo = DataJobInfoClass
DataJobInputOutput = DataJobInputOutputClass DataJobInputOutput = DataJobInputOutputClass
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ......schema_classes import AzkabanJobTypeClass from ......schema_classes import AzkabanJobTypeClass
AzkabanJobType = AzkabanJobTypeClass AzkabanJobType = AzkabanJobTypeClass
# fmt: on

View File

@ -1,6 +1,13 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import DataPlatformInfoClass from .....schema_classes import DataPlatformInfoClass
from .....schema_classes import PlatformTypeClass from .....schema_classes import PlatformTypeClass
DataPlatformInfo = DataPlatformInfoClass DataPlatformInfo = DataPlatformInfoClass
PlatformType = PlatformTypeClass PlatformType = PlatformTypeClass
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import DataProcessInfoClass from .....schema_classes import DataProcessInfoClass
DataProcessInfo = DataProcessInfoClass DataProcessInfo = DataProcessInfoClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import DatasetDeprecationClass from .....schema_classes import DatasetDeprecationClass
from .....schema_classes import DatasetFieldMappingClass from .....schema_classes import DatasetFieldMappingClass
from .....schema_classes import DatasetLineageTypeClass from .....schema_classes import DatasetLineageTypeClass
@ -14,3 +20,4 @@ DatasetProperties = DatasetPropertiesClass
DatasetUpstreamLineage = DatasetUpstreamLineageClass DatasetUpstreamLineage = DatasetUpstreamLineageClass
Upstream = UpstreamClass Upstream = UpstreamClass
UpstreamLineage = UpstreamLineageClass UpstreamLineage = UpstreamLineageClass
# fmt: on

View File

@ -1,6 +1,13 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import GlossaryNodeInfoClass from .....schema_classes import GlossaryNodeInfoClass
from .....schema_classes import GlossaryTermInfoClass from .....schema_classes import GlossaryTermInfoClass
GlossaryNodeInfo = GlossaryNodeInfoClass GlossaryNodeInfo = GlossaryNodeInfoClass
GlossaryTermInfo = GlossaryTermInfoClass GlossaryTermInfo = GlossaryTermInfoClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import CorpGroupInfoClass from .....schema_classes import CorpGroupInfoClass
from .....schema_classes import CorpUserEditableInfoClass from .....schema_classes import CorpUserEditableInfoClass
from .....schema_classes import CorpUserInfoClass from .....schema_classes import CorpUserInfoClass
@ -6,3 +12,4 @@ from .....schema_classes import CorpUserInfoClass
CorpGroupInfo = CorpGroupInfoClass CorpGroupInfo = CorpGroupInfoClass
CorpUserEditableInfo = CorpUserEditableInfoClass CorpUserEditableInfo = CorpUserEditableInfoClass
CorpUserInfo = CorpUserInfoClass CorpUserInfo = CorpUserInfoClass
# fmt: on

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ......schema_classes import ChartKeyClass from ......schema_classes import ChartKeyClass
from ......schema_classes import CorpGroupKeyClass from ......schema_classes import CorpGroupKeyClass
from ......schema_classes import CorpUserKeyClass from ......schema_classes import CorpUserKeyClass
@ -32,3 +38,4 @@ MLFeatureTableKey = MLFeatureTableKeyClass
MLModelKey = MLModelKeyClass MLModelKey = MLModelKeyClass
MLPrimaryKeyKey = MLPrimaryKeyKeyClass MLPrimaryKeyKey = MLPrimaryKeyKeyClass
TagKey = TagKeyClass TagKey = TagKeyClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ......schema_classes import ChartSnapshotClass from ......schema_classes import ChartSnapshotClass
from ......schema_classes import CorpGroupSnapshotClass from ......schema_classes import CorpGroupSnapshotClass
from ......schema_classes import CorpUserSnapshotClass from ......schema_classes import CorpUserSnapshotClass
@ -32,3 +38,4 @@ MLFeatureTableSnapshot = MLFeatureTableSnapshotClass
MLModelSnapshot = MLModelSnapshotClass MLModelSnapshot = MLModelSnapshotClass
MLPrimaryKeySnapshot = MLPrimaryKeySnapshotClass MLPrimaryKeySnapshot = MLPrimaryKeySnapshotClass
TagSnapshot = TagSnapshotClass TagSnapshot = TagSnapshotClass
# fmt: on

View File

@ -0,0 +1,7 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from ......schema_classes import BaseDataClass from ......schema_classes import BaseDataClass
from ......schema_classes import CaveatDetailsClass from ......schema_classes import CaveatDetailsClass
from ......schema_classes import CaveatsAndRecommendationsClass from ......schema_classes import CaveatsAndRecommendationsClass
@ -38,3 +44,4 @@ SourceCode = SourceCodeClass
SourceCodeUrl = SourceCodeUrlClass SourceCodeUrl = SourceCodeUrlClass
SourceCodeUrlType = SourceCodeUrlTypeClass SourceCodeUrlType = SourceCodeUrlTypeClass
TrainingData = TrainingDataClass TrainingData = TrainingDataClass
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import MetadataChangeEventClass from .....schema_classes import MetadataChangeEventClass
MetadataChangeEvent = MetadataChangeEventClass MetadataChangeEvent = MetadataChangeEventClass
# fmt: on

View File

@ -1,3 +1,9 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import ArrayTypeClass from .....schema_classes import ArrayTypeClass
from .....schema_classes import BinaryJsonSchemaClass from .....schema_classes import BinaryJsonSchemaClass
from .....schema_classes import BooleanTypeClass from .....schema_classes import BooleanTypeClass
@ -62,3 +68,4 @@ StringType = StringTypeClass
TimeType = TimeTypeClass TimeType = TimeTypeClass
UnionType = UnionTypeClass UnionType = UnionTypeClass
UrnForeignKey = UrnForeignKeyClass UrnForeignKey = UrnForeignKeyClass
# fmt: on

View File

@ -1,4 +1,11 @@
# flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off
from .....schema_classes import TagPropertiesClass from .....schema_classes import TagPropertiesClass
TagProperties = TagPropertiesClass TagProperties = TagPropertiesClass
# fmt: on

View File

@ -1,4 +1,8 @@
# flake8: noqa # flake8: noqa
# This file is autogenerated by /metadata-ingestion/scripts/avro_codegen.py
# Do not modify manually!
# fmt: off # fmt: off
import json import json
import os.path import os.path