

Zart
17.12.2016
05:51:45
м... для конечного юзера работа с пирамидой происходит в две фазы
1) создаем Configurator, после чего вызываем его методы чтобы описать веб-приложение - регистрируем роуты, вьюшки, рендереры, полиси, дополнительные директивы, вот это всё
2) получаем от конфигуратора всги приложение и скармливаем его серверу/адаптеру и го
при этом конфигуратор можно конфигурить хуевой тучей способов
1) императивно - вызывать методы на нем напрямую
2) декораторами, наподобие фласка - запускаем scan(), тот находит декорированные методы и прописывает их
3) декларативно - zcml или аналогичные способы, которые файликами описывают набор всей фигни
все эти способы можно применять и раздельно и вместе
в коробке идут роутер, который умеет искать роуты по их списку и траверсировать иерархию, несколько простых рендереров, пачка готовых полиси, реквест/респонс объекты (подклассы от вебобовской версии)
при этом все эти вещи регистрируются в регистри и могут быть взаимозаменяемы. если хотеть, можно регать реквест/респонс объекты и вьюшки джанги, например 8)
ну и в итоге получаем обычное мвц
т.е. прилетает реквест через всги, оборачивается в реквест объект, пропускается через мидлвари в лице твинов, потом разбирается списком роутов, находится нужная вьюшка, вызывается, генерит респонс или левый объект, опционально прогоняется через рендерер, который может обернуть тот объект (дикт в 99% случаев) в шаблон и отдать респонс

Google

Zart
17.12.2016
05:59:49
джанги и фласки в этом плане практически не отличаются - тоже оборачивают входящий реквест в объект, прогоняют через список роутов, вызывают вьюшку, возвращают респонс объект

Amaro
17.12.2016
06:21:21
Ок. ССпасибо. Видимо, я упорно считаю, что пирамида больше, чем кажется. Пойду почитаю ченть.

Zart
17.12.2016
06:24:58
половина её исходников - это конфигуратор, который делает кучу работы еще до запуска
при этом во время собсно работы сконфигуренного приложения - это всё уже откидывается

Aidar
17.12.2016
06:58:58
Дайте годную книгу(я плюсовик)

Igor
17.12.2016
07:00:37
тогда я бы рекомендовал не лутца, а http://www.ozon.ru/context/detail/id/135305378/
(а я хотел как раз лутца "программирование на пайтон" посоветовать)

pride
17.12.2016
07:05:28
Народ, тут Zart высказал мнение что configparser говно, для хранения конфигов. Что есть из неговна?)
нужно:
- само собой отдельный файл конфигурации
- подразделы
- возможность менять как из программы так и вручную без проблем
пока у меня CP с этим справляется "на ура", но хочется быть небыдлом)


Igor
17.12.2016
07:10:03
самый простой вариант - ини формат. из коробки обрабатывается конфигпарсером, либо рисуется в пару-тройку строк кода
один из самых простых вариантов. позволяет комментарии. из минусов - тонна подразновидностей с разной реализацией вложенностей и типов
xml - тоже есть в коробке, предоставляет типы, не очень сложен в коде, но сильно тяжеловесен в рантайме изза парсера
json - в коробке. весьма прост и кроссязычен. убогий набор типов и невозможность комментирования
не в коробке:
yaml - удобочитаемый формат, с кучей фишек типа вложенностей, референсов, типов. тащит за собой тяжелый парсер, у которого почти нет альтернативных реализаций
toml - был придуман как промежуточный вариант между жсон и ямл. более легковесен и прост чем ямл, но сравнительно малоизвестен и малораспространён
(slightly related)

pride
17.12.2016
07:11:32
останусь, пожалуй, на конфигпарсере...

Aidar
17.12.2016
07:11:51
Блин а в епабе ее нет?

Igor
17.12.2016
07:12:28
какой епаб, это ж техлитература о_О

Google

Igor
17.12.2016
07:13:00
да здравствует хуевый OCR и дебильная разметка PDF с огроменными полями

Aidar
17.12.2016
07:15:25
Да PDF:
1) весит дохрена
2) на телефоне читать неоч
Пользуюсь гп книгами просто

Скрудж
17.12.2016
07:17:36

Aidar
17.12.2016
07:17:59
Да в гп книги больше 100мб не закачаешь

Igor
17.12.2016
07:29:24
гп?

Zart
17.12.2016
08:06:11
говно он в том, что апи неудобный, и формат оно парсить нормально не умеет
плюс раундтрипы не поддерживает

Igor
17.12.2016
08:08:01
я в курсе, да
и часто ты видишь книжки, подобные Лутцевской и прочим oreillyшным, в epub'е?
или в fb2. или в html. ну ты понял.

Zart
17.12.2016
08:08:40
ты спроси читаю ли я эту макулатуру вообще
питонодоки я ищу либо в chm, либо на сайтах
а вот спецификации всяких апи и прочего предпочту в пдф

Igor
17.12.2016
08:09:38
так дело не в том, годен епаб или не годен, а в том, насколько часто он встречается по факту ;)
а встречается он охуенно редко, как по мне. но я могу ошибаться
кстати
codewars.com - охуенно злая штука
чувствую себя еще большим говном, чем после среднестатистического общения с крутыми чуваками в этом чате

Zart
17.12.2016
08:11:24
м
пример какойнить можно?

Google

Zart
17.12.2016
08:11:56
мне влом регаться на стопиццотом сайте

Igor
17.12.2016
08:12:01
да пожалуйста
https://www.codewars.com/kata/513e08acc600c94f01000001/train/python
написать конвертер RGB в hex

Aidar
17.12.2016
08:12:42

Igor
17.12.2016
08:12:57
:O

Aidar
17.12.2016
08:13:16
Трлькр их скачать не часто на халяву можно потомучто сливают почему-то один пдф

Igor
17.12.2016
08:13:23
а, ну вот %)
(я тоже из этих, из нищебродов)
много прикольных задачек, я приятно удивился

Zart
17.12.2016
08:16:17
def rgb(r, g, b):
return '%02X%02X%02X' % tuple(max(0, min(x, 255)) for x in (r, g, b))
я правда не почитал задачку, поэтому не с первой попытки прошло %)

Aidar
17.12.2016
08:17:29
Это случайно не эта книга?

Igor
17.12.2016
08:21:28

b0g3r
17.12.2016
08:24:22

Amaro
17.12.2016
08:31:28

Aidar
17.12.2016
08:40:14
Англ

Omni
17.12.2016
08:45:46
Я там больше JS и Си тренирую, ибо на питоне многие вещи решаются быстро. Но и для питона интересные вещи встречаются.

pride
17.12.2016
10:12:25
народ, а можно как-то проще сделать? туплю чёт
words_arr = ["a","b","c"]
message = "coola"
for x in words_arr:
if not message.find(x):
print x

Google

b0g3r
17.12.2016
10:12:52
if x in message:
или не найдено надо
тогда
if x not in message

Admin
ERROR: S client not available

pride
17.12.2016
10:13:22
не, нужно чтобы искал подстроку по списку в message
и по первому совпадению делал чет

Zart
17.12.2016
10:14:06
тебе правильно написали

pride
17.12.2016
10:14:39
а, то есть от перебора for'ом не избавиться, я про это)

Zart
17.12.2016
10:15:11
filter(message.__contains__, words_arr) если надо получить список слов, содержащихся в

pride
17.12.2016
10:15:32
о
спасибо
гениально)))

Denis
17.12.2016
10:55:09
Товарищи, как определить, является ли символ эмодзи?

Zart
17.12.2016
10:58:36
примерно никак. либо хранить список
unicodedata.category показывает ерунду на них
либо брать cldr, возможно
http://unicode.org/emoji/charts/ нормативная дока в тут

Pavel
17.12.2016
11:15:18
К вершинам мастерства или программирование на python?

Artem
17.12.2016
11:18:07

Pavel
17.12.2016
11:18:22
Именно

Google

Artem
17.12.2016
11:19:16
Именно
она для уже уже имеющих опыт программирования на python. если тебе существующие навыки программирования улучшить - хорошая книжка.
если начать - не подойдёт.
а
подожди
а программирование на python это из серии из двух книжек "learning python" и "programming python"?

Jim
17.12.2016
11:20:39
в начале все-таки Лутца стоит почитать. если что-то не поймешь - смотри fluent python

Pavel
17.12.2016
11:21:03
Вторая серия , которая по либам больше

Jim
17.12.2016
11:21:19
программирование 2 тома

Pavel
17.12.2016
11:21:31

Rita
17.12.2016
12:07:16
вы знаете закон де Моргана?
как его на питоне сделать?

Denis
17.12.2016
12:09:20
Что значит сделать закон?

Igor
17.12.2016
12:09:32
википедия знает
> не (a и b) = (не a) или (не b)
> не (a или b) = (не a) и (не b)
не вижу проблем реализовать проверку на соблюдение этих правил в питоне

Amaro
17.12.2016
12:11:35
if True:

Rita
17.12.2016
12:25:44
сколько вам лет?
Эта группа больше не существует