mef3io
Read and write MEF 3.0 (Multiscale Electrophysiology Format) files from Python, MATLAB and C++. MEF 3.0 is a compressed, optionally encrypted file format for long electrophysiology recordings: mainly EEG, intracranial EEG (iEEG) and ECG, but it suits any regularly sampled signal, such as EMG, other biosignals or sensor data. One C++ core does the work, so every language reads and writes the same files the same way. Sessions written by mef3io open in the established MEF 3.0 tools listed below, and sessions written by those tools open in mef3io.
Documentation: https://bnelair.github.io/mef3io/
MEF 3.0 and the original libraries
mef3io grew out of an earlier stack of MEF libraries and stays compatible with it: files written by either open in the other. MEF 3.0 support is maintained here, in mef3io, as open source (Apache-2.0).
- MEF 3.0 specification: the header of meflib,
meflib.h, is titled "Specification for Multiscale Electrophysiology Format (MEF) version 3.0". The format's design is described in Brinkmann et al., Large-scale electrophysiology: acquisition, compression, encryption, and storage of big data, J Neurosci Methods 180(1):185-192, 2009, doi:10.1016/j.jneumeth.2009.03.022. - meflib: the original reference C library for MEF 3.0, from the msel-source project.
- pymef (docs): a Python wrapper over meflib.
- mef_tools (archived; on PyPI as
mef-tools): high-level Python reading and writing built on pymef. mef3io stands in for it:from mef3io import MefReader, MefWriter. - MATLAB (legacy): matmef (a MATLAB wrapper over meflib), mef_reader_fieldtrip (FieldTrip reader for MEF 2.1, MEF 3.0 and MED 1.0) and MEF_import (EEGLAB plugin). mef3io has its own MATLAB interface.
- The older MEF 2.1 format has its own library and specification, mef_lib_2_1; mef3io reads and writes MEF 3.0 only.
mef3io is an independent implementation of the specification, tested against meflib, pymef and mef_tools. New to the format? See MEF 3.0 for students.
Install
pip install mef3io
Prebuilt wheels for Linux, macOS and Windows (Python 3.10+); numpy is the only
dependency. For MATLAB, download mef3io-matlab-vX.Y.Z.zip from the
latest release and
addpath it, or build the MEX yourself. For C++, add core/ to your CMake
project. Details for all three: Install.
Usage
import numpy as np
import mef3io
fs = 256.0
start = 1_700_000_000_000_000 # microseconds since 1970 (uUTC)
signal = np.random.randn(60 * int(fs)) # one minute
signal[1000:1500] = np.nan # a gap: NaN is stored as missing data
with mef3io.Writer("session.mefd", overwrite=True, units="uV") as w:
w.write("eeg1", signal, start, fs=fs)
w.write_annotations([{"time": start, "text": "recording start"}], channel="eeg1")
with mef3io.Reader("session.mefd") as r:
print(r.channels) # ['eeg1']
x = r.read("eeg1", start, start + 10_000_000) # first 10 s, float64, gaps = NaN
print(r.segments("eeg1")) # what data is where
print(r.records("eeg1")) # annotations
The same session in MATLAB:
r = mef3io.Reader('session.mefd');
x = r.read('eeg1');
More: the Python, MATLAB and C++ guides, runnable examples, and short how-to pages such as converting EDF, EDF+ or BDF to MEF 3.0.
What it is built for
- Recordings far larger than memory. A single channel of a long recording can be tens of gigabytes. A read loads only the blocks the requested time window needs, and decoding runs on all cores.
- Missing data as a first-class value. Gaps in a recording come back as
NaNon the sampling grid, never silently stitched together;read_rawreturns the raw integer samples with a validity mask. - Recordings that keep growing. A session can be appended to for days or
months; with one
Writerkept open, each append costs time in proportion to the new data, not to the recording so far. If a write is interrupted, the session can be checked and recovered — see Long recordings and Validating and repairing. - Existing data and code. It reads MEF 3.0 sessions from other writers,
and
from mef3io import MefReader, MefWriterruns code written for the legacymef_toolspackage with only the import changed. - Protected recordings. Both MEF 3.0 password levels work as specified: the level-1 password opens the technical metadata while the subject's identity stays behind the level-2 password.
- Looking before reading.
mef3io.inspect(path)(orpython -m mef3io inspect) describes a session — channels, segments, gaps, annotations, encryption, what identifying fields it holds — without reading any samples, and long reads and operations can report progress and be cancelled from another thread (Python and C++). - Sharing recordings without identifying the patient.
mef3io.anonymize_sessionwrites a de-identified copy of a session: every date and time moved by the same amount (so events still line up with the signal), names, ID, location, descriptions and annotation text removed, and the samples copied unchanged. Channels can be left out, and the copy can be unencrypted or protected with new passwords.mef3io.anonymize.checkreports everything that would stop a copy before anything is written, and every copy is verified against its source (no original date or name left anywhere) before it is saved. The original is never changed. Python and C++; see De-identification. - Programs that stay responsive. Opening, reading and writing release
Python's GIL, so a GUI or server keeps running while a session opens or
decodes on a worker thread. Reads on one
Readercan run from several threads at once (aWriteris not for sharing); see Parallelism for the limits. - One file instead of a folder. A session can be packed into a single
.mefd.tarand read in place, without unpacking.
Upgrading from mef3io 1.1.2 or earlier
Sessions written by mef3io 1.1.2 and earlier read correctly in mef3io and
pymef, but declare some buffer sizes as 0, which can crash meflib-based
readers. Opening one warns once. Appending with a current version repairs the
segment it extends; mef3io.repair_session fixes the rest in place — see
Validating and repairing.
Changes in every version, and what an upgrade asks of you, are listed in the
release notes.
Scope and limitations
- Video files (
.vidd) are out of scope; a session's video folders are skipped. - Encryption is all or nothing per session: unencrypted, or both password levels set. It protects the subject's identity and annotation text, not the signal: the samples and their timing can be decoded without a password, so keep confidential recordings on protected storage. See what encryption protects.
- Data-block encryption. The MEF 3.0 specification defines encrypted data blocks. Leaving them unencrypted is not the design of MEF 3.0 but an artifact of past implementations: meflib does not encrypt them unless asked, and the legacy readers mishandle encrypted blocks (pymef crashes on them, and meflib requires the level-2 password even for level-1 blocks). mef3io reads such blocks (some third-party tools write them): a block encrypted at level 1 with either password, one at level 2 with the level-2 password. Recordings mef3io writes today leave data blocks unencrypted and stay fully compatible; encrypted metadata works in every direction. mef3io intends to follow the specification here later, which could produce recordings that older tools cannot read; that is not decided yet (#94, #92).
- Single-file
.mefd.tarsessions are a mef3io addition, not part of MEF 3.0, so meflib, pymef and mef_tools cannot open them directly. They are plain uncompressed tar files, so they can always be unpacked:mef3io.extract_session,tar -xf(built into Windows 10 and later, macOS and Linux) or the free 7-Zip on Windows. The unpacked.mefdfolder works with the legacy tools. - Records (annotations): every record type MEF 3.0 defines is read;
Note,SyLgandEDFAcan be written with their text. - De-identification: meflib's recording-time offset, once used to
"anonymize" sessions, is deprecated in mef3io: it does not hide the
recording date (the date stays in every metadata file, in plain text unless
the session is encrypted). mef3io never creates such sessions; it reads and
extends existing ones. To share a recording, make a de-identified copy with
mef3io.anonymize_session(Python and C++, not MATLAB). It keeps channel names and does not change the signal itself, and with annotation text kept it removes only the names it knows — see De-identification. - MATLAB reads and writes sessions, annotations and metadata, packs and
unpacks
.mefd.tararchives and recovers interrupted writes. Inspecting, validating and repairing, cancelling and progress, and de-identification are in Python and C++ only. - Pure-Python backend is not implemented (
backend="pure"raises); the wheels carry the compiled core.
Contributing and support
Bug reports, feature requests and questions go to issues. To build and test from source, see CONTRIBUTING.md; the on-disk format reference and the design are on the documentation site. Report vulnerabilities privately as described in SECURITY.md.
core/ C++ library (the format, read, write, validation) + Catch2 tests
bindings/ Python extension (nanobind)
python/ the mef3io Python package
matlab/ MEX gateway over the C ABI + the +mef3io MATLAB classes
examples/ runnable scripts
tests/ pytest suites, cross-checked against pymef / mef_tools
benchmarks/ performance comparisons
docs/ documentation site source
Related projects
- mef3io-studio: a desktop app for exploring and anonymizing MEF 3.0 recordings; installers are on its Releases page.
- mef3io-server: a gRPC server that streams MEF 3.0 data to viewers on a local network.
Citing and license
If you use mef3io in published work, please cite it via CITATION.cff. Licensed under Apache 2.0. Maintained by Filip Mivalt, Bioelectronics Neurophysiology and Engineering Laboratory (BNEL) at Mayo Clinic.
Contributors and credits
mef3io: Filip Mivalt (maintainer), Vladimir Sladky, Václav Křemen.
Past tools contributors: Bruno Aristimunha, Mark R. Bower, Benjamin H. Brinkmann, Clemens Brunner, Jan Cimbálník, Daniel P. Crepeau, Richard Jie Cui, Arnaud Delorme, Dora Hermes, Václav Křemen, Eric Larson, Filip Mivalt, Vladimir Sladky, Matt Stead, Keith A. Stengel, Max van den Boom, Vince Vasoli, Gregory A. Worrell and others. We thank them all. The past tools are listed above and in CONTRIBUTORS.md.
This project follows a code of conduct.
Metadata
Release files for mef3io 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| mef3io-1.4.0.tar.gz | 1.0 MB | Without provenance | Details |
Built distributions (wheels)
Total release size: 23.1 MB
Release files / mef3io-1.4.0.tar.gz
| Download URL | mef3io-1.4.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b13e040dce307c0239153dff9dc61858ead191cde23e615648620e1a0d13454
|
|
BLAKE2b-256 checksum How to use checksums |
8003c38371b741d7e533165ba3c048ace0da9ef089688c899993922050bf72ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-win_arm64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 710.1 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
13d47e9efcf187c03bf13c8a9a68e12424db0fc7f695db7dddb7c9d15a81637c
|
|
BLAKE2b-256 checksum How to use checksums |
264d9c290d122a63a39ac5a1d02a916c26e9736ac666a1ee48c0a96b1725d0dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-win_amd64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 708.5 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c1da952cf43b763778922f3d7063ee0fb8ff237e06bff7954e1b388f141a48fb
|
|
BLAKE2b-256 checksum How to use checksums |
4e408e4c41c1dbb3ec11f238af0ef390f5b62a16412f1cafa2b58c049fffe255
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 888.8 kB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5f6aef4b11d4824f96c8798888385c324d13873351bd6bfde6ba5a34eda76bc0
|
|
BLAKE2b-256 checksum How to use checksums |
bff19722bbf68ad1d2394f72351472d0fb075da7cd94696d4834fe0d2a9c3962
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 790.8 kB |
| Tags | CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c6ce3b283a3f60449c3c788c46202b5bfe2c3c6039d1f00c86c498e36835620f
|
|
BLAKE2b-256 checksum How to use checksums |
9de490a28052b1f82c35e4d933fe833d89abecd3dc479589e6da6317ce0784b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 712.2 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2176092033da5993aaf31e9a979e276673d0391148638e74cf6b13fc595724e7
|
|
BLAKE2b-256 checksum How to use checksums |
41a0acbc719dfec525cfa95b2e5db557b553b87b4f145b183ca4aa915fb8f122
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | mef3io-1.4.0-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 769.2 kB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
db8dfd02465cc394fac853acb2d2be74cced90d9d16e1edbd5de2de99cdc97ab
|
|
BLAKE2b-256 checksum How to use checksums |
47c64d53ab06fff98ee636bdad3d4e6d03f3c019da6f39d7332c0e81b622efef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-win_arm64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 688.6 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
7dd49f052dd9fc05c48b202d6da2edea16515bf39f690db5843740914a59c2de
|
|
BLAKE2b-256 checksum How to use checksums |
61557285b7e3d914bf74a414bc1c06393fe1f28035b2e4b1c7e99bddc566a101
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-win_amd64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 691.6 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4e1ec0209ad3f5fe3572e3447a2892fa30f46da8676a260f4218d1859c7dac73
|
|
BLAKE2b-256 checksum How to use checksums |
0c9d446ad99bdc12b29626d334349f51a1c25794e7919bc10693d13f8d9a2b70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 888.5 kB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b348a5ff0c2466a879420003c7bda17120252877b856090e376a7824970c9b7e
|
|
BLAKE2b-256 checksum How to use checksums |
ed99d353d403449d3cacedbc43205a493a110851a4fdf0fb0f7ebe7b0b26ece2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 790.7 kB |
| Tags | CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
459fbce7ff19146d8039e24316fdfbfc12bc91204b2b33c79e3b755258ed3676
|
|
BLAKE2b-256 checksum How to use checksums |
039225e38f76fdf173c6df3c778bb093e2809e7e22e5ebab90d8ef5a26b767cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 712.3 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
882f3d21ab669617b380c1d61276ed8d8c35def8a22577fb1ca155b8cf605ea2
|
|
BLAKE2b-256 checksum How to use checksums |
93d94be73c8526ead83a228c6483356d14ac3beb5cb820319bc6fda73436b157
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp313-cp313-macosx_10_15_x86_64.whl
| Download URL | mef3io-1.4.0-cp313-cp313-macosx_10_15_x86_64.whl |
|---|---|
| Size | 769.0 kB |
| Tags | CPython 3.13 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
d5bbbba23b8e2877c7a338c9837221b70215e246ca07d7f51f2a0b4286ea2078
|
|
BLAKE2b-256 checksum How to use checksums |
d1b947f662010eaf258e7c8692365919ac3cac86f4d74a1f936a19ccbde3a14f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-win_arm64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 688.7 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
ea97c8cfe3d179bfb97215d2f1c337d15bc5a0e3db75847c82bbf4fdc4a8087d
|
|
BLAKE2b-256 checksum How to use checksums |
dbf8cc5b01749b8a8e1d66a97a709d2938a207094720f9d47ba35ee7894a5bcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-win_amd64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 691.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ff962c1b7b226cfce984aac94f8c9a29389e1472c88c97093744893200ddfb9a
|
|
BLAKE2b-256 checksum How to use checksums |
5b378f9fae297c4a611e3a68d8e9c81e6e0582379e2fd878d5b5a7f53f92a005
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 888.6 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4eaa7c278217424c1e7db25aa01e7203b08e5bade4137e9d21b1640f5d5812d5
|
|
BLAKE2b-256 checksum How to use checksums |
a0f03f6563e2f9dc5bf10338e13cbde682aeb76683cd0b33f454e944be6bedf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 790.7 kB |
| Tags | CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
48ceec017f47d01ff3c77092fef0851742f70cc5eaf82d3e88f48516046948de
|
|
BLAKE2b-256 checksum How to use checksums |
980747e339c8d46617e9aaef95ee95a09e80189a309f21ed71764a8a2a8bfbff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 712.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3ed48e4989edd9aaa86add543bf29e36caccf38f5f30568e4772b9987d35122e
|
|
BLAKE2b-256 checksum How to use checksums |
ace7bc71e8de64a70457aa871429921623f6198502e6daa76d9b8a8ba7ed223c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp312-cp312-macosx_10_15_x86_64.whl
| Download URL | mef3io-1.4.0-cp312-cp312-macosx_10_15_x86_64.whl |
|---|---|
| Size | 769.0 kB |
| Tags | CPython 3.12 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
5859b9abac36afa89058a8cf50d268f9f30c7b8175c30923290c42eab47747e0
|
|
BLAKE2b-256 checksum How to use checksums |
2749cb1de889bdcda2d39b266f3db0ed4b041ce847324d0771f91c6e48ff26c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-win_arm64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 689.0 kB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
673371644ec43167258e1f99f5eebcf4ae694aded46850d8bbed8f2ffbe94308
|
|
BLAKE2b-256 checksum How to use checksums |
653c59431011677cc754a4cd0fb96a82debaf99c915160e0504294a83645d7e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-win_amd64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 691.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
71c48347c94bb29798820892c0aad8b68a8ca9a04ac1196d95a8e792de226b54
|
|
BLAKE2b-256 checksum How to use checksums |
9044a30003347a15baf0bb462110ed4670ad1fdd9b05d8a56437e5e5dfe8e78d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 889.2 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5fe9fa51d58d820361dfc02b821f1a23ba3248d91941f98ae13366f0528605b4
|
|
BLAKE2b-256 checksum How to use checksums |
755d79a5b1563701bbea6fdfb58768ac56776763577519fcc8c9ba0e0366d220
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 792.0 kB |
| Tags | CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
43356282c105fda987f64df33f6ba45943930eb59e31be91249d271164102972
|
|
BLAKE2b-256 checksum How to use checksums |
6d84d4057a9945f9cae91dc0a52e8b6b17a920a04622f560f6a9f59895354612
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 712.8 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7ea92558736d62a441721a8c33fac3e1cd6f177f234040c7f69e45b2e7e39d50
|
|
BLAKE2b-256 checksum How to use checksums |
82c025463c69118390b942e90912e9a2db578b1bfb2059736b5683b529bc75f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp311-cp311-macosx_10_15_x86_64.whl
| Download URL | mef3io-1.4.0-cp311-cp311-macosx_10_15_x86_64.whl |
|---|---|
| Size | 769.3 kB |
| Tags | CPython 3.11 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
855753e5d9979050af0d6b69d87051781ce1f95db23b7a14b29d9b1b41b18d0e
|
|
BLAKE2b-256 checksum How to use checksums |
f0cdf7f81c01b7a0854139b64a7f9579a0e15aa0fe427c7eb10d2b7e367b11a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp310-cp310-win_amd64.whl
| Download URL | mef3io-1.4.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 691.6 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
12dd4953fe21b5b7d3d9cad8c89170c44a029d6d3db91ebf2580687093a440bc
|
|
BLAKE2b-256 checksum How to use checksums |
d425a84899f4794393131a3adfd39d24e950fe08767d671c85dd9c7b419aa6ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | mef3io-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 889.6 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ff75771114f0b33b9c7d2be7ed1782f49da05cb45ae1668d6df816ed92c7cbb3
|
|
BLAKE2b-256 checksum How to use checksums |
bf63e11f73a59f6e9ba35e42c9b16e344bcc23df922b09a3f9071b81b4ce2436
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
| Download URL | mef3io-1.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 792.4 kB |
| Tags | CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
d3fb222d779b31b41bc0e8be475aa6f98f8896c22ae454669d01a17f34ed998e
|
|
BLAKE2b-256 checksum How to use checksums |
dc30a7c5ec7bb431e2503746429269fe0062f31ae024804d21308d201204a9fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | mef3io-1.4.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 713.2 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b4277f48eb6c8e21d9f5c666b130a88e893696ed1e23b49b23ef6c6200a3ceab
|
|
BLAKE2b-256 checksum How to use checksums |
1c14fef8570a41f28fddd10723cd9765c708df47a406740ba9f370934adea348
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / mef3io-1.4.0-cp310-cp310-macosx_10_15_x86_64.whl
| Download URL | mef3io-1.4.0-cp310-cp310-macosx_10_15_x86_64.whl |
|---|---|
| Size | 769.7 kB |
| Tags | CPython 3.10 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
537286b391225519f3324bab0a26e222d1933194db51e327c01604321f4d1387
|
|
BLAKE2b-256 checksum How to use checksums |
c6f2b2575796648bb23057f72865dd9ccdfce8c76a7d8062261b70eb00cfb9e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for mef3io 1.4.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.