skillfed

puremagic

Pure python implementation of magic file detection

puremagic v2.2.0 7.5M downloads/30d#1,725 on PyPI242
Permissive license MIT Active released

What it is and what it does

puremagic is a pure Python library that identifies file types by examining magic numbers and file content. It serves as a lightweight, dependency-free alternative to python-magic/libmagic, making it suitable for cross-platform use without requiring system libraries. The package implements functions like from_file() and from_string() for basic identification, plus more detailed magic_file() and magic_stream() methods that return all possible matches ranked by confidence.

Since version 2.0, puremagic includes a deep scan system that performs content-aware analysis beyond simple magic number matching, improving accuracy for formats like Office documents, text files, CSV, MP3, Python source, JSON, HDF5, email, and scientific formats. Deep scan is enabled by default but can be disabled via the PUREMAGIC_DEEPSCAN environment variable. The package also includes a command-line interface for batch file identification.

Use it for:

  • Identify uploaded file types in web applications without installing system dependencies like libmagic.
  • Batch scan directories to classify files by format and MIME type across different operating systems.
  • Validate file authenticity by confirming magic numbers match expected formats before processing.
  • Detect and distinguish between similar formats (e.g., Office xlsx vs. OpenDocument odt) via deep scan.
  • Analyze scientific data files (HDF5, VCF, SAM, GFF) with format-specific validation built in.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Identifies file types by analyzing magic numbers and file content, with zero runtime dependencies and cross-platform support.

Yes. Zero runtime dependencies, active maintenance, permissive MIT license, and no known vulnerabilities make this a low-risk choice. Install friction is minimal. Use it if you need file type detection without system library dependencies or if you want content-aware analysis beyond simple magic number matching. The Python 3.12+ requirement is a constraint but not a blocker for modern projects.

Install

puremagic on PyPI

pip

pip install puremagic

uv

uv add puremagic

poetry

poetry add puremagic

Installing puremagic

Before you install

Low install friction with no runtime dependencies. Active maintenance with recent releases; last commit 2026-04-09 and 128 days since latest release.

License in practice

MIT license permits commercial and private use with minimal restrictions; attribution required.

Quickstart

import puremagic

# Identify file from path
ext = puremagic.from_file('test.gif')
# Returns: '.gif'

# Get all matches with confidence
results = puremagic.magic_file('test.gif')
# Returns: [['.gif', 'image/gif', 'Graphics interchange format file (GIF87a)', 0.7], ...]

Requires Python 3.12 or later; Python 3.7–3.11 users must use the 1.x release chain.

Verify before relying

  • Exact count of supported file formats and how it compares to libmagic coverage
  • Performance benchmarks against libmagic or other alternatives
  • Accuracy metrics for deep scan across the supported format categories

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.12)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 128 days since the last release
Last repo commit
First released
Downloads 7,537,817/month — #1,725 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: puremagic-2.2.0-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: PyPyTopic :: Utilities

Tags

file type detectionmagic number identificationfile format recognitionmime type detectionpure python file identificationlibmagic alternativecontent-based file detection
file-identificationcross-platformzero-dependencies

More Utilities packages