fsspec / universal_pathlib

pathlib api extended to use fsspec backends
MIT License
240 stars 41 forks source link

`relative_to` doesn't work for FilePath #214

Open CompRhys opened 5 months ago

CompRhys commented 5 months ago
Python 3.10.11 | packaged by conda-forge | (main, May 10 2023, 19:07:22) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import upath
>>> upath.__version__
'0.2.2'
>>> a = upath.UPath("/usr")
>>> b = upath.UPath("/")
>>> a.is_relative_to(b)
True
>>> a.relative_to(b)
PosixUPath('usr')
>>> a = upath.implementations.local.FilePath('file:///usr/file.txt')
>>> a.is_relative_to(b)
True
>>> a.relative_to(b)
FilePath('file:///Users/chemix-rhys/usr/file.txt')
True

The relative_to method appears to be broken for FilePath

CompRhys commented 5 months ago

potentially related issues: #170 #184

ap-- commented 5 months ago

Hi @CompRhys

Thank you for reporting the issue and thank you for wanting to contribute ❤️

The relative_to and is_relative_to handling is indeed broken, for basically all UPath types.

I'll review your PR right away.

Cheers, Andreas