def __init__(self, *args, **kwargs): # compression engine to use engine = kwargs.pop('engine', None) if engine is None: engine = self.DEFAULT_ENGINE if engine is None: engine = 'dummy' if engine not in self.engines: raise ValueError(text.format('Unknown compression engine (%s), must be one of %s', engine, ', '.join(repr(key) for key in sorted(self.engines)))) self.engine = self.engines[engine] # compression level to use (if applicable) level = kwargs.pop('level', None) if level is None: level = self.DEFAULT_LEVEL if not isinstance(level, (int, long)): raise TypeError(text.format('compression_level must be an int, not %r', type(level).__name__)) if ((level < 1) or (level > 9)): raise ValueError(text.format('compression_level must be between 1-9, not %d', level)) self.level = level # continue field construction super(SerializedDataField, self).__init__(*args, **kwargs)
def __enter__(self): """Enter context: Attempt to acquire lock""" lock_file = self.get_lock_file() start = time.time() last = 0 while True: with trapped: if self.reentrant and os.path.exists(lock_file): with open(lock_file, 'rb') as fp: if text.cast(fp.read()) == self.pid: break fd = os.open(lock_file, tempfile._text_openflags, self.lock_perms) try: os.write(fd, text.encode(self.pid)) finally: os.close(fd) break now = time.time() if ((self.timeout is not None) and ((now - start) >= self.timeout)): raise LockError(text.format('unable to acquire lock for %s', self.name)) sleep = self.interval - now + last if sleep > 0: time.sleep(sleep) last = now return self
def wrapper_func(*args, **kwargs): exc_info = kwargs.pop('exc_info', None) output = self.prefix + text.decode(text.format(*args, **kwargs)) wrapped_func(output) if exc_info is not None: for line in traceback.format_exception(*exc_info): wrapped_func(self.prefix + text.chomp(text.decode(line)))
def __str__(self): from gruntle.memebot.utils.text import encode, format pattern, flags = self.pattern return encode( format("No match (%s): %s %r != %r [%s]", self.url, self.field, self.val, pattern, ", ".join(flags)) )
def __enter__(self): """Enter context: Attempt to acquire lock""" lock_file = self.get_lock_file() start = time.time() last = 0 while True: with trapped: if self.reentrant and os.path.exists(lock_file): with open(lock_file, 'rb') as fp: if text.cast(fp.read()) == self.pid: break fd = os.open(lock_file, tempfile._text_openflags, self.lock_perms) try: os.write(fd, text.encode(self.pid)) finally: os.close(fd) break now = time.time() if ((self.timeout is not None) and ((now - start) >= self.timeout)): raise LockError( text.format('unable to acquire lock for %s', self.name)) sleep = self.interval - now + last if sleep > 0: time.sleep(sleep) last = now return self
def __str__(self): from gruntle.memebot.utils.text import encode, format return encode( format( "Invalid content parsing %s: %s", self.response.url, "Unknown error" if self.msg is None else self.msg ) )
def wrapper_func(*args, **kwargs): exc_info = kwargs.pop('exc_info', None) output = self.prefix + text.decode( text.format(*args, **kwargs)) wrapped_func(output) if exc_info is not None: for line in traceback.format_exception(*exc_info): wrapped_func(self.prefix + text.chomp(text.decode(line)))
def __str__(self): from gruntle.memebot.utils.text import encode, decode, format return encode( format( "%s%s matched blacklist rule %r for host %r", self.blacklist.host, ("" if (self.url is None) else (u" (%s)" % decode(self.url))), self.blacklist.rule, self.blacklist.match, ) )
def __str__(self): return text.encode(', '.join(text.format('%s=%r', key, getattr(self, key, None)) for key in self._fields if key != 'content'))
def __str__(self): from gruntle.memebot.utils.text import encode, format return encode(format("%s responded with status: %d %s", self.link.url, self.response.code, self.response.msg))
def __str__(self): from gruntle.memebot.utils.text import encode, decode, format return encode(format('%s%s matched blacklist rule %r for host %r', self.blacklist.host, ('' if (self.url is None) else (u' (%s)' % decode(self.url))), self.blacklist.rule, self.blacklist.match))
def __str__(self): from gruntle.memebot.utils.text import encode, format return encode(format('%s responded with status: %d %s', self.link.url, self.response.code, self.response.msg))
def __repr__(self): return text.format("<%s: %s>", type(self).__name__, self.__str__())
def __str__(self): return text.encode( ", ".join(text.format("%s=%r", key, getattr(self, key, None)) for key in self._fields if key != "content") )
def __str__(self): from gruntle.memebot.utils.text import encode, format return encode(format('Invalid content parsing %s: %s', self.response.url, 'Unknown error' if self.msg is None else self.msg))
def __repr__(self): return text.format('<%s: %s>', type(self).__name__, self.__str__())
def __str__(self): from gruntle.memebot.utils.text import encode, format pattern, flags = self.pattern return encode(format('No match (%s): %s %r != %r [%s]', self.url, self.field, self.val, pattern, ', '.join(flags)))
def prefix(self): if self.name: return text.decode(text.format('[%s] ', self.name)) return u''
def __str__(self): return text.encode(', '.join(text.format('%s=%r', key, getattr(self, key, None)) for key in self._fields if key not in ('data', 'raw')))