import matplotlib.pyplot as plt
%matplotlib inline
import cv2
from PIL import Image, ImageDraw
import numpy
def get_colors(infile, numcolors=10, swatchsize=20, resize=150):
plt.rcParams['figure.figsize'] = [15, 3]
f,ax = plt.subplots(1,2)
image = Image.open(infile)
orig = image.copy()
image = image.resize((resize, resize))
result = image.convert('P', palette=Image.ADAPTIVE, colors=numcolors)
result.putalpha(0)
colors = result.getcolors(resize*resize)
pal = Image.new('RGB', (swatchsize*numcolors, swatchsize))
draw = ImageDraw.Draw(pal)
posx = 0
for count, col in sorted(colors, key=lambda x: x[0], reverse=True):
draw.rectangle([posx, 0, posx+swatchsize, swatchsize], fill=col)
posx = posx + swatchsize
img = numpy.asarray(pal)
del draw
print('File: ', infile)
for im in sorted(colors, key=lambda x: x[0], reverse=True):
if im[1].index(max(im[1])) == 0:
print(im, 'red')
elif im[1].index(max(im[1])) == 1:
print(im, 'green')
elif im[1].index(max(im[1])) == 2:
print(im, 'blue')
ax[0].imshow(orig)
ax[1].imshow(img)
if __name__ == '__main__':
get_colors('D:\\00\\sample01.jpg', numcolors=1)
get_colors('D:\\00\\sample02.jpg', numcolors=1)
get_colors('D:\\00\\sample03.jpg', numcolors=1)
Дана какая-то последовательность типа b'/x08/fgsdfgds/x09'. Через обычный decode - она никак не декодируется и тут проблема не в кодировке. Просто она после работы функции возвращает саму себя. Как декодировать такие последовательности байтов
>>> diction={365:1}
>>> print(id(diction))
4478940144
>>> def a():
... x=diction
... x.update({365:5})
... print('in a: ', id(x))
...
>>> def b():
... x=diction
... print(x[365])
... print('in b: ', id(x))
...
>>> a()
in a: 4478940144
>>> b()
5
in b: 4478940144
>>> print(id(diction))
4478940144
print(tree.find('.//{http://zakupki.gov.ru/oos/types/1}id').text)
# 18934116
import re
from lxml import etree
parser = etree.XMLParser(ns_clean=True)
xml = re.sub(' xmlns="[^"]+"', '', xml, count=1) # в xml - ваш реальный xml
tree = etree.fromstring(xml.encode(), parser)
print(tree.find(".//id").text)
# 18934116
Я предполагаю, что можно модели пользователя добавить численный атрибут, который будет уменьшаться с созданием новых объектов, но нужно еще, чтобы этот счетчик автоматически обновлялся каждые 24 часа.
Еще момент, что если пользователь в день опубликует один объект, то у него останется еще два, а из этого следует, что при возобновлении счетчика на следующий день у него будет уже 5 записей. Этот момент тоже нужно учесть.
if SomeModel.objects.filter(
author=request.user,
timestamp__gte=timezone.now()-datetime.timedelta(days=1),
).count() < LIMIT:
# allow create
else:
# decline create
mne = 5000
mesyc = 0
procent = 0.03
i = 0
while mesyc != 12:
mesyc += 1
mne += mne * procent
print(f'{mesyc} {mne:.2f}')
print(f'Я заработал за год {mne:.2f} руб')
# 1 5150.00
# 2 5304.50
# 3 5463.64
# 4 5627.54
# 5 5796.37
# 6 5970.26
# 7 6149.37
# 8 6333.85
# 9 6523.87
# 10 6719.58
# 11 6921.17
# 12 7128.80
# Я заработал за год 7128.80 руб
Мои мысли: наверное стоило бы сделать некое объединения всех людей по одному УИКу, и искать по этой группе по третьему столбцу данное сочетание слов: "КОММУНИСТИЧЕСКАЯ ПАРТИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ", соответственно если совпадение есть, значит этот УИК не попадает в нужный список, а если совпадения нет, значит берем этот УИК и добавляем его в список.
Подскажите в сторону каких библиотек рыть, и куда копать?