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.

Note that the iterators created by parser.entries() and entry.attributes() may return RuntimeError objects if there was an error while trying to parse one of the attributes, so check them before continuing.

from mft import PyMftParser, PyMftAttributeX10, PyMftAttributeX30

def main():
    parser = PyMftParser("/Users/omerba/Workspace/pymft-rs/samples/MFT")
    for entry_or_error in parser.entries():
        if isinstance(entry_or_error, RuntimeError):
            continue

        print(f'Entry ID: {entry_or_error.entry_id}')

        for attribute_or_error in entry_or_error.attributes():
            if isinstance(attribute_or_error, RuntimeError):
                continue

            resident_content = attribute_or_error.attribute_content
            if resident_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.9.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.9.0
File Size Uploaded Provenance Actions
mft-0.9.0.tar.gz 1.3 MB Without provenance Details for mft-0.9.0.tar.gz

Built distributions (wheels)

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

Download URL mft-0.9.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
2c142d3563f292d039bcef00bc2bca5177ba8d753f3882c1759e1adae1fabc9f
BLAKE2b-256 checksum
How to use checksums
e22020e12c28966623f674d9e11d164f3d7b8536ea999f53b72192b8008c9763
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.9.0-cp314-cp314t-win_amd64.whl

Download URL mft-0.9.0-cp314-cp314t-win_amd64.whl
Size 467.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
d7dd137bc3be0fd6b5bbca886e24ab241a8f40bc12e8148d4a2f2930b4ee3422
BLAKE2b-256 checksum
How to use checksums
5c216cf9dd9a744fc17bcf9020cbf3aa12e34a1aae18b40cf47056ab619d7d20
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.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL mft-0.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 577.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cc739f06200b30fa035d470d9749894547f9bd5f3a2f364c8b2b800745f847fe
BLAKE2b-256 checksum
How to use checksums
965c3958ef2490d1850efba2e24ec27972e6b74be855d74e73944aa39259bc93
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.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL mft-0.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 551.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c68fedbdbbe743c8344ebe79826398e1187b951429c9d057745d6708e44d6446
BLAKE2b-256 checksum
How to use checksums
332221282aac5778a5b8060cf0842cf248c8ae4ee536fcf14af38bd0b499e923
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.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 663.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cae95e299321ce770d70d09c2c6e06478831eb740340ffeda1a53462dd3f3361
BLAKE2b-256 checksum
How to use checksums
9a9faebbe17fc68fd0b08a3fd08e5588f0b07d8710f9a98bb3278baec49dd8ea
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.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 553.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d6eac39c39479d90cd00b4e7882ad4c868fc736dfe215a528730059ef7a51807
BLAKE2b-256 checksum
How to use checksums
68511a50cbc1b1a6afa3eab11a80801d1742f1832c8c2e73fef30182af96f642
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.9.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.9.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
217c3b225aeacb54e5920ff2a956985bf0e4e78a332dd8382c833940e081e36e
BLAKE2b-256 checksum
How to use checksums
a6d438fceedcbb0fc2a42321326529a253345954a373a29b37a2799c042a3cb5
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.9.0-cp310-abi3-win_amd64.whl

Download URL mft-0.9.0-cp310-abi3-win_amd64.whl
Size 472.3 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c3a485a40748dc0acff034cb9e542a061fa2097f8e20d2c973ad6499a4842f95
BLAKE2b-256 checksum
How to use checksums
200a61e0ddc81abf9e9d4dc5c735ca96e978cd99b73192cc3b31412ca470a220
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.9.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL mft-0.9.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 581.5 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
f4f034550ac388e6911af2f72ad58cac006ac8473b0b25a6abbc0459575084f9
BLAKE2b-256 checksum
How to use checksums
4cc91eb5199ddf4f913875acb0271cd79e0a837f72c904372468e98179b3e13d
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.9.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL mft-0.9.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 556.0 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
923b3a3dc8713bc24e5a412c20c1c38aa4ada4dab35b41077502eb760d57e252
BLAKE2b-256 checksum
How to use checksums
18212c9c4c1f5dc13c87a3244e913f31db0d1d42b1e8ecd84000a0fb3273bc94
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.9.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mft-0.9.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 669.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
00322c97c731d3b2dbc9730ed7060c5959ace64f09b7cbef3fd0acdad6e91bb1
BLAKE2b-256 checksum
How to use checksums
c5f8728ffc9974a426d0b73f7b8522965392d5f9669d62647c40686a4524b948
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.9.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mft-0.9.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 557.9 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
224e9e486598b0b3ca53c980b0025b9b7b503d25953c57720f6e9732440920bc
BLAKE2b-256 checksum
How to use checksums
4355920c37fe085d32b00755960e983e9dca2bd21e9131ee26180097b6a43f31
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.9.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL mft-0.9.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
fac7544c1145c5315036f547cafe84fe4c95587591e9357181ef247803f2ca70
BLAKE2b-256 checksum
How to use checksums
a4a63122a8b00b29a5a4d92bc9a7596cf674973b65205574aeacfc8366bced89
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.9.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