summaryrefslogtreecommitdiffstats
path: root/identify
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2022-01-30 10:54:52 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2022-01-30 10:54:52 +0000
commit3c757c77ff9e4a05c32cf83b31978af92b7bfecf (patch)
treedaca269ce5b47e67d1eedd269b322adff593e24f /identify
parentReleasing debian version 2.4.4-1. (diff)
downloadidentify-3c757c77ff9e4a05c32cf83b31978af92b7bfecf.tar.xz
identify-3c757c77ff9e4a05c32cf83b31978af92b7bfecf.zip
Merging upstream version 2.4.6.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'identify')
-rw-r--r--identify/cli.py5
-rw-r--r--identify/extensions.py3
-rw-r--r--identify/identify.py24
-rw-r--r--identify/interpreters.py1
-rw-r--r--identify/vendor/licenses.py1
5 files changed, 19 insertions, 15 deletions
diff --git a/identify/cli.py b/identify/cli.py
index c61ebe4..bd7a501 100644
--- a/identify/cli.py
+++ b/identify/cli.py
@@ -1,12 +1,13 @@
+from __future__ import annotations
+
import argparse
import json
-from typing import Optional
from typing import Sequence
from identify import identify
-def main(argv: Optional[Sequence[str]] = None) -> int:
+def main(argv: Sequence[str] | None = None) -> int:
parser = argparse.ArgumentParser()
parser.add_argument('--filename-only', action='store_true')
parser.add_argument('path')
diff --git a/identify/extensions.py b/identify/extensions.py
index 508eb9a..b5b9293 100644
--- a/identify/extensions.py
+++ b/identify/extensions.py
@@ -1,3 +1,4 @@
+from __future__ import annotations
EXTENSIONS = {
'adoc': {'text', 'asciidoc'},
'ai': {'binary', 'adobe-illustrator'},
@@ -79,6 +80,7 @@ EXTENSIONS = {
'idr': {'text', 'idris'},
'inc': {'text', 'inc'},
'ini': {'text', 'ini'},
+ 'inl': {'text', 'inl', 'c++'},
'ino': {'text', 'ino', 'c++'},
'inx': {'text', 'xml', 'inx'},
'ipynb': {'text', 'jupyter'},
@@ -177,6 +179,7 @@ EXTENSIONS = {
'spec': {'text', 'spec'},
'sql': {'text', 'sql'},
'ss': {'text', 'scheme'},
+ 'sty': {'text', 'tex'},
'styl': {'text', 'stylus'},
'sv': {'text', 'system-verilog'},
'svelte': {'text', 'svelte'},
diff --git a/identify/identify.py b/identify/identify.py
index e61626f..2bf2125 100644
--- a/identify/identify.py
+++ b/identify/identify.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
import errno
import math
import os.path
@@ -7,10 +9,6 @@ import stat
import string
import sys
from typing import IO
-from typing import List
-from typing import Optional
-from typing import Set
-from typing import Tuple
from identify import extensions
from identify import interpreters
@@ -39,7 +37,7 @@ _ALL_TAGS.update(*interpreters.INTERPRETERS.values())
ALL_TAGS = frozenset(_ALL_TAGS)
-def tags_from_path(path: str) -> Set[str]:
+def tags_from_path(path: str) -> set[str]:
try:
sr = os.lstat(path)
except (OSError, ValueError): # same error-handling as `os.lexists()`
@@ -85,7 +83,7 @@ def tags_from_path(path: str) -> Set[str]:
return tags
-def tags_from_filename(path: str) -> Set[str]:
+def tags_from_filename(path: str) -> set[str]:
_, filename = os.path.split(path)
_, ext = os.path.splitext(filename)
@@ -107,7 +105,7 @@ def tags_from_filename(path: str) -> Set[str]:
return ret
-def tags_from_interpreter(interpreter: str) -> Set[str]:
+def tags_from_interpreter(interpreter: str) -> set[str]:
_, _, interpreter = interpreter.rpartition('/')
# Try "python3.5.2" => "python3.5" => "python3" until one matches.
@@ -141,7 +139,7 @@ def file_is_text(path: str) -> bool:
return is_text(f)
-def _shebang_split(line: str) -> List[str]:
+def _shebang_split(line: str) -> list[str]:
try:
# shebangs aren't supposed to be quoted, though some tools such as
# setuptools will write them with quotes so we'll best-guess parse
@@ -155,8 +153,8 @@ def _shebang_split(line: str) -> List[str]:
def _parse_nix_shebang(
bytesio: IO[bytes],
- cmd: Tuple[str, ...],
-) -> Tuple[str, ...]:
+ cmd: tuple[str, ...],
+) -> tuple[str, ...]:
while bytesio.read(2) == b'#!':
next_line_b = bytesio.readline()
try:
@@ -177,7 +175,7 @@ def _parse_nix_shebang(
return cmd
-def parse_shebang(bytesio: IO[bytes]) -> Tuple[str, ...]:
+def parse_shebang(bytesio: IO[bytes]) -> tuple[str, ...]:
"""Parse the shebang from a file opened for reading binary."""
if bytesio.read(2) != b'#!':
return ()
@@ -204,7 +202,7 @@ def parse_shebang(bytesio: IO[bytes]) -> Tuple[str, ...]:
return cmd
-def parse_shebang_from_file(path: str) -> Tuple[str, ...]:
+def parse_shebang_from_file(path: str) -> tuple[str, ...]:
"""Parse the shebang given a file path."""
if not os.path.lexists(path):
raise ValueError(f'{path} does not exist.')
@@ -231,7 +229,7 @@ def _norm_license(s: str) -> str:
return s.strip()
-def license_id(filename: str) -> Optional[str]:
+def license_id(filename: str) -> str | None:
"""Return the spdx id for the license contained in `filename`. If no
license is detected, returns `None`.
diff --git a/identify/interpreters.py b/identify/interpreters.py
index fde9e25..110a29c 100644
--- a/identify/interpreters.py
+++ b/identify/interpreters.py
@@ -1,3 +1,4 @@
+from __future__ import annotations
INTERPRETERS = {
'ash': {'shell', 'ash'},
'awk': {'awk'},
diff --git a/identify/vendor/licenses.py b/identify/vendor/licenses.py
index 3478d0f..14ebfb3 100644
--- a/identify/vendor/licenses.py
+++ b/identify/vendor/licenses.py
@@ -1,3 +1,4 @@
+from __future__ import annotations
LICENSES = (
(
'0BSD',