projects/aports·blob master · refs

40 lines · 1.4 KiB

1From 7b5d4f7422bfe4c597b8124f99861e751d47f153 Mon Sep 17 00:00:00 2001
2From: Aleksandr Dovydenkov <[email protected]>
3Date: Fri, 26 Sep 2025 10:29:26 +0300
4Subject: [PATCH] Add support cattrs>=25.0.0.
5
6Breaking on update to cattrs version 25.1.0. See: https://catt.rs/en/latest/migrations.html#the-default-structure-hook-fallback-factory
7---
8 packages/python/lsprotocol/converters.py | 9 ++++++++-
9 1 file changed, 8 insertions(+), 1 deletion(-)
10
11diff --git a/packages/python/lsprotocol/converters.py b/packages/python/lsprotocol/converters.py
12index db12c65..47ba036 100644
13--- a/packages/python/lsprotocol/converters.py
14+++ b/packages/python/lsprotocol/converters.py
15@@ -1,6 +1,7 @@
16 # Copyright (c) Microsoft Corporation. All rights reserved.
17 # Licensed under the MIT License.
18
19+from importlib.metadata import version
20 from typing import Optional
21
22 import cattrs
23@@ -8,10 +9,16 @@
24 from . import _hooks
25
26
27+def _get_default_converter():
28+ if version("cattrs") >= "25.0.0":
29+ return cattrs.Converter(structure_fallback_factory=lambda _: cattrs.fns.raise_error)
30+ return cattrs.Converter()
31+
32+
33 def get_converter(
34 converter: Optional[cattrs.Converter] = None,
35 ) -> cattrs.Converter:
36 """Adds cattrs hooks for LSP lsp_types to the given converter."""
37 if converter is None:
38- converter = cattrs.Converter()
39+ converter = _get_default_converter()
40 return _hooks.register_hooks(converter)