Size: a a a

2020 May 27

DB

Dima Boger in PiterPy Meetup
В смысле я тоже всей душой люблю поетри и не люблю пипенв — но питончик выбор сделан и непонятно будут ли они этот выбор менять)
источник

DB

Dima Boger in PiterPy Meetup
источник

E

Eugene in PiterPy Meetup
что-то travis не отправляет статус в гитхаб, хотя триггерится и собирает то, что запушено. При этом от coveralls статус приходит, который триггерится из тревиса. фигня какая-то. проблемы с тревисом?
источник

E

Eugene in PiterPy Meetup
Here are the problem I see with pipenv being the official packaging tool:
 - It’s not a packaging tool.
 - It supports only applications development and not libraries.
 - It introduces yet another file format (Pipfile) while the new pyproject.toml is now standard.
 - Buggy dependency resolver.
 ...
 

вот хотя бы за это его можно закапывать. и ведь это просто так не пофиксишь, потому что это фундамент.
источник

E

Eugene in PiterPy Meetup
В Poetry есть возможность не дублировать зависимости, если мне нужно указать зависимость в extras и в dev?

В чем вообще проблема. Проблема в том, что readthedocs не поддерживает сборку документации через poetry. Новый pip умеет собирать из pyproject.toml, но не умеет из dev. Поэтому единственная возможность собрать документацию на rtd - это указать pip install .<extras>:
python:
 version: 3.6
 install:
   - method: pip
     path: .
     extra_requirements:
       - docs


Но у меня при сборке документации есть зависимости, которые я использую так же для тестов. И я не хочу дублировать зависимости в dev и не dev, которые я указываю как optional и использую в extras.

Можно как-то избежать дублирования в этом случае?
Или проще не делать dev, а сделать extras "tests", например?

Все проблемы, повторю, из-за того, что rtd не умеет работать с poetry, так бы я вообще не делал extras.

https://github.com/python-poetry/poetry/issues/754
https://github.com/readthedocs/readthedocs.org/issues/4912
источник

E

Eugene in PiterPy Meetup
наверное, проще показать на картинке о чем я
источник
2020 May 28

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Еще никогда пайчарм так не тормозил (смотреть до конца)
источник

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Перезапуск не помог
источник

АП

Алексей А́риксу Петр... in PiterPy Meetup
Alex 🌼 Karpinsky
Еще никогда пайчарм так не тормозил (смотреть до конца)
Какая-то инспекция ключей происходит? Это только с этим словарём?
источник

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Алексей А́риксу Петров
Какая-то инспекция ключей происходит? Это только с этим словарём?
Ага
источник

АП

Алексей А́риксу Петр... in PiterPy Meetup
Время очень большое, почти сетевой таймаут
источник

AK

Alex 🌼 Karpinsky in PiterPy Meetup
Алексей А́риксу Петров
Время очень большое, почти сетевой таймаут
Не, цпу 100% и время складывается от каждого символа
источник

А4

Андрей 42 in PiterPy Meetup
Ребята, подскажите, по умолчанию в sys.path ведь должен присутствовать /site-packages ?
источник
2020 May 30

AN

Absolute Nikola in PiterPy Meetup
Добрый день, хочу анотировать функцию которая возвращает json
def _make_request(self, method, url, **kwargs):
   # type: (str, str, **t.Dict[str, t.Any]) -> t.Union[t.List[t.Dict[sr, t.Any]], t.Dict[str, t.Any]]


Но когда возвращаю response.json() то выдается ошибка:  
Returning Any from function declared to return "Union[List[Dict[str, Any]], Dict[str, Any]]"

Разве Any не совпадает с любым типом?
Нормально ли здесь будет анотировать функцию так чтоб она возвращала Any?
источник

AO

Alexander Ovchinniko... in PiterPy Meetup
Eugene
349 votes, кто-то запилил минимальный плагин, а ребятам пофиг. зато мертворожденный pipenv впилили оперативно
скорее всего, сообществу питонистов уже нужно начинать засовывать в JetBrains морковку сзади за это... (если задачу решить нужно и пряник не работает, то есть и кнут)
источник

DB

Dima Boger in PiterPy Meetup
Absolute Nikola
Добрый день, хочу анотировать функцию которая возвращает json
def _make_request(self, method, url, **kwargs):
   # type: (str, str, **t.Dict[str, t.Any]) -> t.Union[t.List[t.Dict[sr, t.Any]], t.Dict[str, t.Any]]


Но когда возвращаю response.json() то выдается ошибка:  
Returning Any from function declared to return "Union[List[Dict[str, Any]], Dict[str, Any]]"

Разве Any не совпадает с любым типом?
Нормально ли здесь будет анотировать функцию так чтоб она возвращала Any?
А подскажи, это какая-то совсем общая функция? Из неё правда может вернуться список словарей?
источник

DB

Dima Boger in PiterPy Meetup
Чтобы это работало, нужно дополнительно сделать typing.cast, т.к. возврат более широкого типа из функции, которая ожидает возврат более узкого типа — это ошибка.
источник

DB

Dima Boger in PiterPy Meetup
В общем случае это должно спасти тебя от ошибки, когда в функции стоит -> int, а ты случайно возвращаешь Union[int, float]
источник

DB

Dima Boger in PiterPy Meetup
Но конкретно в этом случае я бы ещё подумал, может быть возвращать Any здесь будет честно. Может быть где-то дальше в пайплайне уже можно будет безопасно сказать, что это не Any, а конкретный объект, или дикт с конкретными полями, и там уже скастовать к нужному типу
источник

DB

Dima Boger in PiterPy Meetup
.json() не типизирован в том числе потому что средствами mypy нельзя выразить рекурсивный тип
JSON = Union[str, int, float, None, bool, List[JSON], Dict[str, JSON]]
источник