Roman
Я пользователь. Я хочу составить представление о том, что в библиотеке есть. Я листаю функции, и тут я встречаю дубликат функции, которую я уже пролистал, но только для индексируемых контейнеров, с флагом, который не имеет к этому отношения, и странными гарантиями на порядок, необходимость в которых мне не очевидна. Хоба, я останавливаюсь и трачу силы, чтобы понять, что это было.
Именно поэтому я и сделал issue, а не PR, чтобы мы решили, что с этим делать. Моя функция лучше во всём, чем имеющаяся, за исключением того, что она требует Collection, а не Iterable (который всё равно преобразуется в list, а значит память тратится). Но поведение не совпадает, поэтому просто заменять - плохо. А как хорошо - я не знаю. Возможно, стоит сделать флаг new_implementation=False и вызывать по умолчанию старую и сделать этот флаг deprecated. Потом старую выпилить. Но это им решать.
Tigran
> флаг new_implementation=False Одна идея лучше другой просто.
Roman
> флаг new_implementation=False Одна идея лучше другой просто.
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html И это самая популярная либа для рисования графиков в Python. Ты мне ещё что-то будешь говорить про левые опциональные аргументы?
Roman
very_new_last_impl_v2_latest=False
Ну нет. Моя реализация идеальна, я гарантирую это. Больше реализаций не будет.
Tishka17
Ага, ага
Tishka17
Сто раз слышал
Roman
Как и многие старые либы Python, она — образец так себе дизайна.
Но почему-то большая часть разработчиков пользуются ей. Наверное, есть другие причины, кроме исторических.
Roman
Ага, ага
Это был сарказм. Извини, тег забыл поставить.
Roman
very_new_last_impl_v2_latest=False
Можно сделать implementation_version=0 и вопрос о будущих переписываниях снят.
Roman
Нет, давайте оставим фиговую реализацию навсегда, раз один раз что-то написали!
Roman
Кстати, вот в make обязательны табы. Автору предложили сделать пробелы. Он сказал, что да, наверное, так было бы лучше. "Но как я могу переделывать программу когда ею пользуется уже 2 десятка человек".
Tishka17
Как связана реализация и интерфейс?
Tishka17
Можно менять хоть каждый день, интерфейс не меняй
SHADRIN
вот как это происходит
А собственно зачем тебе в хроме логиниться
SHADRIN
А других вариантов капчу убить нет?
Sabir
я весь внимание
SHADRIN
Хахах
SHADRIN
Я тебе не подскажу это точно
Sabir
тогда увы( их нет
Sabir
капча гугла
SHADRIN
Мне кажется тут сам webdriver просто не рассчитан на авторизацию
Sabir
пока что я солидарен с этим мнением
Roman
Как связана реализация и интерфейс?
Ок, можно просто оставить version если ты про это.
Tishka17
Ок, можно просто оставить version если ты про это.
Я не читал, но зачем? Всегда просто последнюю бери и ладно
Roman
Я не читал, но зачем? Всегда просто последнюю бери и ладно
Дело в том, что я меняю и реализацию, и интерфейс, потому что старые - хуже. Но чтобы ни у кого ничего не поломалось сначала делаю version=0 и использую старую версию, чтобы люди успели оценить новую версию и переписать код.
Roman
Но это моё предложение. Может они просто предложат назвать функцию substrings2. Такое меня тоже устроит.
Tishka17
Либо сабмодуль с новым номером
Roman
Если меняешь интерфейс, лучше тогда уж в название выноси версию
Не хочу плодить сущности. Но опять же, это на их усмотрение.
Tishka17
Если новый интерфейс, это уже новые сущности
Roman
Либо сабмодуль с новым номером
Какой ещё сабмодуль? С одной функцией?
Tishka17
Ну я без понятия что у тебя там меняется
Tishka17
Так ты говоришь новый интерфейс
Tishka17
Новые параметры, новый результат
Roman
Ну я без понятия что у тебя там меняется
https://github.com/erikrose/more-itertools/issues/277
Tishka17
Так поведение меняется
Tishka17
Имеет смысл сделать говорящее название
Tishka17
Если не меняется, просто выкидывай старую
Roman
Tishka17
Я пьян, лучше меня не слушай
Tishka17
А то получится fucking_substr
Roman
А то получится fucking_substr
Подходящее название для использования в библиотеке для фильтрации мата)
Tishka17
:)
Alexander
О, у вас тут коллективная разработка
Anonymous
как в гитигнор прописать что файлы *.dat из любых папок не нужно учитывать?
Alex
Здравствуйте.
Alex
Сажите, используется конструкция ТРУ ЭКСЕПТ в функции, есть ли такая возможность чтобы ЭКСЕПТ без параметров отлова конкретной ошибки ловил исключительно те ошибки, которые возникают только в этой функции а не во всей программе ?
Alex
Жаль :) а было бы удобно
Tigran
Разве?
Tigran
Покажи пример, когда тебе это нужно.
Gleb
Так он в любом случае ловит только то что внутри блока или я чето не понимаю?
Alex
Когда много асинхронных функций, и непонятно какие ошибки ловить в будущем, - можно просто не знать о существовании какой либо
Е̶в̶г̶е̶н̶и̶й̶ ̶А̶
Нет.
Это явно не бест практикс Но интересно действительно прямо нет?) Распарсить стек и в зависимости от глубины рейзить или нет :) Не получится так?
Anonymous
Добрый день
Roman
@Saluev Could we get Tigran Saluev's blessing on including his implementation? (https://github.com/erikrose/more-itertools/pull/276#issuecomment-475878316)
Anonymous
Есть набор скриптов, которые я хочу объединить в одну программу и управлять ею через телеграмм). Вопрос, как лучше это сделать, если функционал программы будет очень большим и гибким для настройки, а управлять им буду я скорее всего командами, т.к. так будет удобнее.
Alex
Самое главное неудобство с отловом ошибок через ЭКСЕПТ - это предусмотрение и перечисление всех известных ошибок
Anonymous
Вопрос насчет алгоритма работы с командами..
Anonymous
?
Anonymous
Я не могу придумать какие команды будут нужны и как они будут обрабатываться. Как будет идти работа с процессами... Какие есть варианты?
Anonymous
Была мысль добавить интерпритатор lua и сделать либку для работы со скриптами (теми, что я хочу объеденить). В боте сделать кнопки-комманды, плюс редактор скриптов на lua. Но не знаю, реально ли такое.
Anonymous
И будет ли вообще удобно
Alex
Я не могу придумать какие команды будут нужны и как они будут обрабатываться. Как будет идти работа с процессами... Какие есть варианты?
Самое главное сделать для себя смыслопонятный интерпритатор, чтобы логично было пользоваться, и не усложнять
Alex
короткие команды через чат
Alex
Но подрозумевающие смысл происходящего
Alex
Ну и использовать сисстему запрос ответ, чтобы было ясно выполнилось желаемое или нет
Alex
Это в общем
Anonymous
Как тогда лучше сделать - объяденить скрипты в один софт, с контролем процессов и пр, или сделать один скрипт, управляющий, который скрипты будет запускать?
Anonymous
Все понял, сделаю один управляющий, а каждый скрипт будет наследоваться от класса Плагина. Спасибо)