diff --git a/ape_vyper/compiler.py b/ape_vyper/compiler.py index 1b356acc..428e9d10 100644 --- a/ape_vyper/compiler.py +++ b/ape_vyper/compiler.py @@ -24,7 +24,7 @@ from evm_trace.enums import CALL_OPCODES from packaging.specifiers import InvalidSpecifier, SpecifierSet from packaging.version import Version -from pydantic import field_validator +from pydantic import field_serializer, field_validator from vvm import compile_standard as vvm_compile_standard from vvm.exceptions import VyperError # type: ignore @@ -74,6 +74,13 @@ class VyperConfig(PluginConfig): def validate_version(cls, value): return SpecifierSet(_version_to_specifier(value)) if isinstance(value, str) else value + @field_serializer("version") + def serialize_version(self, value: Optional[SpecifierSet], _info) -> Optional[str]: + if version := value: + return str(version) + + return None + def _install_vyper(version: Version): try: