24 lines
602 B
Python
24 lines
602 B
Python
"""
|
|
Helpers for NSURL
|
|
"""
|
|
import sys
|
|
import objc
|
|
|
|
|
|
def __fspath__(self):
|
|
if self.scheme() == "file":
|
|
# self.fileSystemRepresentation returns a byte string,
|
|
# whereas most user code expects regular strings. Decode
|
|
# in the same way as extension functions in the ``os`` module.
|
|
return self.fileSystemRepresentation().decode(
|
|
sys.getfilesystemencoding(), sys.getfilesystemencodeerrors()
|
|
)
|
|
|
|
raise TypeError(f"NSURL with scheme {self.scheme()!r} instead of 'file'")
|
|
|
|
|
|
objc.addConvenienceForClass(
|
|
"NSURL",
|
|
(("__fspath__", __fspath__),),
|
|
)
|