Comments 27
from conf import config as cfg
А сразу нельзя было нормально сделать? ;)
ЗЫ: пошел смотреть код, а там зачем-то import psutil в конфиге, *.pyc в репозитории.
html в python коде, конкатенация черезе '+', общий except, дальше не стал разбирать.
:(
:(
и? для простого скрипта за два часа вполне.
Давайте тесты добавим, деплой и тд и тп. Только, зачем?
Это же простой скрипт.
Давайте тесты добавим, деплой и тд и тп. Только, зачем?
Это же простой скрипт.
Там такие мелочи и портят общее впечатление. Ну если уж подняли тему «скрипта за два часа», зачем тогда он на хабре?
Я думаю, что кому то он может пригодиться. Например, вам.
Мне точно нет, особенно с таким кодом.
Инструментов мониторинга 100500, от простых до сложных. Если нужен мониторинг, то лучше взять готовое, проверенное решение, а не чей-то простой скрипт
Есть munin-monitoring.org и тоже на python и даже ля него есть exporter в Graphite
rSedoy Павел, поделитесь, как нужно делать конкатенацию строк на питоне? И почему? Откуда вы почерпнули это знание? Пользователям ведь хочется узнать не просто чьи-то оценки, а получить новые знания.
Я вот тут прочитал (но этому обоснованию пять лет, все могло поменяться), что использование плюса не имеет существенных недостатков по производительности, а скорее наоборот, в общем случае оптимальный выбор. ( stackoverflow.com/questions/12169839/which-is-the-preferred-way-to-concatenate-a-string-in-python )
Я вот тут прочитал (но этому обоснованию пять лет, все могло поменяться), что использование плюса не имеет существенных недостатков по производительности, а скорее наоборот, в общем случае оптимальный выбор. ( stackoverflow.com/questions/12169839/which-is-the-preferred-way-to-concatenate-a-string-in-python )
Да про это уже много написано и без проблем находится через поиск, а в данном случае, нужна даже не конкатенация, а форматирование строк. Быстрый поиск дает хорошее описание способов, да еще и на русском языке ;) shultais.education/blog/python-f-strings
Сорри, оторвался от контекста, тут даже не форматирования, а использование шаблонизаторов, весь html код надо вынести в отдельные файлы и использовать jinja, вроде она чаще всего используется с flask'ом
А что плохого в конкатенации посредством оператора '+'? Читабельность? Так, извините, во-первых, '+' работает быстрее других способов конкатенации строк в Python, а во-вторых, врядли
s = 'String {}'.format('bad')
читабельнее
python
s = 'String' + 'bad'
'''
Про python судить не берусь, но вот в .net конкатенацию через «+» стоит избегать из-за соображений производительности. Возможно, считается (как в c#), что string.fomat() выглядит эстетичнее.
# Python >= 3.6
w = 'bad'
s = f'String {w}'
# Python < 3.6
s = ''.join([
'String ',
'bad'
])
На stackoverflow говорят, что вариант с join — самый быстрый.
да, поправим.
Статья обновлена и дополнена с учетом замечаний в комментариях.
А я для этого пользуюсь dashboard.monitis.com
Там тоже есть какой то agent для линукса, который мониторит память, процессор, место на диске и т.д
Плохо только что уведомления о превышении лимитов там только в платной версии
Там тоже есть какой то agent для линукса, который мониторит память, процессор, место на диске и т.д
Плохо только что уведомления о превышении лимитов там только в платной версии
По поводу try… except.
Из моего опыта .net: во всех учебниках, в том же Рихтере написано, что правила плохого тона — перехват самого общего эксепшна или всех сразу, так как перехват исключений в программе означает автоматом, что программист подразумевает возможность возникновения конкретных ошибок и их обрабатывает.
Единственное, что может быть правильно:
В этом случае ошибка будет перекинута выше.
В этом скрипте на Windows при проверке свободного места на некоторых дисках вылетают разные ошибки из пакета psutil.
Как правильно реализовать перехват общего исключения на python?
Как я понял, просто try… except — это не правильно, даже если после try указать самый общий exception.
Из моего опыта .net: во всех учебниках, в том же Рихтере написано, что правила плохого тона — перехват самого общего эксепшна или всех сразу, так как перехват исключений в программе означает автоматом, что программист подразумевает возможность возникновения конкретных ошибок и их обрабатывает.
Единственное, что может быть правильно:
try
{
...
}
catch (Exception ex)
{
// перекидываем общий эксепшн дальше по стеку
throw;
}
В этом случае ошибка будет перекинута выше.
В этом скрипте на Windows при проверке свободного места на некоторых дисках вылетают разные ошибки из пакета psutil.
Как правильно реализовать перехват общего исключения на python?
Как я понял, просто try… except — это не правильно, даже если после try указать самый общий exception.
Как по мне, видно, что python не является основным язык программирования для автора статьи. Есть общая проблема — Ваш код — громоздкий.
1. mem_info.__len__(), ну ладно почему нет.
2. объявление списка в виде mem_info = list(), а не mem_info = [], имеет право на существование
3. импорт модулей, которые в дальнейшем нигде не используются, по типу datetime и platform? тоже мелочи
4. str.format('Active memory: {0} MB', mem.active) — в каждой строке нагромоздили. Не читабельно и чрезмерно.
5. Ваша избыточная функция get_blocks(зачем она?),
6. общая структура flask в github
Это только за минуту беглого просмотра.
Я понимаю, что Вы реализовали данную работу за пару часов, но она написана безграмотно. Это не плохо. Но соглашусь с комментарием(https://habrahabr.ru/post/345848/#comment_10593082) — мелочи портят восприятие.
Хороший код с pythonic way? Первые 100 страниц, Бретт Слаткин — Effective Python рекомендую, там подобные стилистические ошибки разбираются.
Заранее извиняюсь, если что не так.
1. mem_info.__len__(), ну ладно почему нет.
2. объявление списка в виде mem_info = list(), а не mem_info = [], имеет право на существование
3. импорт модулей, которые в дальнейшем нигде не используются, по типу datetime и platform? тоже мелочи
4. str.format('Active memory: {0} MB', mem.active) — в каждой строке нагромоздили. Не читабельно и чрезмерно.
5. Ваша избыточная функция get_blocks(зачем она?),
6. общая структура flask в github
Это только за минуту беглого просмотра.
Я понимаю, что Вы реализовали данную работу за пару часов, но она написана безграмотно. Это не плохо. Но соглашусь с комментарием(https://habrahabr.ru/post/345848/#comment_10593082) — мелочи портят восприятие.
Хороший код с pythonic way? Первые 100 страниц, Бретт Слаткин — Effective Python рекомендую, там подобные стилистические ошибки разбираются.
Заранее извиняюсь, если что не так.
Смело! Мне в целом статья понравилась! Я понимаю, что лучше можно всегда. Комментарии очень полезные.
Sign up to leave a comment.
Простой монитор системы на Flask