Как Github вычисляет долю языков в коде проекта?

#github

#github

Вопрос:

Проекты на GitHub имеют график языков, который вычисляет долю конкретного языка программирования в проекте.

введите описание изображения здесь

Я бы наивно подумал, что самый простой подход — просмотреть все файлы с заданным расширением в проекте и суммировать количество строк (слов или символов), а затем эта сумма для определенного языка делится на сумму для всех языков.

Например, если проекты содержат .py файлы со [200, 100, 500] строками, а .cpp файлы со [800, 1600] строками, я бы ожидал, что вычисленное соотношение будет :

  • 66,6% C
  • 33,3% Python

Однако для прикрепленного изображения в файлах гораздо больше кода (строк / слов) .py , чем в .ipynb .

Следовательно, должна быть другая стратегия для вычисления доли. Как именно?

Комментарии:

1. Как вы посчитали количество строк в записной книжке? A .ipynb — это файл JSON, который также содержит все метаданные и выходные данные (изображения в кодировке base64), поэтому, если эти строки будут подсчитаны, это будет намного больше, чем код, который вы фактически записали во входные ячейки.

Ответ №1:

Я нашел ответ здесь: https://softwareengineering.stackexchange.com/a/156653

В Linguist он использует размеры файлов для определения процентного соотношения языков.

Комментарии:

1. Размер файла имеет смысл.