def format(self, record): keywords = { 'create': green, 'update': yellow, 'skip': black, 'identical': black, 're-initialized': yellow, 'remove': black, 'notice': black, 'execute': black } if record.levelno in (SKIP, INFO): for item in keywords: if record.msg.startswith(item): record.msg = record.msg.replace(item, ' '*2 + \ keywords[item](bold(item.rjust(9)))) elif record.levelno >= logging.WARN: record.levelname = record.levelname.replace('WARNING', 'WARN') record.msg = ''.join([ ' ' * 2, u"" + red(bold(record.levelname.lower().rjust(9))), ' ', record.msg ]) return logging.Formatter.format(self, record)
def tweet(entry, conf, dryrun=False): """Send a tweet with the title, link and tags from an entry. The first time you need to authorize Acrylamid but than it works without any interaction.""" key = "6k00FRe6w4SZfqEzzzyZVA" secret = "fzRfQcqQX4gcZziyLeoI5wSbnFb7GGj2oEh10hnjPUo" creds = os.path.expanduser('~/.twitter_oauth') if not os.path.exists(creds): twitter.oauth_dance("Acrylamid", key, secret, creds) oauth_token, oauth_token_secret = twitter.read_token_file(creds) t = twitter.Twitter(auth=twitter.OAuth(oauth_token, oauth_token_secret, key, secret)) tweet = u"New Blog Entry: {0} {1} {2}".format(entry.title, helpers.joinurl(conf['www_root'], entry.permalink), ' '.join([u'#' + helpers.safeslug(tag) for tag in entry.tags])) print(' ', bold(blue("tweet ")), end='') print('\n'.join(wrap(tweet.encode('utf8'), subsequent_indent=' '*13))) if not dryrun: try: t.statuses.update(status=tweet.encode('utf8')) except twitter.api.TwitterError as e: try: log.warn("%s" % json.loads(e.response_data)['error']) except (ValueError, TypeError): log.warn("Twitter: something went wrong...")
def format(self, record): keywords = {'create': green, 'update': yellow, 'skip': black, 'identical': black, 're-initialized': yellow, 'remove': black, 'notice': black, 'execute': black} if record.levelno in (SKIP, INFO): for item in keywords: if record.msg.startswith(item): record.msg = record.msg.replace(item, ' '*2 + \ keywords[item](bold(item.rjust(9)))) elif record.levelno >= logging.WARN: record.levelname = record.levelname.replace('WARNING', 'WARN') record.msg = ''.join([' '*2, u"" + red(bold(record.levelname.lower().rjust(9))), ' ', record.msg]) return logging.Formatter.format(self, record)
def tweet(entry, conf, dryrun=False): """Send a tweet with the title, link and tags from an entry. The first time you need to authorize Acrylamid but than it works without any interaction.""" key = "6k00FRe6w4SZfqEzzzyZVA" secret = "fzRfQcqQX4gcZziyLeoI5wSbnFb7GGj2oEh10hnjPUo" creds = os.path.expanduser('~/.twitter_oauth') if not os.path.exists(creds): twitter.oauth_dance("Acrylamid", key, secret, creds) oauth_token, oauth_token_secret = twitter.read_token_file(creds) t = twitter.Twitter( auth=twitter.OAuth(oauth_token, oauth_token_secret, key, secret)) tweet = u"New Blog Entry: {0} {1} {2}".format( entry.title, helpers.joinurl(conf['www_root'], entry.permalink), ' '.join([u'#' + helpers.safeslug(tag) for tag in entry.tags])) print(' ', bold(blue("tweet ")), end='') print('\n'.join(wrap(tweet.encode('utf8'), subsequent_indent=' ' * 13))) if not dryrun: try: t.statuses.update(status=tweet.encode('utf8')) except twitter.api.TwitterError as e: try: log.warn("%s" % json.loads(e.response_data)['error']) except (ValueError, TypeError): log.warn("Twitter: something went wrong...")
def format(self, record): keywords = { "create": green, "update": yellow, "skip": black, "identical": black, "re-initialized": yellow, "remove": black, "notice": black, "execute": black, } if record.levelno in (SKIP, INFO): for item in keywords: if record.msg.startswith(item): record.msg = record.msg.replace(item, " " * 2 + keywords[item](bold(item.rjust(9)))) elif record.levelno >= logging.WARN: record.levelname = record.levelname.replace("WARNING", "WARN") record.msg = "".join([" " * 2, u"" + red(bold(record.levelname.lower().rjust(9))), " ", record.msg]) return logging.Formatter.format(self, record)
if section and line.startswith("### "): paragraph = "changes" in line continue if section and paragraph: rv.append(line) if "break" in line: safe = False return not safe, "\n".join(rv) colorize = lambda text: re.sub( "`([^`]+)`", lambda m: bold(blue(m.group(1))).encode("utf-8"), re.sub( "`([A-Z_*]+)`", lambda m: bold(m.group(1)).encode("utf-8"), re.sub( "(#\d+)", lambda m: underline(m.group(1)).encode("utf-8"), re.sub("(breaks?)", lambda m: red(bold(m.group(1))).encode("utf-8"), text), ), ), ) def breaks(env, firstrun): """Return whether the new version may break current configuration and print all changes between the current and new version."""
continue if section and line.startswith('### '): paragraph = 'changes' in line continue if section and paragraph: rv.append(line) if 'break' in line: safe = False return not safe, '\n'.join(rv) colorize = lambda text: \ re.sub('`([^`]+)`', lambda m: bold(blue(m.group(1))).encode('utf-8'), re.sub('`([A-Z_*]+)`', lambda m: bold(m.group(1)).encode('utf-8'), re.sub('(#\d+)', lambda m: underline(m.group(1)).encode('utf-8'), re.sub('(breaks?)', lambda m: red(bold(m.group(1))).encode('utf-8'), text)))) def breaks(env, firstrun): """Return whether the new version may break current configuration and print all changes between the current and new version.""" version = memoize('version') or (0, 4) if version >= (env.version.major, env.version.minor): return False memoize('version', (env.version.major, env.version.minor))