def write_file(self, respiter): if sendfile is not None and util.is_fileobject(respiter.filelike): # sometimes the fileno isn't a callable if six.callable(respiter.filelike.fileno): fileno = respiter.filelike.fileno() else: fileno = respiter.filelike.fileno fd_offset = os.lseek(fileno, 0, os.SEEK_CUR) fo_offset = respiter.filelike.tell() nbytes = max(os.fstat(fileno).st_size - fo_offset, 0) if self.response_length: nbytes = min(nbytes, self.response_length) if nbytes == 0: return self.send_headers() if self.is_chunked(): chunk_size = "%X\r\n" % nbytes self.sock.sendall(chunk_size.encode('utf-8')) self.sendfile_all(fileno, self.sock.fileno(), fo_offset, nbytes) if self.is_chunked(): self.sock.sendall(b"\r\n") os.lseek(fileno, fd_offset, os.SEEK_SET) else: for item in respiter: self.write(item)
def _validate_callable(val): if isinstance(val, six.string_types): try: mod_name, obj_name = val.rsplit(".", 1) except ValueError: raise TypeError("Value '%s' is not import string. " "Format: module[.submodules...].object" % val) try: mod = __import__(mod_name, fromlist=[obj_name]) val = getattr(mod, obj_name) except ImportError as e: raise TypeError(str(e)) except AttributeError: raise TypeError("Can not load '%s' from '%s'" "" % (obj_name, mod_name)) if not six.callable(val): raise TypeError("Value is not six.callable: %s" % val) if arity != -1 and arity != len(inspect.getargspec(val)[0]): raise TypeError("Value must have an arity of: %s" % arity) return val
def set(self, val): if not six.callable(self.validator): raise TypeError('Invalid validator: %s' % self.name) self.value = self.validator(val)
def set(self, val): assert six.callable(self.validator), "Invalid validator: %s" % self.name self.value = self.validator(val)
def set(self, val): assert six.callable( self.validator), "Invalid validator: %s" % self.name self.value = self.validator(val)