Skip to content

Index

utils

Utility functions for axm-edit.

is_binary(path)

Return True if the file appears binary.

Detection: null bytes OR >30% non-printable bytes (excluding tab, newline, carriage-return).

Source code in packages/axm-edit/src/axm_edit/utils/__init__.py
Python
def is_binary(path: Path) -> bool:
    """Return True if the file appears binary.

    Detection: null bytes OR >30% non-printable bytes (excluding
    tab, newline, carriage-return).
    """
    try:
        chunk = path.read_bytes()[:_MAX_BYTES_BINARY_CHECK]
    except OSError:
        return False

    if not chunk:
        return False

    if b"\x00" in chunk:
        return True

    nonprintable = sum(
        1 for b in chunk if b < _NONPRINTABLE_UPPER and b not in _WHITESPACE
    )
    return nonprintable / len(chunk) > _NONPRINTABLE_THRESHOLD