From 9a4bdd69b0c3f391add3c9263a98f1f2d066e557 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Thu, 1 Jan 2026 21:06:47 -0500 Subject: [PATCH] perf: add __slots__ to Nodes Signed-off-by: Henry Schreiner --- src/packaging/_parser.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/packaging/_parser.py b/src/packaging/_parser.py index c95afd851..f6c1f5cd2 100644 --- a/src/packaging/_parser.py +++ b/src/packaging/_parser.py @@ -13,6 +13,8 @@ class Node: + __slots__ = ("value",) + def __init__(self, value: str) -> None: self.value = value @@ -20,23 +22,29 @@ def __str__(self) -> str: return self.value def __repr__(self) -> str: - return f"<{self.__class__.__name__}('{self}')>" + return f"<{self.__class__.__name__}({self.value!r})>" def serialize(self) -> str: raise NotImplementedError class Variable(Node): + __slots__ = () + def serialize(self) -> str: return str(self) class Value(Node): + __slots__ = () + def serialize(self) -> str: return f'"{self}"' class Op(Node): + __slots__ = () + def serialize(self) -> str: return str(self)