From: Daniele Varrazzo Date: Mon, 11 Jan 2021 14:53:26 +0000 (+0100) Subject: Added repr and slots to Json wrappers X-Git-Tag: 3.0.dev0~184 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ddb8873d75175006d9d59e0d17166b9569b7333;p=thirdparty%2Fpsycopg.git Added repr and slots to Json wrappers --- diff --git a/psycopg3/psycopg3/types/json.py b/psycopg3/psycopg3/types/json.py index 543a2674e..a058de942 100644 --- a/psycopg3/psycopg3/types/json.py +++ b/psycopg3/psycopg3/types/json.py @@ -15,20 +15,28 @@ JsonDumpsFunction = Callable[[Any], str] class _JsonWrapper: + __slots__ = ("obj", "_dumps") + def __init__(self, obj: Any, dumps: Optional[JsonDumpsFunction] = None): self.obj = obj self._dumps: JsonDumpsFunction = dumps or json.dumps + def __repr__(self) -> str: + sobj = repr(self.obj) + if len(sobj) > 40: + sobj = f"{sobj[:35]} ... ({len(sobj)} chars)" + return f"{self.__class__.__name__}({sobj})" + def dumps(self) -> str: return self._dumps(self.obj) class Json(_JsonWrapper): - pass + __slots__ = () class Jsonb(_JsonWrapper): - pass + __slots__ = () class _JsonDumper(Dumper):