Skip to content

Commit 1c1f8f9

Browse files
v0.4.4 - Documentation and version bump
1 parent 5be93b0 commit 1c1f8f9

File tree

11 files changed

+106
-19
lines changed

11 files changed

+106
-19
lines changed

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ license: "MPL-2.0"
1919
message: "If you use this software, please cite it using these metadata."
2020
repository-code: "https://github.com/wehr-lab/autopilot"
2121
title: "Autopilot: Automating behavioral experiments with lots of Raspberry Pis"
22-
version: "0.4.3"
22+
version: "0.4.4"
2323
...

autopilot/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__author__ = 'Jonny Saunders <[email protected]>'
2-
__version__ = '0.4.3'
2+
__version__ = '0.4.4'
33

44
from autopilot.setup import setup_autopilot
55
from autopilot.utils.registry import get, get_task, get_hardware, get_names

docs/changelog/v0.4.0.rst

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,51 @@
11
.. _changelog_v040:
22

3-
v0.4.3 (October 20th)
3+
v0.4.4 - Timing and Sound (February 2nd, 2022)
4+
----------------------------
5+
Several parts to this update!
6+
7+
* See `PR#146 <https://github.com/wehr-lab/autopilot/pull/146>`_ for details about improvements to jackd sound timing! In short:
8+
* Changed the way that continuous sounds work. Rather than cycling through an array, which was easy to drop, now pass a sound object that can generate its own samples on the fly using the `hydration` module.
9+
* More accurate timing of sound ending callbacks. Before, the event would be called immediately on buffering the sounds into the jack ports, but that was systematically too early. Instead, use jack timing methods to account for delay from blocksize and n_periods to wait_until a certain delay to `set()` the event. See `_wait_for_end`
10+
11+
Other stuff:
12+
13+
New
14+
~~~~~~~~~~~~~~~~~~~
15+
16+
* ``hydration`` module for creating and storing autopilot objects between processes and computers!
17+
* ``@Introspect`` made and added to sound classes. Will be moved to root class. Allows storing the parameters given on instantiation.
18+
* ``requires`` module for more explicit declarations of by-object dependencies to resolve lots of the little fragile checks throughout the package, as well as make it easier for plugins :)
19+
* ``types`` module that will, well, have types for v0.5.0's reworked type system!
20+
* minor - added exceptions module, just stubs for now
21+
* Made dummy sound class to just use sounds without needing a running sound server
22+
* New transformations! The Prasad line fitting algorithm as ``Linefit_Prasad`` and ordering points in a line from, eg. edge detection in ``Order_Points` `
23+
24+
Improvements
25+
~~~~~~~~~~~~~~~~~~~
26+
27+
* Only warn once for returning a default pref value, and make its own warning class so that it can be filtered.
28+
* Cleaning up the base sound classes and moved them to their own module because sounds was very cumbersome and hard to reason about. Now use ``get_sound_class`` instead of declaring within the module.
29+
* Made optional install packages as ``extras_require`` so now can install with ``pip install auto-pi-lot -E pilot`` rather than autodetecting based on architecture. Further improvements (moving to poetry) will be in v0.5.0
30+
31+
Bugfixes
32+
~~~~~~~~~~~~~~~~~~~
33+
34+
* Correctly identify filenames in logging, before the last module name was treated as a suffix on the path and removed, and so only the most recent logger created would actually log to disk. Logging now works across threads and processes.
35+
* Fall back to a non-multiprocessing-based prefs if for some reason we can't use a mp.Manager in the given context (eg. ipython) - Still need to figure out a way to not print the exception because it is thrown asynchronously.
36+
* as much as i love it, the splash screen being absent for whatever reason shouldn't crash the program.
37+
* Raise an exception when instantiating a picamera without having picamera installed, re: https://github.com/wehr-lab/autopilot/issues/142
38+
* Raise ImportError when ffmpeg is not present and trying to use a videowriter class
39+
* Use a deque rather than an infinitely growing list to store GPIO events.
40+
41+
Docs
42+
~~~~~~~~~~~~~~~~~~~
43+
44+
* Documenting the scripts module a bit better.
45+
* Lots more docs on jack_server
46+
47+
48+
v0.4.3 (October 20th, 2021)
449
---------------------
550

651
New Features

docs/guide/installation.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,20 @@ cloned repository, rather than from the system/venv libraries.::
145145
Development work is done on the ``dev`` branch, which may have additional features/bugfixes but is much less stable!
146146
To use it just ``git checkout dev`` from your repository directory.
147147

148+
Extra Dependencies
149+
-------------------
150+
151+
Different deployments depend on different packages! Eg. `Pilot`s on raspberry pis need some means of interacting with the GPIO pins, and
152+
`Terminal`s need packages for the GUI. Rather than requiring them all for every installation, we use a set of optional dependencies.
153+
154+
Depending on how you intend to use it, you will likely need some additional set of packages, specified like::
155+
156+
pip install auto-pi-lot[pilot]
157+
# or
158+
pip install auto-pi-lot[terminal]
159+
# or if using an editable install
160+
pip install .[pilot]
161+
148162

149163
Configuration
150164
==============

docs/index.rst

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,14 @@ adoption of a singular standard.
2929

3030
For a detailed overview of Autopilot's motivation, design, and structure, see our `whitepaper <https://www.biorxiv.org/content/10.1101/807693v1>`_.
3131

32-
.. admonition:: What's New :ref:`v0.4.0 - Become Multifarious (21-08-03) <changelog_v040>`
33-
34-
* The `Autopilot Wiki <https://wiki.auto-pi-lot.com>`_ is live!!!! The wiki will be the means of gathering and sharing knowledge about using Autopilot, but
35-
it will also serve as an additional tool for building interfaces and decentralizing control over its development. Head to the :ref:`changelog <changelog_v040>`
36-
or the :ref:`guide_plugins` page to learn more
37-
* Autopilot :mod:`~.utils.plugins` are now live!!! Anything in your plugin directory is a plugin, extend most types of autopilot classes to implement
38-
your own custom hardware and tasks and anything else without modifying autopilot itself, then `submit it to the wiki <https://wiki.auto-pi-lot.com/index.php/Autopilot_Plugins>`_
39-
to make it immediately available to everyone who uses the system! Link it to all the rest of your work, the parts it uses, let's make a knowledge graph!!!
40-
* Tests and Continuous Integration are finally here!!! if there has been anything I have learned over the past few projects is that tests are god.
41-
Ours are hosted on `travis <https://app.travis-ci.com/github/wehr-lab/autopilot>`_ and we are currently on the board with a stunning `27% coverage <https://coveralls.io/github/wehr-lab/autopilot>`_
42-
at coveralls.io
43-
* Lots of new hardware and transform classes! Take a look! :class:`.cameras.PiCamera`, :class:`.timeseries.Kalman`, :class:`.geometry.IMU_Orientation`,
44-
:class:`.timeseries.Filter_IIR`, :class:`.timeseries.Integrate`, :class:`.geometry.Rotate`, :class:`.geometry.Spheroid`
45-
* Major improvements like stereo sound (Thanks `Chris Rodgers <https://github.com/cxrodgers/>`_ !), multihop messages, direct messaging, programmatic setup... see more in the :ref:`changelog <changelog_v040`
46-
* Continued work on deconvoluting and remodularating all the code structure!
47-
* Removed limits on python version, now testing on 3.7, 3.8, and 3.9
32+
.. admonition:: What's New :ref:`v0.4.4 - Sound and Timing (2022-02-02) <changelog_v040>`
33+
34+
* Big improvements to the sound server! Decoupling sounds from the server, better stability, etc.
35+
* Trigger timing jitter from jack_client is now much closer to microseconds than the milliseconds it was formerly!
36+
* New :mod:`~autopilot.utils.hydration` module for re-creating objects across processes and agents!
37+
* New :mod:`~autopilot.utils.decorators` and :mod:`~autopilot.utils.types` and :mod:`~autopilot.utils.requires` modules
38+
prefacing the architectural changes in v0.5.0
39+
* See the :ref:`changelog <changelog_v040>` for more!
4840

4941

5042
This documentation is very young and is very much a work in progress! Please `submit an issue <https://github.com/wehr-lab/autopilot/issues/new>`_ with any incompletenesses, confusion, or errors!

docs/stim/sound/base.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
base - sound
2+
===================================
3+
4+
.. automodule:: autopilot.stim.sound.base
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/stim/sound/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ sound
1010

1111
jackclient
1212
pyoserver
13+
base
1314
sounds
1415

docs/utils/decorators.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Decorators
2+
============
3+
4+
.. automodule:: autopilot.utils.decorators
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/utils/hydration.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Hydration
2+
============
3+
4+
.. automodule:: autopilot.utils.hydration
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/utils/requires.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Requires
2+
============
3+
4+
.. automodule:: autopilot.utils.requires
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

0 commit comments

Comments
 (0)