From 57db66618fee02eae5aa3e8f498cda89f382fab6 Mon Sep 17 00:00:00 2001 From: Adrien Vannson Date: Fri, 3 Jan 2025 14:36:37 +0100 Subject: [PATCH] Add lib / compiler compatibility check --- src/betterproto2_compiler/plugin/compiler.py | 5 ++++- src/betterproto2_compiler/templates/header.py.j2 | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/betterproto2_compiler/plugin/compiler.py b/src/betterproto2_compiler/plugin/compiler.py index 780bed82..fa75c4ee 100644 --- a/src/betterproto2_compiler/plugin/compiler.py +++ b/src/betterproto2_compiler/plugin/compiler.py @@ -1,6 +1,7 @@ import os.path import subprocess import sys +from importlib import metadata from .module_validation import ModuleValidator @@ -24,6 +25,8 @@ def outputfile_compiler(output_file: OutputTemplate) -> str: templates_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "templates")) + version = metadata.version("betterproto2_compiler") + env = jinja2.Environment( trim_blocks=True, lstrip_blocks=True, @@ -35,7 +38,7 @@ def outputfile_compiler(output_file: OutputTemplate) -> str: header_template = env.get_template("header.py.j2") code = body_template.render(output_file=output_file) - code = header_template.render(output_file=output_file) + "\n" + code + code = header_template.render(output_file=output_file, version=version) + "\n" + code # Sort imports, delete unused ones code = subprocess.check_output( diff --git a/src/betterproto2_compiler/templates/header.py.j2 b/src/betterproto2_compiler/templates/header.py.j2 index 498ab9f0..4765f73d 100644 --- a/src/betterproto2_compiler/templates/header.py.j2 +++ b/src/betterproto2_compiler/templates/header.py.j2 @@ -48,3 +48,5 @@ if TYPE_CHECKING: import grpclib.server from betterproto2.grpc.grpclib_client import MetadataLike from grpclib.metadata import Deadline + +betterproto2.check_compiler_version("{{ version }}")