Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
MicBoucinha committed Nov 7, 2019
2 parents a769006 + 234ca4a commit 0ff7c87
Show file tree
Hide file tree
Showing 19 changed files with 142 additions and 83 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ base/pybpod/dist/
\.idea/

\.vscode/

.mypy_cache
.pyre
25 changes: 25 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@

Changelog
=========
v1.8.0 (2019/11/09)
-------------------
- PyBpod's version number is now shared between the main packages of PyBpod
(pybpod, pybpod-api, pybpod-gui-api and pybpod-gui-plugin).
- pybpod-api (v1.8.0)
- Fixed several documentation related issues
- Updated documentation
- Add support to kill a task or skip all trials to run_state_machine
- pybpod-gui-api (v1.8.0)
- Documentation fixes
- Add support to kill tasks
- pybpod-gui-plugin (v1.8.0)
- Add support to kill tasks (updated Subject and Setup panels)
- Fixed bug where bpods that weren't connected were removed from the list when refreshed
- Fixed Task selection on setup panel being active while running a protocol
- Fixed issue#51 (Behaviour ports were being reset in every load)
- pybpod-gui-plugin-emulator (v0.1.4)
- Add task kill button to UI
- Reordered the “Test Protocol IO” button in the UI
- pybpod-gui-plugin-rotaryencoder (v0.1.4)
- Added support for enabling/disabling moduleOutputStream in the GUI
- pybpod-gui-plugin-soundcard (v0.1.6)
- Added libusb backend support
- Increased timeout duration on read

v1.7.8 (2019/06/03)
-------------------
- Fixed a problem with the setup requirements
Expand Down
64 changes: 32 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
# PyBpod #

**version:** 1.0.1
**version:** 1.7.8

PyBpod is a GUI application that enables interaction with the Bpod device from [Sanworks](https://sanworks.io/).

This project is maintained by a team of SW developers at the Champalimaud Foundation.

### Install PyBpod project ###

1. Download & install [Anaconda](https://www.anaconda.com/download/) or [Miniconda](https://conda.io/miniconda.html) .
2. Download the environment configuration file for your Operating System ( [Windows 10](https://bitbucket.org/fchampalimaud/pybpod/raw/e6c1c8da96c240ae638309359a97b28a2d36ca55/environment-windows-10.yml) ) and create a virtual environment with it by executing the following commands in the "Anaconda Prompt".
## Install PyBpod ##
1. Download & install [Anaconda](https://www.anaconda.com/download/) or [Miniconda](https://conda.io/miniconda.html) to your user.
2. After the installation, open "Anaconda Prompt"
3. Create a virtual environment for running PyBpod with Python 3.6
```
conda create -n pybpod-environment python=3.6
```
4. Activate the environment you just created
```
activate pybpod-environment
```
5. Install PyBpod through PyPI
```
conda env create -f environment-windows-10.yml
pip install pybpod
```
**Notes:**
6. Run the application.
```
start-pybpod
```

## Install PyBpod (for developers) ##

1. Download & install [Anaconda](https://www.anaconda.com/download/) or [Miniconda](https://conda.io/miniconda.html) .

**Note:**
On windows if you install Anaconda/Miniconda for all the users, you should make sure you run the "Anaconda Prompt" as administrator.
To avoid issues, make sure you install Anaconda/Miniconda only for your user.

2. Create a virtual environment for running PyBpod with Python 3.6
```
conda create -n pybpod-environment python=3.6
```
3. Activate the environment you just created.
```
activate pybpod-environment
```
4. Clone the PyBpod repository.
3. Clone the PyBpod repository.
```
git clone https://UmSenhorQualquer@bitbucket.org/fchampalimaud/pybpod.git
git clone https://github.com/pybpod/pybpod.git
```
5. Access the created repository folder.
```
cd pybpod
```
6. Run the "install.py" script to install all necessary dependencies.
```
python install.py
python utils\install.py
```
7. Run the PyBpod application.
```
python -m pybpodgui_plugin
```

### Execute PyBpod GUI ###

1. Open "Anaconda Prompt" and activate the "pybpod-environment".
```
activate pybpod-environment
```
2. Run the application.
start-pybpod
```
python -m pybpodgui_plugin
```

### Update PyBpod GUI ###

1. Open the "Anaconda Prompt" and activate the "pybpod-environment".
```
activate pybpod-environment
```
2. Execute the script "update.py".
```
python update.py
```

#### Acknowledgments ####
PyVmMonitor is being used to support the development of this open source software. For more information please see [PyVmMonitor's web site](http://pyvmmonitor.com)
2 changes: 1 addition & 1 deletion base/pybpod-api
Submodule pybpod-api updated 101 files
2 changes: 1 addition & 1 deletion base/pybpod-gui-api
Submodule pybpod-gui-api updated 57 files
+11 −0 LICENSE.md
+68 −1 README.md
+2 −2 docs/environment.yml
+3 −2 docs/source/about/about.rst
+2 −2 docs/source/api_reference/models/board/board.rst
+1 −1 docs/source/api_reference/models/session/session.rst
+19 −12 docs/source/conf.py
+2 −2 docs/source/howto/index.rst
+4 −4 docs/source/index.rst
+19 −0 examples/access_session_data.py
+39 −0 examples/create_project.py
+36 −36 pybpodgui_api/__init__.py
+20 −23 pybpodgui_api/com/messaging/parser.py
+7 −7 pybpodgui_api/exceptions/api_error.py
+2 −2 pybpodgui_api/exceptions/board_error.py
+4 −4 pybpodgui_api/exceptions/invalid_session.py
+1 −1 pybpodgui_api/exceptions/invalid_task.py
+2 −2 pybpodgui_api/exceptions/pycontrol_error.py
+2 −2 pybpodgui_api/exceptions/run_setup.py
+1 −1 pybpodgui_api/exceptions/wrong_subject_error.py
+3 −1 pybpodgui_api/models/board/__init__.py
+24 −24 pybpodgui_api/models/board/board_base.py
+111 −116 pybpodgui_api/models/board/board_com.py
+21 −21 pybpodgui_api/models/board/board_io.py
+15 −12 pybpodgui_api/models/board/non_blockingcsvreader.py
+12 −10 pybpodgui_api/models/board/non_blockingstreamreader.py
+3 −1 pybpodgui_api/models/experiment/__init__.py
+20 −12 pybpodgui_api/models/experiment/experiment_base.py
+12 −12 pybpodgui_api/models/experiment/experiment_io.py
+3 −1 pybpodgui_api/models/project/__init__.py
+66 −41 pybpodgui_api/models/project/project_base.py
+57 −51 pybpodgui_api/models/project/project_io.py
+3 −1 pybpodgui_api/models/session/__init__.py
+30 −35 pybpodgui_api/models/session/session_base.py
+7 −9 pybpodgui_api/models/session/session_com.py
+55 −58 pybpodgui_api/models/session/session_io.py
+3 −1 pybpodgui_api/models/setup/__init__.py
+14 −11 pybpodgui_api/models/setup/board_task.py
+28 −20 pybpodgui_api/models/setup/setup_base.py
+114 −116 pybpodgui_api/models/setup/setup_com.py
+38 −36 pybpodgui_api/models/setup/setup_io.py
+14 −14 pybpodgui_api/models/setup/task_variable.py
+3 −1 pybpodgui_api/models/subject/__init__.py
+24 −21 pybpodgui_api/models/subject/subject_base.py
+15 −16 pybpodgui_api/models/subject/subject_io.py
+3 −1 pybpodgui_api/models/task/__init__.py
+48 −35 pybpodgui_api/models/task/task_base.py
+5 −4 pybpodgui_api/models/task/task_file.py
+17 −15 pybpodgui_api/models/task/task_io.py
+15 −14 pybpodgui_api/models/task/taskcommand.py
+3 −1 pybpodgui_api/models/user/__init__.py
+14 −10 pybpodgui_api/models/user/user_base.py
+13 −11 pybpodgui_api/models/user/user_io.py
+1 −1 pybpodgui_api/utils/generate_name.py
+9 −8 pybpodgui_api/utils/send2trash_wrapper.py
+14 −0 requirements-rtd.txt
+18 −16 setup.py
2 changes: 1 addition & 1 deletion base/pybpod-gui-plugin
Submodule pybpod-gui-plugin updated 61 files
+1 −1 LICENSE.md
+2 −2 README.md
+4 −3 docs/source/about/about.rst
+2 −2 docs/source/developers/contributing.rst
+1 −1 docs/source/developers/developing_plugins.rst
+2 −2 docs/source/getting_started/installing.rst
+2 −2 docs/source/getting_started/plugins.rst
+0 −7 docs/source/getting_started/writing_protocols.rst
+1 −10 docs/source/index.rst
+11 −13 pybpodgui_plugin/__init__.py
+14 −14 pybpodgui_plugin/__main__.py
+2 −7 pybpodgui_plugin/models/board/board_com.py
+15 −11 pybpodgui_plugin/models/board/board_dockwindow.py
+70 −69 pybpodgui_plugin/models/board/board_treenode.py
+37 −36 pybpodgui_plugin/models/board/board_uibusy.py
+53 −46 pybpodgui_plugin/models/board/board_window.py
+37 −35 pybpodgui_plugin/models/board/windows/code_editor.py
+1 −5 pybpodgui_plugin/models/board/windows/log_window.py
+2 −6 pybpodgui_plugin/models/experiment/experiment_dockwindow.py
+95 −95 pybpodgui_plugin/models/experiment/experiment_treenode.py
+56 −55 pybpodgui_plugin/models/experiment/experiment_uibusy.py
+64 −64 pybpodgui_plugin/models/experiment/experiment_window.py
+0 −1 pybpodgui_plugin/models/project/__init__.py
+2 −3 pybpodgui_plugin/models/project/project_dockwindow.py
+26 −29 pybpodgui_plugin/models/project/project_treenode.py
+3 −2 pybpodgui_plugin/models/project/project_uibusy.py
+41 −43 pybpodgui_plugin/models/project/project_window.py
+37 −37 pybpodgui_plugin/models/projects/projects_treenode.py
+68 −69 pybpodgui_plugin/models/projects/projects_window.py
+2 −2 pybpodgui_plugin/models/session/session_dockwindow.py
+6 −6 pybpodgui_plugin/models/session/session_signals.py
+6 −5 pybpodgui_plugin/models/session/session_treenode.py
+23 −32 pybpodgui_plugin/models/session/session_uibusy.py
+18 −25 pybpodgui_plugin/models/session/session_window.py
+8 −10 pybpodgui_plugin/models/setup/board_task/board_task_uibusy.py
+89 −100 pybpodgui_plugin/models/setup/board_task/board_task_window.py
+21 −14 pybpodgui_plugin/models/setup/setup_com.py
+1 −3 pybpodgui_plugin/models/setup/setup_dockwindow.py
+67 −66 pybpodgui_plugin/models/setup/setup_treenode.py
+36 −25 pybpodgui_plugin/models/setup/setup_uibusy.py
+84 −60 pybpodgui_plugin/models/setup/setup_window.py
+35 −38 pybpodgui_plugin/models/setup/task_variable.py
+31 −33 pybpodgui_plugin/models/subject/subject_dockwindow.py
+10 −9 pybpodgui_plugin/models/subject/subject_treenode.py
+4 −4 pybpodgui_plugin/models/subject/subject_uibusy.py
+194 −175 pybpodgui_plugin/models/subject/subject_window.py
+3 −4 pybpodgui_plugin/models/task/task_dockwindow.py
+77 −75 pybpodgui_plugin/models/task/task_treenode.py
+13 −19 pybpodgui_plugin/models/task/task_window.py
+46 −46 pybpodgui_plugin/models/task/windows/code_editor.py
+2 −3 pybpodgui_plugin/models/task/windows/command_editor.py
+2 −2 pybpodgui_plugin/models/user/user_dockwindow.py
+9 −9 pybpodgui_plugin/models/user/user_treenode.py
+8 −7 pybpodgui_plugin/models/user/user_window.py
+3 −1 pybpodgui_plugin/resources/__init__.py
+5 −5 pybpodgui_plugin/settings.py
+3 −2 pybpodgui_plugin/utils/__init__.py
+4 −5 requirements-binaries.txt
+5 −6 requirements-dev.txt
+4 −5 requirements-rtd.txt
+21 −19 setup.py
56 changes: 27 additions & 29 deletions base/pybpod/setup.py
Original file line number Diff line number Diff line change
@@ -1,42 +1,40 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re, os
import os
from setuptools import setup

with open(os.path.join('README.md'), 'r') as fd:
with open(os.path.join("README.md"), "r") as fd:
long_description = fd.read()

setup(
name='pybpod',
version="1.7.8",
name="pybpod",
version="1.8.0",
description="Pybpod is a behavioral experiments control system written in Python for Bpod",
author=['Ricardo Ribeiro', 'Luís Teixeira'],
author_email='ricardo.ribeiro@research.fchampalimaud.org, ricardojvr@gmail.com, micboucinha@gmail.com',
license='Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>',
url='https://pybpod.readthedocs.io',
author=["Ricardo Ribeiro", "Luís Teixeira"],
author_email="ricardo.ribeiro@research.fchampalimaud.org, ricardojvr@gmail.com, micboucinha@gmail.com",
license="MIT",
url="https://pybpod.readthedocs.io",
include_package_data=True,
packages=[],
long_description = long_description,
long_description_content_type = 'text/markdown',
install_requires = [
'pyforms-gui==4.901.2',
'pyforms_generic_editor==1.5.1',
'pybpod-api==1.6.4',
'pybpod-gui-api==1.2.2',
'pybpod-gui-plugin==1.6.2',
'pge-plugin-terminal==0.1',
'pybpod-gui-plugin-session-history==1.4.1',
'pybpod-gui-plugin-stmdiagram==1.0.0',
'pybpod-gui-plugin-timeline==1.0.1',
'pybpod-gui-plugin-trial-timeline==1.0.0',
'pybpod-gui-plugin-waveplayer==1.0',
'pybpod-gui-plugin-rotaryencoder==0.1.1',
'pybpod-gui-plugin-soundcard==0.1.5',
'pybpod-gui-plugin-emulator==0.1.3'
long_description=long_description,
long_description_content_type="text/markdown",
install_requires=[
"pyforms-gui==4.901.2",
"pyforms_generic_editor==1.5.1",
"pybpod-api==1.8.0",
"pybpod-gui-api==1.8.0",
"pybpod-gui-plugin==1.8.0",
"pge-plugin-terminal==0.1",
"pybpod-gui-plugin-session-history==1.4.2",
"pybpod-gui-plugin-stmdiagram==1.0.0",
"pybpod-gui-plugin-timeline==1.0.1",
"pybpod-gui-plugin-trial-timeline==1.0.0",
"pybpod-gui-plugin-waveplayer==1.0",
"pybpod-gui-plugin-rotaryencoder==0.1.4",
"pybpod-gui-plugin-soundcard==0.1.6",
"pybpod-gui-plugin-emulator==0.1.4",
],
entry_points={
'console_scripts': [
'start-pybpod=pybpodgui_plugin.__main__:start',
],
}
"console_scripts": ["start-pybpod=pybpodgui_plugin.__main__:start"],
},
)
2 changes: 1 addition & 1 deletion docs/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ dependencies:
- sphinx-autobuild
- sphinx-rtd-theme
- pyqt5
- pyforms-gui
- pyforms-gui==4.901.2
- pybpod
6 changes: 3 additions & 3 deletions docs/source/about/about.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ All examples and Bpod's state machine and communication logic were based on the

License
=======
This is Open Source software. We use the `GNU General Public License version 3 <https://www.gnu.org/licenses/gpl.html>`_.
This is Open Source software with a MIT license.

Maintenance team
================

The current and past members of the **pybpod-api** team.
The current and past members of the **pybpod** team.

* `@cajomferro <https://github.com/cajomferro/>`_ Carlos Mão de Ferro
* `@JBauto <https://github.com/JBauto>`_ João Baúto
Expand All @@ -38,4 +38,4 @@ The current and past members of the **pybpod-api** team.

Questions?
==========
If you have any questions or want to report a problem with this library please fill a issue `here <https://bitbucket.org/fchampalimaud/pybpod-api/issues>`_.
If you have any questions or want to report a problem with this library please fill a issue `here <https://github.com/pybpod/pybpod/issues>`_.
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
copyright = '2018, Ricardo Ribeiro'
author = 'Ricardo Ribeiro'

version = release = '1.7.8'
version = release = '1.8.0'


# -- General configuration ---------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/source/developers/developing_plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Session history plugin, an example

This plugin allows you to display session data in a table view and you can order events by column.

https://bitbucket.org/fchampalimaud/pybpod-gui-plugin-session-history
https://github.com/pybpod/pybpod-gui-plugin-session-history

.. image:: /_images/basic-usage/session_history.png
:scale: 100 %
Expand Down
8 changes: 4 additions & 4 deletions docs/source/getting-started/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,19 @@ ___________________________
2. Download the environment configuration file for your Operating System and create a virtual environment with it by
executing the following commands in the "Anaconda Prompt".

Windows 10: `environment-windows-10.yml <https://bitbucket.org/fchampalimaud/pybpod/raw/248b05a43c2d6059187fa33b609e425e0ef76026/utils/environment-windows-10.yml>`_ (right click->Save Link as):
Windows 10: `environment-windows-10.yml <https://raw.githubusercontent.com/pybpod/pybpod/master/utils/environment-windows-10.yml>`_ (right click->Save Link as):

.. code::
conda env create -f utils/environment-windows-10.yml
Ubuntu 17.10 and up: `environment-ubuntu-17.10.yml <https://bitbucket.org/fchampalimaud/pybpod/raw/248b05a43c2d6059187fa33b609e425e0ef76026/utils/environment-ubuntu-17.10.yml>`_ (right click->Save Link as):
Ubuntu 17.10 and up: `environment-ubuntu-17.10.yml <https://raw.githubusercontent.com/pybpod/pybpod/master/utils/environment-ubuntu-17.10.yml>`_ (right click->Save Link as):

.. code::
conda env create -f utils/environment-ubuntu-17.10.yml
Mac OSx: `environment-macOSx.yml <https://bitbucket.org/fchampalimaud/pybpod/raw/248b05a43c2d6059187fa33b609e425e0ef76026/utils/environment-macOSx.yml>`_ (right click->Save Link as):
Mac OSx: `environment-macOSx.yml <https://raw.githubusercontent.com/pybpod/pybpod/master/utils/environment-macOSx.yml>`_ (right click->Save Link as):

.. code::
Expand All @@ -82,7 +82,7 @@ executing the following commands in the "Anaconda Prompt".

.. code::
git clone https://bitbucket.org/fchampalimaud/pybpod.git
git clone https://github.com/pybpod/pybpod.git
git submodule update --init
5. Access the created repository folder.
Expand Down
36 changes: 34 additions & 2 deletions docs/source/getting-started/plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,38 @@ You can use plugins for:

For detailed information on how to develop plugins please see :ref:`Developing PyBpod GUI plugins <developing_plugins-label>`.

=================
Available Plugins
=================

PyBpod has several plugins and modules for different purposes.
The ones developed by our team are:

* Session history (`GitHub <https://github.com/pybpod/pybpod-gui-plugin-session-history>`_)
* Trial timeline (`GitHub <https://github.com/pybpod/pybpod-gui-plugin-trial-timeline>`_)
* Wave player (`GitHub <https://github.com/pybpod/pybpod-gui-plugin-waveplayer>`_)
* Alyx module (`GitHub <https://github.com/pybpod/pybpod-gui-plugin-alyx>`_)
* Rotary encoder module (`Documentation <https://pybpod-api-rotary-encoder-module.readthedocs.io/>`_, `GitHub <https://github.com/pybpod/pybpod-gui-plugin-rotaryencoder>`_)
* Harp Sound card module (`Documentation <https://pybpod-soundcard-module.readthedocs.io/>`_, `GitHub <https://github.com/pybpod/pybpod-gui-plugin-soundcard>`_)
* Emulator module (`Documentation <https://pybpod-gui-plugin-emulator.readthedocs.io/>`_, `GitHub <https://github.com/pybpod/pybpod-gui-plugin-emulator>`_)

More information can be found at the PyBpod's page in GitHub `here <https://github.com/pybpod>`_.

Community made plugins
----------------------

There are also some plugins developed by the PyBpod's community.
The following plugins were developed by the *de la Rocha* lab:

* Water calibration (`BitBucket <https://bitbucket.org/delaRochaLab/water-calibration-plugin/>`_)
* Graphics Trend plugin for 2FC tasks (`BitBucket <https://bitbucket.org/delaRochaLab/trend-2fc-plugin/src/master-3A/>`_)
* Raster plot visualization of live or recorded sessions (`BitBucket <https://bitbucket.org/delaRochaLab/raster-plugin/>`_)
* Sound calibration (`BitBucket <https://bitbucket.org/delaRochaLab/sound-calibration-plugin/src/master-3A/>`_)

.. warning::
These plugins might not work with the latest PyBpod version. Please check their respective documentation to confirm for which PyBpod version they were developed.


======================
How to install plugins
======================
Expand Down Expand Up @@ -48,7 +80,7 @@ Session history

This plugin allows you to display session data in a table view and you can order events by column.

https://bitbucket.org/fchampalimaud/pybpod-gui-plugin-session-history
https://github.com/pybpod/pybpod-gui-plugin-session-history

.. image:: /_images/basic-usage/session_history.png
:scale: 100 %
Expand All @@ -59,7 +91,7 @@ Session timeline

This plugin displays trial states in a bar plot.

https://bitbucket.org/fchampalimaud/pybpod-gui-plugin-timeline
https://github.com/pybpod/pybpod-gui-plugin-timeline

.. image:: /_images/basic-usage/session_timeline.png
:scale: 100 %
5 changes: 3 additions & 2 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Python is one of the most popular programming languages today `[1] <https://pypl

Questions?
==========
If you have any questions or want to report a problem with this library please fill in an issue `here <https://bitbucket.org/fchampalimaud/pybpod-api/issues>`_.
If you have any questions or want to report a problem with this library please fill in an issue `here <https://github.com/pybpod/pybpod/issues>`_.

Contents
========
Expand Down Expand Up @@ -81,7 +81,8 @@ Contents
:caption: API reference

PyBpod API <https://pybpod-api.readthedocs.io/>

PyBpod GUI API <https://pybpod-gui-api.readthedocs.io/>

.. toctree::
:maxdepth: 4
:includehidden:
Expand Down
2 changes: 1 addition & 1 deletion plugins/pybpod-gui-plugin-alyx

0 comments on commit 0ff7c87

Please sign in to comment.