Существует ли версия urllib.parse.quote, которая идемпотентна?Эта функция должна удовлетворять:
urllib.parse.quote(x) == urllib.parse.quote(urllib.parse.quote(x))
для достаточно широкого набора x
строк.
Если я проверю функцию на запятой, например:
x = urllib.parse.quote(",")
y = urllib.parse.quote("x")
, тогда я получу x = '%2C'
, но y = '%252C'
, поэтому она не идемпотентна для запятой.
Если такой функции уже не существует, не могли бы вы описать реализацию?Я думал об использовании:
my_unquote = lambda x: urllib.parse.quote(urllib.parse.unquote(x))
, но не уверен, что это даже правильно.
Вопрос возник из-за обработки URL, которые были частично закодированы.