Библиотека идентификации файлов для Python.
Учитывая файл (или некоторую информацию о файле), верните набор стандартизированных тегов, определяющих, что это за файл.
pip install identify
Если у вас есть реальный файл на диске, вы можете получить как можно больше информации (расширенный набор всех других методов):
>> > from identify import identify
>> > identify . tags_from_path ( '/path/to/file.py' )
{ 'file' , 'text' , 'python' , 'non-executable' }
>> > identify . tags_from_path ( '/path/to/file-with-shebang' )
{ 'file' , 'text' , 'shell' , 'bash' , 'executable' }
>> > identify . tags_from_path ( '/bin/bash' )
{ 'file' , 'binary' , 'executable' }
>> > identify . tags_from_path ( '/path/to/directory' )
{ 'directory' }
>> > identify . tags_from_path ( '/path/to/symlink' )
{ 'symlink' }
При использовании файла на диске выполняются следующие проверки:
>> > identify . tags_from_filename ( 'file.py' )
{ 'text' , 'python' }
>> > identify . tags_from_interpreter ( 'python3.5' )
{ 'python' , 'python3' }
>> > identify . tags_from_interpreter ( 'bash' )
{ 'shell' , 'bash' }
>> > identify . tags_from_interpreter ( 'some-unrecognized-thing' )
set ()
$ identify-cli --help
usage: identify-cli [-h] [--filename-only] path
positional arguments:
path
optional arguments:
-h, --help show this help message and exit
--filename-only
$ identify-cli setup.py ; echo $?
["file", "non-executable", "python", "text"]
0
$ identify-cli setup.py --filename-only ; echo $?
["python", "text"]
0
$ identify-cli wat.wat ; echo $?
wat.wat does not exist.
1
$ identify-cli wat.wat --filename-only ; echo $?
1
identify
также имеет API для определения типа лицензии, содержащейся в файле. Эта процедура примерно основана на подходах, используемых лицензиатом (драгом Ruby, который GitHub использует для определения лицензии для репозитория).
Подход к identify
использования заключается в следующем:
Чтобы использовать API, установите через pip install identify[license]
>>> from identify import identify
>>> identify.license_id( ' LICENSE ' )
'MIT'
Возвращаемое значение функции license_id
— это идентификатор SPDX. В настоящее время лицензии получены с сайта Choosealicense.com.
Вызов tags_from_path
делает следующее:
По замыслу это означает, что нам не нужно частично читать файлы, расширение которых мы распознаем.