python-hyper/hyperlink

if path-parameter in functions like `replace` is a string-like object, the function treats each character as path element

con-f-use opened this issue · 1 comments

>>> u
DecodedURL(url=URL.from_text('https://example.com/api/v1/webui'))

>>> u.replace(path="support/woo")
DecodedURL(url=URL.from_text('https://example.com/s/u/p/p/o/r/t/%2F/w/o/o''))

I know path is supposed to be an iterable, not a string in this case, i.e. I should have done path=["support", "woo"]. But maybe it would be more user friendly to have the internal logic be something like:

if isinstance(path, str):
    path = path.split('/')

Just saw, if I understand correctly, that my example should raise and error:

https://github.com/python-hyper/hyperlink/blob/master/src/hyperlink/_url.py#L1022

Will investigate why it didn't for me. In any case maybe instead of throwing an error, hyperlink should just handle text in path conveniently.