Anonymous
Что за огромные нечитаемые конструкции? Почему print(*numbers) вместо print(numbers)?
Andrey
Подскажите почему данный метод не сработал?
Срабатывает (см скрин ниже)... Кстати, присваивать вроде проще так: numbers[ numbers.index(max(numbers)) ], numbers[ numbers.index(min(numbers)) ] = min(numbers), max(numbers)
Andrey
Roman
Странно, у меня срабатывает только если эти числа рядом(
Andrey
Странно, у меня срабатывает только если эти числа рядом(
Попробуй запустить это, ну и если все ОК, просто допиши часть с input: def swap_maxmin(lst): max_num, min_num = max(lst), min(lst) max_idx = lst.index(max_num) min_idx = lst.index(min_num) lst[max_idx], lst[min_idx] = min_num, max_num return lst numbers = [1, 2, 3, 4, 5, 6, 7] print(*swap_maxmin(numbers))
Vladimir
http://neprivet.ru/
R0
Есть потребность сделать микро-веб-сервис с БД, база маленькая - 20 мегабайт максимум - подскажите что лучше использовать на Windows для этого ? Ставить Nginx + mysql или может лучше использовать diango дебаг сервер для этого ?)
Ilya
flask+sqlite
Ilya
На мой взгляд - идеально для микросервисов
s0menickname
nginx излишество имхо
s0menickname
Andrey
Ну и Bottle / Flask
s0menickname
хотя я больше монгу люблю, даже для маленьких бд
s0menickname
она удобная очень
Andrey
s0menickname
Разве она не жрет прорву памяти?
зависит от того, что считать прорвой
s0menickname
у меня несколько мелких баз данных на локалхосте и постоянно работающая монга, кушает ~40 мб
s0menickname
для размера баз много конечно, но у меня слишком много оперативки чтобы это имело значение, аж невероятные 8 гб
Andrey
Sqlite конечно
Еще tinydb (ZODB?) мобыть, но там от потребностей уже
s0menickname
еще редис прикольный, он вроде поэкономнее, но задач где нормально можно применить сильно меньше
Andrey
у меня несколько мелких баз данных на локалхосте и постоянно работающая монга, кушает ~40 мб
Для совсем мелких БД да, но если на вырост, то потом придется чесать репу :D
s0menickname
Для совсем мелких БД да, но если на вырост, то потом придется чесать репу :D
дык чем больше бд, тем меньше оверхед по отношению к ней
s0menickname
эффект масштаба
Andrey
Использую монгу для небольшого проекта, размер БД что-то около 10 ГБ, в памяти сервер занимает около 5-6 ГБ со временем. Правда, я ничего не тюнил, все из коробки.
Andrey
Кэши всякие раздуваются видимо, но все же
Andrey
Sqlite на 300ГБ базе не требует памяти вообще ;)
s0menickname
Sqlite на 300ГБ базе не требует памяти вообще ;)
небось пользоваться невозможно?
s0menickname
Использую монгу для небольшого проекта, размер БД что-то около 10 ГБ, в памяти сервер занимает около 5-6 ГБ со временем. Правда, я ничего не тюнил, все из коробки.
ну если микросервис, то и так норм, а если большие БД, нужно уже хорошо подумать, причем там монга/постгрес/редис выбор будет или что-то такое
Andrey
небось пользоваться невозможно?
Нет, нормально вполне, по крайней мере для своих задач достаточно (особенно если использовать на SSD).
Null
Дорогие друзья! Близится Chaos Construction! Санкт-Петербург 24-25 августа Стоимость: бесплатно О событии: Chaos Constructions - крупнейший и старейший в России ежегодный фестиваль компьютерного искусства, проводящийся в конце августа в Санкт-Петербурге. Впервые прошёл в 1995 году как фестиваль демосцены («демопати») под названием ENLiGHT, в 1999 году расширил формат и сменил название на Chaos Constructions. В настоящее время охватывает такие направления как «электроника, интернет вещей, информационная безопасность, DevOps, 3D-графика, разработка игр, электронная музыка, визуализации, AR/VR, роботы и многое другое. Регистрация: https://events.nethouse.ru/spb/13389/
Andrey
К слову, вопрос по асинхронной работе с sqlite — что для этого использовать сегодня? aioodbc?
Andrey
Видимо, aiosqlite
Taijef
К
Anonymous
Ребята привет
Anonymous
Подскажите пожалуйста как сделать чтобы телеграм бот был всегда онлайн
Taijef
@botoid
Anonymous
тебе надо почитать про webhook
А ты работал с pyrogram
Anonymous
Мне нужно передать себе сообщение от бота
Vladimir
нет, не работал, посмотри их гит или поищи примеры
Anonymous
А выше парсер bs4
Andrey
Bs4 еще жив?
Taijef
Bs4 еще жив?
Вроде 🤷‍♂️
SetazeR
Bs4 еще жив?
а что ему будет?
Andrey
а что ему будет?
Хз, он ж построен на парсинге регулярками, тормозной и жрет память? Почему б просто не использовать lxml без лишних обвесов?
mva
Здравствуйте, товарищи! Помогите разобраться в ситуации, пожалуйста (заранее уточняю, что я не питонодевелопер, и вообще не девелопер, а админ, а питон знаю постольку-постольку на уровне "print()"). Я пытаюсь заставить sentry работать, а она сопротивляется, ругаясь вот так вот когда я вызываю в конфиге самопальную, описанную в его начале функцию (чтобы читать докеросекреты). (Сазу скажу, что директива, которую этот код проверяет, определена, но его это почему-то не волнует) "отладка принтами" (точнее, выбросом эксепшна) показала, что ругань происходит когда я в своей фунцкии вызываю with open() ... (выбрасывание экшепшна до вызова - срабатывает, а после - приводит к описанной выше ругани). Я предположил что девелоперы Sentry зачем-то переопределили функцию open(). Чтобы от этого избавиться я задумал импортнуть open из builtin'ов под другим именем и использовать его. Проверив свою идею в третьем питоне и получив успешный результат я обрадовался. Однако вскоре обнаружил, что во втором питоне (на котором до сих пор работает Sentry) такой фокус не работает (там нет модуля builtins 😢). Подскажите, пожалуйста, как можно поступить в этой ситуации? Или, может быть, есть какой-то иной способ прочитать файл?
mva
хотя, судя по всему, они таки не переопределяли функцию open (ибо raise Exception(open) говорит Exception: <built-in function open>). Но тогда такое поведение для меня становится совершенно непонятным...
Lokesh Soni
Add me on LinkedIn https://www.linkedin.com/in/lokeshsonii/
Ivan
Здравствуйте, товарищи! Помогите разобраться в ситуации, пожалуйста (заранее уточняю, что я не питонодевелопер, и вообще не девелопер, а админ, а питон знаю постольку-постольку на уровне "print()"). Я пытаюсь заставить sentry работать, а она сопротивляется, ругаясь вот так вот когда я вызываю в конфиге самопальную, описанную в его начале функцию (чтобы читать докеросекреты). (Сазу скажу, что директива, которую этот код проверяет, определена, но его это почему-то не волнует) "отладка принтами" (точнее, выбросом эксепшна) показала, что ругань происходит когда я в своей фунцкии вызываю with open() ... (выбрасывание экшепшна до вызова - срабатывает, а после - приводит к описанной выше ругани). Я предположил что девелоперы Sentry зачем-то переопределили функцию open(). Чтобы от этого избавиться я задумал импортнуть open из builtin'ов под другим именем и использовать его. Проверив свою идею в третьем питоне и получив успешный результат я обрадовался. Однако вскоре обнаружил, что во втором питоне (на котором до сих пор работает Sentry) такой фокус не работает (там нет модуля builtins 😢). Подскажите, пожалуйста, как можно поступить в этой ситуации? Или, может быть, есть какой-то иной способ прочитать файл?
А ты как-нибудь настраивал sentry?
mva
А ты как-нибудь настраивал sentry?
Ну, так, слегка. В основном - добавил только секретный ключ (потому что по предыдущему опыту помню, что если его предварительно полностью сконфигурировать в конфиге, то его начнёт плющить при завершении установки)
mva
кстати, я, кажется, уже нашёл причину
Ivan
Здравствуйте, товарищи! Помогите разобраться в ситуации, пожалуйста (заранее уточняю, что я не питонодевелопер, и вообще не девелопер, а админ, а питон знаю постольку-постольку на уровне "print()"). Я пытаюсь заставить sentry работать, а она сопротивляется, ругаясь вот так вот когда я вызываю в конфиге самопальную, описанную в его начале функцию (чтобы читать докеросекреты). (Сазу скажу, что директива, которую этот код проверяет, определена, но его это почему-то не волнует) "отладка принтами" (точнее, выбросом эксепшна) показала, что ругань происходит когда я в своей фунцкии вызываю with open() ... (выбрасывание экшепшна до вызова - срабатывает, а после - приводит к описанной выше ругани). Я предположил что девелоперы Sentry зачем-то переопределили функцию open(). Чтобы от этого избавиться я задумал импортнуть open из builtin'ов под другим именем и использовать его. Проверив свою идею в третьем питоне и получив успешный результат я обрадовался. Однако вскоре обнаружил, что во втором питоне (на котором до сих пор работает Sentry) такой фокус не работает (там нет модуля builtins 😢). Подскажите, пожалуйста, как можно поступить в этой ситуации? Или, может быть, есть какой-то иной способ прочитать файл?
Ошибка говорит о настройки кеша для sentry. Вы ее не настроили.
mva
они переопределили не open(), а отлов исключений. И падало оно когда open( пытался открыть файл с серкретом, которого нету)
mva
О чем она честно сообщает и говорит, настрой меня, пожалуйста, а то я работать не могу...
оно говорит "ты должен определить директиву X", при том, что директива X определена (я и в yaml-фале тоже пробовал, да)
mva
Эммм, ну если вы то прислали, то судя по ошибки, он ничего не открывает
то, что я показал - это тот код внутри Sentry, который триггерится. Я не мог понять почему он триггерится. Но, судя по тому, что после переписывания функции на более качественный отлов несуществования файла оно перестало - я заключил что они переопределяли отлов ошибки, но что-то шло не так...
mva
Эмм, вообщем помощь нужна или завелось?
вроде, завелось, но я пока ещё не убрал свой искуственный raise :)
Ivan
А в чем вопрос?
Sergey
class ContactList(list): def init(self): self.search_by_name = lambda name: list(filter(lambda x: x == name, self))
Sergey
кажется, что тут нечему не работать)
Andrey
Вродь работает, проверяй: class ContactList(list): def search_by_name(self, name: str) -> list: return [x for x in self if name in x]
Andrey
В варианте Сергея нужен __init__, а не init, телеграм съел подчеркивания
Максим
Если наследоваться от листа то нужно вызывать super
Максим
Он этого не делает
Максим
Да вообще в наследовании в конструкторе надо всегда super вызывать
SetazeR
по необходимости
Максим
ну, не всегда так-то :)
У меня пукхарм ругается
Максим
А иногда питон выдает exception
SetazeR
я к тому что у тебя в базовом классе может тупо не быть инита, и смысла его вызывать через супер - нет
Sergey
Да это же шутеечка была) я и не собирался делать "правильно" по pep8. Пусть студент задумается и сделает правильно самостоятельно