Bibliothèque d'identification de fichiers pour Python.
Étant donné un fichier (ou des informations sur un fichier), renvoie un ensemble de balises standardisées identifiant ce qu'est le fichier.
pip install identify
Si vous avez un fichier réel sur le disque, vous pouvez obtenir le plus d'informations possible (un surensemble de toutes les autres méthodes) :
>> > 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' }
Lors de l'utilisation d'un fichier sur disque, les vérifications effectuées sont :
>> > 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
dispose également d'une API pour déterminer quel type de licence est contenu dans un fichier. Cette routine est à peu près basée sur les approches utilisées par le titulaire de licence (la gemme rubis que github utilise pour déterminer la licence d'un dépôt).
La démarche qui identify
les usages est la suivante :
Pour utiliser l'API, installez via pip install identify[license]
>>> from identify import identify
>>> identify.license_id( ' LICENSE ' )
'MIT'
La valeur de retour de la fonction license_id
est un identifiant SPDX. Actuellement, les licences proviennent de Choosealicense.com.
Un appel à tags_from_path
fait ceci :
De par leur conception, cela signifie que nous n'avons pas besoin de lire partiellement les fichiers dont nous reconnaissons l'extension de fichier.