Pull to refresh
8K+
31
Олег Юрчик@Ryder95

Senior Python Developer

8
Rating
48
Subscribers
Send message

Но ведь есть легаси... И оно дорогое

На самом деле после использования программы я увидел проблему, как минимум я пользуюсь k9s и переключать контексты оказалось намного проще, чем подменять конфиги. Я потратил немного времени на то, чтобы разобраться в устройстве конфига и собрать один конфиг из нескольких. Единственная мысль появилась, что было бы хорошо иметь возможность из нескольких конфигов собрать один автоматизированно. Я ещё не искал, решена ли эта задача, но она требуется очень уж нечасто

Тем, что я про него не знал и не нагуглил( Сейчас попробовал, он работает в рамках одного конфига, в принципе, можно слить все конфиги в один и переключаться между контекстами, но пока подход с файлами мне кажется более удобным, так как нет необходимости лезть в сам конфиг

Как раз недавно написал скрипт на Python для помощи в игре. Я выкачал частотный словарь, словарь существительных и частоту использования букв, каждый раз начинаю со слова "осина", так как в нем самые популярные буквы, и дальше уже методом исключения, за 4 дня скрипт пока ни разу не подвёл

Многопоточность в Python была всегда, другой вопрос, что эти потоки никогда не выполнялись параллельно

Кажется. Я сам перечитываю и у меня есть такое ощущение, но нет, я просто хотел показать, как где-то любая параллельная работа выполняется красиво, а где-то — нет

Это совсем 2 разных языка, боюсь, что это огромная работа — создавать что-то среднее между ними. Если интересно, можете обратить внимание на Nim. Python в принципе в параллельную работу не может из-за высокого уровня абстракции над Си, дело даже не в том, что он на Си основан, а в том, что там слишком много действий, которые требуют синхронизации при параллельном выполнении
Прочёл! Отличная концепция, но как и было сказано в статье — для того, чтобы не было проблем — нужно гарантированное отсутствие go команд, поэтому пока что её можно просто придерживаться
Провёл бенчмарки — запускать асинхронный код синхронно через единично существующий loop намного быстрее, нежели через сгенерированные шаблоны! Ну окей, попытка не пытка, спасибо за хорошую идею!
Шаблон я тоже пишу для себя — я собирался реализовать такие асинхронные и синхронные функции и пользователю выдавать уже готовые для использования — не шаблоны. За ссылку спасибо, обязательно прочту!
Я знаю, я зачем-то смешал горутины из Go и корутины из Python, но я хотел просто обратить внимание на синтаксис. В Go код никак не делится на синхронный и асинхронный, а в Python — это уже 2 разных материка, смешивать функции и корутины становится в разы тяжелее. GIL ведь не управляет асинхронным кодом внутри, он может менеджить его снаружи потока, в котором запущен loop

P.S. Ну в общем если считать, что асинхронность в Python основана на генераторах и на возвращении управлении в цикл, то очевидно, что сравнивать их и нельзя, совсем по разному работают
Согласен, проблема, конечно, в постоянном возвращении управления циклу событий, но и моё решение этого не исправляет. Наверное, это было бы намного лаконичнее, спасибо!

Это упрощает вызов, но по сути синхронная функция не становится асинхронной, просто она в отдельном потоке. Оригинальная же async def отдаёт управление тогда, когда считает это нужным.


Спасибо за ссылку!

Нет, но разве GIL как-то влияет на асинхронный код?

Объясните, пожалуйста, что Вы имеете ввиду. Я из приведённых ссылок понял, что у меня есть возможность запустить блокирующую функцию в параллельном потоке в цикле, в котором так же крутятся корутины. Но в итоге блокирующая функция конкурентно не выполняется. Или я что-то неверно понимаю?
Вроде не перепутал, синтаксис async/await в JavaScript появился ещё в ES6, нашёл это — немного погуглив.

asyncio.run() выполняет корутины, я никогда не заставлю обычную функцию выполнятся асинхронно, так что по сути не решает проблему никак

P.S. Ошибка, нашёл инфу о том, что официальная поддержка async/await появилась только в ES8. Спасибо, исправляю
Прошло 3 года и я с уверенностью могу сказать, что да, оно отлично решилось через метаклассы. Просто для того, чтобы воспользоваться Вашим советом — мне нужно было понять метаклассы
Вот этот адаптер немного и смущает. Конечно, это колоссальные возможности, но сам факт зависимости от чужого сервера — ИМХО, не очень.
Да, здорово, немного сложная система скиллов, но въехать, думаю, можно)

Information

Rating
914-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик
Старший