Biblioteca de identificación de archivos para Python.
Dado un archivo (o alguna información sobre un archivo), devuelve un conjunto de etiquetas estandarizadas que identifican qué es el archivo.
pip install identify
Si tiene un archivo real en el disco, puede obtener la mayor información posible (un superconjunto de todos los demás 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' }
Al utilizar un archivo en disco, las comprobaciones realizadas son:
>> > 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
también tiene una API para determinar qué tipo de licencia está contenida en un archivo. Esta rutina se basa aproximadamente en los enfoques utilizados por el licenciatario (la gema Ruby que usa github para determinar la licencia de un repositorio).
El enfoque que identify
los usos es el siguiente:
Para usar la API, instálela mediante pip install identify[license]
>>> from identify import identify
>>> identify.license_id( ' LICENSE ' )
'MIT'
El valor de retorno de la función license_id
es una identificación SPDX. Actualmente las licencias provienen de Choosealicense.com.
Una llamada a tags_from_path
hace esto:
Por diseño, esto significa que no necesitamos leer parcialmente los archivos donde reconocemos la extensión del archivo.