示例#1
0
文件: fields.py 项目: Havvy/madcow
    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)
示例#2
0
文件: locking.py 项目: Havvy/madcow
 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
示例#3
0
文件: __init__.py 项目: Havvy/madcow
 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)))
示例#4
0
    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))
        )
示例#5
0
 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
示例#6
0
    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
            )
        )
示例#7
0
 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)))
示例#8
0
    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,
            )
        )
示例#9
0
 def __str__(self):
     return text.encode(', '.join(text.format('%s=%r', key, getattr(self, key, None))
                                  for key in self._fields if key != 'content'))
示例#10
0
    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))
示例#11
0
 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))
示例#12
0
 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))
示例#13
0
文件: __init__.py 项目: cjones/madcow
 def __repr__(self):
     return text.format("<%s: %s>", type(self).__name__, self.__str__())
示例#14
0
文件: __init__.py 项目: cjones/madcow
 def __str__(self):
     return text.encode(
         ", ".join(text.format("%s=%r", key, getattr(self, key, None)) for key in self._fields if key != "content")
     )
示例#15
0
 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))
示例#16
0
 def __repr__(self):
     return text.format('<%s: %s>', type(self).__name__, self.__str__())
示例#17
0
 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)))
示例#18
0
 def prefix(self):
     if self.name:
         return text.decode(text.format('[%s] ', self.name))
     return u''
示例#19
0
文件: __init__.py 项目: Havvy/madcow
 def prefix(self):
     if self.name:
         return text.decode(text.format('[%s] ', self.name))
     return u''
示例#20
0
 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')))