in src/smallmatter/pathlib.py [0:0]
def __new__(cls, *args, fs=fs):
"""Create a new instance of ``Path2``."""
# Override
# Figure out which class to use
if cls is Path2:
if len(args) > 0 and is_s3(str(args[0])):
cls = S3Path
# Discard s3:// from parts
args = args[1:] if is_s3_schema((args[0])) else (args[0][5:], *args[1:])
else:
# Defer local files to parent.
return super().__new__(Path, *args)
# Instantiate the object
self = cls._from_parts(args)
if self._flavour == _s3_flavour:
if not fs:
raise ValueError("S3FileSystem not defined")
self._accessor = fs # NOTE: deviate from pathlib, where isinstance(fs, Accessor) is False.
return self