mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
vfs: add "readlines" and "tryreadlines"
This patch allows "readlines" and "tryreadlines" to take "mode" argument, because "subrepo" requires to read files not in "rb" (binary, default for vfs) but in "r" (text) mode in subsequent patch.
This commit is contained in:
parent
38f496a6bb
commit
b1ff97d24c
@ -188,6 +188,15 @@ class abstractvfs(object):
|
||||
raise
|
||||
return ""
|
||||
|
||||
def tryreadlines(self, path, mode='rb'):
|
||||
'''gracefully return an empty array for missing files'''
|
||||
try:
|
||||
return self.readlines(path, mode=mode)
|
||||
except IOError, inst:
|
||||
if inst.errno != errno.ENOENT:
|
||||
raise
|
||||
return []
|
||||
|
||||
def open(self, path, mode="r", text=False, atomictemp=False):
|
||||
self.open = self.__call__
|
||||
return self.__call__(path, mode, text, atomictemp)
|
||||
@ -199,6 +208,13 @@ class abstractvfs(object):
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
def readlines(self, path, mode='rb'):
|
||||
fp = self(path, mode=mode)
|
||||
try:
|
||||
return fp.readlines()
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
def write(self, path, data):
|
||||
fp = self(path, 'wb')
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user