Module refinery.lib.magic
A cross-platform interface for file type identification using pure-magic-rs.
Expand source code Browse git
"""
A cross-platform interface for file type identification using pure-magic-rs.
"""
from __future__ import annotations
from typing import NamedTuple
from pure_magic_rs import MagicDb
_db = MagicDb()
class MagicType(NamedTuple):
mime: str
description: str
def magicparse(data) -> MagicType:
if not isinstance(data, bytes):
data = bytes(data)
try:
result = _db.best_magic_buffer(data)
return MagicType(result.mime_type, result.message)
except (ValueError, TypeError):
return MagicType('application/octet-stream', 'data')
Functions
def magicparse(data)-
Expand source code Browse git
def magicparse(data) -> MagicType: if not isinstance(data, bytes): data = bytes(data) try: result = _db.best_magic_buffer(data) return MagicType(result.mime_type, result.message) except (ValueError, TypeError): return MagicType('application/octet-stream', 'data')
Classes
class MagicType (mime, description)-
MagicType(mime, description)
Expand source code Browse git
class MagicType(NamedTuple): mime: str description: strAncestors
- builtins.tuple
Instance variables
var mime-
Alias for field number 0
Expand source code Browse git
class MagicType(NamedTuple): mime: str description: str var description-
Alias for field number 1
Expand source code Browse git
class MagicType(NamedTuple): mime: str description: str