asammdf


Nameasammdf JSON
Version 8.0.1 PyPI version JSON
download
home_pagehttps://github.com/danielhrisca/asammdf
SummaryASAM MDF measurement data file parser
upload_time2024-10-01 13:28:29
maintainerNone
docs_urlNone
authorDaniel Hrisca
requires_python>=3.9
licenseLGPLv3+
keywords read reader edit editor parse parser asam mdf measurement
VCS
bugtrack_url
requirements canmatrix lz4 numexpr numpy pandas typing_extensions python-dateutil isal lxml
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<img align=left src="https://raw.githubusercontent.com/danielhrisca/asammdf/master/asammdf.png" width="128" height="128" />

<p align=center>

*asammdf* is a fast parser and editor for ASAM (Association for Standardization of Automation and Measuring Systems) MDF (Measurement Data Format) files.

*asammdf* supports MDF versions 2 (.dat), 3 (.mdf) and 4 (.mf4).

*asammdf* works on Python >= 3.8

</p>

<img align=left src="https://raw.githubusercontent.com/danielhrisca/asammdf/master/gui.png"/>

# Status

| Continuous Integration                                                                                                                                                                      | Coveralls                                                                                                                                                            | Codacy                                                                                                                                                                                                                                                       | ReadTheDocs                                                                                                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| [![continuous integration](https://github.com/danielhrisca/asammdf/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/danielhrisca/asammdf/actions/workflows/main.yml) | [![Coverage Status](https://coveralls.io/repos/github/danielhrisca/asammdf/badge.svg?branch=master)](https://coveralls.io/github/danielhrisca/asammdf?branch=master) | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a3da21da90ca43a5b72fc24b56880c99?branch=master)](https://www.codacy.com/app/danielhrisca/asammdf?utm_source=github.com&utm_medium=referral&utm_content=danielhrisca/asammdf&utm_campaign=badger) | [![Documentation Status](http://readthedocs.org/projects/asammdf/badge/?version=master)](http://asammdf.readthedocs.io/en/master/?badge=stable) |

| PyPI                                                                                      | conda-forge                                                                                                                     |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| [![PyPI version](https://badge.fury.io/py/asammdf.svg)](https://badge.fury.io/py/asammdf) | [![conda-forge version](https://anaconda.org/conda-forge/asammdf/badges/version.svg)](https://anaconda.org/conda-forge/asammdf) |

# Project goals
The main goals for this library are:

* to be faster than the other Python based mdf libraries
* to have clean and easy to understand code base
* to have minimal 3-rd party dependencies

# Features

* create new mdf files from scratch
* append new channels
* read unsorted MDF v3 and v4 files
* read CAN and LIN bus logging files
* extract CAN and LIN signals from anonymous bus logging measurements
* filter a subset of channels from original mdf file
* cut measurement to specified time interval
* convert to different mdf version
* export to HDF5, Matlab (v7.3), CSV and parquet
* merge multiple files sharing the same internal structure
* read and save mdf version 4.10 files containing zipped data blocks
* space optimizations for saved files (no duplicated blocks)
* split large data blocks (configurable size) for mdf version 4
* full support (read, append, save) for the following map types (multidimensional array channels):

    * mdf version 3 channels with CDBLOCK
    * mdf version 4 structure channel composition
    * mdf version 4 channel arrays with CNTemplate storage and one of the array types:

        * 0 - array
        * 1 - scaling axis
        * 2 - look-up

* add and extract attachments for mdf version 4
* handle large files (for example merging two fileas, each with 14000 channels and 5GB size, on a RaspberryPi)
* extract channel data, master channel and extra channel information as *Signal* objects for unified operations with v3 and v4 files
* time domain operation using the *Signal* class

    * Pandas data frames are good if all the channels have the same time based
    * a measurement will usually have channels from different sources at different rates
    * the *Signal* class facilitates operations with such channels

 * graphical interface to visualize channels and perform operations with the files

# Major features not implemented (yet)

* for version 3

    * functionality related to sample reduction block: the samples reduction blocks are simply ignored

* for version 4

    * experimental support for MDF v4.20 column oriented storage
    * functionality related to sample reduction block: the samples reduction blocks are simply ignored
    * handling of channel hierarchy: channel hierarchy is ignored
    * full handling of bus logging measurements: currently only CAN and LIN bus logging are implemented with the
      ability to *get* signals defined in the attached CAN/LIN database (.arxml or .dbc). Signals can also
      be extracted from an anonymous bus logging measurement by providing a CAN or LIN database (.dbc or .arxml)
    * handling of unfinished measurements (mdf 4): finalization is attempted when the file is loaded, however the
      not all the finalization steps are supported
    * full support for remaining mdf 4 channel arrays types
    * xml schema for MDBLOCK: most metadata stored in the comment blocks will not be available
    * full handling of event blocks: events are transferred to the new files (in case of calling methods
      that return new *MDF* objects) but no new events can be created
    * channels with default X axis: the default X axis is ignored and the channel group's master channel
      is used
    * attachment encryption/decryption using user provided encryption/decryption functions; this is not 
      part of the MDF v4 spec and is only supported by this library

# Usage

```python
from asammdf import MDF

mdf = MDF('sample.mdf')
speed = mdf.get('WheelSpeed')
speed.plot()

important_signals = ['WheelSpeed', 'VehicleSpeed', 'VehicleAcceleration']
# get short measurement with a subset of channels from 10s to 12s
short = mdf.filter(important_signals).cut(start=10, stop=12)

# convert to version 4.10 and save to disk
short.convert('4.10').save('important signals.mf4')

# plot some channels from a huge file
efficient = MDF('huge.mf4')
for signal in efficient.select(['Sensor1', 'Voltage3']):
   signal.plot()
```

Check the *examples* folder for extended usage demo, or the documentation
http://asammdf.readthedocs.io/en/master/examples.html

https://canlogger.csselectronics.com/canedge-getting-started/ce3/log-file-tools/asammdf-gui/


# Documentation
http://asammdf.readthedocs.io/en/master

And a nicely written tutorial on the [CSS Electronics site](https://canlogger.csselectronics.com/canedge-getting-started/ce3/log-file-tools/asammdf-gui/)

# Contributing & Support
Please have a look over the [contributing guidelines](CONTRIBUTING.md)

If you enjoy this library please consider making a donation to the
[numpy project](https://numfocus.org/donate-to-numpy) or to [danielhrisca using liberapay](https://liberapay.com/danielhrisca/donate) <noscript><a href="https://liberapay.com/danielhrisca/donate"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></noscript>

## Contributors
Thanks to all who contributed with commits to *asammdf*:

<a href="https://github.com/danielhrisca/asammdf/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=danielhrisca/asammdf" />
</a>

# Installation
*asammdf* is available on

* github: https://github.com/danielhrisca/asammdf/
* PyPI: https://pypi.org/project/asammdf/
* conda-forge: https://anaconda.org/conda-forge/asammdf

```shell
pip install asammdf
# for the GUI 
pip install asammdf[gui]
# or for anaconda
conda install -c conda-forge asammdf
```

In case a wheel is not present for you OS/Python versions and you
lack the proper compiler setup to compile the c-extension code, then
you can simply copy-paste the package code to your site-packages. In this 
way the python fallback code will be used instead of the compiled c-extension code.

# Dependencies
asammdf uses the following libraries

* numpy : the heart that makes all tick
* numexpr : for algebraic and rational channel conversions
* wheel : for installation in virtual environments
* pandas : for DataFrame export
* canmatrix : to handle CAN/LIN bus logging measurements
* natsort
* lxml : for canmatrix arxml support
* lz4 : to speed up the disk IO performance
* python-dateutil : measurement start time handling

optional dependencies needed for exports

* h5py : for HDF5 export
* hdf5storage : for Matlab v7.3 .mat export
* fastparquet : for parquet export
* scipy: for Matlab v4 and v5 .mat export

other optional dependencies

* PySide6 : for GUI tool
* pyqtgraph : for GUI tool and Signal plotting
* matplotlib : as fallback for Signal plotting
* faust-cchardet : to detect non-standard Unicode encodings
* chardet : to detect non-standard Unicode encodings 
* pyqtlet2 : for the GPS window
* isal : for faster zlib compression/decompression
* fsspec : access files stored in the cloud

# Benchmarks

http://asammdf.readthedocs.io/en/master/benchmarks.html

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/danielhrisca/asammdf",
    "name": "asammdf",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "read reader edit editor parse parser asam mdf measurement",
    "author": "Daniel Hrisca",
    "author_email": "daniel.hrisca@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6a/5c/5173d96d95dbb75f2700baf2e30ab71d91326b9187c993b44ad2730a8733/asammdf-8.0.1.tar.gz",
    "platform": null,
    "description": "\n<img align=left src=\"https://raw.githubusercontent.com/danielhrisca/asammdf/master/asammdf.png\" width=\"128\" height=\"128\" />\n\n<p align=center>\n\n*asammdf* is a fast parser and editor for ASAM (Association for Standardization of Automation and Measuring Systems) MDF (Measurement Data Format) files.\n\n*asammdf* supports MDF versions 2 (.dat), 3 (.mdf) and 4 (.mf4).\n\n*asammdf* works on Python >= 3.8\n\n</p>\n\n<img align=left src=\"https://raw.githubusercontent.com/danielhrisca/asammdf/master/gui.png\"/>\n\n# Status\n\n| Continuous Integration                                                                                                                                                                      | Coveralls                                                                                                                                                            | Codacy                                                                                                                                                                                                                                                       | ReadTheDocs                                                                                                                                     |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| [![continuous integration](https://github.com/danielhrisca/asammdf/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/danielhrisca/asammdf/actions/workflows/main.yml) | [![Coverage Status](https://coveralls.io/repos/github/danielhrisca/asammdf/badge.svg?branch=master)](https://coveralls.io/github/danielhrisca/asammdf?branch=master) | [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a3da21da90ca43a5b72fc24b56880c99?branch=master)](https://www.codacy.com/app/danielhrisca/asammdf?utm_source=github.com&utm_medium=referral&utm_content=danielhrisca/asammdf&utm_campaign=badger) | [![Documentation Status](http://readthedocs.org/projects/asammdf/badge/?version=master)](http://asammdf.readthedocs.io/en/master/?badge=stable) |\n\n| PyPI                                                                                      | conda-forge                                                                                                                     |\n| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| [![PyPI version](https://badge.fury.io/py/asammdf.svg)](https://badge.fury.io/py/asammdf) | [![conda-forge version](https://anaconda.org/conda-forge/asammdf/badges/version.svg)](https://anaconda.org/conda-forge/asammdf) |\n\n# Project goals\nThe main goals for this library are:\n\n* to be faster than the other Python based mdf libraries\n* to have clean and easy to understand code base\n* to have minimal 3-rd party dependencies\n\n# Features\n\n* create new mdf files from scratch\n* append new channels\n* read unsorted MDF v3 and v4 files\n* read CAN and LIN bus logging files\n* extract CAN and LIN signals from anonymous bus logging measurements\n* filter a subset of channels from original mdf file\n* cut measurement to specified time interval\n* convert to different mdf version\n* export to HDF5, Matlab (v7.3), CSV and parquet\n* merge multiple files sharing the same internal structure\n* read and save mdf version 4.10 files containing zipped data blocks\n* space optimizations for saved files (no duplicated blocks)\n* split large data blocks (configurable size) for mdf version 4\n* full support (read, append, save) for the following map types (multidimensional array channels):\n\n    * mdf version 3 channels with CDBLOCK\n    * mdf version 4 structure channel composition\n    * mdf version 4 channel arrays with CNTemplate storage and one of the array types:\n\n        * 0 - array\n        * 1 - scaling axis\n        * 2 - look-up\n\n* add and extract attachments for mdf version 4\n* handle large files (for example merging two fileas, each with 14000 channels and 5GB size, on a RaspberryPi)\n* extract channel data, master channel and extra channel information as *Signal* objects for unified operations with v3 and v4 files\n* time domain operation using the *Signal* class\n\n    * Pandas data frames are good if all the channels have the same time based\n    * a measurement will usually have channels from different sources at different rates\n    * the *Signal* class facilitates operations with such channels\n\n * graphical interface to visualize channels and perform operations with the files\n\n# Major features not implemented (yet)\n\n* for version 3\n\n    * functionality related to sample reduction block: the samples reduction blocks are simply ignored\n\n* for version 4\n\n    * experimental support for MDF v4.20 column oriented storage\n    * functionality related to sample reduction block: the samples reduction blocks are simply ignored\n    * handling of channel hierarchy: channel hierarchy is ignored\n    * full handling of bus logging measurements: currently only CAN and LIN bus logging are implemented with the\n      ability to *get* signals defined in the attached CAN/LIN database (.arxml or .dbc). Signals can also\n      be extracted from an anonymous bus logging measurement by providing a CAN or LIN database (.dbc or .arxml)\n    * handling of unfinished measurements (mdf 4): finalization is attempted when the file is loaded, however the\n      not all the finalization steps are supported\n    * full support for remaining mdf 4 channel arrays types\n    * xml schema for MDBLOCK: most metadata stored in the comment blocks will not be available\n    * full handling of event blocks: events are transferred to the new files (in case of calling methods\n      that return new *MDF* objects) but no new events can be created\n    * channels with default X axis: the default X axis is ignored and the channel group's master channel\n      is used\n    * attachment encryption/decryption using user provided encryption/decryption functions; this is not \n      part of the MDF v4 spec and is only supported by this library\n\n# Usage\n\n```python\nfrom asammdf import MDF\n\nmdf = MDF('sample.mdf')\nspeed = mdf.get('WheelSpeed')\nspeed.plot()\n\nimportant_signals = ['WheelSpeed', 'VehicleSpeed', 'VehicleAcceleration']\n# get short measurement with a subset of channels from 10s to 12s\nshort = mdf.filter(important_signals).cut(start=10, stop=12)\n\n# convert to version 4.10 and save to disk\nshort.convert('4.10').save('important signals.mf4')\n\n# plot some channels from a huge file\nefficient = MDF('huge.mf4')\nfor signal in efficient.select(['Sensor1', 'Voltage3']):\n   signal.plot()\n```\n\nCheck the *examples* folder for extended usage demo, or the documentation\nhttp://asammdf.readthedocs.io/en/master/examples.html\n\nhttps://canlogger.csselectronics.com/canedge-getting-started/ce3/log-file-tools/asammdf-gui/\n\n\n# Documentation\nhttp://asammdf.readthedocs.io/en/master\n\nAnd a nicely written tutorial on the [CSS Electronics site](https://canlogger.csselectronics.com/canedge-getting-started/ce3/log-file-tools/asammdf-gui/)\n\n# Contributing & Support\nPlease have a look over the [contributing guidelines](CONTRIBUTING.md)\n\nIf you enjoy this library please consider making a donation to the\n[numpy project](https://numfocus.org/donate-to-numpy) or to [danielhrisca using liberapay](https://liberapay.com/danielhrisca/donate) <noscript><a href=\"https://liberapay.com/danielhrisca/donate\"><img alt=\"Donate using Liberapay\" src=\"https://liberapay.com/assets/widgets/donate.svg\"></a></noscript>\n\n## Contributors\nThanks to all who contributed with commits to *asammdf*:\n\n<a href=\"https://github.com/danielhrisca/asammdf/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=danielhrisca/asammdf\" />\n</a>\n\n# Installation\n*asammdf* is available on\n\n* github: https://github.com/danielhrisca/asammdf/\n* PyPI: https://pypi.org/project/asammdf/\n* conda-forge: https://anaconda.org/conda-forge/asammdf\n\n```shell\npip install asammdf\n# for the GUI \npip install asammdf[gui]\n# or for anaconda\nconda install -c conda-forge asammdf\n```\n\nIn case a wheel is not present for you OS/Python versions and you\nlack the proper compiler setup to compile the c-extension code, then\nyou can simply copy-paste the package code to your site-packages. In this \nway the python fallback code will be used instead of the compiled c-extension code.\n\n# Dependencies\nasammdf uses the following libraries\n\n* numpy : the heart that makes all tick\n* numexpr : for algebraic and rational channel conversions\n* wheel : for installation in virtual environments\n* pandas : for DataFrame export\n* canmatrix : to handle CAN/LIN bus logging measurements\n* natsort\n* lxml : for canmatrix arxml support\n* lz4 : to speed up the disk IO performance\n* python-dateutil : measurement start time handling\n\noptional dependencies needed for exports\n\n* h5py : for HDF5 export\n* hdf5storage : for Matlab v7.3 .mat export\n* fastparquet : for parquet export\n* scipy: for Matlab v4 and v5 .mat export\n\nother optional dependencies\n\n* PySide6 : for GUI tool\n* pyqtgraph : for GUI tool and Signal plotting\n* matplotlib : as fallback for Signal plotting\n* faust-cchardet : to detect non-standard Unicode encodings\n* chardet : to detect non-standard Unicode encodings \n* pyqtlet2 : for the GPS window\n* isal : for faster zlib compression/decompression\n* fsspec : access files stored in the cloud\n\n# Benchmarks\n\nhttp://asammdf.readthedocs.io/en/master/benchmarks.html\n",
    "bugtrack_url": null,
    "license": "LGPLv3+",
    "summary": "ASAM MDF measurement data file parser",
    "version": "8.0.1",
    "project_urls": {
        "Homepage": "https://github.com/danielhrisca/asammdf"
    },
    "split_keywords": [
        "read",
        "reader",
        "edit",
        "editor",
        "parse",
        "parser",
        "asam",
        "mdf",
        "measurement"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "810372d977a800ccfd727b2b1433ba9df1a6f60d425978e4f944b195f66f2000",
                "md5": "d99b37aa060f8beb1d9c5407f5f858fb",
                "sha256": "9154985456d0c918b02345467d9507dc9f45a44aa06360a2c33e861c1e3b8ea7"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d99b37aa060f8beb1d9c5407f5f858fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 888178,
            "upload_time": "2024-10-01T13:27:21",
            "upload_time_iso_8601": "2024-10-01T13:27:21.996480Z",
            "url": "https://files.pythonhosted.org/packages/81/03/72d977a800ccfd727b2b1433ba9df1a6f60d425978e4f944b195f66f2000/asammdf-8.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a0f800afd48da235a4a2a2fe1d360d127c678c064c127c59f15b6428b1398d08",
                "md5": "98cb792d62dd5ee6f2e03f21794d8a58",
                "sha256": "ea4e877daa191769ea7b5f793d221e870679c8b49e173641e929c3154b8d7c4f"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "98cb792d62dd5ee6f2e03f21794d8a58",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 920189,
            "upload_time": "2024-10-01T13:27:28",
            "upload_time_iso_8601": "2024-10-01T13:27:28.062111Z",
            "url": "https://files.pythonhosted.org/packages/a0/f8/00afd48da235a4a2a2fe1d360d127c678c064c127c59f15b6428b1398d08/asammdf-8.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba9e88f823f42896d7b1c19219c45800342eccf32e424540459261b4d6594d1f",
                "md5": "684e1a072abec7f84beb0bfd72e0537f",
                "sha256": "2a662e782fe8bb70ece1a7c491c16db354fbc70a594a20da7ab0f5c7fb72c17d"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "684e1a072abec7f84beb0bfd72e0537f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 891317,
            "upload_time": "2024-10-01T13:27:35",
            "upload_time_iso_8601": "2024-10-01T13:27:35.134637Z",
            "url": "https://files.pythonhosted.org/packages/ba/9e/88f823f42896d7b1c19219c45800342eccf32e424540459261b4d6594d1f/asammdf-8.0.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42c7ab728e41912a3cfe0e5298067cee8adbec94bce8f6ae51b5bec6562e63fc",
                "md5": "5917146c4b14f9260928be362b6c4234",
                "sha256": "ac0991237ff05c2e49df02a8dd8c678510f690834e243e1d80e63e3155d4d7b0"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5917146c4b14f9260928be362b6c4234",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 888179,
            "upload_time": "2024-10-01T13:27:39",
            "upload_time_iso_8601": "2024-10-01T13:27:39.613091Z",
            "url": "https://files.pythonhosted.org/packages/42/c7/ab728e41912a3cfe0e5298067cee8adbec94bce8f6ae51b5bec6562e63fc/asammdf-8.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa3344389149c25305301a7889b7b69c3cf49675c7159af236dd502ed31e7a97",
                "md5": "e7d774db4434f3897c6a1c408dfecd85",
                "sha256": "7238f979c63eace224b950c26c9dce42f7c7beaeb93a1a13a6579f3f927f8257"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e7d774db4434f3897c6a1c408dfecd85",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 920270,
            "upload_time": "2024-10-01T13:27:45",
            "upload_time_iso_8601": "2024-10-01T13:27:45.249533Z",
            "url": "https://files.pythonhosted.org/packages/fa/33/44389149c25305301a7889b7b69c3cf49675c7159af236dd502ed31e7a97/asammdf-8.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "051755ead6eb4f7ee972597c0e3a4ee61c26e12352e30cf5cc9ad9a3521bce70",
                "md5": "6dc29a9ee40b9cce49e198e77ac3b501",
                "sha256": "d9638e8c3e68c835334df9921269481d05fa315b58383ae36c24565ff2e0a7e4"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6dc29a9ee40b9cce49e198e77ac3b501",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 891312,
            "upload_time": "2024-10-01T13:27:53",
            "upload_time_iso_8601": "2024-10-01T13:27:53.121757Z",
            "url": "https://files.pythonhosted.org/packages/05/17/55ead6eb4f7ee972597c0e3a4ee61c26e12352e30cf5cc9ad9a3521bce70/asammdf-8.0.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5238db219cbbe76dbcb1d32dba768fc4fca192c098b6fca1862805a06e0c1fc0",
                "md5": "d186db9d5d8d861bbcd03db426b70453",
                "sha256": "e70cfc85a16e96569d45e304796d4401b5e3796d7f846d6f66da44b6baf77aec"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d186db9d5d8d861bbcd03db426b70453",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 888265,
            "upload_time": "2024-10-01T13:27:59",
            "upload_time_iso_8601": "2024-10-01T13:27:59.663371Z",
            "url": "https://files.pythonhosted.org/packages/52/38/db219cbbe76dbcb1d32dba768fc4fca192c098b6fca1862805a06e0c1fc0/asammdf-8.0.1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "448c5b2385bc3b0511a2a96ed8e1643df64dcf190d60cfb95849625a9ab7c8b4",
                "md5": "bb4f6f0eb29eba1e73d1c9ca2b106050",
                "sha256": "a07ebbbf1f4f6f724a2f992eaff809a4f6000e7e9a1796657e9857e589529e57"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bb4f6f0eb29eba1e73d1c9ca2b106050",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 920715,
            "upload_time": "2024-10-01T13:28:06",
            "upload_time_iso_8601": "2024-10-01T13:28:06.293141Z",
            "url": "https://files.pythonhosted.org/packages/44/8c/5b2385bc3b0511a2a96ed8e1643df64dcf190d60cfb95849625a9ab7c8b4/asammdf-8.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4a96ad9208ed9f5ed077dddca45c12b192e3b1c9641e959742cdede549c0e49",
                "md5": "82aa2ce99598779f09497a2991486e60",
                "sha256": "d9685e07503671816680b485c7032716acac72fd31e247a6acb059a775cd2100"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "82aa2ce99598779f09497a2991486e60",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 891332,
            "upload_time": "2024-10-01T13:28:13",
            "upload_time_iso_8601": "2024-10-01T13:28:13.363993Z",
            "url": "https://files.pythonhosted.org/packages/f4/a9/6ad9208ed9f5ed077dddca45c12b192e3b1c9641e959742cdede549c0e49/asammdf-8.0.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "75299ba06bec84c81cb5d6d0dec7324fd18a474221cd75f929f082d4427b9a03",
                "md5": "88f40e98fa6bb03fb4a6d7bc7b9341a5",
                "sha256": "fb63b3c072a8f3c5c0d3afa26284e5e281fbd73e191ab6e8f7941e69333fd16e"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "88f40e98fa6bb03fb4a6d7bc7b9341a5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 888173,
            "upload_time": "2024-10-01T13:28:17",
            "upload_time_iso_8601": "2024-10-01T13:28:17.567999Z",
            "url": "https://files.pythonhosted.org/packages/75/29/9ba06bec84c81cb5d6d0dec7324fd18a474221cd75f929f082d4427b9a03/asammdf-8.0.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58bf502b837b0f687d6e13cca1634a64be6c00f0751a723f909685ef0b191e3e",
                "md5": "0ac9f5b76acb86096d9e7151252bd4eb",
                "sha256": "3f7cc100be038d95a3928f31ca90fef66a80fdfaaee0f8f96b424e240ccf9b72"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0ac9f5b76acb86096d9e7151252bd4eb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 920162,
            "upload_time": "2024-10-01T13:28:20",
            "upload_time_iso_8601": "2024-10-01T13:28:20.350117Z",
            "url": "https://files.pythonhosted.org/packages/58/bf/502b837b0f687d6e13cca1634a64be6c00f0751a723f909685ef0b191e3e/asammdf-8.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9784434c0ab921f52eaedecbd94a0314ba64d6c73b55fa512694f7ac0c6489ea",
                "md5": "b5ea34125b30b0b76eee38c6d395da5e",
                "sha256": "b704b637bb773d32b5166e597f1b398eaedcf2dd365f184412732257a34cd9ac"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b5ea34125b30b0b76eee38c6d395da5e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 891307,
            "upload_time": "2024-10-01T13:28:24",
            "upload_time_iso_8601": "2024-10-01T13:28:24.128823Z",
            "url": "https://files.pythonhosted.org/packages/97/84/434c0ab921f52eaedecbd94a0314ba64d6c73b55fa512694f7ac0c6489ea/asammdf-8.0.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a5c5173d96d95dbb75f2700baf2e30ab71d91326b9187c993b44ad2730a8733",
                "md5": "00a69b0fe768bf5cc39db5206a4f1c6b",
                "sha256": "aa40bb4103aefbea75777ff4888c8ee20089e62f0c141f7e07c01de1beb93247"
            },
            "downloads": -1,
            "filename": "asammdf-8.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "00a69b0fe768bf5cc39db5206a4f1c6b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 805124,
            "upload_time": "2024-10-01T13:28:29",
            "upload_time_iso_8601": "2024-10-01T13:28:29.812401Z",
            "url": "https://files.pythonhosted.org/packages/6a/5c/5173d96d95dbb75f2700baf2e30ab71d91326b9187c993b44ad2730a8733/asammdf-8.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-01 13:28:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "danielhrisca",
    "github_project": "asammdf",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "canmatrix",
            "specs": [
                [
                    ">=",
                    "1.0"
                ]
            ]
        },
        {
            "name": "lz4",
            "specs": []
        },
        {
            "name": "numexpr",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "<",
                    "2.0.0"
                ],
                [
                    ">=",
                    "1.23.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "typing_extensions",
            "specs": []
        },
        {
            "name": "python-dateutil",
            "specs": []
        },
        {
            "name": "isal",
            "specs": []
        },
        {
            "name": "lxml",
            "specs": [
                [
                    ">=",
                    "4.9.3"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "asammdf"
}
        
Elapsed time: 0.37635s