Example #1
0
	def open(self, mode = 'rb', agent = None):
		"""Open the dentry for reading. Will raise an error if this
		dentry is not a regular file.

		:param str mode: open mode, must be either 'r' or 'rb'
		:param PoolAgent agent: a pool agent to use for reading
		:rtype: IOBase
		"""
		if agent is None:
			agent = self.agent
		io = DentryIO(readahead = agent.readahead(self.hashes))
		if mode == 'rb':
			return io
		elif mode == 'r':
			wrapper = TextIOWrapper(io)
			wrapper._CHUNK_SIZE = self.chunk_size
			return wrapper
		else:
			return RuntimeError("Unsupported open mode %r" % (mode,))