Biblioteca de identificação de arquivos para Python.
Dado um arquivo (ou alguma informação sobre um arquivo), retorne um conjunto de tags padronizadas identificando o que é o arquivo.
pip install identify
Se você tiver um arquivo real no disco, poderá obter o máximo de informações possível (um superconjunto de todos os outros métodos):
>> > 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' }
Ao utilizar um arquivo em disco, as verificações realizadas são:
>> > 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
também possui uma API para determinar que tipo de licença está contida em um arquivo. Essa rotina é baseada aproximadamente nas abordagens usadas pelo licenciado (a gema Ruby que o github usa para descobrir a licença de um repositório).
A abordagem que identify
os usos é a seguinte:
Para usar a API, instale via pip install identify[license]
>>> from identify import identify
>>> identify.license_id( ' LICENSE ' )
'MIT'
O valor de retorno da função license_id
é um ID SPDX. Atualmente as licenças são provenientes de Choosealicense.com.
Uma chamada para tags_from_path
faz isto:
Por design, isso significa que não precisamos ler parcialmente os arquivos onde reconhecemos a extensão do arquivo.