tgindex
Говнокод от @Tishka17 & @vlade11115

Говнокод от @Tishka17 & @vlade11115

Статистика

Все примеры являются скопированными из реальных проектов, которые работают и кем-то используются. В некоторых случаях идентификаторы могут быть заменены, дабы не палить проект

Последний пост
11 июн.
Последнее чтение
14:43
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
Категория
Технологии (по похожим)
В каталоге с
13 авг.
Подписчики
621
+1 за 2 дн.
Сутки
+1
+0,16%
Неделя
 
Месяц
 
Просмотров на пост
1 547
20 постов
Вовлечённость
249,1%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
1/48двое суток
1/72трое суток

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Я болезненно отношусь когда терминология плохо отражает действительность. HTTP Response состоит из нескольких частей: status line, 0 или несколько Header и body В stdlib голанга есть ResponseWriter. Чтобы отправить статус код клиенту надо вызвать r.WriteHeader(statuscode), а чтобы манипулировать набором хэдеров надо взять r.Header() и у него дергать Add/Set/Del. (write header кроме отправки статус кода заодно отправляет все хэдеры)

  • Все знают что в голанге форматирование дат использует магические числа вместо "слабопонятных" %D %m %M. Допустим что сегодня 10 ноябра 2009 года. Что выведет этот код? now.Format("002 - 02 - 2") Ответ: 314 - 10 - 10

  • Угадайте что выведет этот код? type Foo interface{} func main() { var a *string var b Foo = a fmt.Printf("a: %v, %v, b: %v, %v", a, a == nil, b, b == nil) }

  • $ bazel test tests/tests_test

  • 11 мар.1 573141

    Если вы развиваете какую-то библиотеку, вполне реальна ситуация, когда ваши пользователи будут использовать не последнюю версию и захотят оставаться на ней какое-то время. Поэтому, всегда стоит оставлять документацию доступной по крайней мере для каждой мажорной версии. Смотрю я на доку polyfactory, у которой в конце осени вышла версия 3.х и не понимаю как мне прочитать доку для v2.2

  • 30 янв.1 74022

    где-то в недрах библиотеки if TYPE_CHECKING: from .base_control import BaseControl # noqa ControlEvent = Event["BaseControl"] что может пойти не так, да? любые попытки дернуть get_type_hints на функции с таким параметром приведут к ошибкам, даже если сам параметр нам не интересен https://github.com/flet-dev/flet/blob/main/sdk/python/packages/flet/src/flet/controls/control_event.py#L121

  • 28 янв.1 4821

    import storages.utils ... # Monkey-patch django-storages to fetch settings from STORAGE_CONFIG storages.utils.setting = _setting https://github.com/netbox-community/netbox/blob/main/netbox/netbox/settings.py#L21

  • 20 янв.1 67132

    как это могло произойти? там вся дока такая https://cobra.dev/docs/tutorials/12-factor-app/

  • 14 янв.1 585157

    Угадайте, работает ли следующий код на голанге func a(x ...string) { } func b(x ...string) { a("prefix", x...) } func main() { b("arg1", "arg2") } Для сравнения, аналог на питоне def a(*x): pass def b(*x): a("prefix", *x) def main(): b("arg1", "arg2") Ответ: ./prog.go:9:9: too many arguments in call to a have (string, []string...) want (...string)

  • 12 дек.1 45023

    Не про код, а про результат его работы. Перед вами вырезанные два куска со скриншота "очень быстрого" редактора zed левые две стрелки - когда окно не на весь экран, правые - когда развернуто. Заметьте что вся панель осталась такого же размера, всё совпадает. Но стрелки блин на полпикселя смещены Как это могло произойти?

  • 10 дек.1 351255

    def smembers(self, name: KeyT) -> Union[Awaitable[Set], Set]: я понимаю, что поддерживать одновременно sync и async версии одного и того же всем лень, но делать вот так - это совершенно не уважать пользователей вашей библиотеки. https://github.com/redis/redis-py/blob/793af91087ee2bd949ba2fa9e0743284cab5cf72/redis/commands/core.py#L3591C9-L3591C13

  • 25 нояб.1 7422015

    всем любителям .env посвящается $ cat dumpenv.py import os print(os.getenv("XXX")) $ cat .env XXX = 1 export XXX=2 $ uv run --env-file=.env ./dumpenv.py 1 $ dotenv run python ./dumpenv.py 2 ещё больше вкусного в комментариях

  • 10 нояб.1 730153

    Есть такая библиотечка - slow-api для ограничения частоты запросов к API. При создании класса Limiter, она сама неявно лезет грузить .env (хотя вроде как должна бы брать конфиг приложения) https://github.com/laurentS/slowapi/blob/master/slowapi/extension.py#L160 Что ещё интереснее - она грузит его с помощью функций Starlette, которые не имеют никакого отноешения к python-dotenv. Если python-dotenv умеет в корректную обработку кавычек и всякую магию типа подстановки переменных и слова export, то тут свой "формат", а точнее сделанная на коленке примитивная обработка https://github.com/Kludex/starlette/blob/main/starlette/config.py#L111C1-L121C27

  • Какой-то официальный SDK для платформы связанной с AI. with ThreadPoolExecutor(max_workers=8) as executor: image_annotations = executor.map(__to_coco_annotation, params) В глубинной функции создаётся тредпул. Всегда 8 потоков, независимо от системы. Да ещё и на каждой итерации цикла. В этом модуле ThreadPoolExecutor три раза используется github.com/fastlabel/fastlabel-python-sdk/blob/main/fastlabel/converters.py#L87-L88

  • https://git.yoomoney.ru/projects/SDK/repos/yookassa-sdk-python/browse/src/yookassa/configuration.py#47

  • Мне кажется, или что-то не то? https://docs.zubanls.com/en/latest/installation.html

  • Казалось бы что может быть не так с этим полем, обозначающем расстояние (например, между сетевыми устройствами)? # Stores the normalized distance (in meters) for database ordering _abs_distance = models.DecimalField( max_digits=10, decimal_places=4, blank=True, null=True, ) Это целых 1000км. Кому придет в голову вводить такое расстояние между устройствами в сети? Да легко, делаем сейчас backbone сеть по США, между датацентрами расстояние около 2000км, при попытке сохранить такое значение валится обращение к БД с ошибкой "numeric field overflow" Если вы зачем-то решили ограничить размер поля, сильно подумайте зачем вы это делаете, что экономите и точно ли хватит места для всех юзеров? Кроме этого я видел сценарий, когда под название пакета выделяли varchar(20) (поймали на приложении с названием пакета около 40 символов) и кучу других кейсов.

  • Импорты типов под if TYPE_CHECKING иногда допустимы, но часто приводят к проблемам, потому что типы доступны для чекера, но недоступны для рантайма - в результате если рантайм что-то с ними делает (хотя бы просто юзает как метки) - у вас всё сломано. Однако есть люди, которые целы либы делают в которых типы невозможно импортировать в рантайме, при том что они есть в pyi файлах https://github.com/developmentseed/obstore/blob/8dc53c66745c91c91be9ba7be72ce8aa48b4324b/obstore/python/obstore/store.py#L12

  • У меня есть пакет с заполненным __init__.py в котором есть аккуратно заполненный __all__. Так почему vscode не предлагает оттуда имена для импорта вообще, а лезет куда-то в недра? Он должен был предложить from dishka import provide но вместо этого куда-то полез

  • https://pandas.pydata.org/docs/reference/api/pandas.NaT.html #nats

Говнокод от @Tishka17 & @vlade11115 — tgindex