URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 126369
[ Назад ]

Исходное сообщение
"В 3.6% протестированных Python-репозиториев выявлены ошибки, связанные с пропущенными запятыми"

Отправлено opennews , 08-Янв-22 10:43 
Опубликованы результаты исследования подверженности кода на языке Python ошибкам, связанным с некорректным использованием запятых в коде. Проблемы вызваны тем, что при перечислениях Python автоматически объединяет строки в списке, если они не разделены запятой, а также обрабатывает значение, как кортеж, если после значения следует запятая. Проведя автоматизированный анализ 666  GitHub-репозиториев с кодом на языке Python исследователи выявили возможные проблемы с запятыми в 5% изученных проектов...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=56470


Содержание

Сообщения в этом обсуждении
"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 10:43 
Это вам не сишка!

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 10:58 
ирония в том, что стандартный интерпретатор написан на Си, и очень много питоновских фич работают шустро благодаря именно его оптимизации

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено rshadow , 08-Янв-22 19:42 
Да большинство языков так. А потом делают отдельный проект с реализацией интерпретатора языка на самом же языке.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Здрасьте , 08-Янв-22 21:45 
PyPy написан на Пайтоне и работает быстрее того, что написан на Си.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено trdm , 09-Янв-22 09:09 
да никогда такого не будет и не было.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Мира , 09-Янв-22 18:48 
PyPy не написан на Python. Он написан на RPython, который транслирован в C и скомпилирован.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 19:23 
> PyPy не написан на Python. Он написан на RPython, который транслирован в C и скомпилирован.

Ыксперты, мля ...
PyPy JIT написан на подмножестве питона (RPython), который напрямую генерирует машинный код:
https://github.com/reingart/pypy/blob/master/rpython/jit/bac...


if IS_X86_64:
            mc.MOV_rs(esi.value, WORD*2)
            # push first arg
            mc.MOV_rr(edi.value, ebp.value)
            align = callbuilder.align_stack_words(1)
            mc.SUB_ri(esp.value, (align - 1) * WORD)


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено vitalif , 09-Янв-22 01:05 
шустро cpython не работает. он раз в 10 медленнее node.js. шустро работает только pypy

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено myhand , 09-Янв-22 04:09 
Моя думать, что твоя всерьез целочисленную арифметику не использовал.  Твоя поймет как pypy может сосать.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено n00by , 09-Янв-22 12:02 
Мне тут разрекламировали этот PyPy, на синтетическом тесте показал ощутимый прирост. Перевёл на него emerge в Gentoo, не заметил разницы. Решил, что руки у меня кривые. Но нет, это так и у всех, всего на 35% ускоряет https://blogs.gentoo.org/mgorny/2020/10/06/speeding-up-emerg.../

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено vitalif , 09-Янв-22 15:38 
Ну всё правильно, tracing jit... Прирост максимальный там, где один и тот же блок кода выполняется очень много раз. Ноду не переплюнут, гугл хорошо постарался :-)

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено n00by , 10-Янв-22 11:55 
emerge это утилита для "установки пакетов" типа apt. Строит граф зависимостей и обсчитывает его рекурсивно, то есть в цикле.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Анонн , 08-Янв-22 11:43 
Ты кроме заголовка ничего не читал?
Прямо же в новости написано "При этом проблемы с запятыми не специфичны для Python и часто всплывают в проектах на C/C++" и ссылки на фиксы! Зато первым отметился...

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:10 
90% комментаторов тут такие, даже противно стало заходить в комменты.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 19:30 
> стало

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


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:34 
проблемы с запятыми в си сильно зависят от компиляторов, в неправильных компиляторах часто пробел как ошибка

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним84701 , 08-Янв-22 13:39 
>> Случайно пропущенная запятая в списках, кортежах и множествах, приводящая к объединению строк вместо их интерпретации как отдельных значений
> проблемы с запятыми в си сильно зависят от компиляторов, в неправильных компиляторах часто пробел как ошибка

 
$ echo '#include<stdio.h>                                                        
int main(void) { return  puts("привет" "анонимно""параллельный" "мир");}'| gcc -Wall -Wextra -xc -oнашареальность - && ./нашареальность
приветанонимнопараллельныймир

(ISO/IEC 9899:TC3): " 6. Adjacent string literal tokens are concatenated."

Хорошо вам там, в параллельной вселенной! А в нашей реальности все немного по другому :(


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:28 
Да ты ещё трусы на голову надень, чтобы тебе удобней было, и всё будет хорошо, но только для тебя.

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


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним84701 , 08-Янв-22 14:41 
>>> в неправильных компиляторах часто пробел как ошибка
>> цитата ISO C99 плюс простейший пример прямо в шелл
> Да ты ещё трусы на голову надень, чтобы тебе удобней было, и всё будет хорошо, но только для тебя.

Спешу Вас огорчить -- в нашей реальности ношение трусов на голове как-то не способствует изменению стандарта ЯП.
Так что Ваш опыт нам не подходит, увы :(

> Никогда не пиши код, который оформлен, как в твоём примере, ибо это признак того, что программист - чудак на букву "м"

Какая унылая попытка перевести стрелки ...


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено n00by , 09-Янв-22 12:08 
Лучше бы написали, что там return лишний, а стало быть множество электронов напрасно пострадало от эксперимента. ;)

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:05 
Справедливости ради, с puts() ошибиться не получится - запятые она не примет. И с printf тоже - количество стрингов, если пропустить запятые, не будет совпадать с тем, что в строке-шаблоне.
А вот в питоне беда с этими кортежами и массивами. Вот из недавнего:
Image.open(fname).convert(mode) вернёт 3х мерный массив, если mode='RGB', и двухмерный, если mode='L'. Где логика?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним84701 , 08-Янв-22 15:45 
> Справедливости ради, с puts() ошибиться не получится - запятые она не примет.
> И с printf тоже - количество стрингов, если пропустить запятые, не
> будет совпадать с тем, что в строке-шаблоне.

Ну, в новости приведены вполне реальные примеры ошибок:
https://github.com/EhsanKia/llvm-project/blob/21832121e112d9...


static const std::string DefaultIgnoredParameterTypeSuffixes =
...
                                 "ConstReverseIterator",
                                   "Const_Reverse_Iterator",
                                   "const_reverse_iterator"
                                   "Constreverseiterator",
                                   "constreverseiterator"
...

Что принципильно ничем не отличается от ["issues", "releases" "discover" ...] в
>>> Например, в Sentry в одном из тестов была пропущена запятая между строками "releases" и "discover" в списке, что привело к проверке несуществующего обработчика "/releasesdiscover"
>>>


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Ordu , 08-Янв-22 19:38 
> Справедливости ради, с puts() ошибиться не получится - запятые она не примет.

Не примет, да.

> И с printf тоже - количество стрингов, если пропустить запятые, не будет совпадать с тем, что в строке-шаблоне.

Похрен. Ругнётся варнингом, но скомпилирует. В функцию с эллипсисом, согласно стандарту, можно запихать сколько угодно аргументов. Варнинги -- это уже специальный костыль компилятора, который знает про printf и его форматную строку. Если ты напишешь свою реализацию printf, типа "myprintf", то варнингов не будет. gcc позволяет пометить свою функцию как "printf-like", чтоб выполнять проверку аргументов, но если в твоём printf'е будет свой собственный синтаксис форматной строки, то эта пометка лишь сделает ситуацию хуже.

> А вот в питоне беда с этими кортежами и массивами.

В C ровно такая же беда с массивами:

char* strs[8] = {"how", "many" "non-null", "strings" "in" "this", "array" "?"};


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Anonymoustus , 08-Янв-22 19:57 
> с puts() ошибиться

Опытные собаководы рекомендуют функции на f:


fputs()

fscanf()

fprintf()

и т. п.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено pavlinux , 08-Янв-22 16:09 
Детская попытка высера.
> puts("привет"

...

В C можно нах...ячить так, что ни одни парсер, анализатор, человек не вдуплят.    


#include<stdio.h>

int main(void) {

    int value = 1;
    return  printf("value %d" "value+1 %d", "value +2 %d\n", value, value+1, value+2);
}


$ ./a.out
value -412667900 value+1 1


Рекомендую для старта: grep -R va_list /usr/include/  
А не выёб... гуглением стандартов.



"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 16:18 
Ты просто усложнил пример, не показав ничего нового. Зато как наехать так сразу.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним84701 , 08-Янв-22 16:24 
> Детская попытка высера.
>> puts("привет"

 
#include<stdio.h>
int main(void) {
      int value = 0;
   return  printf("value %d", "value+1 %d", "text", value, value + 1);
}

> <stdin>: In function 'int main()':
> <stdin>:5:20: warning: format '%d' expects argument of type 'int', but argument 2 has type 'const char*' [-Wformat=]
> <stdin>:5:20: warning: too many arguments for format [-Wformat-extra-args]

О, демонстрация "как правильно, по взрослому"?

>>> проблемы с запятыми в си сильно зависят от компиляторов, в неправильных компиляторах часто пробел как ошибка
> Рекомендую для старта: grep -R va_list /usr/include/
> А не выёб... гуглением стандартов.

Рекомендую перед ваянием ответа читать тему целиком, а не пытаться выёб..., раздергивая на отдельные части.
ЗЫ:
И новость читать тоже желательно -- _реальные_ примеры для "не вдуплят" там тоже есть.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено pavlinux , 08-Янв-22 16:28 
> Рекомендую перед

Я ж говорю, завязывай с дpoчиловом на идеальный мир ...
Сходи на хитбаб, ознакомься как в реaльном мире живут  с -W -Wall -Wextra  -petantic -ansi -Wstrict- .... итп


Такой муйнёй занимаются только домашние хелловордисты. :D

Когда у тебя в проекте заняты 50 человек, 5-6 языков, три платформы, 4 аппаратные арх.
личные тикеты расписаны до ноября 2022 года ... те не до рассматривания срача от -Wall -Wextra  


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним84701 , 08-Янв-22 16:36 
> Я ж говорю, завязывай с дpoчиловом на идеальный мир ... Сходи на

Я ж говорю, завязывай с чтением с помощью афедрона -- тебе в новости уже привели реальный пример, который не ловится никакими Wall (причем именно из-за стандарта), в отличие от.
И ответ, кстати, был на "в неправильных компиляторах часто пробел как ошибка", что прекрасно демонстрируется с помощью puts, но для этого нужно было читать глазами.

> Такой муйнёй занимаются только домашние хелловордисты. :D

"Отмазывайся теперь!" (с)


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено user , 08-Янв-22 19:44 
Что мешает добавить второй способ сборки и спокойно там ковыряться когда время есть?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено _kp , 08-Янв-22 22:01 
int main[-1]; //это корректный однострочник на Си с интересным эффектом ;)

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Anonymoustus , 08-Янв-22 19:54 
Однострочники на Сишечке — это прекрасно!

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:26 
Это каким дундуком надо быть, чтобы на Си не ставить запятые? У Си вообще самый удобный синтаксис, просто писать на нём надо так, чтобы программа была прозрачной, а не хитровыеб-ной, чтоб "никто не догадался".

Лгут эти тестировщики.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено макпыф , 08-Янв-22 10:46 
> Проведя анализ 666 GitHub-репозиториев

Они сатанисты?


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:25 
Хуже, они — питонисты.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено uis , 08-Янв-22 13:27 
Дьявол кроется в мелочах. Возможно они латентные растоманы.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Senior Python Developer , 09-Янв-22 13:56 
Хнык-хнык, зачем абижаете, какие тут все токсичные душнилы, маааам

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Skif , 09-Янв-22 15:50 
Не плачь, юный падавал, с тобой ML и DS, async и ...не, про GIL не будем. А ещё хорошая сетка зарплат, востребованность и зависть непитонистов.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено OpenEcho , 08-Янв-22 14:28 
Но, они змеи, питоны

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 16:38 
Датасатанисты! Tensorflow жы

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 16-Янв-22 16:30 
Они PythoRUSTы.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Онаним , 08-Янв-22 10:46 
А сколько их, связанных с пропущенными пробелами, даже представить страшно.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:02 
не страшно, Ваганыч, тк на пробелы ругнется компилятор байт-кода

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:08 
Не так опасно. Они же не файлы конфигурации для модного нетплана пишут.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:39 
Хуже - они их парсер пишут.
В котором, к примеру, кусок внутри if оказался снаружи из-за быстрой копипасты без сдвига.

Поэтому оно типа работает, но не так как ожидал копипастер. И никакой анализатор тут не поможет.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено КО , 08-Янв-22 15:16 
Работает - не трогай

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Dmitry , 14-Янв-22 19:27 
пахнет - не трогай

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 10:46 
Нельзя казнить помиловать

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 10:47 
Казнить нельзя помиловать

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:06 
писать комментарии на OpenNET необязательно думать

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 12:08 
писать комментарии на OpenNET необязательно, думать

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 21:26 
дефис пропустил.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Рмщъ , 08-Янв-22 22:50 
Тире

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 10:49 
В том числе и поэтому, человека, который утверждает, что он программист на питоне, гнать надо сразу с порога. Да и вообще, с подозрением относиться к тем, у кого этот ЯП в резюме указан.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:07 
скриптота лишней не будет в резюме, это точно

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:38 
bash, ruby, go?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено YetAnotherOnanym , 08-Янв-22 12:35 
"sh, awk" же!

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:19 
Немножко логика хромала, но я всё чётко объяснил
Нажав на кнопочку Отправить, камент я важный разместил

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:43 
покажи свой гитхаб, трепло, посмотрим, какой ты программист

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:57 
>гитхаб

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено OpenEcho , 08-Янв-22 14:33 
... достал из широких штанин

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:57 
> посмотрим, какой ты программист
> гитхаб

Вы что-то перепутали. Нормальные программисты "этим" не пользуются.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:05 
сам найди, "программист".... Кроме git clone, небось, ничего больше и не знаешь....

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено OpenEcho , 08-Янв-22 14:41 
>  что он программист на питоне, гнать надо сразу с порога.

Писец ... NASA срочно останавливает проекты по обьективному совету анонима с опеннета


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:36 
Уж не этим ли обусловлено то, что NASA уже много лет не способна ничего разработать и нанимает частные компании для разработки новой техники целиком?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено OpenEcho , 08-Янв-22 17:29 
> Уж не этим ли обусловлено...

Не, не этим, т.к. в том же JPL питон не последнюю роль играет

> уже много лет не способна ничего разработать

А кто же тогда готовит тех задания для частных компаний если не НАСА?


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 19:20 
> А кто же тогда готовит тех задания для частных компаний если не НАСА?

Питон для этого не нужен.


> Не, не этим, т.к. в том же JPL питон не последнюю роль играет

Есть достоверные сведения, что на питоне хоть что-то ответственное делают? Для OpenSource математики норма - R, Julia, но не Python.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено OpenEcho , 09-Янв-22 01:16 
> Есть достоверные сведения, что на питоне хоть что-то ответственное делают?

Умение пользоваться гуглом может помочь вам быть не смешным:

https://code.nasa.gov/



"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Не будь васяном , 08-Янв-22 19:09 
Свидетель загнивающего НАСА? 🤣 Как там фобос-в-грунте? Уже всё дно океана исследовал? Когда на Марс? А то марсоходы от загнивающего НАСА уже запарились годами по другой планете нарезать, пока скрепы в океанах тонут 🤣

Привет крайнему запуску Ангара-5, в котором роскосмос снова обгадился. Куда уж там НАСА ахахаха


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 19:23 
Зачем нам тут вспоминать что могла НАСА делать в 90-х, начале 2000-х годов? И питон она тогда точно не использовала.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 20:06 
> Уж не этим ли обусловлено то, что NASA уже много лет не способна

Роспил отдыхает. А ты на сишниках много нопилеш ? Их пару тушек на всю планету, высеров на гитхапе нету, хайпа фигайпа тоже, переделывают по тыщи раз одно и тоже, на таких бюджет не выделишь.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:00 
вайти в айти

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Модный , 08-Янв-22 13:22 
А чо не так? Да нормально.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 16:35 
Одно дело когда ты думал-думал и надумал не ставить запятую, и совсем другое когда ты по невнимательности ее не поставил.
А ЯП это пропускает.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:12 
Вообще забавно, с пропущенной между строками запятой это прямо жиза. Сомневаюсь конечно, что кто-нибудь пропускает запятую в кортеже или добавляет в конце (разве что те, кто никогда не юзал питон прежде, потому что это анриал). Поэтому обычно элементы списков разделяют построчно. То, что ошибки обнаружили только в шляпных проектах, довольно показательно.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:27 
Просто на лицо бескультурная разработка. На прекомите или хотябы в ci должен крутиться линтер(pylint/flake8/black), который все это безобразие не допустит. А с использованием mypy и внедрением type-хинтов ошибок будет выявлено еще больше. Проблема как обычно в людях..

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:00 
Так открывай свой старап линьт питоновские репо за свои деньги.  

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:49 
Больше похоже на сомнительную фичу языка. Если она к таким ошибкам приводит, а выгоды от ее использования практически и нет.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 11:38 
values = (1,)
ааа... да. я помню было наоборот. когда  силами копипасты из строки вида "a, b, c, ..."  в коде получается вот такое
def some_method(self, a, b, c):
  self.a = a,
  self.b = b,
  self.c = c,
и забываешь про эти запятые, темболее никто на синтаксис не ругается. но в процессе работы с этими переменными тщетно силишься понять почему они кортеж, темболее если это датакласс в другом файле который на глаза не попадается.
очевидно под подозрением становятся аргументы метода, особенно если аргументы получаешь из недоверяемого апи. часа полтора дебага.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аскольд , 08-Янв-22 12:05 
питоноидный школодром as is

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 12:19 
Вот не надо, это очень годные фичи. Например, когда у тебя длинная строка, ты разбиваешь её на несколько строк и при этом она сохраняет форматирование и остаётся читаемой. Из пальца высосали.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 12:54 
В нормальных языках строки объединяются специальным оператором, отличным от пробела. Так что если забудешь поставить запятую, то компилятор/интерпретатор ругнётся.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено YetAnotherOnanym , 08-Янв-22 13:01 
AWK, значит, ненормальный...

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено . , 09-Янв-22 10:13 
Ну, скажем так - устаревший на сорок лет. Ему (как и Си) простительно - компьютеры были большие, код простым, мощности надо было экономить, а ломать совместимость нельзя.

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

А, ну да, ну да - зато у нас есть PEP!


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено uis , 08-Янв-22 13:31 
Например?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 01:18 
В пхп - точка; в джаваскрипт - плюс; в ди, если не ошибаюсь, тильда.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено userd , 09-Янв-22 17:25 
> В нормальных языках строки объединяются специальным оператором, отличным от пробела.

В python есть специальный оператор - это '+'.
Конкатенация смежных литералов - https://docs.python.org/3/reference/lexical_analysis.html#st... , вероятно, заимствована из C.

оставим C (вместе с AWK, SNOBOL и другими) на разбор знатокам. В python это скорее всего уже ненужный атавизм - когда-то компилятор был слаб и не умел сворачивать константы -  'a' 'b' обрабатывал во время компиляции, а 'a'+'b' - во время выполнения. Сейчас судя по dis.dis в коде в обоих случаях получается константа 'ab'.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 10-Янв-22 03:21 
Атавизм - не атавизм, но в итоге язык проглатывает пробелы без ошибок. Почему не убрали этот косяк при переходе на 3-ю версию, когда всё-равно обратную совместимость ломали?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено userd , 10-Янв-22 09:47 
Ты такой умный, сделай милость, поищи почему отбросили PEP-3126 (2007, сцуко, год)
https://www.python.org/dev/peps/pep-3126/

и чем закончилось обсуждение предложения Гвидо ван Рассума, наступившего на эти грабли и предложившего удалить конкатенацию смежных строчных литералов -  
https://mail.python.org/pipermail/python-ideas/2013-May/0205...


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 11-Янв-22 03:39 
Да мне глубоко накласть на ваши питонопроблемы с клиническим пробелодрочерством, когда есть более адекватные языки. Сами объясняйте друг-другу, почему вы не можете избавиться от грабель, на которые сами же постоянно и натыкаетесь. А мне в это болото лезть незачем.

Сначала сам же заявил про ненужный атавизм, потом отправил куда-то читать - почему он нужен...


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено anonymous , 08-Янв-22 12:22 
Авторы tensorflow -- это "школодром"?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:59 
А кто они по твоему?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:10 
Тут можно на них посмотреть, и на их работы https://research.google/teams/brain/

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноня , 09-Янв-22 14:01 
Отделяй мух от котлет. Питоня как пхп - есть серьёзные проекты, типа твоего tensorflow, но есть и 95% школоты и вайтишек


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено ptr , 11-Янв-22 08:32 
TensorFlow написан на С++ с использованием CUDA. Для Python только API, причем наравне с API для других языков. Загляните в его исходники, если не верите

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 12:22 
вот до чего отсутствие поцкаля в школьной программе доводит

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:11 
Скорее его былое присутствие. Ибо диагноз.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено uis , 08-Янв-22 13:31 
Не, диагноз - это qbasic

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:56 
у qbasic вообще-то уже адекватный синтаксис был

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено YetAnotherOnanym , 08-Янв-22 12:43 
Это чё, в Питоне бланк между двумя строками - это конкатенация? Тогда пропуск запятой непростителен.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:19 
Не поверишь, в Си тоже

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:00 
>> Это чё, в Питоне бланк между двумя строками - это конкатенация
> Не поверишь, в Си тоже

ты си то вообще видел хоть раз в жизни ?


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Siborgium , 08-Янв-22 14:21 
    $ cat - > main.c
    #include <stdio.h>

    int main(void) {
        puts("Hello" " " "world");
        return 0;
    }
    $ gcc main.c
    $ ./a.out
    Hello world


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:24 
строго говоря, в си это используется только чтобы для удобства чтения разбить очень длинную строку на несколько, поскольку неявная конкатенация возможна только для строковых литералов. Во всех остальных случаях - будьте добры использовать str[n]cat, s[n]printf и т.д.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:48 
Не поверишь, в Питоне также

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено 123456789 , 08-Янв-22 16:19 
ну да, ну да, "также" пока не обернёшь в скобочки

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Здрасьте , 08-Янв-22 21:50 
Если обернёшь, ничего не изменится. Речь о ситуации, когда есть запятая, когда её нету, всё работает в точности, как  Си.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено YetAnotherOnanym , 08-Янв-22 17:09 
> будьте добры использовать str[n]cat,

Опередил.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено 123456789 , 08-Янв-22 16:17 
во-первых, это не "конкатенация"
во-вторых, только для compiletime

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 20:41 
>  puts("Hello" " " "world");

это сахарок конпелятора дурень


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 21:13 
>сахарок конпелятора

Это прописано в стандарте Си. Называется "конкатенацией прилегающих строковых литералов"
Первую ветку комментариев почитай.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 21:23 
Конпелятор об этом сахарке ваще ничего не знает.
Конкатенация происходит *до* конпеляции.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 22:59 
буководрочка доводит до срача доказывания одного и того же. желаете продолжить ? y/N: _

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Ordu , 10-Янв-22 02:12 
> Конпелятор об этом сахарке ваще ничего не знает.
> Конкатенация происходит *до* конпеляции.

Забавное высказывание. Если компилятор об этом сахарке ничего не знает, то кто производит desugaring? (хм... расслащивание?)


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено n00by , 10-Янв-22 12:04 
Так по стандарту вообще нет компилятора, есть фазы трансляции, где выделен препроцессор и линкер. Но по сути он прав:

6. Adjacent string literal tokens are concatenated.
7. White-space characters separating tokens are no longer significant. Each preprocessing token
is converted into a token. The resulting tokens are syntactically and semantically analyzed
and translated as a translation unit.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Ordu , 10-Янв-22 17:52 
> Так по стандарту вообще нет компилятора

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

А чтобы не заниматься буквоедством, надо вернутся на шаг назад и посмотреть о чём вообще тред. А тред о том, что в C, как и в пайтоне, возможно наступить на грабли, забыв запятую. И даже если кому-то удастся доказать, что "это другое", потому что это не вина компилятора, потому что это заговор питонистов, или что компайл-тайм грабли чем-то лучше рантайм-граблей, то грабли от этого никуда не денутся.

В C эти грабли менее опасны, но не по перечисленным выше причинам, а потому что типизация строже, компилятору выдаётся больше данных о типах переменных, аргументов, возвращаемых значениях, и он может проверять. И поэтому чаще случается так, что две строки вместо одной строки (или одна вместо двух) -- это ошибка компиляции.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено ptr , 11-Янв-22 08:49 
Для GCC, чтобы тут не попасться, можно использовать -Wtraditional. А что использовать для Python?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 12-Янв-22 00:00 
Выше где-то писали что линтер помогает.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено ptr , 12-Янв-22 03:27 
> Для GCC, чтобы тут не попасться, можно использовать -Wtraditional. А что использовать
> для Python?

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


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 13:30 
я тоже пропускаю запятые...

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено YetAnotherOnanym , 09-Янв-22 13:18 
> "Здравствуйте! Меня зовут Аноним-с-опеннета, и я тоже пропускаю запятые..."

Пофиксил.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено uis , 08-Янв-22 13:34 
Я даже знаю, где один из таких репозиториев на гх - YosysHQ/prjtrellis ЕМНИП.
PR с исправлением около полу года висит, хотя может уже приняли.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 14:01 
Если все итак работает то зачем?

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Питонист , 08-Янв-22 14:38 
```
for page in 'issues releases discover user-feedback'.split()
```

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено ананоша , 08-Янв-22 17:31 
Мы приняли очень лёгкое решение назначить вас тимлидом в тензорфлоу

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 15:03 
Это они ещё пробелы не считали.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Sergey , 08-Янв-22 15:07 
Так не понятно, эти проги с багами что ли и они не работают ? Ну напишите разрабам и они это закроют.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 16:44 
Синтаксис языка простить нельзя осудить.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 08-Янв-22 20:45 
Синтаксис языка г..но нельзя этим пользоваться.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено T00 , 08-Янв-22 21:30 
Берём паскаль и не паримся.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 10-Янв-22 13:51 
действительно, никто не парится, что там на коленке работает или не работает у студента на хомяке

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено kai3341 , 08-Янв-22 23:06 
Эм. Я смею заметить, что многих ошибок можно было легко избежать, если бы соблюдалось хотя бы PEP8. Знаете, сколько раз я тыкал носом и заставлял писать каждый элемент списка на отдельной строке? Сколько раз я возмущался, что 2 коротких элемента в одной строке не читаются?

А сколько раз константные списки просил выносить из функций наружу?


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено myhand , 09-Янв-22 04:11 
Нэ нада просить.  Нада по рукам чекером стиля бить.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено угу , 09-Янв-22 07:51 
Язык г-но и псевдокомпилятор ничего не проверяет - поэтому мы просто запритим-запритим ниправильные-ниправильные, плахие стили кодинга - вместо того чтобы этим занималась собственно языковая среда. И потом будем плакать, потому что опять какой-то гад нисаблюл.

Причем от уже процитированного выше self.a=a,
никак не защищает.


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 13:05 
> Язык г-но и псевдокомпилятор ничего не проверяет - поэтому мы просто запритим-запритим
> ниправильные-ниправильные, плахие стили кодинга - вместо того чтобы этим занималась собственно
> языковая среда. И потом будем плакать, потому что опять какой-то гад нисаблюл.
>> При этом проблемы с запятыми не специфичны для Python и часто всплывают в проектах на C/C++

А, ну да, "Вынипонимаити! Это другое!"


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 20:00 
После шелла збс, в нём пропустил пробел и о том, что тебе очко порвало, ты узнаешь через полгода, не раньше.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено kai3341 , 10-Янв-22 18:37 
> После шелла збс, в нём пропустил пробел и о том, что тебе очко порвало, ты узнаешь через полгода, не раньше.

true story =(


"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 09-Янв-22 04:35 
Граммар-наци добрались до питона

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноня , 09-Янв-22 14:03 
Питон привёл в индустрию кучу левых людей.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Простоник , 10-Янв-22 11:01 
Наоборот. Индустрия требует большего количества людей. Но вот процент разумных  всегда примерно одинаков, их больше не становится. Значит приходится привлекать и менее способных. Вот потому и python...

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено СССР , 11-Янв-22 00:40 
именно по этому на тиобе он в топе )

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено commiethebeastie , 10-Янв-22 12:00 
basic, fox pro, delphi, php, 1c, js, много таких.

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Gogi , 09-Янв-22 21:13 
Какой шикарный г0вн0язык! Позволяет себе выстрелить в ногу вообще незаряженым пистолетом! :))))) ТАК ВАМ И НАДО!

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено Аноним , 10-Янв-22 00:44 
Кривописцы! )

"В 3.6% протестированных Python-репозиториев выявлены ошибки,..."
Отправлено СССР , 11-Янв-22 00:45 
питон - язык для бакланов.