Обновить
41
0
Илья@tapeline

Пользователь

Отправить сообщение

Что ж, хорошая мысль. Если Хиллел не выпустит продолжение, придётся его писать самому :)

превращая скучный текстовый поток в информативный и приятный для глаз интерфейс.

Unpopular opinion, но я здесь вижу "превращая универсальный и работающий везде текст в раздутое и постоянно ломающееся месиво из юникода". Регулярно у меня ломаются и цвета, и эмодзи, и особенно рамочки в самых разных местах: в контейнерах, в термуксе, во встроенном терминале IDE. Красота — это, конечно, хорошо, но максимум, что можно сделать — подкрасить особенно важные места вывода и добавить что-то вроде галочек и крестиков (только там, где оно несёт реальную смысловую нагрузку и предварительно протестировав на разных терминалах). И нужно помнить ещё и о том, что в куче мест может не быть цветов, поэтому не нужно на них одних вешать ответственность за передачу смысловой нагрузки (иной раз прогрессбары делают одинаковыми символами разных цветов, а потом сидишь в одноцветном терминале и думаешь, чего ж оно не грузится). Ну а таблички уже полвека замечательно рисуются символами табуляции.

Огонь статья, как всегда все очень подробно и интересно расписано! Будет еще интересно посмотреть на то, как поменяется инструментарий для веба на питоне в свете субинтерпретаторов

Так вы же пишете

«T-строки позволяют сделать структурный логгинг фактически бесплатным»

Ага, и получить накладные расходы на формирование шаблонов на каждое сообщение логгера, они же не ленивые!

Я и отмечаю, что т-строки частично ленивые, если так можно выразиться

Пожалуй, вы правы, кавычки там действительно лишние)

А ещё я нашел то, как т-строки начинают внедрять в psycopg3: https://github.com/psycopg/psycopg/pull/1054, и там таки тоже без кавычек)

logger.debug(f'Bla bla bla {super_heavy_object_to_format}')

Справедливости ради, они частично ленивые. Выражения считаются сразу, а вот форматирование откладывается.

Ну вот, например, сравнение с %:

PS C:\Users\Tapeline> python -m timeit "a=1; b='hello'; 'text %s text %s' % (a, b)"
1000000 loops, best of 5: 246 nsec per loop
PS C:\Users\Tapeline> python -m timeit "a=1; b='hello'; 'text '+str(a)+' text '+b"
1000000 loops, best of 5: 263 nsec per loop

На небольших размерах не существенно, но тем не менее, просадка есть

Но реализовывать его надо очень аккуратно, не с кондачка.

Абсолютно согласен. Собственно и ждем, когда умные дяди придумают как красиво и правильно все это применить. А тут пока просто примеры, что вообще можно в теории с ними сообразить. Ни один из приведенных в статье примеров не является production-ready, да, собственно, на это и не претендует

С какой-то стороны с вами согласен, но это уже скорее философия конкретного языка.

Сейчас точно не вспомню, в дискассе под каким пепом это читал, но там был комментарий от Core Developer в духе:

Необязательно, чтобы то, что добавляет PEP, было полезно всем. Python использует большое количество людей, эта фича будет полезной определенной части комьюнити.

А насчет пакетов на добавление строк на любые буквы: у нас и так есть PEP263 и порт f-строк на Python 2 с помощью него, хотя это скорее грязный хак, чем задуманная фича.

Да, а что в этом такого? До тех пор, пока меня не интересуют специфичные для числа форматы (sign, zero padding) можно и %s использовать

Более того, на discuss.python.org недавно предложили d-строки, но это вообще уже, как по мне, шиза. Суть в том, что они автоматом будут убирать кучу отступов в начале строки при, например, таком использовании:

def f():
    print(
    """
        Hello, World!
        This is a second line
    """

Как по мне, так это либо надо изначально было делать (как поступили, например, в Java), либо сейчас уже просто жить с textwrap.dedent и не плодить всякое в язык.

Да, вы правы, я не совсем правильно выразился. Исправил, чтобы не продолжать вводить в заблуждение. Спасибо!

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

итого данная задача потребовала бы около часа трудозатрат при использовании powershell

Несомненно, все эти штуки можно было бы выполнить с помощью батника/повершелл-файла, но заняло бы это времени поболее, часа 3-4, чтобы с этим всем разобраться и заставить работать.

складывается ощущение что у вас было очень много времени на стрельбу из пушки по воробьям

В целом, так и есть :). Была не только цель автоматизации, но ещё и (шило в одном месте) желание сделать что-то свое

В этом плане скорей всего проще WinGet официальную репу найти.

Как раз в этом и одна из главных проблем: сомневаюсь, что у КуМира и PascalABC.NET есть winget-репа)

Еще есть choco

Придется вручную указывать сайлент-флаги, что не слишком желательно

А еще есть Интюн и кастомные пакеты вида intunewin

Интересно, спасибо за рекомендацию, посмотрю!

Кучу лет было, чтобы обновить весь хлам

Так то оно так, но, хочу сказать, что это еще хорошо, что на большинстве стоит +- современная десятка. Нередки случаи, когда в школах стоят семерки до сих пор

Насколько я знаю, не-APPX/MSI штуки там поддерживаются так себе.

The client requires Windows 10 1809 (build 17763) or later at this time

Есть страшно старые компы (Win 10 1709, если мне не изменяет память), так что придется танцевать с бубном и здесь.

Плюс кроме установки, нужно еще делать некоторые доп. действия: копировать файлы, ярлыки (ставится все же из админского режима, ярлыки у админа, а должны быть у ученика). Не, разумеется, можно было бы все это подогнать и сделать bat / powershell скрипт, но:

  • было бы это так же удобно?

  • получилась ли бы такая интересная статья?)

P.s. ну и картинки велосипеда и костыля на КДПВ не просто так были :)

Кривые электронные дневники — наше все))

Наш региональный, например, JWT токен, логин и пароль передает в query-params...

Вдохновляющая статья, после прочтения прям хочется пойти делать что-то свое)

1

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фулстек разработчик
ООП
Python
Разработка программного обеспечения
Docker
Английский язык
Django
FastAPI
Git
PostgreSQL
REST