ensure that an args-joined path exists (by default as
a file). If you specify a keyword argument 'dir=True'
then the path is forced to be a directory path.
def ensure(self, *args, **kwargs):
origin: path.svnurl
where:
function source:
def ensure(self, *args, **kwargs):
""" ensure that an args-joined path exists (by default as
a file). If you specify a keyword argument 'dir=True'
then the path is forced to be a directory path.
"""
if getattr(self, 'rev', None) is not None:
raise py.error.EINVAL(self, "revisions are immutable")
target = self.join(*args)
dir = kwargs.get('dir', 0)
for x in target.parts(reverse=True):
if x.check():
break
else:
raise py.error.ENOENT(target, "has not any valid base!")
if x == target:
if not x.check(dir=dir):
raise dir and py.error.ENOTDIR(x) or py.error.EISDIR(x)
return x
tocreate = target.relto(x)
basename = tocreate.split(self.sep, 1)[0]
tempdir = py.path.local.mkdtemp()
try:
tempdir.ensure(tocreate, dir=dir)
cmd = 'svn import -m "%s" "%s" "%s"' % (
"ensure %s" % svncommon.escape(tocreate),
svncommon.escape(tempdir.join(basename)),
svncommon.escape(x.join(basename)))
process.cmdexec(cmd)
self._lsnorevcache.delentry(x.strpath) # !!!
finally:
tempdir.remove()
return target
called in /home/johnny/projects/merlinux/py/dist/py/path/testing/fscommon.py
traceback path.svnurl.ensure.0
called in /home/johnny/projects/merlinux/py/dist/py/path/testing/fscommon.py