
Stephen
11.07.2019
09:29:11

Дмитрий
11.07.2019
09:29:14
учитывая что бизнес часто сам не особо в курсе -вопрос открытый

Tishka17
11.07.2019
09:29:37
Ну вот у меня была задаача - завести технчиеский URL для раздачи метрик приложения. Само приложение ни капли не web. Брать для этого джангу - ну вообще не хочется

Google

Andrey
11.07.2019
09:29:39

Tishka17
11.07.2019
09:29:45
может быть даже фласк перебор

Дмитрий
11.07.2019
09:30:17

Stephen
11.07.2019
09:30:20
А Джанго переходишь когда в MUVC от MVC - все, кастом квери, кастом поведение и тп. Только асинхрон единственное ограничение

Tishka17
11.07.2019
09:30:39

Andrey
11.07.2019
09:30:42

Владимир
11.07.2019
09:31:49

Tishka17
11.07.2019
09:32:30

Владимир
11.07.2019
09:32:39

Bogdan (SirEdvin)
11.07.2019
09:32:40

Tishka17
11.07.2019
09:32:45

Владимир
11.07.2019
09:33:10

Google

Bogdan (SirEdvin)
11.07.2019
09:33:30
Ну, django-rest-framework появился как бы не просто так)

Владимир
11.07.2019
09:33:54

Stephen
11.07.2019
09:34:09
Flask-JSON-API либа есть, сейчас прямо пишу

Bogdan (SirEdvin)
11.07.2019
09:34:16
Нет, но как бы django же тоже не спасает от того, что нужно выбирать либу
Когда-то спасала, а теперь уже нет

Владимир
11.07.2019
09:34:50
Кто же с этим спорит! Выбирать постоянно приходится

Tishka17
11.07.2019
09:35:11

Андрей
11.07.2019
09:35:50

Bogdan (SirEdvin)
11.07.2019
09:36:38

Владимир
11.07.2019
09:37:12

Stephen
11.07.2019
09:37:38
Глянул в пипенв, тут flask-restful тоже есть, наверное тот джсон зачем-то тоже подтянули

Andrey
11.07.2019
09:38:45

Stephen
11.07.2019
09:38:50
Flask-restful, flask-rest-jsonapi рядом две библиотеки, сиди гадай что где

Владимир
11.07.2019
09:43:18

Дмитрий
11.07.2019
09:44:12

Stephen
11.07.2019
09:44:51
Уверен, что у каждой из них есть свои плюсы-минксы. Раз одна не задавила другую
DRF порешала аналоги

Дмитрий
11.07.2019
09:45:13
ну так и здорово же, выбор
смотришь какие плюсы тебе важнее, какие минусы менее критичны

DeepHill
11.07.2019
09:45:36

Google

Дмитрий
11.07.2019
09:45:45
справедливо. но мы же не такие?

DeepHill
11.07.2019
09:46:01
Так мы и не жалуемся)

Stephen
11.07.2019
09:50:37
Лучше одно крутое и полное решение, как по мне

Дмитрий
11.07.2019
09:51:04

Владимир
11.07.2019
09:51:41

DeepHill
11.07.2019
09:56:19

Andrey
11.07.2019
09:56:52
Usb-c похоже станет таким

DeepHill
11.07.2019
09:57:18

Дмитрий
11.07.2019
09:57:21
Это не касается яблочников_))
причем тут яблоко? поддержка десятка разьемов и умение выбрать из трех либ не сопоставимы по затратам от слова совсем
не говоря о том, что это в целом разные вещи, требующие разного всего, и сравнивать их некорретно

Stephen
11.07.2019
10:08:03
Вот только таких не существует
Всё относительно. Когда вообще нет библиотек, фласковские обгрызки выглядят полным решением. Но по сравнению с фласковскими обгрызками DRF выглядит полным решением и т.д. Нам всегда будет не хватать.

Tishka17
11.07.2019
10:10:54
когда делаешь что-то совершенно левое, DRF выглядит каком-то монстром

DeepHill
11.07.2019
10:18:33

Tishka17
11.07.2019
10:19:43
ну доку читать - ладно. Скорее ты просто выкидываешь почти все готовые компоненты

BlackAndOrange
11.07.2019
10:32:14
Господа, у кого-нибудь есть идеи, как заставить этот сниппет заработать в Python 3.6?
https://pastebin.com/uRpumGiB
Очевидно, проблема в этом баге, который пофиксили в PEP 560, но опции перейти на 3.7 у меня сейчас нету

Andrew
11.07.2019
10:39:29
#работа #удаленка
На проект требуется python-разработчик
Нужно написать бэк для браузерной игры покер. Уже есть готовое решение с гитхаба, нужно его переделать под наши требования, а именно дописать простое АПИ и соединить с нашим фронтом
Стек: Python, Flask, redis, MongoDB или любая удобная вам СУБД
Оплата : договорная за задачу, наш бюджет до 100 тысяч рублей

Mikhail
11.07.2019
10:51:00
Кто-нибудь подвергал изменению объект dataframe pandas
sql-запросом внутри python3?

Tishka17
11.07.2019
10:52:43
Что за баг не открывается, сорри

Google

BlackAndOrange
11.07.2019
10:52:51

Tishka17
11.07.2019
10:53:06
kwarg при наследовании
И init subclass метод

Daniil
11.07.2019
10:53:32
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/typing.py", line 682, in inner
return func(*args, **kwds)
File "/usr/lib/python3.6/typing.py", line 1143, in __getitem__
orig_bases=self.__orig_bases__)
File "/usr/lib/python3.6/typing.py", line 978, in __new__
self = super().__new__(cls, name, bases, namespace, _root=True)
File "/usr/lib/python3.6/typing.py", line 137, in __new__
return super().__new__(cls, name, bases, namespace)
File "/usr/lib/python3.6/abc.py", line 133, in __new__
cls = super().__new__(mcls, name, bases, namespace, **kwargs)
TypeError: __init_subclass__() missing 1 required positional argument: 'kw_only_arg'
там такой трэйс на 3.6

BlackAndOrange
11.07.2019
10:53:56
На основе него в реальном коде производится некая дополнительная работа
То же самое можно было бы достичь зафигачив метакласс

Deys
11.07.2019
10:54:27
Лучше одно крутое и полное решение, как по мне
Если интересно я пробовал аналог делать, пока есть сериалайзеры остальное допиливать планирую. Сам использую на фласке и аиохттп активно(сериалайзеры тащят)
https://github.com/nxexox/python-rest-framework

Tishka17
11.07.2019
10:55:30
Хм. Я с настороженностью отношусь к метаклассам в реальном коде. Ты уверен, что нельзя это заменить на композицию?

BlackAndOrange
11.07.2019
10:56:45
В реальности я с помощью этого кода составляю список подклассов
Это можно сделать вручную, но тогда это придётся делать в ещё одном месте

Nikolay
11.07.2019
10:56:50

Tishka17
11.07.2019
10:57:14
Список подклассов?

Bogdan (SirEdvin)
11.07.2019
10:57:18

Tishka17
11.07.2019
10:57:21
Зачем такое может понадобиться?

Nikolay
11.07.2019
10:58:07

Vasya
11.07.2019
10:58:14

Tishka17
11.07.2019
10:58:16

BlackAndOrange
11.07.2019
10:58:17
Зачем такое может понадобиться?
Вкратце: есть события, есть обработчики событий. Обработчик событий наследуется от базового обработчика с дополнительным аргументом в виде типа события, который он может обрабатывать. На основе этого составляется таблица роутинга.

Bogdan (SirEdvin)
11.07.2019
10:58:50
Зачем такое может понадобиться?
например, что бы выбирать стратегию поведения. В базовом классе абстрактная логика, в наследниках реализация. И вместо регистрации ручками, автоматическая

BlackAndOrange
11.07.2019
10:58:51
Этот уровень магичности я считаю допустимым для реального кода
Я ж не AST переписываю, а всего лишь хуки добавляю

Google

Nikolay
11.07.2019
10:58:52

BlackAndOrange
11.07.2019
10:59:04

Tishka17
11.07.2019
10:59:41

BlackAndOrange
11.07.2019
10:59:50
Автоматический выбор реализации

Tishka17
11.07.2019
10:59:55
Автоматический выбор реализации делается с помощью паттерна стратегия

BlackAndOrange
11.07.2019
11:00:20
Есть разные типы обработчиков
Условно, у нас происходит два типа событий, на каждое из них свой обработчик
Соответственно, обработчик — генерик по типу события

Bogdan (SirEdvin)
11.07.2019
11:00:33