mat-io


Namemat-io JSON
Version 0.5.2 PyPI version JSON
download
home_pageNone
SummaryA package for reading MATLAB .mat files, with support for MATLAB datatypes like table and string
upload_time2025-10-09 14:48:27
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords matlab mat io
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Mat-IO Module

The `mat-io` module provides tools for loading and saving MAT-files, including MATLAB's classdef-based datatypes such as `datetime`, `table` and `string`. It supports almost all MATLAB object types, including user-defined objects and handle class objects. Additionally, it includes utilities to convert the following MATLAB datatypes into their respective _Pythonic_ objects, and vice versa:

- `string`
- `datetime`, `duration` and `calendarDuration`
- `table` and `timetable`
- `containers.Map` and `dictionary`
- `categorical`
- Enumeration Instance Arrays

MAT-file versions `v6`, `v7` and `v7.3` are supported.

- Versions `v6` and `v7` uses a modified version of `scipy.io` under the hood
- Version `v7.3` uses `h5py` to write in the HDF5 format.

Data is returned in the same format as `scipy.io.loadmat` does.

## Installation

```bash
pip install mat-io
```

## Usage

### Loading MAT-files

```python
from matio import load_from_mat

file_path = "path/to/your/file.mat"
data = load_from_mat(
    file_path,
    raw_data=False,
    add_table_attrs=False,
    mdict=None,
    variable_names=None,
)
```

- `raw_data`: If `True`, returns raw property maps of Opaque class objects.
- `add_table_attrs`: If `True`, adds custom Matlab Table or Timetable properties as `pandas.DataFrame` attributes.
- `mdict`: If provided, this dictionary will be updated with the data from a MAT-file.
- `variable_names`: A list of variable names to load from file.

### Saving MAT-files

```python
from matio import save_to_mat

file_path = "path/to/your/file.mat"
mdict = {"var1": data1, "var2": data2}
save_to_mat(
    file_path,
    mdict=mdict,
    version="v7.3",
    global_vars=None,
    oned_as="col",
    do_compression=True,
)
```

- `file_path`: The file to save data.
- `mdict`: A dictionary of `{var_name: var_data}` to write to MAT-files.
- `version`: The MAT-file version to save to. Supported versions are `v7.3` and `v7`. Defaults to `v7.3` which is based on the HDF5 format.
- `global_vars`: A list of variable names that are to be marked as global variables.
- `saveobj_classes`: A list of class names that implement `saveobj` methods.
- `oned_as`: The 2D shape to apply to unit `numpy.ndarrays`. Either `row` or `col`. Defaults to `col`.
- `do_compression`: If `False`, does not compress data when saving.

### List variables in a MAT-file

```python
from matio import whosmat

file_path = "path/to/your/file.mat"
vars = whosmat(file_path)
# Returns (variable_name, dims, datatype/classname)
print(vars)
```

## Opaque Class Objects

Opaque class objects are what MATLAB calls object instances. Opaque objects have different types. The most common is `MCOS`, which is used for all user-defined classdefs, enumeration classes, as well as most MATLAB datatypes like `string`, `datetime` and `table.`

Opaque objects are returned as an instance of class `MatlabOpaque` with the following attributes:

- `classname`: The class name, including [namespace qualifiers](https://www.mathworks.com/help/matlab/matlab_oop/namespaces.html) (if any).
- `type_system`: An interal MATLAB type identifier. Usually `MCOS`, but could also be `java` or `handle`.
- `properties`: A dictionary containing the property names and property values.

If the `raw_data` parameter is set to `False`, then `load_from_mat` converts these objects into a corresponding Pythonic datatype, if available. For a list of conversion rules between MATLAB and Python datatypes, see the [documentation](./docs/field_contents.md).

When writing objects, `matio` tries to guess the class name of the object. For example, `pandas.DataFrames` could be read in as `table` or `timetable`. User-defined objects must contain a dictionary of property name, value pairs wrapped around a `MatlabOpaque` instance.

```python
from matio import save_to_mat
from matio.utils import MatlabOpaque

prop_map = {"prop1": val1, "prop2": val2}
mat_obj = MatlabOpaque(properties=prop_map, classname="MyClass")
mdict = {"var1": mat_obj}
data = save_to_mat(file_path="temp.mat", mdict=mdict)
```

If the class implements a custom `saveobj` method, this can be specified in the `saveobj_classes` argument in `save_to_mat`. The property map for such classes **must** contain a single property called `any`. Typically, the value of this property would be in a format output by the `saveobj` method. This would be the input for the `loadobj` method in the class, if defined. More information [here](https://www.mathworks.com/help/matlab/matlab_oop/code-patterns-for-saveobj-and-loadobj.html).

## Wrapper Classes

This package uses wrapper classes to represent Matlab object data to help distinguish from basic datatypes. These are as follows:

- `MatlabOpaque`: A wrapper class for all opaque objects with three attributes: `properties`, `classname`, `type_system`. `properties` is a name-value pair dictionary for each property of the class saved to a MAT-file
- `MatlabOpaqueArray`: A wrapper class subclassed from `numpy.ndarray` to represent object arrays. Each item in this array is a `MatlabOpaque` object.
- `MatlabEnumerationArray`: A wrapper class subclassed from `numpy.ndarray` to represent enumeration instance arrays. Each item in this array is of type `enum.Enum`.
- `MatlabContainerMap`: A wrapper class subclassed from `collections.UserDict` to represent `container.Map` objects. During save, dictionaries are converted to a `struct`. Wrap dictionaries around `MatlabContainerMap` to write to `container.Map` instead.

To save these types to a MAT-file, data must be wrapped around the relevant wrapper class. These can be imported from `matio.utils`. An example is shown below:

```python
# Save dictionary as container.Map
from matio.utils import MatlabContainerMap
from matio import save_to_mat

map = {"a": 1, "b": 2}
map = MatlabContainerMap(map)
var_dict = {"myVar": map}
save_to_mat("file.mat", var_dict)
```

## Contribution

Feel free to create a PR if you'd like to add something, or open up an issue if you'd like to discuss!

## Acknowledgement

Huge thanks to [mahalex](https://github.com/mahalex/MatFileHandler) for their breakdown of MAT-files. A lot of this wouldn't be possible without it.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mat-io",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "MATLAB, mat, io",
    "author": null,
    "author_email": "foreverallama <klockatoo@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/58/81/85477322db89645f8acfd7be848d93f1287110bd922053dfe2bb96cb7c2d/mat_io-0.5.2.tar.gz",
    "platform": null,
    "description": "# Mat-IO Module\n\nThe `mat-io` module provides tools for loading and saving MAT-files, including MATLAB's classdef-based datatypes such as `datetime`, `table` and `string`. It supports almost all MATLAB object types, including user-defined objects and handle class objects. Additionally, it includes utilities to convert the following MATLAB datatypes into their respective _Pythonic_ objects, and vice versa:\n\n- `string`\n- `datetime`, `duration` and `calendarDuration`\n- `table` and `timetable`\n- `containers.Map` and `dictionary`\n- `categorical`\n- Enumeration Instance Arrays\n\nMAT-file versions `v6`, `v7` and `v7.3` are supported.\n\n- Versions `v6` and `v7` uses a modified version of `scipy.io` under the hood\n- Version `v7.3` uses `h5py` to write in the HDF5 format.\n\nData is returned in the same format as `scipy.io.loadmat` does.\n\n## Installation\n\n```bash\npip install mat-io\n```\n\n## Usage\n\n### Loading MAT-files\n\n```python\nfrom matio import load_from_mat\n\nfile_path = \"path/to/your/file.mat\"\ndata = load_from_mat(\n    file_path,\n    raw_data=False,\n    add_table_attrs=False,\n    mdict=None,\n    variable_names=None,\n)\n```\n\n- `raw_data`: If `True`, returns raw property maps of Opaque class objects.\n- `add_table_attrs`: If `True`, adds custom Matlab Table or Timetable properties as `pandas.DataFrame` attributes.\n- `mdict`: If provided, this dictionary will be updated with the data from a MAT-file.\n- `variable_names`: A list of variable names to load from file.\n\n### Saving MAT-files\n\n```python\nfrom matio import save_to_mat\n\nfile_path = \"path/to/your/file.mat\"\nmdict = {\"var1\": data1, \"var2\": data2}\nsave_to_mat(\n    file_path,\n    mdict=mdict,\n    version=\"v7.3\",\n    global_vars=None,\n    oned_as=\"col\",\n    do_compression=True,\n)\n```\n\n- `file_path`: The file to save data.\n- `mdict`: A dictionary of `{var_name: var_data}` to write to MAT-files.\n- `version`: The MAT-file version to save to. Supported versions are `v7.3` and `v7`. Defaults to `v7.3` which is based on the HDF5 format.\n- `global_vars`: A list of variable names that are to be marked as global variables.\n- `saveobj_classes`: A list of class names that implement `saveobj` methods.\n- `oned_as`: The 2D shape to apply to unit `numpy.ndarrays`. Either `row` or `col`. Defaults to `col`.\n- `do_compression`: If `False`, does not compress data when saving.\n\n### List variables in a MAT-file\n\n```python\nfrom matio import whosmat\n\nfile_path = \"path/to/your/file.mat\"\nvars = whosmat(file_path)\n# Returns (variable_name, dims, datatype/classname)\nprint(vars)\n```\n\n## Opaque Class Objects\n\nOpaque class objects are what MATLAB calls object instances. Opaque objects have different types. The most common is `MCOS`, which is used for all user-defined classdefs, enumeration classes, as well as most MATLAB datatypes like `string`, `datetime` and `table.`\n\nOpaque objects are returned as an instance of class `MatlabOpaque` with the following attributes:\n\n- `classname`: The class name, including [namespace qualifiers](https://www.mathworks.com/help/matlab/matlab_oop/namespaces.html) (if any).\n- `type_system`: An interal MATLAB type identifier. Usually `MCOS`, but could also be `java` or `handle`.\n- `properties`: A dictionary containing the property names and property values.\n\nIf the `raw_data` parameter is set to `False`, then `load_from_mat` converts these objects into a corresponding Pythonic datatype, if available. For a list of conversion rules between MATLAB and Python datatypes, see the [documentation](./docs/field_contents.md).\n\nWhen writing objects, `matio` tries to guess the class name of the object. For example, `pandas.DataFrames` could be read in as `table` or `timetable`. User-defined objects must contain a dictionary of property name, value pairs wrapped around a `MatlabOpaque` instance.\n\n```python\nfrom matio import save_to_mat\nfrom matio.utils import MatlabOpaque\n\nprop_map = {\"prop1\": val1, \"prop2\": val2}\nmat_obj = MatlabOpaque(properties=prop_map, classname=\"MyClass\")\nmdict = {\"var1\": mat_obj}\ndata = save_to_mat(file_path=\"temp.mat\", mdict=mdict)\n```\n\nIf the class implements a custom `saveobj` method, this can be specified in the `saveobj_classes` argument in `save_to_mat`. The property map for such classes **must** contain a single property called `any`. Typically, the value of this property would be in a format output by the `saveobj` method. This would be the input for the `loadobj` method in the class, if defined. More information [here](https://www.mathworks.com/help/matlab/matlab_oop/code-patterns-for-saveobj-and-loadobj.html).\n\n## Wrapper Classes\n\nThis package uses wrapper classes to represent Matlab object data to help distinguish from basic datatypes. These are as follows:\n\n- `MatlabOpaque`: A wrapper class for all opaque objects with three attributes: `properties`, `classname`, `type_system`. `properties` is a name-value pair dictionary for each property of the class saved to a MAT-file\n- `MatlabOpaqueArray`: A wrapper class subclassed from `numpy.ndarray` to represent object arrays. Each item in this array is a `MatlabOpaque` object.\n- `MatlabEnumerationArray`: A wrapper class subclassed from `numpy.ndarray` to represent enumeration instance arrays. Each item in this array is of type `enum.Enum`.\n- `MatlabContainerMap`: A wrapper class subclassed from `collections.UserDict` to represent `container.Map` objects. During save, dictionaries are converted to a `struct`. Wrap dictionaries around `MatlabContainerMap` to write to `container.Map` instead.\n\nTo save these types to a MAT-file, data must be wrapped around the relevant wrapper class. These can be imported from `matio.utils`. An example is shown below:\n\n```python\n# Save dictionary as container.Map\nfrom matio.utils import MatlabContainerMap\nfrom matio import save_to_mat\n\nmap = {\"a\": 1, \"b\": 2}\nmap = MatlabContainerMap(map)\nvar_dict = {\"myVar\": map}\nsave_to_mat(\"file.mat\", var_dict)\n```\n\n## Contribution\n\nFeel free to create a PR if you'd like to add something, or open up an issue if you'd like to discuss!\n\n## Acknowledgement\n\nHuge thanks to [mahalex](https://github.com/mahalex/MatFileHandler) for their breakdown of MAT-files. A lot of this wouldn't be possible without it.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A package for reading MATLAB .mat files, with support for MATLAB datatypes like table and string",
    "version": "0.5.2",
    "project_urls": {
        "Homepage": "https://github.com/foreverallama/matio",
        "Issues": "https://github.com/foreverallama/matio",
        "Repository": "https://github.com/foreverallama/matio"
    },
    "split_keywords": [
        "matlab",
        " mat",
        " io"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "73f4b5a9fdc2dada67379c6f2b1796f6b56e92247b9efbbedd409c14deb7eff5",
                "md5": "c7c86e787c1cbc297db5f385e388962b",
                "sha256": "2992edcd235b195c04e906de5ed9cb15a65cee17904539e523f9e93c99102cc3"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c7c86e787c1cbc297db5f385e388962b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 451153,
            "upload_time": "2025-10-09T14:48:01",
            "upload_time_iso_8601": "2025-10-09T14:48:01.968504Z",
            "url": "https://files.pythonhosted.org/packages/73/f4/b5a9fdc2dada67379c6f2b1796f6b56e92247b9efbbedd409c14deb7eff5/mat_io-0.5.2-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "acea62e2631406c966dfbb2a51eee85c9741f8556f476a10a2b857d92ef41319",
                "md5": "cd704a47e4f8a609c2242ebeefafc889",
                "sha256": "5371401c53f0ee3a033ae494ad304945289db682ee3bac21c378236753850ac8"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cd704a47e4f8a609c2242ebeefafc889",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1152365,
            "upload_time": "2025-10-09T14:48:03",
            "upload_time_iso_8601": "2025-10-09T14:48:03.300395Z",
            "url": "https://files.pythonhosted.org/packages/ac/ea/62e2631406c966dfbb2a51eee85c9741f8556f476a10a2b857d92ef41319/mat_io-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a4678b5ac96f60f4e37b6c32be941e935dd5666af193e00c5960c90d9367774",
                "md5": "739ffd70a808e2d7c41dab179ff89f74",
                "sha256": "28f94a777b7f4eb6212b67ae63ff56c691af6a349186e67198b130277ecf003e"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "739ffd70a808e2d7c41dab179ff89f74",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 1152387,
            "upload_time": "2025-10-09T14:48:04",
            "upload_time_iso_8601": "2025-10-09T14:48:04.702274Z",
            "url": "https://files.pythonhosted.org/packages/9a/46/78b5ac96f60f4e37b6c32be941e935dd5666af193e00c5960c90d9367774/mat_io-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cc7fd7aa0b65f8c9c7cee2ec486a37686827781070eeaf2e772a873ddd00a085",
                "md5": "6a400b80e21452c0f02282afc1568b83",
                "sha256": "77029c275b8042826fc09e744532627f3eadc1a23d4b5560ac18c9ed319e2599"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "6a400b80e21452c0f02282afc1568b83",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 416918,
            "upload_time": "2025-10-09T14:48:06",
            "upload_time_iso_8601": "2025-10-09T14:48:06.490437Z",
            "url": "https://files.pythonhosted.org/packages/cc/7f/d7aa0b65f8c9c7cee2ec486a37686827781070eeaf2e772a873ddd00a085/mat_io-0.5.2-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b597b1d439dc7b959a4c675bd6bf0711d9fa3a9e5b0e2077d55a26fe6ac87f8c",
                "md5": "bfa871ba250e5aefbde46e85217cb578",
                "sha256": "43cc826ef03b131a6b0755a138790ed3cf0a3bb0c2a0910805f8f5adf280a3ea"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bfa871ba250e5aefbde46e85217cb578",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 430775,
            "upload_time": "2025-10-09T14:48:07",
            "upload_time_iso_8601": "2025-10-09T14:48:07.874834Z",
            "url": "https://files.pythonhosted.org/packages/b5/97/b1d439dc7b959a4c675bd6bf0711d9fa3a9e5b0e2077d55a26fe6ac87f8c/mat_io-0.5.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c61f21533bebd1838ae28e3f0ab2fa471d3078e53ef8fcb809a8273b064cd24c",
                "md5": "f8513264353ae5555cf7c3c63fb59d56",
                "sha256": "263d90bed949895491f9cefe7634ccc4eb688feaeba510344b4c9b637952ede2"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f8513264353ae5555cf7c3c63fb59d56",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 449559,
            "upload_time": "2025-10-09T14:48:09",
            "upload_time_iso_8601": "2025-10-09T14:48:09.618624Z",
            "url": "https://files.pythonhosted.org/packages/c6/1f/21533bebd1838ae28e3f0ab2fa471d3078e53ef8fcb809a8273b064cd24c/mat_io-0.5.2-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "64d175d04461cd16f0d584979d3f9cbb92b5272dc06108cdb7f73d37d6a82b30",
                "md5": "28750fe6f2e6d657f748236d4a7844f0",
                "sha256": "24cb5cbb59e7b702a1f0bc2010313bbd5afaf243e07afbe08c811a1489ad45ce"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "28750fe6f2e6d657f748236d4a7844f0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1136627,
            "upload_time": "2025-10-09T14:48:11",
            "upload_time_iso_8601": "2025-10-09T14:48:11.181100Z",
            "url": "https://files.pythonhosted.org/packages/64/d1/75d04461cd16f0d584979d3f9cbb92b5272dc06108cdb7f73d37d6a82b30/mat_io-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8694ffbb1a027bf8eae6fa1d02a1d5f4d8d6d59a9a40a9b5cc36c9bee811d4c",
                "md5": "cf19dd7384886ac89d73055db3e42d0a",
                "sha256": "9e1e38f1d57c9fd9b08627b97260676cbfaa525f1b391b760c941eb2ee4065e6"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cf19dd7384886ac89d73055db3e42d0a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 1122568,
            "upload_time": "2025-10-09T14:48:12",
            "upload_time_iso_8601": "2025-10-09T14:48:12.874140Z",
            "url": "https://files.pythonhosted.org/packages/c8/69/4ffbb1a027bf8eae6fa1d02a1d5f4d8d6d59a9a40a9b5cc36c9bee811d4c/mat_io-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1a4029b0d7142bd8182394639a32aba9bf02a53364c1b185720cce198d22be10",
                "md5": "7a15247e8796be895b79bd79f737f115",
                "sha256": "b85609cd4ef7dd8c107d5221f36cc1c5de1e4a6917b1451f48e88a175c62a0db"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "7a15247e8796be895b79bd79f737f115",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 414404,
            "upload_time": "2025-10-09T14:48:14",
            "upload_time_iso_8601": "2025-10-09T14:48:14.051866Z",
            "url": "https://files.pythonhosted.org/packages/1a/40/29b0d7142bd8182394639a32aba9bf02a53364c1b185720cce198d22be10/mat_io-0.5.2-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fc1644c4064a73efe5545693682691b0166db01598da28abe3893081e7436a3c",
                "md5": "9eca0ec73a10a66b3b2a11b73c1d28da",
                "sha256": "c6de7b1b2d326c76ced62cb922476808bad4a10bec30e726688ce9787c6998c3"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9eca0ec73a10a66b3b2a11b73c1d28da",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 428991,
            "upload_time": "2025-10-09T14:48:15",
            "upload_time_iso_8601": "2025-10-09T14:48:15.536651Z",
            "url": "https://files.pythonhosted.org/packages/fc/16/44c4064a73efe5545693682691b0166db01598da28abe3893081e7436a3c/mat_io-0.5.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0b2c338c20adc34cb2aafc4d626188e52a53ff5747e05b361c0f0191aa4a845",
                "md5": "9a7574feaed4f6433594cee5a490a4ce",
                "sha256": "a997fe3c76129fa2fdc190f5f2e3320b85d5a5ff1f08b8f2c8ddb6c2db4b5f98"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9a7574feaed4f6433594cee5a490a4ce",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 446520,
            "upload_time": "2025-10-09T14:48:17",
            "upload_time_iso_8601": "2025-10-09T14:48:17.079928Z",
            "url": "https://files.pythonhosted.org/packages/e0/b2/c338c20adc34cb2aafc4d626188e52a53ff5747e05b361c0f0191aa4a845/mat_io-0.5.2-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "40538c93aca8aff6981f5538955542c6fae987f2d236d26c5a329abbe0a48356",
                "md5": "74571742bf6c359e4a9345268630a370",
                "sha256": "d2d4e3d41ac780ada9f3e8c5c79d9aa187b9ba7583bbda4415f2dbf8ee701548"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "74571742bf6c359e4a9345268630a370",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 1133222,
            "upload_time": "2025-10-09T14:48:18",
            "upload_time_iso_8601": "2025-10-09T14:48:18.263402Z",
            "url": "https://files.pythonhosted.org/packages/40/53/8c93aca8aff6981f5538955542c6fae987f2d236d26c5a329abbe0a48356/mat_io-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7f875420ac0c796a1dc078789af2715c1132529bc7eed039bb14f922d65bb464",
                "md5": "0f56a87f1d0990e05d2317cbccb47213",
                "sha256": "6171a3dbfaa4471052293b26df3c2ace8dc1f8929c4fc8bf1a6e5fc4f4f3df1b"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0f56a87f1d0990e05d2317cbccb47213",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 1126204,
            "upload_time": "2025-10-09T14:48:19",
            "upload_time_iso_8601": "2025-10-09T14:48:19.575093Z",
            "url": "https://files.pythonhosted.org/packages/7f/87/5420ac0c796a1dc078789af2715c1132529bc7eed039bb14f922d65bb464/mat_io-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1aee9f6facb56b3b3de3857d0f607b80deceffb2db3cf4dbf205bd5ee94699e7",
                "md5": "558ab43929d13da0cedad52a3452c63f",
                "sha256": "fd246a7ea097a6753d2b9e09367ac69f8c322265cfdb079076985cecfa48198b"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "558ab43929d13da0cedad52a3452c63f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 413750,
            "upload_time": "2025-10-09T14:48:20",
            "upload_time_iso_8601": "2025-10-09T14:48:20.881429Z",
            "url": "https://files.pythonhosted.org/packages/1a/ee/9f6facb56b3b3de3857d0f607b80deceffb2db3cf4dbf205bd5ee94699e7/mat_io-0.5.2-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "68d113eb371822f83a5ea5ea52c14ab52bc7988520bedfb8833bd96ae9708d11",
                "md5": "b759246d36ac7eff6a9fb9dc23f149f2",
                "sha256": "e05d03c2790ca4c79c95a9d0544b4dabb2099a3edf0f31dee8b9a03700d9e4c5"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b759246d36ac7eff6a9fb9dc23f149f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 427992,
            "upload_time": "2025-10-09T14:48:22",
            "upload_time_iso_8601": "2025-10-09T14:48:22.306908Z",
            "url": "https://files.pythonhosted.org/packages/68/d1/13eb371822f83a5ea5ea52c14ab52bc7988520bedfb8833bd96ae9708d11/mat_io-0.5.2-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "588185477322db89645f8acfd7be848d93f1287110bd922053dfe2bb96cb7c2d",
                "md5": "c225d2cc7ff94233fce4376c47ccb33b",
                "sha256": "2fdfe43b72d6c281a1812b90365f232e427c9742a341ea64ae5b54fe1fabac1f"
            },
            "downloads": -1,
            "filename": "mat_io-0.5.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c225d2cc7ff94233fce4376c47ccb33b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 476037,
            "upload_time": "2025-10-09T14:48:27",
            "upload_time_iso_8601": "2025-10-09T14:48:27.137898Z",
            "url": "https://files.pythonhosted.org/packages/58/81/85477322db89645f8acfd7be848d93f1287110bd922053dfe2bb96cb7c2d/mat_io-0.5.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 14:48:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "foreverallama",
    "github_project": "matio",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mat-io"
}
        
Elapsed time: 1.75897s