Skip to content

Commit 90652b1

Browse files
committed
TMP: rich support
1 parent 5eae7ea commit 90652b1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

Lib/ldap/response.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ def __repr__(self):
7777
return (f"{self.__class__.__name__}(msgid={self.msgid}, "
7878
f"msgtype={self.msgtype}{optional})")
7979

80+
def __rich_repr__(self):
81+
yield "msgid", self.msgid
82+
yield "controls", self.controls, None
83+
8084

8185
class Result(Response):
8286
result: int
@@ -109,6 +113,13 @@ def __repr__(self):
109113
return (f"{self.__class__.__name__}"
110114
f"(msgid={self.msgid}, result={self.result}{optional})")
111115

116+
def __rich_repr__(self):
117+
super().__rich_repr__()
118+
yield "result", self.result
119+
yield "matcheddn", self.matcheddn, ""
120+
yield "message", self.message, ""
121+
yield "referrals", self.referrals, None
122+
112123

113124
class SearchEntry(Response):
114125
msgtype = ldap.RES_SEARCH_ENTRY
@@ -125,6 +136,11 @@ def __new__(cls, msgid, msgtype, controls=None, *,
125136

126137
return instance
127138

139+
def __rich_repr__(self):
140+
super().__rich_repr__()
141+
yield "dn", self.dn
142+
yield "attrs", self.attrs
143+
128144

129145
class SearchReference(Response):
130146
msgtype = ldap.RES_SEARCH_REFERENCE
@@ -139,6 +155,10 @@ def __new__(cls, msgid, msgtype, controls=None, *,
139155

140156
return instance
141157

158+
def __rich_repr__(self):
159+
super().__rich_repr__()
160+
yield "referrals", self.referrals
161+
142162

143163
class SearchResult(Result):
144164
msgtype = ldap.RES_SEARCH_RESULT
@@ -176,17 +196,30 @@ def __repr__(self):
176196
optional += f", name={self.name}"
177197
if self.value is not None:
178198
optional += f", value={self.value}"
199+
if self.message:
200+
optional = f", message={self.message!r}"
179201
if self.controls is not None:
180202
optional += f", controls={self.controls}"
181203
return (f"{self.__class__.__name__}"
182204
f"(msgid={self.msgid}{optional})")
183205

206+
def __rich_repr__(self):
207+
# No super(), we put our values between msgid and controls
208+
yield "msgid", self.msgid
209+
yield "name", self.name, None
210+
yield "value", self.value, None
211+
yield "controls", self.controls, None
212+
184213

185214
class BindResult(Result):
186215
msgtype = ldap.RES_BIND
187216

188217
servercreds: Optional[bytes]
189218

219+
def __rich_repr__(self):
220+
super().__rich_repr__()
221+
yield "servercreds", self.servercreds, None
222+
190223

191224
class ModifyResult(Result):
192225
msgtype = ldap.RES_MODIFY
@@ -264,6 +297,13 @@ def __repr__(self):
264297
return (f"{self.__class__.__name__}"
265298
f"(msgid={self.msgid}, result={self.result}{optional})")
266299

300+
def __rich_repr__(self):
301+
# No super(), we put our values between msgid and controls
302+
yield "msgid", self.msgid
303+
yield "name", self.name, None
304+
yield "value", self.value, None
305+
yield "controls", self.controls, None
306+
267307

268308
class UnsolicitedNotification(ExtendedResult):
269309
msgid = ldap.RES_UNSOLICITED

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy