@spbpython

Страница 424 из 785
Dmitry
08.06.2017
16:40:13
why not pillow ?

Dmitry
08.06.2017
16:41:06
why not pillow ?
Мейнтейнер pillow не рекомендовал :)

Если шрифты, то я бы не стал, просто потому что я никогда со шрифтами не работал, а по моему опыту, то что не починено, то скорее всего сломано

спасибо. А есть идеи что взять вместо PIL тогда?

Google
Dmitry
08.06.2017
16:41:40
Тут же вроде не нужно большой производительности. Возьми wand

Но помни про освобождение ресурсов )

Olya
08.06.2017
16:53:12
После майнкрафта я надеюсь все-таки как-нибудь еще раз выступить и рассказать про OpenCV

Dmitry
08.06.2017
16:53:26
мы очень за =)

Olya
08.06.2017
16:53:43
Мы все порадуемся, узнаем новое. Но переписывать все равно уже не станем, ибо все готовое уже, работает и хорошо :)

Dmitry
08.06.2017
16:53:48
скажу по секрету, нам в некоторое ближайшее время начнёт требоваться больше докладов в единицу времени, чем сейчас

Sergey
08.06.2017
16:54:22
>429 members >скажу по секрету

Dmitry
08.06.2017
16:54:35
that's the joke

Dmitry
08.06.2017
16:56:19
Мейнтейнер pillow не рекомендовал :)
# -*- coding: utf-8 -*- from __future__ import ( absolute_import, division, print_function, unicode_literals ) import requests from PIL import Image, ImageFont, ImageDraw size = (800, 300) color = '#C1392B' font_color = '#E1E0DD' def create_image(): return Image.new(mode='RGB', size=size, color=color) def load_font(font_size): return ImageFont.truetype('CaviarDreams.ttf', size=font_size) def draw_text(im, pos, text, font_size=50): draw = ImageDraw.Draw(im) draw.text(pos, text, font=load_font(font_size=font_size)) def hello_world(): image = create_image() draw_text(image, (50, 50), 'Hello world!', 50) draw_text(image, (50, 100), 'Привет, мир!', 50) image.save('hello_world.png', format='PNG') if __name__ == '__main__': hello_world()



Dmitry
08.06.2017
16:57:06
ну и нафига, ёпрст :) ты бы лучше в существующей репе позакрывал ишью

Google
Dmitry
08.06.2017
16:57:18
Я взял тот шрифт из проги:)

Переписать на PIL ?)

Dmitry
08.06.2017
16:57:44
зачем о_0 оно ж работает

на pillow*

Dmitry
08.06.2017
16:58:03
Просто для wand надо libmagickwand-dev ставить

Dmitry
08.06.2017
16:59:02
Просто для wand надо libmagickwand-dev ставить
а под виндой то вообще - ImageMagick прошлой версии только

Dmitry
08.06.2017
16:59:49
Короче если есть энергия дизайн лучше прокачать

а менять одну либу на другую смысла мало, учитывая что результат будет один

(я так мыслю)

Nikolay
08.06.2017
17:01:16
Он приятнее

Olya
08.06.2017
17:02:56
А расскажи по секрету, зачем больше докладов. Вроде все нормально общаются в текущем режиме :)

Dmitry
08.06.2017
17:03:27
потом расскажу. :)

потизерил и хватит

есичо, у нас есть уютный твиттер, куда мы кладём фоточки, цитаты и анонсы :) фолловьте https://twitter.com/spbpython

Dmitry
08.06.2017
21:27:15
@nazarov_tech а можно права на пуш веток и оформление пулл-реквестов?)

(я про https://github.com/spbpython/kdpv_generator )

Dmitry
08.06.2017
21:28:37
а нету? о_0

@delimitry @nonamenix гляньте кто будет у машины

Dmitry
08.06.2017
21:29:02
неа, не могу пушнуть

Google
Dmitry
08.06.2017
21:29:28
я чуть-чуть отрефакторил код:)

теперь чуть-проще будет добавить всякие штуки типа "закруглостей" и тд

(наверно проще)

Vanya
08.06.2017
21:32:19
http://get.nimses.com/Il9L/KgnEnMjVOD

Dmitry
08.06.2017
21:37:18
Ладно, форкнул и сделал PR https://github.com/spbpython/kdpv_generator/pull/4 Основное изменение: теперь вся картинка описывается в yaml файле и генератор генерирует из нее. Зато сразу есть поддержка локальных/удаленных картинок:) Ну и переписал на Pillow :) И легко можно реализовать остальные формы рисования (сейчас линия/квадрат/текст/картинка)

(а еще так прикольно явно указывать типы в питоне ?)

Sergey
08.06.2017
21:57:57
Ну и f-строки можно было сразу засунуть туда х)



Dmitry
08.06.2017
22:03:00
либы для работы с изображениями pillow их использует wand наверняка их тоже тянет, либо они и так есть:)

Sergey
08.06.2017
22:05:45
Если честно, не вижу вообще сильно смысла в этом файлике. Далеко не все с убунтой живут чтобы xargs apt-get install -y делать. inb4: кто не живет с убунтой может и руками сделать

Проще ссылку на install гайд дать в документации того же PIL или wand

Но за упорство однозначно респект :D

Dmitry
08.06.2017
22:07:50
ну доку всегда можно поправить:)

может кто подскажет хорошее сравнение изменений между 2.7 и 3+ ?

Sergey
08.06.2017
22:12:12
Dockerfile!
Ну началось

может кто подскажет хорошее сравнение изменений между 2.7 и 3+ ?
(устаревший и не очень актуальный линк here: http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html)

Dmitry
08.06.2017
22:15:32
это я уже прочитал:)

Sergey
08.06.2017
22:15:35
А еще можно, наверное, в доку future того же глянуть

Google
Eugene
08.06.2017
22:24:46
Я когда-то вот это читал, мне понравилось http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html Но тоже устарело.

Sergey
08.06.2017
22:29:27
самый надежный источник https://docs.python.org/3/whatsnew/index.html

Eugene
08.06.2017
22:30:09
Не удобный формат, лучше таблицами и сравнениями.

Когда надо посмотреть "что нового" да, но вот сравнивать 2 и 3 не удобно.

Nikolay
08.06.2017
22:31:36
Вкратце - второй устарел и не нужен

Eugene
08.06.2017
22:32:39
Вкратце - второй устарел и не нужен
Кому-то может надо проект портировать. 2to3 - это боль.

Dmitry
08.06.2017
22:36:22
А слайдики збс, сделаны с юморком:)

Eugene
08.06.2017
22:42:08


Andrey
08.06.2017
22:47:00
второй вариант еще и сообщения об ошибках ломает. too few values to unpack явно хуже function takes n arguments

Sergey
08.06.2017
22:48:45
Небось дальше где-то советуют ловить самому и бросать тоже самому Зато рефакторинг :)

Denis
09.06.2017
08:12:05
Я не понял одного, а в чём плюс то?

второй вариант еще и сообщения об ошибках ломает. too few values to unpack явно хуже function takes n arguments
Это как совет забивать гвозди другой деревянной стороной молотка, дабы не повредить металлический боёк

Ilia
09.06.2017
08:28:06
А почему все сразу решили что тут пример сверху вниз надо читать, может быть наоборот просто

Например, если слайд рисовали в южном полушарии

Denis
09.06.2017
08:38:05
А почему все сразу решили что тут пример сверху вниз надо читать, может быть наоборот просто
Вот я тоже подумал так. Хотя вообще видел конструкцию как во втором куске кода разве что в каком-то старом совсем продукте, и то там перехимичили с динамикой

Sergey
09.06.2017
08:45:38
Судя по предыдущим слайдам, всё-таки, читать надо сверху вниз

Eugene
09.06.2017
08:47:19
Зато там дальше про keyword only аргументы, и там я уже согласен.

Denis
09.06.2017
08:47:25
Судя по предыдущим слайдам, всё-таки, читать надо сверху вниз
Тогда я очень хаинтересован, в чём же смысл

Google
Denis
09.06.2017
08:47:59
Зато там дальше про keyword only аргументы, и там я уже согласен.
Явное лучше чем неявное, но это может быть уже паранойей )

Michael
09.06.2017
09:01:20
size: tuple - бесполезен по факту, надо указать Tuple[int, int]

Denis
09.06.2017
09:06:04
Вообще должно уже и так спасти от 90% факапов, если рассматривать строгую типизацию как спасение от дурака

Michael
09.06.2017
09:06:24
неа

Denis
09.06.2017
09:06:50
Ну я про случаи, когда вместо массива вернётся инстанс или какой-нибудь буль :)

Michael
09.06.2017
09:06:54
тут проблема в майпай

Dmitry
09.06.2017
09:07:23
size: tuple - бесполезен по факту, надо указать Tuple[int, int]
from typing import Tuple def my_fn(size: Tuple[int, int]): -> Tuple[int, int] ... так?

Denis
09.06.2017
09:07:52
тут проблема в майпай
А его уже стали IDE-шки поддерживать, кстати?

Eugene
09.06.2017
09:09:07
MyPy или typing?

Denis
09.06.2017
09:09:41
Тайпинг третьего питона то вообще поддерживают, как я понимаю, а вот mypy..

Michael
09.06.2017
09:09:56
Как вариант, это нормально хавает. Но обычно заводят доп алиас на тип SizeType = Tuple[int, int] что то вроде этого /

MyPy или typing?
тьфу меня я про тайпинг

Denis
09.06.2017
09:12:17
Хм, отстал я от жизни слегка, читнул. Mypy получается тот же тайпинг третьего питона. А в чём разница?

Dmitry
09.06.2017
09:12:32
Pycharm вроде нормально поддерживает тайпинг. Во 2м питоне я обычно юзаю для этого докстринги def my_fn(x, y): """ :type x: int :type y: int :rtype: int """

Страница 424 из 785