Size: a a a

2020 February 22

SM

Serge Matveenko in SPb Python
Max Block
Посмотрел. Если тесты можно параметром -excl как-то самому вырезать, то с комментариями никак.

А вот убрать из поиска слово python это хорошая идея. https://github.com/flosse/sloc — вот эта тулза комментарии учитывает отдельно.
Вроде как я даже её трогал и она работала, на сколько я помню
источник

S

Stanislav in SPb Python
Serge Matveenko
Попробуй тут поискать https://pyvideo.org/
Спасибо! Как-то с телефона поиск там не работает, заценю позже.
источник

MB

Max Block in SPb Python
Serge Matveenko
Вроде как я даже её трогал и она работала, на сколько я помню
Нашел тулзу еще лучше, чем solc: https://github.com/boyter/scc

- написана на го, реально очень быстрая
- очень просто подсчитать суммарно по микросервисам: scc project1 project2 project3…
- сама понимает, что не надо лезть в node_modules, .venv папки
- учитывает комментарии
- просто устанавливается: brew install scc

Печатает в консоль такой результат:
───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
Python                     138      5150      904        64     4182        479
HTML                        25      1763      180         0     1583          0
YAML                        14       276       34         0      242          0
Plain Text                  11        38        6         0       32          0
TOML                         5       169        5         0      164          0
gitignore                    5        66        3         0       63          0
Shell                        3         9        0         3        6          0
───────────────────────────────────────────────────────────────────────────────
Total                      201      7471     1132        67     6272        479
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop $185,725
Estimated Schedule Effort 8.092114 months
Estimated People Required 2.718719
───────────────────────────────────────────────────────────────────────────────
источник

YV

Yuliya Volkova in SPb Python
Serge Matveenko
Чем это красиво? Чистые функции рядом одна с другой, на мой взгляд, гораздо красивее
Ну тебе, например, зачем-то нужны декораторы, или если ты хочешь сделать функцию генерирующую другие функции. Эти кейсы есть и да их можно обработать но nested функции тут подходят больше
источник

YV

Yuliya Volkova in SPb Python
Никто не говорит о том, чтобы просто функцию в функцию без надобности пихать
источник

AN

Aleksey Nakoryakov in SPb Python
Max Block
Приветствую!

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

Я смог нагуглить лишь pygount. Но эта совсем уж простая тулза. Не делает summary по проекту, нет возможности просто исключить код тестов.
Есть вполне универсальная утилита cloc. В плане, без привязки к языку
источник

p

pragus in SPb Python
Хороший подход, на длинных if/else будет быстрее даже
источник

p

pragus in SPb Python
Serge Matveenko
Вызов функции в питоне - очень дорого
Прощайте декораторы?
источник

p

pragus in SPb Python
А есть кто использует numba?
источник

SM

Serge Matveenko in SPb Python
Yuliya Volkova
Ну тебе, например, зачем-то нужны декораторы, или если ты хочешь сделать функцию генерирующую другие функции. Эти кейсы есть и да их можно обработать но nested функции тут подходят больше
Декораторы и фабрики - это понятно, я имел ввиду nested функции без специального назначения, просто используемые внутри внешней как обычные функции.
источник

SM

Serge Matveenko in SPb Python
Yuliya Volkova
Никто не говорит о том, чтобы просто функцию в функцию без надобности пихать
Я бы суммировал, что объявлять функцию внутри другой имеет смысл только если ты первую возвращаешь из второй.
источник

SM

Serge Matveenko in SPb Python
pragus
Прощайте декораторы?
Иногда, для оптимизации - да.
источник

S

Stan in SPb Python
Yuliya Volkova
Но если с питоном повсеместно использовать бездумно - просто тормозишь код в разы
В разы ли? Быстрый гуглёж даёт два поста на SO, https://stackoverflow.com/questions/14055843/what-is-the-performance-overhead-of-nested-functions https://stackoverflow.com/questions/7839632/is-there-an-overhead-when-nesting-functions-in-python в которых говорится об уменьшении производительности на 30%. Что не очень мало, но и не особо много. К тому же, речь о функции, которая выполняется большую часть времени на CPU, а если в проекте есть такой кусок, и вы в него упираетесь, то там уж лучше на другой язык перейти, чем за такое бороться.
источник

YV

Yuliya Volkova in SPb Python
Stan
В разы ли? Быстрый гуглёж даёт два поста на SO, https://stackoverflow.com/questions/14055843/what-is-the-performance-overhead-of-nested-functions https://stackoverflow.com/questions/7839632/is-there-an-overhead-when-nesting-functions-in-python в которых говорится об уменьшении производительности на 30%. Что не очень мало, но и не особо много. К тому же, речь о функции, которая выполняется большую часть времени на CPU, а если в проекте есть такой кусок, и вы в него упираетесь, то там уж лучше на другой язык перейти, чем за такое бороться.
Возможно я некорректно использовала ‘в разы’, но разница заметная, лучше посмотреть просто на реальные цифры
источник

YV

Yuliya Volkova in SPb Python
Надо будет поиграться потом
источник

YV

Yuliya Volkova in SPb Python
Ну и кейсы по ссылкам - не видно обращения к внутренним коллабл
источник

YV

Yuliya Volkova in SPb Python
Я потом как у компа буду - кину семпл о чем я
источник

YV

Yuliya Volkova in SPb Python
Так проще будет )
источник

S

Stan in SPb Python
Yuliya Volkova
Ну и кейсы по ссылкам - не видно обращения к внутренним коллабл
источник

p

pragus in SPb Python
Serge Matveenko
Иногда, для оптимизации - да.
Для оптимизации просто кусок на кода на си ))) или просто переписывание на go ;)))
источник