{ "info": { "author": "Kenneth Lyons", "author_email": "ixjlyons@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: X11 Applications :: Qt", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Scientific/Engineering :: Medical Science Apps." ], "description": ".. image:: docs/_static/axopy.png\n :alt: AxoPy Logo\n\n|\n\n.. image:: https://travis-ci.org/axopy/axopy.svg?branch=master\n :target: https://travis-ci.org/axopy/axopy\n :alt: Travis CI Status\n\n.. image:: https://readthedocs.org/projects/axopy/badge/?version=latest\n :target: http://axopy.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://codecov.io/gh/axopy/axopy/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/axopy/axopy\n :alt: Codecov test coverage\n\n.. image:: https://img.shields.io/pypi/v/axopy.svg\n :target: https://pypi.org/project/axopy/\n :alt: PyPI package\n\n.. image:: https://img.shields.io/conda/vn/conda-forge/axopy.svg\n :target: https://anaconda.org/conda-forge/axopy\n :alt: Anaconda package\n\n|\n\n**Documentation**: https://axopy.readthedocs.io\n\nAxo-Pythonic synapses are those in which an axon synapses upon a Python\nprogram. AxoPy aims to facilitate such connections between electrophysiolgical\nsignals and machines by making it easy for researchers to develop\nhuman-computer interface experiments. If you've ever found yourself spending\nmore time thinking about how to implement your experiments than thinking about\n*what the experiment should be*, AxoPy may be able to help.\n\nAxoPy consists of:\n\nGraphical interface\n Central to AxoPy is the graphical user interface providing visual feedback\n to the subject and controlling the flow of the experiment. The GUI is\n backed by PyQt5, and you're free to implement customized graphical elements\n if those built in to AxoPy don't suit your needs.\nData acquisition\n AxoPy establishes a fairly simple API for communicating with input\n hardware, so all that's usually needed is a bit of middleware to get going.\n Check out pytrigno_ or pymcc_ to see what this is like. A couple input\n devices are built in (keyboard, noise generator), so examples run without\n needing special hardware.\nData storage\n Data is stored in a file structure with common file formats (CSV and HDF5)\n so you can a) start working with data as soon as an experiment session is\n over and b) you don't need anything but standard tools (pandas, h5py) to do\n so. A high-level interface to the storage structure is also provided to\n make traversing a dataset simple.\nPipeline processing\n Estimating intentions of the user from raw electrophysiological signals\n often involves a large number of processing operations. AxoPy facilitates\n flexible construction of pipelines that can be reused in different parts of\n an experiment and re-used for offline post-processing, etc.\n\n\nQuickstart\n==========\n\nInstallation\n------------\n\npip\n^^^\n\nAxoPy is available on `PyPI`_, so the following should get it installed if\nyou're using a standard Python installation with ``pip``::\n\n $ pip install axopy\n\n*Note*: if you have Python < 3.5, ``pip`` will not be able to install the\n``pyqt5`` package for you because wheels for ``pyqt5`` are only provided for\nPython >= 3.5. If you are stuck on an older version of Python, consider using\n``conda`` (described below, works for any Python version) or installing Qt5 and\nPyQt5 yourself before running the command above.\n\nSee the `development documentation`_ for information on setting up\na development environment to work on AxoPy itself.\n\nconda\n^^^^^\n\nAxoPy is also available on `conda-forge`_, so if you're using (Ana)conda with\nany Python version, you can install it with::\n\n $ conda install -c conda-forge axopy\n\nHello, AxoPy\n------------\n\nHere's a minimal example to display some randomly generated signals in an\n\"oscilloscope\":\n\n.. code-block:: python\n\n import axopy\n\n daq = axopy.daq.NoiseGenerator(rate=1000, num_channels=4, read_size=100)\n exp = axopy.experiment.Experiment(daq=daq)\n exp.run(axopy.task.Oscilloscope())\n\n\nNext Steps\n----------\n\nCheck out the documentation_ for more information on creating experiments. Some\n`examples`_ are also available.\n\n\nContributing\n============\n\nPlease feel free to share any thoughts or opinions about the design and\nimplementation of this software by `opening an issue on GitHub\n`_. Constructive feedback is\nwelcomed and appreciated.\n\nGitHub issues also serve as the support channel, at least for now. Questions\nabout how to do something are usually great opportunities to improve\ndocumentation, so you may be asked about your thoughts on where the answers\nshould go.\n\nIf you want to contribute code, open a pull request. Bug fix pull requests are\nalways welcome. For feature additions, breaking changes, etc. check if there is\nan open issue discussing the change and reference it in the pull request. If\nthere isn't one, it is recommended to open one with your rationale for the\nchange before spending significant time preparing the pull request.\n\nIdeally, new/changed functionality should come with tests and documentation. If\nyou are new to contributing, it is perfectly fine to open a work-in-progress\npull request and have it iteratively reviewed. See the `development\ndocumentation`_ for instructions on setting up a development environment,\nrunning tests, and building the documentation.\n\n\n.. _pytrigno: https://github.com/axopy/pytrigno\n.. _pymcc: https://github.com/axopy/pymcc\n.. _documentation: https://axopy.readthedocs.io\n.. _examples: https://github.com/axopy/axopy/tree/master/examples\n.. _PyPI: https://pypi.org/\n.. _conda-forge: https://conda-forge.org/\n.. _conda: https://conda.io/docs/\n.. _development documentation: http://axopy.readthedocs.io/en/latest/development.html\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/axopy/axopy", "keywords": "human computer interface control electrophysiology", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "axopy", "package_url": "https://pypi.org/project/axopy/", "platform": "", "project_url": "https://pypi.org/project/axopy/", "project_urls": { "Homepage": "https://github.com/axopy/axopy" }, "release_url": "https://pypi.org/project/axopy/0.2.3/", "requires_dist": [ "numpy", "scipy", "pandas", "h5py", "pyqt5", "pyqtgraph (>=0.10)", "numpy ; extra == 'dev'", "scipy ; extra == 'dev'", "pandas ; extra == 'dev'", "h5py ; extra == 'dev'", "pyqt5 ; extra == 'dev'", "pyqtgraph (>=0.10) ; extra == 'dev'", "pytest (>=3.6) ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "pytest-qt ; extra == 'dev'", "pytest-mock ; extra == 'dev'", "pytest-xvfb ; extra == 'dev'", "flake8 ; extra == 'dev'", "sphinx ; extra == 'dev'", "sphinx-rtd-theme ; extra == 'dev'", "sphinx-gallery ; extra == 'dev'", "matplotlib ; extra == 'dev'", "pillow ; extra == 'dev'" ], "requires_python": "", "summary": "Human-computer interface experimentation library", "version": "0.2.3" }, "last_serial": 4809388, "releases": { "0.1.0.dev0": [ { "comment_text": "", "digests": { "md5": "389910266fbd3f0bce93a165ce0e42c8", "sha256": "7e6afbb093107d417ae2a50e6cfac9de8fb761dd3e2ee6540f2ed2d953baae3b" }, "downloads": -1, "filename": "axopy-0.1.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "389910266fbd3f0bce93a165ce0e42c8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43386, "upload_time": "2018-06-08T04:50:51", "url": "https://files.pythonhosted.org/packages/d4/c5/6b2492a12b6ead17b0b7fe9ceda90b981a4250a758501f8ad1a9d65dace7/axopy-0.1.0.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a9517135b93e28e31c0f09452f576e5", "sha256": "e058f4b205cd670dbda9ab668e13dc3a62b73c9b7ceeea88bec6a50dd0b90ac8" }, "downloads": -1, "filename": "axopy-0.1.0.dev0.tar.gz", "has_sig": false, "md5_digest": "0a9517135b93e28e31c0f09452f576e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38447, "upload_time": "2018-06-08T04:50:53", "url": "https://files.pythonhosted.org/packages/d9/2f/0cdff724b27b2441a93fca4561b6d58c72eb8b98bacf9420b3e07729053c/axopy-0.1.0.dev0.tar.gz" } ], "0.1.0.dev1": [ { "comment_text": "", "digests": { "md5": "cbb8311a74a4a00ced0c2de05d3da314", "sha256": "6d3f4b125aeba1b18371fd9eef53d50c36385c1f9042ce44da2935fde0f70cdb" }, "downloads": -1, "filename": "axopy-0.1.0.dev1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cbb8311a74a4a00ced0c2de05d3da314", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43361, "upload_time": "2018-06-08T16:29:00", "url": "https://files.pythonhosted.org/packages/48/ed/bfa9d63b5b56fbb3a1f720a2d45675e8c032c8776f39ad3a3a19eba8309a/axopy-0.1.0.dev1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15271807084a90515b3da53dcf17f822", "sha256": "78e77ebb59bf16e145e7419fda03c088f566c10a83897d4ba9c6d653885c2c76" }, "downloads": -1, "filename": "axopy-0.1.0.dev1.tar.gz", "has_sig": false, "md5_digest": "15271807084a90515b3da53dcf17f822", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39292, "upload_time": "2018-06-08T16:29:01", "url": "https://files.pythonhosted.org/packages/83/31/8c0021609179132514ad5f6ad6ce8fe11e45ebce602bb157d906bf86795a/axopy-0.1.0.dev1.tar.gz" } ], "0.1.0.dev2": [ { "comment_text": "", "digests": { "md5": "4cb1e37fd446e86baebafb4b8fe6f4c1", "sha256": "8e5f9d38ee24e41e411df3ad495ce71e0050c32c6055b153150c97a79f25e88f" }, "downloads": -1, "filename": "axopy-0.1.0.dev2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4cb1e37fd446e86baebafb4b8fe6f4c1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43882, "upload_time": "2018-06-20T00:27:59", "url": "https://files.pythonhosted.org/packages/2c/63/ced1a75befaaedef23c79fdbf5b2ab61a67adb185691888d111eed95c00f/axopy-0.1.0.dev2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ed7f502c3f3818ee3cf96dadd972a9e", "sha256": "45b89a65431698d8686057a36e02385b3c7610bc65913d8dc9a25ea856a67d2a" }, "downloads": -1, "filename": "axopy-0.1.0.dev2.tar.gz", "has_sig": false, "md5_digest": "1ed7f502c3f3818ee3cf96dadd972a9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38488, "upload_time": "2018-06-20T00:28:00", "url": "https://files.pythonhosted.org/packages/b3/58/c4723af64e76179299bad4c0fdff50a9092d585e4cb3070328907d26bb27/axopy-0.1.0.dev2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "27fe2aa3896821f9c423deccdee6b55f", "sha256": "fe12ec67264026efd7c1de7ddb0067691dee268a8e1026e3ad6fa39b6d7b97aa" }, "downloads": -1, "filename": "axopy-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "27fe2aa3896821f9c423deccdee6b55f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 50452, "upload_time": "2019-01-12T04:12:47", "url": "https://files.pythonhosted.org/packages/7a/06/b8fec9d91de9be45da9ec12bd7c2076134cafee734bda81d0c48d1091ee8/axopy-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9cc14148dcb791b17d724ec6fa09379d", "sha256": "c02153b4dc150b5071b54e6f7fcd1cce39b47b5144054c278f1b3b80697858f4" }, "downloads": -1, "filename": "axopy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9cc14148dcb791b17d724ec6fa09379d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40676, "upload_time": "2019-01-12T04:12:49", "url": "https://files.pythonhosted.org/packages/00/0e/2fc61691fa5f54586787225e6dacce39e17d043c425524211a0c4eb9d47d/axopy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "65b3d0360ff8e14820ed4d1db102f85e", "sha256": "783dc1c67682d7146ea42e96ec00319328b88ab5aea8e71990d616ff3bf62599" }, "downloads": -1, "filename": "axopy-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65b3d0360ff8e14820ed4d1db102f85e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 50453, "upload_time": "2019-01-12T04:24:02", "url": "https://files.pythonhosted.org/packages/60/c0/42b95e240c07981e994d857b4c28271226e98386b60cb9012ed3c8d5c290/axopy-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "395aefdffff8277b61fdb88d5f3ce7c1", "sha256": "b8cae78bc78d63c6d830aa592ea4930e4c72643beb5469c00ddc663ecdec65e8" }, "downloads": -1, "filename": "axopy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "395aefdffff8277b61fdb88d5f3ce7c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40663, "upload_time": "2019-01-12T04:24:03", "url": "https://files.pythonhosted.org/packages/45/b8/fe7636b150002761613c33cbd8def1df7a7f22302938041bda72a5fb42f3/axopy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "fb0dfc3d76de6dbfad466804220b387c", "sha256": "52c662c78f3ed2f921b80e8feab9e80cf03e2061fd464fcd3746468d2e7a568a" }, "downloads": -1, "filename": "axopy-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fb0dfc3d76de6dbfad466804220b387c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45175, "upload_time": "2019-01-26T18:08:29", "url": "https://files.pythonhosted.org/packages/07/ec/b7225d3fadfa045d409c91d81f65e2effae8cc22630f925f882ad0696530/axopy-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6de101109b82cd648e4be37ed7b5836e", "sha256": "fd7d2d8b9a208b69c61b6cffad5bf08eb0ec5cd460d59ceecdc8fdfafd4b6108" }, "downloads": -1, "filename": "axopy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6de101109b82cd648e4be37ed7b5836e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40623, "upload_time": "2019-01-26T18:08:31", "url": "https://files.pythonhosted.org/packages/e8/3c/953d6f0b2d49f511cf723b1508bfdbd73ad1deffcd7d147792c935375937/axopy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "9199b14dabe122ad097e7c97e9108228", "sha256": "c4f8c5384b068c7ee7f10610f8179590c3d511da7349a8252fe8518947a26f6c" }, "downloads": -1, "filename": "axopy-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9199b14dabe122ad097e7c97e9108228", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45306, "upload_time": "2019-02-12T06:39:29", "url": "https://files.pythonhosted.org/packages/4e/d2/d4e1f99c374c8654d14c58faecc962801034761e218973075885419be919/axopy-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d570cdef4f6c0e2356d6402f401dd34", "sha256": "f4bb344de40cdc94dc5386efccb3e675aa9395747cd407a4a152441855629354" }, "downloads": -1, "filename": "axopy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9d570cdef4f6c0e2356d6402f401dd34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40864, "upload_time": "2019-02-12T06:39:31", "url": "https://files.pythonhosted.org/packages/2e/71/2bb4e73aa3933efdfe92a11956cef39168b1d6519705ee5be9f9d1402c7a/axopy-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9199b14dabe122ad097e7c97e9108228", "sha256": "c4f8c5384b068c7ee7f10610f8179590c3d511da7349a8252fe8518947a26f6c" }, "downloads": -1, "filename": "axopy-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9199b14dabe122ad097e7c97e9108228", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 45306, "upload_time": "2019-02-12T06:39:29", "url": "https://files.pythonhosted.org/packages/4e/d2/d4e1f99c374c8654d14c58faecc962801034761e218973075885419be919/axopy-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d570cdef4f6c0e2356d6402f401dd34", "sha256": "f4bb344de40cdc94dc5386efccb3e675aa9395747cd407a4a152441855629354" }, "downloads": -1, "filename": "axopy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9d570cdef4f6c0e2356d6402f401dd34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40864, "upload_time": "2019-02-12T06:39:31", "url": "https://files.pythonhosted.org/packages/2e/71/2bb4e73aa3933efdfe92a11956cef39168b1d6519705ee5be9f9d1402c7a/axopy-0.2.3.tar.gz" } ] }