yarl icon indicating copy to clipboard operation
yarl copied to clipboard

Regression: Trailing slash for yarl.URL ("http://localhost") / "path" / "" is dropped in 1.9.4

Open alex-kowalczyk opened this issue 1 year ago • 3 comments

Describe the bug

yarl 1.8.2 allowed to construct URLs with trailing slashes like that:

>>> str(yarl.URL ("http://localhost") / "path" / "") 
'http://localhost/path/'

yarl 1.9.4 drops the slash from that path. Possibly related to https://github.com/aio-libs/yarl/issues/862 :

>>> str(yarl.URL ("http://localhost") / "path" / "") 
'http://localhost/path'

To Reproduce

Try 1.8.2 vs 1.9.4 with the code above.

Expected behavior

Preserve the slash

Logs/tracebacks

-

Python Version

Python 3.11.6

multidict Version

$ python -m pip show multidict
Name: multidict
Version: 6.0.4
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
Author-email: [email protected]
License: Apache 2
Requires: 
Required-by: aiohttp, yarl

yarl Version

$ python -m pip show yarl
Name: yarl
Version: 1.9.4
Summary: Yet another URL library
Home-page: https://github.com/aio-libs/yarl
Author: Andrew Svetlov
Author-email: [email protected]
License: Apache-2.0
Location: /home/alex/.local/share/virtualenvs/widget.backend-6HfWXuQ_/lib/python3.11/site-packages
Requires: idna, multidict
Required-by: aiohttp

OS

Ubuntu 23.10

Additional context

No response

Code of Conduct

  • [X] I agree to follow the aio-libs Code of Conduct

alex-kowalczyk avatar Jan 22 '24 15:01 alex-kowalczyk

This is actually a regression of version 1.9.1.

Please guys fix this, or at least document it in the changelog as it's quite a breaking change!

youtux avatar Jun 05 '24 14:06 youtux

Feel free to send a PR with regression tests and possibly fixes. I don't think I'll have time to work on this myself.

cc @mjpieters @Dreamsorcerer

webknjaz avatar Jun 05 '24 19:06 webknjaz

Done: https://github.com/aio-libs/yarl/pull/1023

youtux avatar Jun 09 '24 07:06 youtux

Hey guys, could you release a new version with this fix?

@webknjaz @Dreamsorcerer

oleg-golovanov avatar Aug 19 '24 14:08 oleg-golovanov