Size: a a a

2020 June 15

A🌚

Al 🌚l in rannts
Лошать Евгений
Здравввввствуйте.

Возникла необходимость запилить CI для своего пет-проекта.
Что выбрать?
Travis?
Azure норм
источник

A🌚

Al 🌚l in rannts
У нас один опенсорс проект крутится на azure, полёт нормальный
источник

AS

Artem Savinov in rannts
Alexander Zelenyak
И интеграция с кубом, в виде запуска стейджей в виде подов, просто гениальна.
в одном namespace?
источник

AZ

Alexander Zelenyak in rannts
Artem Savinov
в одном namespace?
Да. При том каждый пайплайн в своём.
источник

AS

Artem Savinov in rannts
норм
источник
2020 June 16

V

Vergil in rannts
Ребята - вопросик есть кто-нибудь знает такую компанию: Seldon? (НН).
источник

A🍊

Andrey 🍊 in rannts
Seldon?
источник

V

Vergil in rannts
да
источник

A🍊

Andrey 🍊 in rannts
Я слышал, что там зарплаты не платят. Правда, из третьих рук
источник

A🍊

Andrey 🍊 in rannts
Пообщайся с сотрудниками
источник

V

Vergil in rannts
Andrey 🍊
Я слышал, что там зарплаты не платят. Правда, из третьих рук
Я вот тоже читаю , я их и ищу....
источник

RB

Roman Bolkhovitin in rannts
Дамы и господа! Хочу странного.

Дано: проект, написанный с использованием очень старой версии mongoengine, при обновлении которого до актуальной версии начинают сыпаться ошибки типа: ReferenceError: weakly-referenced object no longer exists.

Даже понятно откуда они берутся: в проекте много методов которые вместо модели почему-то возвращают ссылку на отдельное поле, в этом поле есть weakref на инстанс, и когда функция или метод завершается, инстанс удаляется из памяти, и weakref в поле становится невалидным. Поэтому происходит вот такое:

>>> import mongoengine as me
>>>
>>> class A(me.Document):
...   l = me.ListField(defalut=list)
...
>>> def get_lst():
...   a = A(l=[{'a': 'b'}])
...   return a.l
...
>>> l = get_lst()
>>> type(l)
<class 'mongoengine.base.datastructures.BaseList'>
>>> l[0]['c'] = 'd'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/home/roman/projects/me_test/.venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 35, in wrapper
   self._mark_as_changed(key)
 File "/home/roman/projects/me_test/.venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 98, in _mark_as_changed
   if hasattr(self._instance, "_mark_as_changed"):
ReferenceError: weakly-referenced object no longer exists
>>> l
[{'a': 'b', 'c': 'd'}]
>>>


Я не придумал ничего лучше чем в этих богомерзких функциях типа приведенной в качестве примера get_lst() конвертировать типы монгоэнджина в обычные списки и дикты, но боюсь что пока все эти кейсы найду и поправлю, кукухой поеду.

Может вы знаете и посоветуете какие-нибудь воркэраунды, кроме "не обновляй монгоэнджин"?
источник

S

Serg in rannts
Vergil
да
У нас несколько ребят работают оттуда, говорят да были задержки ЗП из-за чего массовое бегство оттуда случилось.
Сейчас набрали гос. контрактов и выправили ситуацию с ЗП, и вот они набирают сейчас разрабов
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Roman Bolkhovitin
Дамы и господа! Хочу странного.

Дано: проект, написанный с использованием очень старой версии mongoengine, при обновлении которого до актуальной версии начинают сыпаться ошибки типа: ReferenceError: weakly-referenced object no longer exists.

Даже понятно откуда они берутся: в проекте много методов которые вместо модели почему-то возвращают ссылку на отдельное поле, в этом поле есть weakref на инстанс, и когда функция или метод завершается, инстанс удаляется из памяти, и weakref в поле становится невалидным. Поэтому происходит вот такое:

>>> import mongoengine as me
>>>
>>> class A(me.Document):
...   l = me.ListField(defalut=list)
...
>>> def get_lst():
...   a = A(l=[{'a': 'b'}])
...   return a.l
...
>>> l = get_lst()
>>> type(l)
<class 'mongoengine.base.datastructures.BaseList'>
>>> l[0]['c'] = 'd'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/home/roman/projects/me_test/.venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 35, in wrapper
   self._mark_as_changed(key)
 File "/home/roman/projects/me_test/.venv/lib/python3.7/site-packages/mongoengine/base/datastructures.py", line 98, in _mark_as_changed
   if hasattr(self._instance, "_mark_as_changed"):
ReferenceError: weakly-referenced object no longer exists
>>> l
[{'a': 'b', 'c': 'd'}]
>>>


Я не придумал ничего лучше чем в этих богомерзких функциях типа приведенной в качестве примера get_lst() конвертировать типы монгоэнджина в обычные списки и дикты, но боюсь что пока все эти кейсы найду и поправлю, кукухой поеду.

Может вы знаете и посоветуете какие-нибудь воркэраунды, кроме "не обновляй монгоэнджин"?
А какая версия была и на какую обновил?
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Не замечал что бы было у меня вот такое, хотя я и не пытался изменять мутабельный объект, который получил как поле модели, и при этом у меня не было где-то рядом живой модели.
Если и менял, то что бы потом сохранить модель.
источник

RB

Roman Bolkhovitin in rannts
Kirill (Cykooz) Kuzminykh
А какая версия была и на какую обновил?
там жуть
mongoengine==0.8.7 -> mongoengine==0.17.0
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Даа, старенькая версия
источник

KK

Kirill (Cykooz) Kuzm... in rannts
Оно у тебя очевидно при изменении объекта, пытается отметить в модели, что это поле изменилось. Что бы при вызове save() не все поля обновлять, а только изменённые.
источник

DV

Dmitry Viskov in rannts
источник

RB

Roman Bolkhovitin in rannts
Kirill (Cykooz) Kuzminykh
Оно у тебя очевидно при изменении объекта, пытается отметить в модели, что это поле изменилось. Что бы при вызове save() не все поля обновлять, а только изменённые.
Как раз это я тоже почти сразу понял, я не понял как бы сделать хитрый финт ушами и этот механизм обмануть. Вариант в лоб - приводить все к простым list и dict рабочий, но к сожалению очень трудоемкий, причем работа тупо для глаз и рук, что не очень вдохновляет на подвиг 😂😂
источник