Submitting author: @ixjlyons (Kenneth Lyons)
Repository: https://github.com/axopy/axopy
Version: 0.2.3
Editor: @trallard
Reviewer: @lucask07, @peircej
Archive: 10.5281/zenodo.2562630
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/55b11ae10f53dfef20ac3ffce87db41c"><img src="http://joss.theoj.org/papers/55b11ae10f53dfef20ac3ffce87db41c/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/55b11ae10f53dfef20ac3ffce87db41c)
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
@lucask07 & @peircej, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @trallard know.
โจ Please try and complete your review in the next two weeks โจ
paper.md file include a list of authors with their affiliations?paper.md file include a list of authors with their affiliations?Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @lucask07, it looks like you're currently assigned as the reviewer for this paper :tada:.
:star: Important :star:
If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews ๐ฟ
To fix this do the following two things:


For a list of things I can do to help you, just type:
@whedon commands
Attempting PDF compilation. Reticulating splines etc...
Some important notes about the revision:
Hi @ixjlyons, this package is looking good, very nice work.
Installation via pip (OSX Python 3.7) proceeded without issues:
python -m pip install axopy
However, when importing axopy I hit a snag.
import axopy
ImportError: cannot import name 'Transmitter' from 'axopy.messaging'
Note that this works:
from axopy.messaging import transmitter
so I'm suspecting just a capatalization issue?
@lucask07 my apologies. It turns out there were some stale build files lying around on my system so two versions of the messaging submodule ended up in the packages uploaded to PyPI (the old version and the refactored one). I just did a clean build and uploaded version 0.2.2 to PyPI, so you can try again or just upgrade:
python -m pip install --upgrade axopy
@trallard is there a way to bump the version under review to 0.2.2 since the 0.2.1 package is broken? Or is the version number of much consequence for JOSS? This is the only change just to upload a fixed package to PyPI so it shouldn't affect the other review if it's under way.
Thanks @ixjlyons
The import of axopy is working now.
I'm attempting to run the example within the README file. The QT window seems stuck and only reports "Ready". I tried this in an iPython window and without iPython. It would be helpful to know the expected output of this example. I'm running MacOSX.
A screenshot is below:

Hey @ixjlyons we can definitely bump the version in JOSS. I'll wait until the review is completed in case the reviewers request any more substantial changes or you make another release in the meantime
@lucask07 yes, that looks like it's working as expected. You should be able to press Enter (with the Qt window focused) and then the screen should show an "oscilloscope" with some random signals updating periodically. Pressing Enter again should then finish the experiment and close the window. One thing to note is running an experiment in an interactive shell isn't something I've intended to support, so it looks like there are a few buggy behaviors when doing so. I foresee this as potentially being an issue for people using an IDE that runs things in an interactive shell like Spyder, so I'll work on finding a solution and track things here.
edit: Oh and the takeaway here at least for now is I need to add a note in the README explaining how the GUI works regarding progression through the tasks.
@ixjlyons
Great, I didn't know to press Enter
Now I see real time updates as an oscilloscope. And it works in the IPython console.
One side note. Python aborted when I requested the power spectrum:
line 683, in _fourierTransform
y = abs(f[1:len(f)/2])
TypeError: slice indices must be integers or None or have an __index__ method
Abort trap: 6
Ah, that appears to be an upstream issue. There is a way to selectively disable that operation, but I'm currently leaning toward disabling the context menu altogether. It adds a few nice features, but it's probably best if AxoPy users implement their own processing in the form of the pipeline keyword arg in creating the Oscilloscope task.
Hi @ixjlyons,
Thank you for this software it looks great. The documentation is very nicely done. ๐
My only suggestion would be to emphasize examples that involve connecting a real-world DAQ.
The pymcc is a useful example, but explicitly knowing things like the needed format of the return data from the read method. I'm thinking about using the Oscilloscope connected to a USB3.0 DAQ system that transfers ~20 MB/s.
So two questions:
read be? oscilloscope waveform display can keep up with?@trallard Hi Tania,
I accept this submission and am finished with my review.
I agree. The paper looks all fine. The software looks sensible, useful and following best practices.
Minor suggestions around docs:
But these are minor things. Useful package, put together nicely (and I love the logo!)
I also accept this submission.
Thank you both @peircej and @lucask07 for your reviews. In a nutshell, I agree with all proposed changes and have made them. Here they are as I've understood:
python -m axopy.examples.example), but for now I've opted to use sphinx-gallery to render the examples in the documentation.The changes can be seen here: https://github.com/axopy/axopy/compare/181eab2d2a9f203c61b0a82b259538cdf838d890...master
@lucask07 to answer your questions:
I'm thinking about using the Oscilloscope connected to a USB3.0 DAQ system that transfers ~20 MB/s.
So two questions:
What format must the data returned by read be?
What is the maximum data rate that the oscilloscope waveform display can keep up with?
I added a small note about this in the docs, but basically it's up to you. So far in AxoPy, there's an "encouraged" return type: ndarray with shape (n_channels, n_samples). I say encouraged because you could always just implement some transformations as a pipeline block to get it into the format needed by Oscilloscope :). This may become a problem, however, if that can't be done fast enough with the addition of plotting time... AxoPy uses pyqtgraph in the Oscilloscope -- you'd likely have to downsample, but it can plot quite fast (there are some pyqtgraph examples that demonstrate). The process of creating the ndarray may be the problem at that rate. If you try it, let me know.
Hi all thanks for the time spent in this review, it seems that all the issues have already been dealt with and there are just a few steps between acceptance and now.
@peircej can you please make sure to complete the following tasks before completing this?
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
Minor: I think the request above was meant for the author @ixjlyons rather than me (to update the version etc).
Ok, here's the DOI for axopy-0.2.3: 10.5281/zenodo.2562630
Thanks once again @trallard, @peircej, and @lucask07 for your time and feedback.
@whedon set 10.5281/zenodo.2562630 as archive
@whedon set 0.2.3 as version
OK. 0.2.3 is the version.
@ixjlyons all looks good to me so I am going to proceed for acceptance
@lucask07 and @peircej thanks a lot for your time and valuable contribution to JOSS as reviewers for this submission ๐๐ป
@arfon: this submission is accepted and ready to be published ๐๐พ
@whedon set 10.5281/zenodo.2562630 as archive
OK. 10.5281/zenodo.2562630 is the archive.
@whedon accept
Attempting dry run of processing paper acceptance...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/496
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/496, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
๐จ๐จ๐จ THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! ๐จ๐จ๐จ
Here's what you must now do:
Party like you just published a paper! ๐๐๐ฆ๐๐ป๐ค
Any issues? notify your editorial technical team...
@lucask07, @peircej - many thanks for your reviews and to @trallard for editing this submission โจ
@ixjlyons - your paper is now accepted into JOSS :zap::rocket::boom:
@arfon: this submission is accepted and ready to be published ๐๐พ
@trallard - in the future could you please ping @openjournals/joss-eics when a review is complete? That way, the managing editor on duty can process the submission.
:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:
If you would like to include a link to your paper from your README use the following code snippets:
Markdown:
[](https://doi.org/10.21105/joss.01191)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01191">
<img src="http://joss.theoj.org/papers/10.21105/joss.01191/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: http://joss.theoj.org/papers/10.21105/joss.01191/status.svg
:target: https://doi.org/10.21105/joss.01191
This is how it will look in your documentation:
We need your help!
Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
Most helpful comment
@lucask07, @peircej - many thanks for your reviews and to @trallard for editing this submission โจ
@ixjlyons - your paper is now accepted into JOSS :zap::rocket::boom: