Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neurofeedback in Python - how to transform Pyff (stimulus delivery) from the old Python 2 into the new Python 3 Realm. #78

Open
jnvandermeer opened this issue Jun 5, 2019 · 0 comments
Labels
CHECK_LABEL Labels needs to be checked by a human documentation Improvements or additions to documentation Hackathon Project Project suggestion project_type:documentation Python

Comments

@jnvandermeer
Copy link

jnvandermeer commented Jun 5, 2019

Neurofeedback in Python - how to transform Pyff (stimulus delivery) from the old Python 2 into the new Python 3 Realm.

Background

Pyff is a Python module that can be combined with Psychopy to perform Neurofeedback experiments. Pyff can load in and run stimulus paradigms and communicate via TCP/IP to other computers to update stimuli in real-time. In order to do so, it starts up a seeparate process with a main thread (since all screen refresh/3D/graphical stuff needs to be in a main thread), and a separate thread that monitors incoming network traffic.

This spearate thread relies heavily on asyncio/asynchat to prevent the that thread from killing itself if something goes wrong with the network traffic part (which usually does). Asynchat/Asyncio is a type of asynchronous programming where the interpreter can continue with other code while one line dealing with network traffic is waiting. Asynchronous programming has underdone many iterations, and one of the major one is that it is now implemented in python 3's async module and asyncio/asynchat no longer exists in favor of the more general async module.

The documentation is however quite bad. The work I propose is to take a look to see if pyff python 2's asyncio/asynchat can be deciphered into equivalent async code, and furthermore to more fully convert pyff into the python 3 realm.

knowledge

Preferably something about async programming

github repository

https://github.com/jnvandermeer/nf-stim-review
2to3 program

This would be a good match for the traintrack python2 to python3 issue raised earlier (issue #25)

@Remi-Gau Remi-Gau added the Hackathon Project Project suggestion label Apr 16, 2020
@Remi-Gau Remi-Gau added documentation Improvements or additions to documentation project_type:documentation Python CHECK_LABEL Labels needs to be checked by a human labels Nov 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CHECK_LABEL Labels needs to be checked by a human documentation Improvements or additions to documentation Hackathon Project Project suggestion project_type:documentation Python
Projects
None yet
Development

No branches or pull requests

2 participants