Pull to refresh

Comments 12

Вы же сюда пришли и за критикой в том числе, верно?

Предлагаю сильно поменять roadmap:
1. Понять зачем это вообще нужно.
Серьезно. И дело даже не в том, что это очередной фреймворк, который никому особо не нужен, т.к. ничего нового не несет. А не несет он по двум причинам: asyncio почти не используется; asyncio используется неправильно.
Почему почти не используется? Потому что вы в конфиге размещаетесь за асинхронным nginx'ом и за асинхронным gunicorn'ом (worker_class=gevent).
Почему используется неправильно?
github.com/alikzao/tao1/blob/master/tao1/core/core.py#L34
github.com/alikzao/tao1/blob/master/tao1/core/core.py#L40
Две совершенно ненужных корутины. asyncio нужно использовать в тех местах, где может быть задержка — I/O, работа с сетью и прочее. Использовать ее в поиске по словарю — довольно странная затея.

2. Исходный код.
Он, мягко говоря, хромает. Куча закомментированных строк, полное несоответствие PEP8

assert sys.version >= '3.3', 'Please use Python 3.4 or higher.'

Просите версию 3.4, а сравниваете с 3.3. И кстати, данный метод сравнения версий может принести много сюрпризов, если версия питона изменится с 3.9 на 3.10.

github.com/alikzao/tao1/blob/master/tao1/core/utils_.py#L2
Везде в файлах встречаются подобные строки. Они не нужны, если у вас питоной третьей версии, потому что стандартная кодировка для Python3 — UTF-8.
Первая строчка (#!/usr/bin/env python) тоже не выглядит особо нужной. Вы же не делаете все файлы исполняемыми по умолчанию?

В общем, вы уж извините, но все это выглядит так, как будто вы делаете что-то, но не знаете что именно и зачем.
Дико плюсую. Часто на github вижу код, где буквально через строчку yield.
Конструктивная везде приветствуется.

>>> это очередной фреймворк, который никому особо не нужен, т.к. ничего нового не несет.
Им пользоваться никто не заставляет. И я написал что это не над asynio обертка, а над aiohttp, но мне для него захотелось модульную структуру к которой я привык.

В публикации я написал что мне понравился aiohttp, а те фреймворки которые для него существуют меня не до конца устраивают и они тоже в основном находятся на начальной стадии своего развития.

>>> asyncio почти не используется
Я не предлагаю использовать низкоуровневый asyncio, чтоб этого не делать был написан aiohttp.

По поводу # coding: utf-8 это старый атавизм, торопился и просто забыл его везде удалить.
Закомментированные строчки для альфа версии это нормально, тем более их не так и много.

Пилите-пилите, хе-хе :)

Из aiohttp то Flask пытаются сделать, то Django — и то и другое, думаю, зря. Разве что как эксперимент, чтобы поучиться писать.

Хотя сами попытки подтверждают, что библиотека получилась довольно удачная — можно крутить так и эдак.
Всё было идеально, пока внезапно шоткаты для реквеста не оказались в глобальном неймспейсе библиотеки ;)
Не хочется — не используй :)
На самом деле самый правильный способ — это явное использование ClientSession
Вот-вот на уровне модуля рядом с web шоткаты, которые ещё и не совсем правильно юзать ;)
В motor кстати, поддержку asyncio смержили, уже месяца два юзаю, полёт нормальный :)
Как так два месяца если этот мой Pull Request был закончен только месяц назад? 8-)
Ага, внимательно слежу за обновлениями, спасибо :)
Sign up to leave a comment.

Articles