Anonymous
Что за огромные нечитаемые конструкции? Почему print(*numbers) вместо print(numbers)?
SetazeR
Andrey
Подскажите почему данный метод не сработал?
Срабатывает (см скрин ниже)...
Кстати, присваивать вроде проще так:
numbers[ numbers.index(max(numbers)) ], numbers[ numbers.index(min(numbers)) ] = min(numbers), max(numbers)
Andrey
Roman
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
На мой взгляд - идеально для микросервисов
Andrey
s0menickname
nginx излишество имхо
s0menickname
Andrey
Ну и Bottle / Flask
s0menickname
хотя я больше монгу люблю, даже для маленьких бд
s0menickname
она удобная очень
Andrey
s0menickname
у меня несколько мелких баз данных на локалхосте и постоянно работающая монга, кушает ~40 мб
s0menickname
для размера баз много конечно, но у меня слишком много оперативки чтобы это имело значение, аж невероятные 8 гб
Andrey
Sqlite конечно
Еще tinydb (ZODB?) мобыть, но там от потребностей уже
s0menickname
еще редис прикольный, он вроде поэкономнее, но задач где нормально можно применить сильно меньше
Andrey
s0menickname
s0menickname
эффект масштаба
Andrey
Использую монгу для небольшого проекта, размер БД что-то около 10 ГБ, в памяти сервер занимает около 5-6 ГБ со временем. Правда, я ничего не тюнил, все из коробки.
Andrey
Кэши всякие раздуваются видимо, но все же
Andrey
Sqlite на 300ГБ базе не требует памяти вообще ;)
s0menickname
s0menickname
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
Vladimir
Anonymous
Anonymous
Мне нужно передать себе сообщение от бота
Vladimir
нет, не работал, посмотри их гит или поищи примеры
Anonymous
А выше парсер bs4
Andrey
Bs4 еще жив?
Andrey
а что ему будет?
Хз, он ж построен на парсинге регулярками, тормозной и жрет память? Почему б просто не использовать lxml без лишних обвесов?
SetazeR
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. Вы ее не настроили.
Ivan
mva
они переопределили не open(), а отлов исключений. И падало оно когда open( пытался открыть файл с серкретом, которого нету)
Ivan
Ivan
mva
Эммм, ну если вы то прислали, то судя по ошибки, он ничего не открывает
то, что я показал - это тот код внутри Sentry, который триггерится. Я не мог понять почему он триггерится. Но, судя по тому, что после переписывания функции на более качественный отлов несуществования файла оно перестало - я заключил что они переопределяли отлов ошибки, но что-то шло не так...
Ivan
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, телеграм съел подчеркивания
SetazeR
Максим
Максим
Если наследоваться от листа то нужно вызывать super
Максим
Он этого не делает
Максим
Да вообще в наследовании в конструкторе надо всегда super вызывать
SetazeR
SetazeR
по необходимости
Максим
А иногда питон выдает exception
SetazeR
я к тому что у тебя в базовом классе может тупо не быть инита, и смысла его вызывать через супер - нет
Sergey
Да это же шутеечка была) я и не собирался делать "правильно" по pep8. Пусть студент задумается и сделает правильно самостоятельно