Skip to main content

pymft-rs

Python bindings for https://github.com/omerbenamram/mft/.

Installation

Available on PyPi - https://pypi.org/project/mft/.

To install from PyPi - pip install mft

Wheels

Wheels are built using the abi3 tag, so a single wheel works for CPython 3.10 and newer. Free-threaded CPython 3.14 (python3.14t) gets its own cp314t wheel; importing mft there keeps the GIL disabled, and parsers can be created on one thread and consumed on another.

Supported platforms are:

  • Linux x86_64 and aarch64 (manylinux and musllinux; aarch64 and musl are cross-compiled with zig)
  • macOS universal2 (x86_64 + arm64)
  • Windows x86_64

The package ships type stubs (mft.pyi), checked against the compiled module in CI with mypy.stubtest.

Installation from sources

Installation is possible for other platforms by installing from sources.

This requires a Rust compiler and a recent enough Pip.

Run pip install -e .

Usage

A parser can be iterated more than once, and parser.get_entry(5) reads a single entry by number.

Iterating raises the RuntimeError or OSError of an entry or attribute that fails to parse, after stepping past it. Pass skip_errors=True to skip them instead: each one skipped is reported as a RuntimeWarning, which warnings filters can count, log or turn back into errors. Failing to read the file raises either way, and so does reading an attribute_content that fails to parse.

from mft import PyMftParser, PyMftAttributeX10, PyMftAttributeX30

def main():
    parser = PyMftParser("/Users/omerba/Workspace/pymft-rs/samples/MFT", skip_errors=True)
    for entry in parser.entries():
        print(f'Entry ID: {entry.entry_id}')

        for attribute in entry.attributes():
            resident_content = attribute.attribute_content
            if isinstance(resident_content, PyMftAttributeX10):
                print(f'Found an X10 attribute')
                print(f'Modified: {resident_content.modified}')
            if isinstance(resident_content, PyMftAttributeX30):
                print(f'Found an X30 attribute')
                print(f'Modified: {resident_content.modified}')
                print(f'Name: {resident_content.name}')

        print('--------------------------------')

Will print:

Entry ID: 0
Found an X10 attribute
Modified: 2007-06-30 12:50:52.252395+00:00
Found an X30 attribute
Modified: 2007-06-30 12:50:52.252395+00:00
Name: $MFT
--------------------------------
Entry ID: 1
Found an X10 attribute
Modified: 2007-06-30 12:50:52.252395+00:00
Found an X30 attribute
Modified: 2007-06-30 12:50:52.252395+00:00
Name: $MFTMirr
--------------------------------
.....

Metadata

Release files for mft 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mft 0.10.1
File Size Uploaded Provenance Actions
mft-0.10.1.tar.gz 1.3 MB Without provenance Details for mft-0.10.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for mft 0.10.1
File Actions
mft-0.10.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for mft-0.10.1-cp314-cp314t-win_amd64.whl
mft-0.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for mft-0.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl
mft-0.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details for mft-0.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl
mft-0.10.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for mft-0.10.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mft-0.10.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details for mft-0.10.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mft-0.10.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.12+ x86-64 Details for mft-0.10.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
mft-0.10.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for mft-0.10.1-cp310-abi3-win_amd64.whl
mft-0.10.1-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for mft-0.10.1-cp310-abi3-musllinux_1_2_x86_64.whl
mft-0.10.1-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for mft-0.10.1-cp310-abi3-musllinux_1_2_aarch64.whl
mft-0.10.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for mft-0.10.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
mft-0.10.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for mft-0.10.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
mft-0.10.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.12+ x86-64 Details for mft-0.10.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Total release size: 9.4 MB

Release files / mft-0.10.1.tar.gz

Download URL mft-0.10.1.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
7fd6d9572710b6501adf6bd36d4465008b92674755b8b040c7f0a59489185237
BLAKE2b-256 checksum
How to use checksums
88d15767bd3c4678efdc35fa2b6c3b45c5b73420eeef93e747159334e99e448b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-win_amd64.whl

Download URL mft-0.10.1-cp314-cp314t-win_amd64.whl
Size 473.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b78191fb7b50fd57b842a8d964daf3ebe69a663df124be55934955082d883838
BLAKE2b-256 checksum
How to use checksums
c576a241d780723f38303e56f8569bcb4b326f458fb40620a2b4393e8b2d8adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL mft-0.10.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 582.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
160dc60b2544e6f8f9d217ee72c81d872666a223455dc600ef39763d6b8dadce
BLAKE2b-256 checksum
How to use checksums
172f4deb0bfc710aa8ca16fd957547e5ce59b10c1d9d3b0475562dfd530187b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL mft-0.10.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 558.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
17b24f3c4c738a6b298e2a04db91475b7aed202bf3ea1a3f63a7e1c6c269a82d
BLAKE2b-256 checksum
How to use checksums
780eb93a03456399e35a80732d30a68fd16437414694e8f72408880f39ace53c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.10.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 669.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b20a19e712f82969ebd132a37deaa03a10ffd1b3f11531d50c12fac38ad69b3a
BLAKE2b-256 checksum
How to use checksums
43519cd998dc06edc1efa3b3c547d97dbe6b49c34d41dab2e721d3f86d266e63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.10.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 560.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6b2f540b9af428f16576a9a1233d9cb363c97b45e887a6bc053b806ce68db057
BLAKE2b-256 checksum
How to use checksums
c33373cb3effe54b648ed81df94522ee9847a87ec38c6ca342a72f20e3c25cb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.10.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c52137112cdaf47c7e7f78311ce5e39dee40f831234310e3ed29dd2bd8b9017c
BLAKE2b-256 checksum
How to use checksums
930fd2951d5e0dd836c4991e822424bec2ab7a706f8322507654c0e07ee4c5a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-win_amd64.whl

Download URL mft-0.10.1-cp310-abi3-win_amd64.whl
Size 480.6 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d2400f21bab603ad57fc56606be61998e1630ac8c0d4f120bd45b138e8820323
BLAKE2b-256 checksum
How to use checksums
5657328eb5b7bbf7bbffdb437d3bae7dc39318eeed80e7ffa8c302e2e7e3c7c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL mft-0.10.1-cp310-abi3-musllinux_1_2_x86_64.whl
Size 590.6 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
2440a6b05ad8625f458353cc5cfd8c0857ad423bfc926ad49f6400d60d530278
BLAKE2b-256 checksum
How to use checksums
19e5ea2bd753d845f57682d2774c93ffc165b9c83a00e45efb175e68f60cf44d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL mft-0.10.1-cp310-abi3-musllinux_1_2_aarch64.whl
Size 564.6 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
135b53b27696c731ae9afec5d8985f19e727e2867e6b320711fd097d5777846f
BLAKE2b-256 checksum
How to use checksums
3c880d03d95efbbfd5524c24220b63365ed6ea07473a6a6ca9500b1247bf64fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.10.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 679.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
cf1637952ddea9bfd7fee363e19a759997c73074bd76a99cfb2df88651c21505
BLAKE2b-256 checksum
How to use checksums
08fa64e8e3135a94d4dae825c4d8be57997ea810384d0720fab8b3b68516c890
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.10.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 565.7 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
6f28e19936f2abcd7647ebb9ce74b12ada14e037a77da6f41ad28a6ec25eebdc
BLAKE2b-256 checksum
How to use checksums
8b375eb8a89c17dfc08e5336b9da291948e7063e69e881af04ba9af98241a1c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mft-0.10.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.10.1-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 1.2 MB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
36ec59d1f43b84a562316fe8298e6484b19e6f639afb08a8a979aa26fc4cc3c8
BLAKE2b-256 checksum
How to use checksums
37ac90c2cab00085e72cfce0b6ba8ef8d26d6fbb9ad6b39bbb0e598fb72a518f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for mft 0.10.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page