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.0

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.0
File Size Uploaded Provenance Actions
mft-0.10.0.tar.gz 1.3 MB Without provenance Details for mft-0.10.0.tar.gz

Built distributions (wheels)

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

Total release size: 9.3 MB

Release files / mft-0.10.0.tar.gz

Download URL mft-0.10.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
f0b932af2ace6cae4d70b98e876d3e396bc35c820f10afb31622c9183d9cda49
BLAKE2b-256 checksum
How to use checksums
1fee076a93e0b2be42636574abd8c8b0720770843cb1e24de07f02cfc3e33c03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-win_amd64.whl

Download URL mft-0.10.0-cp314-cp314t-win_amd64.whl
Size 471.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
13a6b87b22e611d62f81f00b6abba9705cc11a424422fde03fee89471c31e16b
BLAKE2b-256 checksum
How to use checksums
1d8b6e6d936e758ddcd303fc3f27d900d4c36d8c906549486d35dd2c444cd2d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL mft-0.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 581.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
54e36edf6621d588de1bd78e5fbbbd7fc230b8dbb21e242c16d438ede012ff5e
BLAKE2b-256 checksum
How to use checksums
edcda653984ed6ff577297ab8e7d98abbca3375764eacfce2a3c0fbb1ca96cab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL mft-0.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 557.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c66366f7333ae4b43743ad4e9a199be757bc0fe41bbea44f482c10a33a83ba7b
BLAKE2b-256 checksum
How to use checksums
9940114f3c7e71b15d1cd01107724afb84cf086d0797ae34bca73ca93e4b7c28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 666.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8cdd39e390c9522bee10bef2a55325bdfb24a44b5bfd18f44b073f607b0324c6
BLAKE2b-256 checksum
How to use checksums
cc8b029f5283b2216852df2ece90b0d2b6f78c3e0b4380fd0209ba08b62a2a7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 559.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c1ae48660300dcb9370d954bff04ff80c0f5d343c7b7893d9c9b9cf478b1da92
BLAKE2b-256 checksum
How to use checksums
e3dfbf27878db8fae486686236748e18c26b8bde9c7083d8da80066e1ecf52b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.10.0-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
021a643db9c4200fb42efd9c3523d3f4be7dcf87dd8c6c1c662329f784f5947f
BLAKE2b-256 checksum
How to use checksums
686e78b8702bf537355de583b783ab9aec089ada3089341ecaf29debcc2144e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-win_amd64.whl

Download URL mft-0.10.0-cp310-abi3-win_amd64.whl
Size 481.6 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c279bb7c3c88072e34f8ba8c142a62317a3f9cd334ccbae5e6a7dce56a27ab39
BLAKE2b-256 checksum
How to use checksums
c5485d3eda720c54a35da86e11f3c148b24c009d8a76bcb32df45e10adc5bbc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL mft-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 588.5 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
5d16741c5d4f94408b7910ea80a6178bc3aa28761e4d00abf9cdf10cf2d153ca
BLAKE2b-256 checksum
How to use checksums
5810608767651d4913d170cc1b68bd07bc7738be03e613927dc0112268d44759
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL mft-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 563.1 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
631a26f92d9caf75f0981d78b24ad99a1c01a7f7c4639b56c924eaa7b38bb1d3
BLAKE2b-256 checksum
How to use checksums
c48acb1e1686de6c5e0ab754a2b6a995f1c07834bb58cde6a2a6e16d4c19f947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 677.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
82949fa00e21c5f8bab7280e1efa628e2198b0f83df50e2ef3e7cc075b7bcec1
BLAKE2b-256 checksum
How to use checksums
d8dfece559488d0b54c42b91b97d29bcb86cdb73ff5f135c74eb6f53db3a7f4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 564.6 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
60d4e1e0566e0314051c2754a9aba1176760f4b327d7f587b1257e31bf4198bd
BLAKE2b-256 checksum
How to use checksums
92aea48017aa3ef41770606b57657d7f0dbf79652938c2a68b18efd61dd99dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.10.0-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
84531dcbf98e6104c50bbfcc96a92043ac14be67ce79234f24798be3dec16a2b
BLAKE2b-256 checksum
How to use checksums
f894929fd5de18dc2a9261837577e6c72002925f1523dcce7b217ee4e6762e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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.0

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