##assertQueue([queue, [options]]) - queue - string or '' (random name) - options: + exclusive - если true, то очередь видна только в этом connection + durable - очередь не исчезает при рестарте брокера (сообщение не теряются) + autoDelete - удалить очередь, когда число консьюмеров станет 0 + arguments - брокер-специфик расширения + messageTtl (0<= n < 2^32) миллисекунды + expires (0 < n < 2^32) - уничтожить очередь после n мс не использования + deadLetterExchange (string) - exchange в который попадает сообщение deadLetterRoutingKey
View fast_bulk_update.py
def fast_bulk_update(model, values, fields, batch_size=1000): | |
# pg_specific and only simple values | |
from psycopg2.extras import execute_values | |
model_name = model._meta.db_table | |
assert model_name != 'vals' | |
pk_field = model._meta.pk | |
fields = tuple(model._meta.get_field(field) for field in fields) | |
fields_expr = ','.join(field.attname for field in fields) |
View prepare-commit-msg.py
#!/usr/bin/python3 | |
import re | |
import sys | |
NOTICKET_PREFIX = 'NOTICKET' | |
ISSUE_PREFIX = 'ZVN' | |
TICKET_BRANCH = re.compile(f'f/({ISSUE_PREFIX}-\d+).*?', re.I) | |
MESSAGE_RE = re.compile(f'((f/)?({ISSUE_PREFIX}-\d+)|{NOTICKET_PREFIX}) .+?', re.I) |
View diags.py
from pprint import pprint | |
def diags(matrix): | |
x = len(matrix[0]) | |
yield [matrix[i][i] for i in range(x)] | |
yield [matrix[i][x - 1 - i] for i in range(x)] | |
for i in range(1, x): |
View clear string from whitespace
PREDICATES | |
nondetermclear_string(string, string) | |
CLAUSES | |
clear_string("", ""). | |
clear_string(Str, Res) :- | |
frontstr(1, Str, Fchar, Rest), | |
Fchar = " ", !, |
View Narayama next permutation
def NarayanaNextPerm(a): | |
n = len(a) | |
k = n - 2 | |
# step 1 | |
while a[k] >= a[k+1] && k >= 0: | |
k -= 1 | |
if k == -1: | |
return 0 |
View gist:32c983fc5de7d985f628
#ifndef VECTOR_H | |
#define VECTOR_H | |
#include <stddef.h> | |
#include <string.h> | |
#include <malloc.h> | |
/* Динамически растущий велосипед */ | |
#define SINGLE_ARG(...) __VA_ARGS__ |
View block comment
from contextlib import contextmanager | |
from logging import getLogger, DEBUG, basicConfig | |
basicConfig(level = DEBUG) | |
@contextmanager | |
def comment(comment, logger=getLogger(),level=DEBUG): | |
try: | |
yield |