{ "info": { "author": "Christian Kothe", "author_email": "christian.kothe@intheon.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering" ], "description": "[![Latest PyPI Release](https://img.shields.io/pypi/v/pyxdf)](https://pypi.org/project/pyxdf/)\n[![Latest Conda Release](https://img.shields.io/conda/vn/conda-forge/pyxdf)](https://anaconda.org/conda-forge/pyxdf)\n![Python 3.5+](https://img.shields.io/badge/python-3.5+-green.svg)\n![License](https://img.shields.io/github/license/xdf-modules/xdf-python)\n\npyXDF\n=====\n\npyXDF is a Python importer for [XDF](https://github.com/sccn/xdf) files.\n\n## Sample usage\n\n``` python\nimport pyxdf\nimport matplotlib.pyplot as plt\nimport numpy as np\n\ndata, header = pyxdf.load_xdf('test.xdf')\n\nfor stream in data:\n y = stream['time_series']\n\n if isinstance(y, list):\n # list of strings, draw one vertical line for each marker\n for timestamp, marker in zip(stream['time_stamps'], y):\n plt.axvline(x=timestamp)\n print(f'Marker \"{marker[0]}\" @ {timestamp:.2f}s')\n elif isinstance(y, np.ndarray):\n # numeric data, draw as lines\n plt.plot(stream['time_stamps'], y)\n else:\n raise RuntimeError('Unknown stream format')\n\nplt.show()\n```\n\n## Installation\n\nThe latest stable version can be installed with `pip install pyxdf`.\n\nFor the latest development version, use `pip install git+https://github.com/xdf-modules/xdf-Python.git`.\n\n## For maintainers\n\nA new release is automatically uploaded to PyPI. Therefore, as soon as a new release is created on GitHub (using a tag labeled e.g. `v1.16.2`), a PyPI package is created with the version number matching the release tag.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xdf-modules/xdf-Python", "keywords": "XDF,pyxdf,LSL,Lab Streaming Layer,File Format,biosignals,stream", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "pyxdf", "package_url": "https://pypi.org/project/pyxdf/", "platform": "", "project_url": "https://pypi.org/project/pyxdf/", "project_urls": { "Homepage": "https://github.com/xdf-modules/xdf-Python" }, "release_url": "https://pypi.org/project/pyxdf/1.16.3/", "requires_dist": [ "numpy" ], "requires_python": "", "summary": "Python library for importing XDF (Extensible Data Format)", "version": "1.16.3", "yanked": false, "yanked_reason": null }, "last_serial": 7909571, "releases": { "1.14.0": [ { "comment_text": "", "digests": { "md5": "bef88dfcbb1a4e418ed8c5a70176b1c2", "sha256": "971d851dac6150fef7441fe7d458055a61eeaf4418d432ef4f3b7a342ea0c8bc" }, "downloads": -1, "filename": "pyxdf-1.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bef88dfcbb1a4e418ed8c5a70176b1c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10915, "upload_time": "2018-12-12T19:42:02", "upload_time_iso_8601": "2018-12-12T19:42:02.029079Z", "url": "https://files.pythonhosted.org/packages/13/25/1eae8bdbf0094c7e23886b5118fbd19e595c5616f3bfae191abc25413832/pyxdf-1.14.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1a937523600327b419ff452f2f75aebc", "sha256": "0906ad673c5ad4332a6663a5524e44c85b328b6893ba6497efb62690e6eb1df0" }, "downloads": -1, "filename": "pyxdf-1.14.0.tar.gz", "has_sig": false, "md5_digest": "1a937523600327b419ff452f2f75aebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11366, "upload_time": "2018-12-12T19:42:05", "upload_time_iso_8601": "2018-12-12T19:42:05.088688Z", "url": "https://files.pythonhosted.org/packages/ac/de/c297f24541ee05cb3408a56d908c8cfde0b6a6f162ea1a9284e6cb2ce386/pyxdf-1.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.15.1": [ { "comment_text": "", "digests": { "md5": "416beaeb21717c02a95408e2b7a96621", "sha256": "1e9b5acaebe483ef5510fac3e38c3a8b1e90ed8c04f5d797aa5630fc4ce4b516" }, "downloads": -1, "filename": "pyxdf-1.15.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "416beaeb21717c02a95408e2b7a96621", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11686, "upload_time": "2019-04-26T04:28:35", "upload_time_iso_8601": "2019-04-26T04:28:35.106779Z", "url": "https://files.pythonhosted.org/packages/27/f6/dff963482797d544311dc50fa6e73a763ca15688b40cb1171b67c026dd3e/pyxdf-1.15.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eb7e660ea6772c6e57958ff4b4ac52af", "sha256": "31f3e72f5efeaa21b5a0657f3d61de31bfc66ae290fedfba553d80cd98dec689" }, "downloads": -1, "filename": "pyxdf-1.15.1.tar.gz", "has_sig": false, "md5_digest": "eb7e660ea6772c6e57958ff4b4ac52af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13050, "upload_time": "2019-04-26T04:28:36", "upload_time_iso_8601": "2019-04-26T04:28:36.722781Z", "url": "https://files.pythonhosted.org/packages/2a/60/0875b5514d0ca97f1fdf83d71a2688f213281c9d0ebba9cc778d28be42ee/pyxdf-1.15.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.15.2": [ { "comment_text": "", "digests": { "md5": "bc60e21741a7351f3cbfb01d962dc969", "sha256": "da38f005fe533c8fae0af7faa074535d9e568b3e7fe1a661ea406ad1a3c48df8" }, "downloads": -1, "filename": "pyxdf-1.15.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bc60e21741a7351f3cbfb01d962dc969", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11431, "upload_time": "2019-06-07T05:57:28", "upload_time_iso_8601": "2019-06-07T05:57:28.404480Z", "url": "https://files.pythonhosted.org/packages/64/44/770e47766dcc49378b7c48704ad0d5282e5ac865f8104a0cbcf6d23dcc89/pyxdf-1.15.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4c38278e93c1c57c90d199b5fbc9645b", "sha256": "c4a2fe9058274e3da7637b0f4afcf54365a616a6cd71333eb5e18e94caa7c86b" }, "downloads": -1, "filename": "pyxdf-1.15.2.tar.gz", "has_sig": false, "md5_digest": "4c38278e93c1c57c90d199b5fbc9645b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12866, "upload_time": "2019-06-07T05:57:29", "upload_time_iso_8601": "2019-06-07T05:57:29.976480Z", "url": "https://files.pythonhosted.org/packages/16/8c/4101b843e47bf7a113eb6230a1f287478c89a6465d9a6093975c7d0b6ce3/pyxdf-1.15.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.0": [ { "comment_text": "", "digests": { "md5": "06050ce2ad7060fda17189c5cf7d711e", "sha256": "8da8284fe8e1347170078d717590fb753d733008e05ce8c4073f3ea605cc321a" }, "downloads": -1, "filename": "pyxdf-1.16.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06050ce2ad7060fda17189c5cf7d711e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13300, "upload_time": "2019-09-27T14:27:32", "upload_time_iso_8601": "2019-09-27T14:27:32.516491Z", "url": "https://files.pythonhosted.org/packages/10/5b/32c74b71a33c1f3a567f78f813035727fb03c91d439d5b67b8d97947acc8/pyxdf-1.16.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ebc401637f7f57674051adac83c24e09", "sha256": "1a1bb80292a90f55b606b2de948e4fb24690e8c1d2419fcdf26fa1df526045db" }, "downloads": -1, "filename": "pyxdf-1.16.0.tar.gz", "has_sig": false, "md5_digest": "ebc401637f7f57674051adac83c24e09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15286, "upload_time": "2019-09-27T14:27:34", "upload_time_iso_8601": "2019-09-27T14:27:34.006464Z", "url": "https://files.pythonhosted.org/packages/cf/85/b6f5e1cdd42cad25479d3e22806fed15b132d0ccb8e77d174d28185bd315/pyxdf-1.16.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.1": [ { "comment_text": "", "digests": { "md5": "07016a7f321a2018e89c13e25cb42285", "sha256": "48ba597abd1295b200dfda118e5f1d15ab6b9f08227583782c9b257466316485" }, "downloads": -1, "filename": "pyxdf-1.16.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "07016a7f321a2018e89c13e25cb42285", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13295, "upload_time": "2019-09-28T08:00:12", "upload_time_iso_8601": "2019-09-28T08:00:12.288727Z", "url": "https://files.pythonhosted.org/packages/aa/c5/28dcefef9c3213ba9bb7bc97dd64d79ee57bab3e3cfa007c6b3e10279875/pyxdf-1.16.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b87c7714c41a3ee1cc1c6960533e2b04", "sha256": "89f99b74e454ffd252b6aeba26d006d3ca181639838f13b9a23320edc58da924" }, "downloads": -1, "filename": "pyxdf-1.16.1.tar.gz", "has_sig": false, "md5_digest": "b87c7714c41a3ee1cc1c6960533e2b04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15309, "upload_time": "2019-09-28T08:00:13", "upload_time_iso_8601": "2019-09-28T08:00:13.891038Z", "url": "https://files.pythonhosted.org/packages/99/a4/5204c6fb9adb722c9f4d6f128897e42253383ec962487d5564db065df16e/pyxdf-1.16.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.2": [ { "comment_text": "", "digests": { "md5": "32487e265300311a26b94a0d7ef558c6", "sha256": "7302f876b9d77ab34409830dad62bf9505f96204236e2822da8832dcc3ee6a70" }, "downloads": -1, "filename": "pyxdf-1.16.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32487e265300311a26b94a0d7ef558c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14665, "upload_time": "2019-10-23T07:57:20", "upload_time_iso_8601": "2019-10-23T07:57:20.018381Z", "url": "https://files.pythonhosted.org/packages/40/d8/9b2b1c375662762d37e1614dc6aa1d0eeb56f5e9aa1095f8377f065f1c0a/pyxdf-1.16.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5c9d3af3e91877099d37ba4f3e0b7cb", "sha256": "aa0dfa4ed2d9ff5ec206d685144223822aefcd57eec940cd30f7cb0f16776e89" }, "downloads": -1, "filename": "pyxdf-1.16.2.tar.gz", "has_sig": false, "md5_digest": "c5c9d3af3e91877099d37ba4f3e0b7cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16714, "upload_time": "2019-10-23T07:57:21", "upload_time_iso_8601": "2019-10-23T07:57:21.726801Z", "url": "https://files.pythonhosted.org/packages/f4/a3/6096915be28e4022a2786fd46ebd6104d222be1c815dffc277b8f93470ff/pyxdf-1.16.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.16.3": [ { "comment_text": "", "digests": { "md5": "bef09f62485fd39d07786f2a8a416f07", "sha256": "8e2c1646ad8939f348998c0419fe491c28ec99645a63f21f064820ad251501bc" }, "downloads": -1, "filename": "pyxdf-1.16.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bef09f62485fd39d07786f2a8a416f07", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15270, "upload_time": "2020-08-07T18:40:31", "upload_time_iso_8601": "2020-08-07T18:40:31.839746Z", "url": "https://files.pythonhosted.org/packages/15/19/706a6d7031e2978141e69abc172faddd852ad8bbdb9ad3c486a899f740f1/pyxdf-1.16.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6181ad0b86829b3a9fb0e5ccfc06f2a9", "sha256": "d7744a8ba81992aa44d0ce740c256113324178903cbe18a754ee9f2735649123" }, "downloads": -1, "filename": "pyxdf-1.16.3.tar.gz", "has_sig": false, "md5_digest": "6181ad0b86829b3a9fb0e5ccfc06f2a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18607, "upload_time": "2020-08-07T18:40:33", "upload_time_iso_8601": "2020-08-07T18:40:33.753040Z", "url": "https://files.pythonhosted.org/packages/9b/47/ca71fa9866ed33195ee02afb9eae4e6d7eeb3ce0669a0bdf2a9264372dcd/pyxdf-1.16.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bef09f62485fd39d07786f2a8a416f07", "sha256": "8e2c1646ad8939f348998c0419fe491c28ec99645a63f21f064820ad251501bc" }, "downloads": -1, "filename": "pyxdf-1.16.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bef09f62485fd39d07786f2a8a416f07", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15270, "upload_time": "2020-08-07T18:40:31", "upload_time_iso_8601": "2020-08-07T18:40:31.839746Z", "url": "https://files.pythonhosted.org/packages/15/19/706a6d7031e2978141e69abc172faddd852ad8bbdb9ad3c486a899f740f1/pyxdf-1.16.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6181ad0b86829b3a9fb0e5ccfc06f2a9", "sha256": "d7744a8ba81992aa44d0ce740c256113324178903cbe18a754ee9f2735649123" }, "downloads": -1, "filename": "pyxdf-1.16.3.tar.gz", "has_sig": false, "md5_digest": "6181ad0b86829b3a9fb0e5ccfc06f2a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18607, "upload_time": "2020-08-07T18:40:33", "upload_time_iso_8601": "2020-08-07T18:40:33.753040Z", "url": "https://files.pythonhosted.org/packages/9b/47/ca71fa9866ed33195ee02afb9eae4e6d7eeb3ce0669a0bdf2a9264372dcd/pyxdf-1.16.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }