<div markdown="1" class="custom-badge-table">
| | |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Testing** | [![Code testing status](https://github.com/tektronix/tm_data_types/actions/workflows/test-code.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/test-code.yml) [![Docs testing status](https://github.com/tektronix/tm_data_types/actions/workflows/test-docs.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/test-docs.yml) [![Coverage status](https://codecov.io/gh/tektronix/tm_data_types/branch/main/graph/badge.svg)](https://codecov.io/gh/tektronix/tm_data_types) |
| **Code Quality** | [![CodeQL status](https://github.com/tektronix/tm_data_types/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/codeql-analysis.yml) [![CodeFactor grade](https://www.codefactor.io/repository/github/tektronix/tm_data_types/badge)](https://www.codefactor.io/repository/github/tektronix/tm_data_types) [![pre-commit status](https://results.pre-commit.ci/badge/github/tektronix/tm_data_types/main.svg)](https://results.pre-commit.ci/latest/github/tektronix/tm_data_types/main) |
| **Package** | [![PyPI: Package status](https://img.shields.io/pypi/status/tm_data_types?logo=pypi)](https://pypi.org/project/tm_data_types/) [![PyPI: Latest release version](https://img.shields.io/pypi/v/tm_data_types?logo=pypi)](https://pypi.org/project/tm_data_types/) [![PyPI: Supported Python versions](https://img.shields.io/pypi/pyversions/tm_data_types?logo=python)](https://pypi.org/project/tm_data_types/) [![PyPI: Downloads](https://pepy.tech/badge/tm_data_types)](https://pepy.tech/project/tm_data_types) [![License: Apache 2.0](https://img.shields.io/pypi/l/tm_data_types)](https://github.com/tektronix/tm_data_types/blob/main/LICENSE.md) [![Package build status](https://github.com/tektronix/tm_data_types/actions/workflows/package-build.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/package-build.yml) [![PyPI upload status](https://github.com/tektronix/tm_data_types/actions/workflows/package-release.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/package-release.yml) |
| **Documentation** | [![ReadtheDocs Status](https://img.shields.io/readthedocs/tm_data_types/stable?logo=readthedocs)](https://tm-data-types.readthedocs.io) |
| **Code Style** | [![Test style: pytest](https://img.shields.io/badge/test%20style-pytest-blue)](https://github.com/pytest-dev/pytest) [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-black)](https://docs.astral.sh/ruff/formatter/) [![Docstring style: google](https://img.shields.io/badge/docstring%20style-google-tan)](https://google.github.io/styleguide/pyguide.html) |
| **Linting** | [![pre-commit enabled](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) [![Docstring formatter: docformatter](https://img.shields.io/badge/docstring%20formatter-docformatter-tan)](https://github.com/PyCQA/docformatter)[![Linter: pylint](https://img.shields.io/badge/linter-pylint-purple)](https://github.com/pylint-dev/pylint) |
</div>
---
# tm_data_types: Test & Measurement Data Types
`tm_data_types` provides tools to convert, edit, and write waveform data from Test & Measurement devices.
It simplifies handling waveform formats like CSV, WFM, and BIN in Python.
`tm_data_types` can be used to:
- **Convert** CSV, WFM, and BIN format into a waveform object,
- **Add or edit** waveform metadata,
- **Write** a valid waveform object to a file.
## Supported File Formats
<div markdown="1" class="custom-table-center-cells support-table">
| Interface | File formats |
| --------- | ------------------ |
| Reader | **.csv, .wfm[^1]** |
| Writer | **.csv, .wfm[^1]** |
</div>
## Installation
```shell
pip install tm_data_types
```
## Basic Usage
### Write File
```python
from tm_data_types import AnalogWaveform, write_file
waveform = AnalogWaveform()
file_path = "waveform_1.wfm"
write_file(file_path, waveform)
```
### Read File
```python
from tm_data_types import read_file
file_path = "waveform_1.wfm"
waveform = read_file(file_path)
```
## Documentation
See the full documentation at <https://tm-data-types.readthedocs.io>
## Maintainers
Before reaching out to any maintainers directly, please first check if
your issue or question is already covered by any [open
issues](https://github.com/tektronix/tm_data_types/issues). If the issue or
question you have is not already covered, please [file a new
issue](https://github.com/tektronix/tm_data_types/issues/new/choose) or
start a
[discussion](https://github.com/tektronix/tm_data_types/discussions) and
the maintainers will review and respond there.
- <opensource@tektronix.com> - For open-source policy and license
questions.
## Contributing
Interested in contributing? Check out the [contributing guidelines](https://github.com/tektronix/tm_data_types/blob/main/CONTRIBUTING.md). Please
note that this project is released with a [Code of Conduct](https://github.com/tektronix/tm_data_types/blob/main/CODE_OF_CONDUCT.md). By
contributing to this project, you agree to abide by its terms.
## License
`tm_data_types` was created by Tektronix. It is licensed under the terms of
the [Apache License 2.0](https://github.com/tektronix/tm_data_types/blob/main/LICENSE.md).
## Security
The signatures of the files uploaded to [PyPI](https://pypi.org/project/tm_data_types/) and each
[GitHub Release](https://github.com/tektronix/tm_data_types/releases) can be verified using
the [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify).
The artifact attestations can also be directly downloaded from the
[GitHub repo attestations page](https://github.com/tektronix/tm_data_types/attestations) if desired.
```shell
gh attestation verify --owner tektronix <file>
```
[^1]: Currently, `tm_data_types` only supports the [Tektronix proprietary `.wfm`](https://download.tek.com/manual/Waveform-File-Format-Manual-077022011.pdf) format. Support for other formats is planned for future releases.
Raw data
{
"_id": null,
"home_page": "https://pypi.org/project/tm_data_types/",
"name": "tm-data-types",
"maintainer": "Tektronix",
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": "opensource@tektronix.com",
"keywords": "Tektronix, Test & Measurement",
"author": "Tektronix",
"author_email": "opensource@tektronix.com",
"download_url": "https://files.pythonhosted.org/packages/69/ba/2724dc80dd65e99d3f22fdc4a5dcc15af2f5a40f8f0b1e065fc6fffc2d26/tm_data_types-0.1.1.tar.gz",
"platform": null,
"description": "<div markdown=\"1\" class=\"custom-badge-table\">\n\n| | |\n| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Testing** | [![Code testing status](https://github.com/tektronix/tm_data_types/actions/workflows/test-code.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/test-code.yml) [![Docs testing status](https://github.com/tektronix/tm_data_types/actions/workflows/test-docs.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/test-docs.yml) [![Coverage status](https://codecov.io/gh/tektronix/tm_data_types/branch/main/graph/badge.svg)](https://codecov.io/gh/tektronix/tm_data_types) |\n| **Code Quality** | [![CodeQL status](https://github.com/tektronix/tm_data_types/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/codeql-analysis.yml) [![CodeFactor grade](https://www.codefactor.io/repository/github/tektronix/tm_data_types/badge)](https://www.codefactor.io/repository/github/tektronix/tm_data_types) [![pre-commit status](https://results.pre-commit.ci/badge/github/tektronix/tm_data_types/main.svg)](https://results.pre-commit.ci/latest/github/tektronix/tm_data_types/main) |\n| **Package** | [![PyPI: Package status](https://img.shields.io/pypi/status/tm_data_types?logo=pypi)](https://pypi.org/project/tm_data_types/) [![PyPI: Latest release version](https://img.shields.io/pypi/v/tm_data_types?logo=pypi)](https://pypi.org/project/tm_data_types/) [![PyPI: Supported Python versions](https://img.shields.io/pypi/pyversions/tm_data_types?logo=python)](https://pypi.org/project/tm_data_types/) [![PyPI: Downloads](https://pepy.tech/badge/tm_data_types)](https://pepy.tech/project/tm_data_types) [![License: Apache 2.0](https://img.shields.io/pypi/l/tm_data_types)](https://github.com/tektronix/tm_data_types/blob/main/LICENSE.md) [![Package build status](https://github.com/tektronix/tm_data_types/actions/workflows/package-build.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/package-build.yml) [![PyPI upload status](https://github.com/tektronix/tm_data_types/actions/workflows/package-release.yml/badge.svg?branch=main)](https://github.com/tektronix/tm_data_types/actions/workflows/package-release.yml) |\n| **Documentation** | [![ReadtheDocs Status](https://img.shields.io/readthedocs/tm_data_types/stable?logo=readthedocs)](https://tm-data-types.readthedocs.io) |\n| **Code Style** | [![Test style: pytest](https://img.shields.io/badge/test%20style-pytest-blue)](https://github.com/pytest-dev/pytest) [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-black)](https://docs.astral.sh/ruff/formatter/) [![Docstring style: google](https://img.shields.io/badge/docstring%20style-google-tan)](https://google.github.io/styleguide/pyguide.html) |\n| **Linting** | [![pre-commit enabled](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) [![Docstring formatter: docformatter](https://img.shields.io/badge/docstring%20formatter-docformatter-tan)](https://github.com/PyCQA/docformatter)[![Linter: pylint](https://img.shields.io/badge/linter-pylint-purple)](https://github.com/pylint-dev/pylint) |\n\n</div>\n\n---\n\n# tm_data_types: Test & Measurement Data Types\n\n`tm_data_types` provides tools to convert, edit, and write waveform data from Test & Measurement devices.\nIt simplifies handling waveform formats like CSV, WFM, and BIN in Python.\n\n`tm_data_types` can be used to:\n\n- **Convert** CSV, WFM, and BIN format into a waveform object,\n- **Add or edit** waveform metadata,\n- **Write** a valid waveform object to a file.\n\n## Supported File Formats\n\n<div markdown=\"1\" class=\"custom-table-center-cells support-table\">\n\n| Interface | File formats |\n| --------- | ------------------ |\n| Reader | **.csv, .wfm[^1]** |\n| Writer | **.csv, .wfm[^1]** |\n\n</div>\n\n## Installation\n\n```shell\npip install tm_data_types\n```\n\n## Basic Usage\n\n### Write File\n\n```python\nfrom tm_data_types import AnalogWaveform, write_file\n\nwaveform = AnalogWaveform()\nfile_path = \"waveform_1.wfm\"\nwrite_file(file_path, waveform)\n```\n\n### Read File\n\n```python\nfrom tm_data_types import read_file\n\nfile_path = \"waveform_1.wfm\"\nwaveform = read_file(file_path)\n```\n\n## Documentation\n\nSee the full documentation at <https://tm-data-types.readthedocs.io>\n\n## Maintainers\n\nBefore reaching out to any maintainers directly, please first check if\nyour issue or question is already covered by any [open\nissues](https://github.com/tektronix/tm_data_types/issues). If the issue or\nquestion you have is not already covered, please [file a new\nissue](https://github.com/tektronix/tm_data_types/issues/new/choose) or\nstart a\n[discussion](https://github.com/tektronix/tm_data_types/discussions) and\nthe maintainers will review and respond there.\n\n- <opensource@tektronix.com> - For open-source policy and license\n questions.\n\n## Contributing\n\nInterested in contributing? Check out the [contributing guidelines](https://github.com/tektronix/tm_data_types/blob/main/CONTRIBUTING.md). Please\nnote that this project is released with a [Code of Conduct](https://github.com/tektronix/tm_data_types/blob/main/CODE_OF_CONDUCT.md). By\ncontributing to this project, you agree to abide by its terms.\n\n## License\n\n`tm_data_types` was created by Tektronix. It is licensed under the terms of\nthe [Apache License 2.0](https://github.com/tektronix/tm_data_types/blob/main/LICENSE.md).\n\n## Security\n\nThe signatures of the files uploaded to [PyPI](https://pypi.org/project/tm_data_types/) and each\n[GitHub Release](https://github.com/tektronix/tm_data_types/releases) can be verified using\nthe [GitHub CLI `attestation verify` command](https://cli.github.com/manual/gh_attestation_verify).\nThe artifact attestations can also be directly downloaded from the\n[GitHub repo attestations page](https://github.com/tektronix/tm_data_types/attestations) if desired.\n\n```shell\ngh attestation verify --owner tektronix <file>\n```\n\n[^1]: Currently, `tm_data_types` only supports the [Tektronix proprietary `.wfm`](https://download.tek.com/manual/Waveform-File-Format-Manual-077022011.pdf) format. Support for other formats is planned for future releases.\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Read and write common Test & Measurement data types.",
"version": "0.1.1",
"project_urls": {
"Bug Tracker": "https://github.com/tektronix/tm_data_types/issues",
"Changelog": "https://github.com/tektronix/tm_data_types/blob/main/CHANGELOG.md",
"Documentation": "https://tm-data-types.readthedocs.io",
"Homepage": "https://pypi.org/project/tm_data_types/",
"Repository": "https://github.com/tektronix/tm_data_types"
},
"split_keywords": [
"tektronix",
" test & measurement"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "700a40fd564d8b84ef37673a41ecff8cb1d3a816aaba42e746966c34676330c8",
"md5": "12919ec6cd47581c20f14a8449566e4a",
"sha256": "9dee0f09ec087a56fd6c6680846487abc31f0c6e00efbd49e25fdebd4e5159ed"
},
"downloads": -1,
"filename": "tm_data_types-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "12919ec6cd47581c20f14a8449566e4a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 63892,
"upload_time": "2024-09-11T23:06:11",
"upload_time_iso_8601": "2024-09-11T23:06:11.659528Z",
"url": "https://files.pythonhosted.org/packages/70/0a/40fd564d8b84ef37673a41ecff8cb1d3a816aaba42e746966c34676330c8/tm_data_types-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "69ba2724dc80dd65e99d3f22fdc4a5dcc15af2f5a40f8f0b1e065fc6fffc2d26",
"md5": "26337e569aee08758dd4495161a09b53",
"sha256": "6a7178f497e12c028a417f0514b11bbff8873570b92a8d326956cf4438fef6c9"
},
"downloads": -1,
"filename": "tm_data_types-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "26337e569aee08758dd4495161a09b53",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 49518,
"upload_time": "2024-09-11T23:06:13",
"upload_time_iso_8601": "2024-09-11T23:06:13.106060Z",
"url": "https://files.pythonhosted.org/packages/69/ba/2724dc80dd65e99d3f22fdc4a5dcc15af2f5a40f8f0b1e065fc6fffc2d26/tm_data_types-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-11 23:06:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tektronix",
"github_project": "tm_data_types",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tm-data-types"
}