| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- Subject: Magic.__init__: add kwargs to enable/disable different types of magic detection
- Origin: upstream, commit 0.4.27-21-gfd279e0 <https://github.com/ahupp/python-magic/commit/0.4.27-21-gfd279e0>
- Author: Robert Scott <code@humanleg.org.uk>
- Date: Sat Oct 7 18:18:08 2023 +0100
- --- a/magic/__init__.py
- +++ b/magic/__init__.py
- @@ -40,7 +40,10 @@
-
- def __init__(self, mime=False, magic_file=None, mime_encoding=False,
- keep_going=False, uncompress=False, raw=False, extension=False,
- - follow_symlinks=False):
- + follow_symlinks=False, check_tar=True, check_soft=True,
- + check_apptype=True, check_elf=True, check_text=True,
- + check_cdf=True, check_csv=True, check_encoding=True,
- + check_json=True, check_simh=True):
- """
- Create a new libmagic wrapper.
-
- @@ -69,6 +72,27 @@
- if follow_symlinks:
- self.flags |= MAGIC_SYMLINK
-
- + if not check_tar:
- + self.flags |= MAGIC_NO_CHECK_TAR
- + if not check_soft:
- + self.flags |= MAGIC_NO_CHECK_SOFT
- + if not check_apptype:
- + self.flags |= MAGIC_NO_CHECK_APPTYPE
- + if not check_elf:
- + self.flags |= MAGIC_NO_CHECK_ELF
- + if not check_text:
- + self.flags |= MAGIC_NO_CHECK_TEXT
- + if not check_cdf:
- + self.flags |= MAGIC_NO_CHECK_CDF
- + if not check_csv:
- + self.flags |= MAGIC_NO_CHECK_CSV
- + if not check_encoding:
- + self.flags |= MAGIC_NO_CHECK_ENCODING
- + if not check_json:
- + self.flags |= MAGIC_NO_CHECK_JSON
- + if not check_simh:
- + self.flags |= MAGIC_NO_CHECK_SIMH
- +
- self.cookie = magic_open(self.flags)
- self.lock = threading.Lock()
-
- @@ -411,10 +435,16 @@
- MAGIC_NO_CHECK_SOFT = 0x004000 # Don't check magic entries
- MAGIC_NO_CHECK_APPTYPE = 0x008000 # Don't check application type
- MAGIC_NO_CHECK_ELF = 0x010000 # Don't check for elf details
- -MAGIC_NO_CHECK_ASCII = 0x020000 # Don't check for ascii files
- -MAGIC_NO_CHECK_TROFF = 0x040000 # Don't check ascii/troff
- -MAGIC_NO_CHECK_FORTRAN = 0x080000 # Don't check ascii/fortran
- -MAGIC_NO_CHECK_TOKENS = 0x100000 # Don't check ascii/tokens
- +MAGIC_NO_CHECK_TEXT = 0x020000 # Don't check for ascii files
- +MAGIC_NO_CHECK_ASCII = 0x020000 # Deprecated alias for MAGIC_NO_CHECK_TEXT
- +MAGIC_NO_CHECK_TROFF = 0x040000 # Don't check ascii/troff (deprecated)
- +MAGIC_NO_CHECK_FORTRAN = 0x080000 # Don't check ascii/fortran (deprecated)
- +MAGIC_NO_CHECK_TOKENS = 0x100000 # Don't check ascii/tokens (deprecated)
- +MAGIC_NO_CHECK_CDF = 0x0040000 # Don't check for CDF files
- +MAGIC_NO_CHECK_CSV = 0x0080000 # Don't check for CSV files
- +MAGIC_NO_CHECK_ENCODING = 0x0200000 # Don't check text encodings
- +MAGIC_NO_CHECK_JSON = 0x0400000 # Don't check for JSON files
- +MAGIC_NO_CHECK_SIMH = 0x0800000 # Don't check for SIMH tape files
-
- MAGIC_PARAM_INDIR_MAX = 0 # Recursion limit for indirect magic
- MAGIC_PARAM_NAME_MAX = 1 # Use count limit for name/use magic
- --- a/magic/__init__.pyi
- +++ b/magic/__init__.pyi
- @@ -11,7 +11,7 @@
- flags: int = ...
- cookie: Any = ...
- lock: threading.Lock = ...
- - def __init__(self, mime: bool = ..., magic_file: Optional[Any] = ..., mime_encoding: bool = ..., keep_going: bool = ..., uncompress: bool = ..., raw: bool = ..., extension: bool = ..., follow_symlinks: bool = ...) -> None: ...
- + def __init__(self, mime: bool = ..., magic_file: Optional[Any] = ..., mime_encoding: bool = ..., keep_going: bool = ..., uncompress: bool = ..., raw: bool = ..., extension: bool = ..., follow_symlinks: bool = ..., check_tar: bool = ..., check_soft: bool = ..., check_apptype: bool = ..., check_elf: bool = ..., check_text: bool = ..., check_encoding: bool = ..., check_json: bool = ..., check_simh: bool = ...) -> None: ...
- def from_buffer(self, buf: Union[bytes, str]) -> Text: ...
- def from_file(self, filename: Union[bytes, str, PathLike]) -> Text: ...
- def from_descriptor(self, fd: int, mime: bool = ...) -> Text: ...
- @@ -74,10 +74,16 @@
- MAGIC_NO_CHECK_SOFT: int
- MAGIC_NO_CHECK_APPTYPE: int
- MAGIC_NO_CHECK_ELF: int
- +MAGIC_NO_CHECK_TEXT: int
- MAGIC_NO_CHECK_ASCII: int
- MAGIC_NO_CHECK_TROFF: int
- MAGIC_NO_CHECK_FORTRAN: int
- +MAGIC_NO_CHECK_CDF: int
- +MAGIC_NO_CHECK_CSV: int
- MAGIC_NO_CHECK_TOKENS: int
- +MAGIC_NO_CHECK_ENCODING: int
- +MAGIC_NO_CHECK_JSON: int
- +MAGIC_NO_CHECK_SIMH: int
- MAGIC_PARAM_INDIR_MAX: int
- MAGIC_PARAM_NAME_MAX: int
- MAGIC_PARAM_ELF_PHNUM_MAX: int
|