From 806aa0f41c7816b2859a6961939ed19499b73fe7 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sat, 2 Apr 2016 14:38:33 +0200 Subject: improve .replace() and move it into netlib --- netlib/http/request.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'netlib/http/request.py') diff --git a/netlib/http/request.py b/netlib/http/request.py index 5bd2547e..07a11969 100644 --- a/netlib/http/request.py +++ b/netlib/http/request.py @@ -54,6 +54,23 @@ class Request(Message): self.method, hostport, path ) + def replace(self, pattern, repl, flags=0): + """ + Replaces a regular expression pattern with repl in the headers, the + request path and the body of the request. Encoded content will be + decoded before replacement, and re-encoded afterwards. + + Returns: + The number of replacements made. + """ + # TODO: Proper distinction between text and bytes. + c = super(Request, self).replace(pattern, repl, flags) + self.path, pc = utils.safe_subn( + pattern, repl, self.path, flags=flags + ) + c += pc + return c + @property def first_line_format(self): """ -- cgit v1.2.3