# Treat the root directory as the current working directory.
return self.with_segments('/', *self._raw_paths)
- @classmethod
- def cwd(cls):
- """Return a new path pointing to the current working directory."""
- # We call 'absolute()' rather than using 'os.getcwd()' directly to
- # enable users to replace the implementation of 'absolute()' in a
- # subclass and benefit from the new behaviour here. This works because
- # os.path.abspath('.') == os.getcwd().
- return cls().absolute()
-
def expanduser(self):
""" Return a new path with expanded ~ and ~user constructs
(as returned by os.path.expanduser)
"""
raise UnsupportedOperation(self._unsupported_msg('expanduser()'))
- @classmethod
- def home(cls):
- """Return a new path pointing to expanduser('~').
- """
- return cls("~").expanduser()
-
def readlink(self):
"""
Return the path to which the symbolic link points.
tail.extend(self._tail)
return self._from_parsed_parts(drive, root, tail)
+ @classmethod
+ def cwd(cls):
+ """Return a new path pointing to the current working directory."""
+ cwd = os.getcwd()
+ path = cls(cwd)
+ path._str = cwd # getcwd() returns a normalized path
+ return path
+
def resolve(self, strict=False):
"""
Make the path absolute, resolving all symlinks on the way and also
return self
+ @classmethod
+ def home(cls):
+ """Return a new path pointing to expanduser('~').
+ """
+ homedir = os.path.expanduser("~")
+ if homedir == "~":
+ raise RuntimeError("Could not determine home directory.")
+ return cls(homedir)
+
@classmethod
def from_uri(cls, uri):
"""Return a new path from the given 'file' URI."""
self.assertRaises(e, p.rglob, '*')
self.assertRaises(e, lambda: list(p.walk()))
self.assertRaises(e, p.absolute)
- self.assertRaises(e, P.cwd)
self.assertRaises(e, p.expanduser)
- self.assertRaises(e, p.home)
self.assertRaises(e, p.readlink)
self.assertRaises(e, p.symlink_to, 'foo')
self.assertRaises(e, p.hardlink_to, 'foo')