Size: a a a

2019 October 09

AG

Alexander Gorokhov in rannts
👍
источник

P

Pryanik in rannts
Sergey Z
А вы говорите бот нужен
Ну бот нужен чтобы не отвлекать его на приветствие
А так понятно что он полностью заменить не сможет
источник

ЕЧ

Егор Чернышов in rannts
Как это не может? Не верите, что это следующая ступень эволюции?)
источник

ЕЧ

Егор Чернышов in rannts
[Тут должен быть стикер хватающегося за сердце Курцвейла]
источник

P

Pryanik in rannts
Егор Чернышов
Как это не может? Не верите, что это следующая ступень эволюции?)
Ну точно не скоро
Или вряд ли у кого-то дойдут руки до такого бота
источник

SZ

Sergey Z in rannts
@cykooz Кирилл, подскажи пожалуйста про
zope.interface

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

хочу теперь снова вернуть им взаимозаменяемость и ограничить интерфейс, читаю про zope.interface и не вижу никакого параметра или возможности заставить код падать если интерфейс реализован не полностью или что-то не совпадает по сигнатурам функций.

pycharm ругается конечно, но мне надо чтоб код совсем не запускался.

может мне не zope.interface нужен а что-то другое
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Sergey Z
@cykooz Кирилл, подскажи пожалуйста про
zope.interface

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

хочу теперь снова вернуть им взаимозаменяемость и ограничить интерфейс, читаю про zope.interface и не вижу никакого параметра или возможности заставить код падать если интерфейс реализован не полностью или что-то не совпадает по сигнатурам функций.

pycharm ругается конечно, но мне надо чтоб код совсем не запускался.

может мне не zope.interface нужен а что-то другое
Есть несколько возможностей.
- Можно заставить разаробов явно декларировать, что класс имплементит интерфейс. Это конечно не обязывает реально его имплементить - это примерно того же уровня что и тайп-хинтинг. Но хотя бы заставит разработчиков задуматься и посмотреть на сам интерфейс.
Что бы заставить декларировать поддержку интерфейса, надо в том месте где используется класс или экземпляр класса, добавить проверку что есть требуемая декларация:
assert IMyUtility.implementedBy(klass)
assert IMyUtility.providedBy(instance)

- В дополнение к первому варианту, или как самостоятельное решение, можно явно проверять что класс или объект имеет все свойста и методы с правильной сигнатурой, которые описанны в интерфейсе:
from zope.interface import verify
assert verify.verifyClass(IMyUtility, klass)
assert verify.verifyObject(IMyUtility, instance)
Если добавить туда аргумент tentative=True, то можно не обязывать разработчиков декларировать поддержку интерфейса (т.е. не будет делаться проверка, через вызов методов, которые я в первом пункте привёл)

Все эти проверки можно вставить либо в основной код, либо в некий набор базовых тестов, которые должны проверять твои "классы".
источник

SZ

Sergey Z in rannts
Kirill (Cykooz) Kuzminykh
Есть несколько возможностей.
- Можно заставить разаробов явно декларировать, что класс имплементит интерфейс. Это конечно не обязывает реально его имплементить - это примерно того же уровня что и тайп-хинтинг. Но хотя бы заставит разработчиков задуматься и посмотреть на сам интерфейс.
Что бы заставить декларировать поддержку интерфейса, надо в том месте где используется класс или экземпляр класса, добавить проверку что есть требуемая декларация:
assert IMyUtility.implementedBy(klass)
assert IMyUtility.providedBy(instance)

- В дополнение к первому варианту, или как самостоятельное решение, можно явно проверять что класс или объект имеет все свойста и методы с правильной сигнатурой, которые описанны в интерфейсе:
from zope.interface import verify
assert verify.verifyClass(IMyUtility, klass)
assert verify.verifyObject(IMyUtility, instance)
Если добавить туда аргумент tentative=True, то можно не обязывать разработчиков декларировать поддержку интерфейса (т.е. не будет делаться проверка, через вызов методов, которые я в первом пункте привёл)

Все эти проверки можно вставить либо в основной код, либо в некий набор базовых тестов, которые должны проверять твои "классы".
спасибо, второй вариант идеальный, то что нужно
источник

💭П

💭 Руслан Прохоров in rannts
Я прям даже не знаю.... ну ладно, попробуем )
источник

dg

den gsnak in rannts
#whois Добрый вечер. По просьбе бота представлюсь - меня зовут Денис и я... я решил на старости лет научиться немного программировать. я молча постою посмотрю, как всё тут происходит, мешать не буду :)
источник

RB

Roman Bolkhovitin in rannts
Не бота, а исполняющего обязанности )))
Велкам )
источник

dg

den gsnak in rannts
а, да, по просьбе ИО уважаемого бота. :)
источник

💭П

💭 Руслан Прохоров in rannts
den gsnak
а, да, по просьбе ИО уважаемого бота. :)
Так то лучше )
источник

💭П

💭 Руслан Прохоров in rannts
den gsnak
#whois Добрый вечер. По просьбе бота представлюсь - меня зовут Денис и я... я решил на старости лет научиться немного программировать. я молча постою посмотрю, как всё тут происходит, мешать не буду :)
Вэлком!
Посмотри может поможет тебе: https://github.com/GnuriaN/Python-Roadmap
источник

dg

den gsnak in rannts
о! спасибо. я из разных источников это пытался собирать.
источник

💭П

💭 Руслан Прохоров in rannts
den gsnak
о! спасибо. я из разных источников это пытался собирать.
Надо было искать на GitHub, там много таких поделок ))))
источник

dg

den gsnak in rannts
сейчас пока у меня такая проблема - работа никак не связана с программированием - восновном поддержка,  сопровождение и мониторинг информационных систем. Поэтому не могу придумать задачу или проект, который я бы потихоньку делал и тренировался. на абстрактных примерах не так интересно. заставлять себя приходится.
источник

A🍊

Andrey 🍊 in rannts
Сделай бота для телеги
источник

💭П

💭 Руслан Прохоров in rannts
den gsnak
сейчас пока у меня такая проблема - работа никак не связана с программированием - восновном поддержка,  сопровождение и мониторинг информационных систем. Поэтому не могу придумать задачу или проект, который я бы потихоньку делал и тренировался. на абстрактных примерах не так интересно. заставлять себя приходится.
Вот тут @o_range тебе советует, а ты в него передавай данные о мониторенги и что-нибудь ещё )
источник

A🍊

Andrey 🍊 in rannts
Да, если есть возможность от систем стучаться в интернет, то отличный вариант, и полезно
источник