Size: a a a

2021 October 25

Б

Боброний in PiterPy Meetup
Тут получается бага в поетри всё же: extra_requires должны быть в приоритете
источник

e

esp in PiterPy Meetup
мне кажется, у sqlalchemy кривой конфиг. в extras не должно быть того, что уже есть в install_requires
источник

Б

Боброний in PiterPy Meetup
Почему нет? Где об этом сказано?
источник

e

esp in PiterPy Meetup
это как минимум избыточно и не логично. если в install указана одна версия, а в extras другая, какую надо ставить в итоге?
источник

Б

Боброний in PiterPy Meetup
Из extras же
источник

Б

Боброний in PiterPy Meetup
Так делает pip
источник

e

esp in PiterPy Meetup
не уверен. а если базовый код использует то, что в install и сломается с тем, что в extras?
источник

Б

Боброний in PiterPy Meetup
Ответственность автора
источник

Б

Боброний in PiterPy Meetup
Код от чего угодно сломаться может
источник

e

esp in PiterPy Meetup
это да, но странно же прописывать в  extras то же самое, что в install? install ставится всегда, а extras по требованию. нафига в extras дублировать то, что в install? я бы запретил или как минимум бы кидал warning на это.
источник

Б

Боброний in PiterPy Meetup
Да не, не странно. Вполне себе норм юзкейс, когда нужно две несовместимые между собой версии либы юзать, например, при этом одна уже была в проекте, и не хочется её убирать чтобы не ломать обратную совместимость
источник

Б

Боброний in PiterPy Meetup
В случае алхимии, там как я понял, гринлет был опционален раньше, а сейчас ставят по-умолчанию на совместимых/нужных платформах

Но если убрать extra, куча людей будет в недоумении от того что оно перестало работать
источник
2021 October 27

e

esp in PiterPy Meetup
Можно в Poetry в pyproject.toml не прописывать url репозитория в tool.poetry.source?

Я не понимаю, зачем там прописывать url если url указывается через config?

Попробовал удалить из pyproject.toml, получаю RuntimeError Unsupported source specified.

Мне нужно этот URL передавать в завивимости от окружения, в чём прикол его хардкодить то? При том, что он уже задаётся через config repositories.repo_name

В чём смысл хардкодить урл и его дублировать?
источник

e

esp in PiterPy Meetup
Почему вот этого не достаточно?
https://python-poetry.org/docs/repositories/#adding-a-repository

poetry config repositories.repo_name https://my-repo

[[tool.poetry.source]]
name = "repo_name"
secondary = true
?
источник

e

esp in PiterPy Meetup
Не я один недоумеваю по этому поводу
https://github.com/python-poetry/poetry/issues/1632#issuecomment-609425148
источник

BK

Bogdan Kalashnikov in PiterPy Meetup
Господа, а никто не сталкивался, что тесты джанги 10 раз импортируют urls.py и что из него по цепочке тянется? Вылезло на питоне3.10. Из-за это пидантик начинает сыпать своими
duplicate validator function
. При чем локально не воспроизводится, только в CI с теми же пакетами и питоном. Убунта только другая там...
источник

Б

Боброний in PiterPy Meetup
Просто импорты не могут такую ошибку вызвать, модуль должен быть перезагружен
источник

Б

Боброний in PiterPy Meetup
Проблема воспроизводимости в CI решается контейнеризацией
источник

BK

Bogdan Kalashnikov in PiterPy Meetup
Ну вот я понимаю что по какой-то причине они выгружаются из sys. modules. Сейчас воткнул принтов, вижу что адрес памяти у модуля меняется все время. Вопрос что где и зачем его выгружает. Или еще мб он молча не может инициализироваться.
источник
2021 October 28

e

esp in PiterPy Meetup
Как же всё таки у меня бомбит от этого. Такая кривизна и всем пофиг.
Как можно было так сделать, так спроектировать систему? Вы же не легаси пилите, что мешает продумать систему чуть более тщательно?

Как вообще можно было родить такую идею, что URL, который задаётся через конфиг - это только для publish, а то, что хардкодится в pyproject.toml - это для install?! При том, что креды, которые задаются для этого урла применяются как к publish так и к install. Где в таком решении вообще хоть капля логики? Что они курили?

Из-за этого бреда пришлось делать костыль в виде экспорта зависимостей в requirements.txt и при развертывании ставить всё через него и pip, выпилив poetry вообще оттуда. +1 головная боль по обновлению этого requirements.txt каждый раз при обновлении зависимостей.
источник