Tishka17
звучит как область применения contextvars
а с тредами они применимы?
🍁 Jaŭhien
кажется, это только для асинка
Artyem
https://docs.python.org/3/library/contextvars.html >Context managers that have state should use Context Variables instead of threading.local() to prevent their state from bleeding to other code unexpectedly, when used in concurrent code.
Tishka17
надо бы статью на хабр выкатить про них
Vladimir
Ребята которые работали с Docker Swarm, разворачиваю несколько vps`ок на DO, интересует то как вы храните персистентные данные, можно конечно заюзать volumes от самого DO. Но возможно кто-нибудь юзал что-то другое? sshfs/nfs.. ceph и.т.п Не хочется привязываться к DO.
Александр
ну грубо def parse(json_data): logging.debug("parse %s", json_data) def do(text): logging.debug("do") db.execute(...) def handler(): msg = queue.pop() data = parse(msg) do(data["text"]) вот я хочу чтобы parse и do логировали с неким id запроса
logger = logging.LoggerAdapter(logger, extra) При этом extra = {'trace_id': trace_id} Потом фигачишь просто logger.debug("do") Конкретно у меня есть функция которая настраивает logger. Т.е я это использую так fire_log = set_logger("log.json", trace_id).
Александр
эм, это ко все логгерам применятьадаптер или как?
У меня функция возвращает LoggerAdapter.
Michael
Народ, кто-то использует профилирование для рефакторинга? Какие либы используете?
Александр
У меня функция возвращает LoggerAdapter.
У меня софтина не большая, в итоге один LoggerAdapter с названием fire_log
Alex
https://www.youtube.com/watch?v=3q1V2QcanXQ
"Самое интересное что для создания дерократора нам потребуется воспользоваться декоратором" (о functools.wraps) Во-первых эта черепашка пи^W несет чушь. Во-вторы не объясняет нафига нужен wraps и что он делает. А потом пытается конвертануть datetime.timedeta в int и не читая Traceback делает охренительное умозаключение о том, что ведь нужно сделать str(int(timedelta))
Александр
У меня софтина не большая, в итоге один LoggerAdapter с названием fire_log
И дополню, есть офигенная штука, которой можно сделать проще https://github.com/Delgan/loguru
Tishka17
У меня функция возвращает LoggerAdapter.
эм, а как в сщуествующих либах я логгер заменю?
Александр
эм, а как в сщуествующих либах я логгер заменю?
Гм. Такой задачи у меня не было, чтобы что-то добавить в логирование сторонних либ. Можно конечно переопределять прям logging, но это плохая идея.
Alex
Гм. Такой задачи у меня не было, чтобы что-то добавить в логирование сторонних либ. Можно конечно переопределять прям logging, но это плохая идея.
ась? вообще логгинг в идеале должен быть построен по принципу, чтобы ты мог подсунуть туда свои настройки логирования (с возможно кастомными логерами) и это продолжало работать.
Alex
эм, а как в сщуествующих либах я логгер заменю?
TL;DR что там с логгер адаптерами?
Tishka17
TL;DR что там с логгер адаптерами?
да я вот сделал через фильтер, но какая-то ошибка
Александр
Tishka17
TL;DR что там с логгер адаптерами?
https://paste.ubuntu.com/p/qdrmBFfyjn/ почему-то ловит исключение 2019-05-24 11:58:05,492 DEBUG ===>0<===root:0 2019-05-24 11:58:05,492 DEBUG ===>0<===root:foo MainThread 1 Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "ctxx.py", line 16, in foo logging.debug("foo %15s %s", current_thread().name, x) File "/usr/lib/python3.7/logging/__init__.py", line 2004, in debug root.debug(msg, *args, **kwargs) File "/usr/lib/python3.7/logging/__init__.py", line 1371, in debug self._log(DEBUG, msg, args, **kwargs) File "/usr/lib/python3.7/logging/__init__.py", line 1519, in _log self.handle(record) File "/usr/lib/python3.7/logging/__init__.py", line 1528, in handle if (not self.disabled) and self.filter(record): File "/usr/lib/python3.7/logging/__init__.py", line 762, in filter result = f.filter(record) File "ctxx.py", line 27, in filter record.var_id = var.get() LookupError: <ContextVar name='var' at 0x7f476f5de9e8> 2019-05-24 11:58:06,494 DEBUG ===>hello 1<===root:bar MainThread one hello 1 2019-05-24 11:58:07,495 DEBUG ===>hello 1<===root:bar MainThread two hello 1 2019-05-24 11:58:07,495 DEBUG ===>hello 1<===root:hello 1
Tishka17
без фильтра из другого треда переменная работает
Alex
у меня глупый вопрос, а каким боком contextvar к тредам?
Alex
пока еще код не читал
Tishka17
>Context managers that have state should use Context Variables instead of threading.local() to prevent their state from bleeding to other code unexpectedly, when used in concurrent code.
Tishka17
ну типа ниверсальные они
Anonymous
кто возьмётся за проект на селениуме или пох на чем? чекать аккаунты гугла нужно
Tishka17
а, просто код говно
Tishka17
пока еще код не читал
забей, я там логирование вызвал раньше чем установил переменную
Pan
Что значит embedded C developer? Не могу более-менее дословно перевести
SetazeR
R.
Что значит embedded C developer? Не могу более-менее дословно перевести
Значит будешь под микрокнтроллеры писать
Pan
Значит будешь под микрокнтроллеры писать
чисто со взгляда грамматики embedded относится к слову С или developer?)
Tishka17
Значит будешь под микрокнтроллеры писать
не обязательно. может просто урезанный линукс
Tishka17
C Developer for Embedded System
Pan
hm, хорошо, хорошо
Pan
C Developer for Embedded
Pan
встроенный девелопер?
ну мало ли, английский не предсказуемый язык
Alex
Ребят, а кто нибудь может подсказать мануал, как составить простой makefile для python проекта? Для простого проекта, типа из 1 файла скрипта, и 1 сторонней библиотеки.
Alex
А то, что всё гуглю. Километровый код с тестами, и прочим, и в основном для джанги.
Alex
первая ссылка в гугле
Alex
не забывай про .PHONY:
Anonymous
Есть тут кто-нибудь, кто обучался в школе 21? Хочу послушать отзывы про нее, как там вообще
Alex
первая ссылка в гугле
А что в run писать? Этот код сложный для джанги с докером и прочим. Как понять, что мне нужно именно. Мне нужно чтобы создалась виртуалка, установилось туда библиотека одна, и запустился файл типа calculate_samples.py
Тоня
#pythonteamlead #teamlead #lead #gjango #tornado #vacancy #вакансия от Ready for Sky - Мы первые, кто стал серьёзно заниматься технологией Умного дома в России! Нам нужен сильный #Python developer с опытом разработки на #django & #tornado и с опытом управления командой. https://spb.hh.ru/vacancy/31188601 офис в Спб, по белезне и плюшкам - как везде, зато у нас самые нормальные пацаны в IoT! https://readyforsky.com/ru/ задавай вопросы, присылай CV и ссылку на гитхаб мне: @tonika12
Anonymous
кто возьмётся проект на селениуме написать ? в общих словах гугл почты чекать - подробнсти в лс ✍🏿✍🏿✍🏿
Tishka17
env/bin/python: Error while finding module specification for 'mod2.__main__.py' (ModuleNotFoundError: __path__ attribute not found on 'mod2.__main__' while trying to find 'mod2.__main__.py') как дебажить?
Tishka17
появляется в середине логов
Book Hangover
привет) мне нужно развернуть виртуальную среду питоновскую использую питон3, win10 как понять где именно ее развернуть? - там, где pip лежит? вирт. среда нужна по идее для работы с Jupiter Notebook но еще PyCharm установлена
fs
Есть шарящие во flask?
uniq
Как получить все буквы алфавита используя strings?
uniq
alph= strings.lowercase()
uniq
не работает
🍁 Jaŭhien
string.ascii_lowercase
Olexandr
если в asyncio Task уже finished – он по идее должен исчезнуть из Task.all_tasks() ?
Olexandr
понял, спасибо!
Olexandr
нашел, что в graphql-ws не закрываются таски после обработки и их плодится все больше и больше
GTR Network
Народ а как запустить этот UDP сервер https://docs.python.org/3/library/asyncio-protocol.html#udp-echo-server без await asyncio.sleep(3600) ...
fs
есть
Крч, уже второй день ***, суть такая, нужно при переходе на роут, отобразить список файлов и папок на сервере, и если нажать на файлик, системный путь к нему должен быть передан бекенду для обработки. Я думалсделать это используя как то autoindex, тип нажали на файлик, файлик обработался, выполнился редирект на страницу которая показывает результат работы с файлом, но никак не могу найти..нигде, как сделать че то похожее...
uniq
Я беру слова из файла. Python дописываеет до слов \n и я не могу правильно составить запрос. Пробую line.replace("\n",""), но нет результата
uniq
Что можете посоветовать?
Alex
Что можете посоветовать?
line = line.replace('\n', "")
Alex
Строка неизменяемый тип же
Aragaer
strip