-
Notifications
You must be signed in to change notification settings - Fork 79
Initial labscript-devices docs #70
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
Conversation
|
I think comprehensive docstrings would be the place to start. I think regardless of higher level documentation, those need to be done. However I don't think they need to tell a coherent story necessarily. That's where future higher level docs would come in (both for using existing devices, and for adding new devices). I think ensuring docs are written/maintained can be enforced through pull request review. Does that make sense or have I misunderstood what you meant? Also, the docs failed to build here. Seemed to get stuck in a loop downloading every version of PyDAQmx....that seems very, very odd!! I don't know a way to trigger the build again without pushing a new change to the PR though to find out if it was just a glitch or not. |
|
That is a helpful clarification, but I was more thinking along the lines of practical implementation. Put more clearly than before, should I try to automate the doc building process via apidoc and custom templates or just hand code everything? The two cases I described put the mid level docs in different files. As an example, look at the PylonCamera (the only one I have anything meaningful on so far).
Of course, looking at the build logs, it installed sphinx<2. Apidoc is not very good that far back so we should probably stick with option 1, which is fine. But that is a bit odd since the setup.cfg specifies sphinx==3.0.1 for the docs. Anyway, I'll be working on doc updates for a bit yet so there should be plenty of commits to test the doc building. |
|
Well that is interesting. Looks like it tried to download every version of qtutils this time, ran out of versions, then promptly died trying to install labscript dependencies because of the version resolving. Also, it somehow managed to fail to install matplotlib even though it wasn't asked for or downloaded. Did I read that right? |
|
Matplotlib is a dependency of labscript, which labscript-devices depends on. So that dependency is expected. This time it failed due to a circular dependency that couldn't be resolved. This is probably partially due to #59, and partially due to setuptools_scm not doing what I expect with versions. I'm unclear if this is a bug in setuptools_scm, a issue with how we're using it, or an issue with my understanding (I was not heavily involved with this part of the migration), but I really feel that any commits in the master/main branch after a release branch (e.g. v3.0.x) should be detected as v3.1.0+dev... but they continue to be v3.0.0+dev... |
|
@dihm I may have worked out the versioning issue, but I'm checking with the other core devs in our chat before I make any changes (which, as a regular contributor, you're welcome to join if you are interested) |
|
@philipstarkey I would love to join, if only to keep tabs on what is going on. In the meantime, I'll keep chipping away at the docs here. I'll make the commits a bit larger going forward as well. |
|
Minor question: what is the plan for devices that cannot be imported because of unlisted dependencies or dependencies on python wrappers that are proprietary/not pip installable? The AlazarTechBoard is an offender on both counts (needs tqdm and atsapi.py), though I'm sure I'll find more as I increase coverage. |
|
In the most recent batch, I have documented the DummyIntermediateDevice using a different organizational structure (basically everything is in the actual source file, with minimal code in the doc rst. It is an example of Case 2 I was trying to communicate earlier. |
Great! Could you send us an email to labscriptsuite@gmail.com with your preferred email address? I think that's all I need to send you an invite to our zulip chat. I'll try and re-engage with the rest of this PR later today. |
The usual solution is to mock the proprietary APIs since they don't actually have to run. There are a few ways to do this, so we should probably google again to see what the current standard practice is. I did it once for Qt in qtutils. It might still be there (although it's technically not needed if it is since pyqt5/pyside2 can now be installed in readthedocs via pip) but it could also be out of date. Mocking entire modules automatically may require restructuring the imports as I seem to remember
I'm a little bit confused by the option/case numbers you are using. Do you mean this is an example of case 1, which was the second dot point in your list? Either way, I think we probably need to have a broader chat about auto generation of API docs, what tools are out there, how good they are, and how they fit into the development workflow. We flagged this as something we needed to discuss in our dev chat when we first made the docs, so I'll wait until you've joined and we can continue there. |
|
So looking back through the failed build logs on readthedocs, it appears the breakdown always happens during the pip install of the [docs] dependencies, right after blacs is installed. The very next package always gets stuck in a loop, no matter which one happens to be next. Not sure what that means, but it's a place to start. |
|
So this round of docs is at a decent stopping point for now. There are a lot of details remaining, particularly in usage/installation/quirks, but I don't have the experience to fill them in for every supported device. Since the builds continue to fail (most recent being a circular dependency problem involving BLACS thinking the current PR's labscript-devices 3.0.0rc2 as being !>=3.0.0), I'm going to move on to other module docs for the time being. |
|
Fairly confident that merging #73 will allow these docs to finally build. Once that happens, we can hopefully get these docs merged as well. |
|
Rebased this PR onto master to bring in the most recent changes that would hopefully fix the docs build. It did fix the circular dependency, but now there is something else. Ugh. Edit: Looks to be an issue with how I have implemented the apidoc auto-generation of the NI-DAQmx models. |
|
Aha!! Finally have a successful build! Well, there is still quite a bit broken, mostly from optional modules not importing. Current list of issue modules not importing are:
Some of these are easy to fix by updating pip installable dependencies. The rest are missing proprietary code that we can't ship. Those will be harder to fix, but should be possible. Now that there is actually something to look at, perhaps we can revisit automating docs building and style preferences. |
|
I have fixed everything but the I did make a change to SpinnakerCamera that move the module import into the init function, but given that is common for all the camera drivers so they can function as mock devices, I figured it was OK and assume it won't actually change anything. |
to cover all the devices as well as some higher level stuff.
IMAQdx documentation. Mostly just to trigger another build on ReadTheDocs.
…ning pseudoclocks. I have used an alternate file structure for the docs on the DummyIntermediateDevice as an example of another method of documenting.
Now when sphinx imports it, it doesn't try to run NI-MAX device discovery.
This employs apidoc to auto-generate a custom templated summary of all the auto-generated sub-class models. It modifies conf.py to auto-run apidoc to create the template. Therefore new sub-classes that are added will automatically have the appropriate documentation generated. Note: apidoc creates a large number of cruft docfiles for all modules in labscript_devices using this specific custom template. This is because I haven't figured out how to get the autodoc directives to work without full specification of the module from the top level. This could be worked around by the apidoc exclude option, but it only uses very basic fnmatch syntax that can't seem to be fudged to only select a single submodule.
slightly more helpful documentation.
This is largely from my own experience, and could probably benefit from leveraging Chris and Phil's thesis instead.
Apparently RTD builds are from a different directory than the makefile. Need to change the relative path specification to properly find the module code.
module load. Fixes docs-build failure and allows use of the Mock Camera for those without PySpin installed.
…l PyDAQmx imports.
|
I've rebased again and started the docs for the PrawnBlaster. Still need to do API docstrings. Also, I've noticed the unordered lists don't render correctly. Apparently this is a bug in docutils==0.17 interacting with the RTD theme. This can be fixed by updating the build reqs for sphinx_rtd_theme to 0.5.2 |
|
Ready to go. Docstring coverage is 28.8%. |
commit eefdb75 Author: David Meyer <dihm@users.noreply.github.com> Date: Tue Dec 7 10:33:15 2021 -0500 Update setup.cfg to show python 3.9 support commit 6ea8316 Merge: 758b281 4cadcff Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 29 17:50:29 2021 -0500 Merge pull request #61 from dihm/PB_tweak Pulseblaster transition_to_buffered tweak commit 758b281 Merge: ef1e9b8 4ea4dc2 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 29 17:48:29 2021 -0500 Merge pull request #75 from dihm/DAQmx_AI_Diff Add support for differential analog inputs in NI_DAQmx commit 4ea4dc2 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 29 17:45:29 2021 -0500 Fixing docstring formatting. commit 7be7413 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 29 17:02:36 2021 -0500 Updating docstrings. commit 9a4d0a1 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 16:19:26 2021 -0500 Fix muffed indentation error. commit 052a0f0 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 16:17:18 2021 -0500 Fix bad logic in determining where things occur. commit 81b411d Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 16:11:21 2021 -0500 Updating to be more clear about how AI_start_delay is calculated, particularly in the case of devices that use AI_start_delay_ticks. commit 7123c4c Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 15:44:49 2021 -0500 Update version tag of NI_DAQmx to 1.1.0 to denote semi-significant changes to functionality. commit 2f5393c Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 15:44:15 2021 -0500 Update existing capabilities.json and pre-generated models with new functionality for AI termination configuration. Note, this commit also sorts out #67. commit be71723 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 15:35:44 2021 -0500 Fix extremely bad merge conflict resolution from #70. commit 0767130 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 15:07:35 2021 -0500 Adding explanatory warnings to the backwards compatibility code instructing users how to update existing configurations. commit f138144 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 14:28:51 2021 -0500 Add nominal support for analog inputs with the NRSE termination. commit 05146dd Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 14:20:20 2021 -0500 Update capabilities to include PXIe-4499 and USB-6363 commit 5be6992 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Oct 21 17:19:04 2021 -0400 Add more robust backwards compatibility checks for installations that have not updated their capabilities file or re-compiled the connection table. Should probably just add an error instructing to recompile if I go ahead and update all the capabilities files. commit 3116af4 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Oct 21 17:17:00 2021 -0400 Update docstring to include new DAQmx features. commit 539f328 Author: David Meyer <dihm.meyer@gmail.com> Date: Wed May 26 08:51:11 2021 -0400 Fix AI_start_delay_ticks logic so it actually works. commit d4eaf67 Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 24 17:33:26 2021 -0400 Add ability for DAQmx device to specify analog input delay in terms of sample clock periods. This is done by setting `AI_start_delay=None` and `AI_start_delay_ticks={int}` keyword arguments of labscript_device.__init__(). This is necessary for Dynamic Signal Acquisition devices with delta ADCs to properly calculate their input delays as the sample clock varies. commit 0a5f1d6 Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 24 17:02:54 2021 -0400 Configure get_capabilities to recognize PseudoDiff as a default AI_term. commit aeaf81b Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 24 16:29:17 2021 -0400 Add support of AI pseudoDiff termination. Device that requires this (a PXIe-4499) does handle start delays the same way as other DAQs. This current code just ignores that for now until a better solution gets worked out. DO NOT TRUST ABSOLUTE TIMING OF ANALOG INPUTS on such devices until this gets handled correctly! commit 5193aa9 Author: David Meyer <dihm.meyer@gmail.com> Date: Wed May 5 17:31:17 2021 -0400 Modified NI_DAQmx to handle differentially terminated analog inputs. Behavior is to either have all the inputs as single-ended or differential. Also modified `get_capabilities.py` a little more so that it will correctly set the default AI termination for devices that do not support RSE. Tested with a NI USB 6366. Was able to simultaneously sample at 2MS/s on two channels (the max spec for this device). commit 4d38383 Author: David Meyer <dihm.meyer@gmail.com> Date: Wed May 5 12:22:37 2021 -0400 Modifications to `get_capabilities.py` to handle DAQs to include details about Differential input channels. New details include the AI range for diff channels (which may be higher than the single-ended ones) and the number of RSE and Diff physical channels. This can now handle DAQs that do not have any RSE inputs (like the simultaneous sampling ones). Plan to implement to option to use differential inputs next. commit ef1e9b8 Merge: 1b66b81 9dc2162 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 15 15:18:03 2021 -0500 Merge pull request #85 from chrisjbillington/functionrunner-deserialise-fix Fix bug in FunctionRunner function deserialisation commit 1b66b81 Merge: db02508 0e85f73 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 15 15:15:53 2021 -0500 Merge pull request #86 from chrisjbillington/functionrunner-sort-fix Fix bug where FunctionRunner functions were sorted by name commit db02508 Merge: 737c37b 68fc0a8 Author: David Meyer <dihm@users.noreply.github.com> Date: Mon Nov 8 13:47:33 2021 -0500 Merge pull request #78 from ispielma/master Update to fix AI error that sometimes appears in nidaqmx. commit 737c37b Merge: 4b0722f 8909385 Author: David Meyer <dihm@users.noreply.github.com> Date: Fri Oct 22 17:48:08 2021 -0400 Merge pull request #88 from dihm/spinnaker_fix Quick fix for Spinnaker debugging commit 68fc0a8 Merge: be0970a 4b0722f Author: Ian B. Spielman <54444522+ispielma@users.noreply.github.com> Date: Tue Oct 12 08:27:57 2021 -0400 Merge branch 'labscript-suite:master' into master commit 4b0722f Merge: 75b175d c5f8a0f Author: Chris Billington <chrisjbillington@gmail.com> Date: Tue Oct 12 12:48:24 2021 +1100 Merge pull request #89 from chrisjbillington/novatech-runviewer-bug Resolve a bug in runviewer display of Novatech instructions commit c5f8a0f Author: chrisjbillington <chrisjbillington@gmail.com> Date: Tue Oct 12 12:44:28 2021 +1100 Resolve a bug in runviewer display of Novatech instructions This is an off-by-one error caused by incorrect use of `getattr` instead of `dict.get` to provide defaults when reading connection table properties for the device. commit 8909385 Author: David Meyer <dihm@users.noreply.github.com> Date: Wed Sep 1 11:04:25 2021 -0400 Quick fix for Spinnaker debugging as recommended in #72. commit 0e85f73 Author: chrisjbillington <chrisjbillington@gmail.com> Date: Fri Aug 20 14:33:25 2021 +1000 Fix bug where FunctionRunner functions were sorted by name Instead of remaining in the order they were added. Functions are intended to be sorted by time, but not by anything else. But naively sorting the tuples caused them to be sorted unintentionally by name if they had the same time. commit 9dc2162 Author: chrisjbillington <chrisjbillington@gmail.com> Date: Fri Aug 20 14:30:22 2021 +1000 Fix bug in FunctionRunner function deserialisation In h5py 3.0, all strings from datasets are returned as bytestrings: h5py/h5py#1338 Luckily this isn't more of an issue throughout the labscript suite, because we still have lots of code that is unassuming about string datatypes due to the port from Python 2. But it will probably show up elsewhere too. commit 4cadcff Author: David Meyer <dihm.meyer@gmail.com> Date: Mon Jul 6 10:41:18 2020 -0400 Tweak transition_to_buffered method for No DDS Pulseblasters. Now pb_start_programming() is called only if actual programming is needed or when using the 'pb_stop_programming/STOP' scheme. This helps an issue with some older firmwares where all outputs blank while programming, in conjunction with the 'pb_start/BRANCH' scheme, by limiting how often the device enters programming. commit 75b175d Merge: ac33c58 2eaf0ba Author: David Meyer <dihm@users.noreply.github.com> Date: Tue Aug 10 16:17:26 2021 -0400 Merge pull request #83 from dihm/3rd_party_devices_docs 3rd Party Repo List commit 2eaf0ba Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Aug 10 09:21:12 2021 -0400 Fixing minor typos. commit ac33c58 Merge: 141a299 0af6f83 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Sun Aug 1 17:15:26 2021 +1000 Merge pull request #84 from philipstarkey/philipstarkey/prawnblaster-fix Fixed PrawnBlaster runviewer class commit 50f8b27 Author: David Meyer <dihm.meyer@gmail.com> Date: Mon Jul 26 08:04:50 2021 -0400 Update docs formatting such that not more than one sentence is on a line. commit 0af6f83 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Sat Jul 24 19:33:17 2021 +1000 Fixed PrawnBlaster runviewer class There was a bug where runviewer did not correctly parse pulse programs for pseudoclocks/clocklines 1, 2, and 3. There were several bugs (redefinition of a global variable inside a loop and a loop nested when it shouldn't have been. This should now be resolved. Thanks to Amilson Fritsch for discovering this. commit 24a5248 Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Jul 23 14:39:23 2021 -0400 Add disclaimer to 3rd party devices description. commit 85e0b79 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Jul 22 16:43:15 2021 -0400 Add small section for listing 3rd party devices repos to the docs. commit 141a299 Merge: 7b8adc6 a60d541 Author: David Meyer <dihm@users.noreply.github.com> Date: Sat Jul 17 14:18:38 2021 -0400 Merge pull request #82 from dihm/pdf_doc_fix Fix for PDF docs build commit a60d541 Author: David Meyer <dihm.meyer@gmail.com> Date: Sat Jul 17 14:12:11 2021 -0400 Fix a bunch of broken intersphinx references. commit 6755188 Author: David Meyer <dihm.meyer@gmail.com> Date: Sat Jul 17 14:11:40 2021 -0400 Make pdf docs generate in landscape. Given that almost everything in `labscript-devices` has a really long name that overfills the page in latex mode, landscape default for the whole thing is an easy help that reduces the pain. commit c82224a Author: David Meyer <dihm.meyer@gmail.com> Date: Sat Jul 17 14:10:22 2021 -0400 Fix PDF build blocking. Hides an attribute value that is too long for latex to handle. commit 7b8adc6 Merge: 7e2f328 d9514f0 Author: David Meyer <dihm@users.noreply.github.com> Date: Fri Jul 16 15:18:00 2021 -0400 Merge pull request #70 from dihm/devices-docs Initial labscript-devices docs commit d9514f0 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Jul 15 10:24:20 2021 -0400 Update sphinx version. commit c554131 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Jul 15 10:23:25 2021 -0400 Add docstring coverage to build. commit 20c2b6d Author: David Meyer <dihm.meyer@gmail.com> Date: Mon Jul 12 16:40:17 2021 -0400 Improve NI-DAQmx docs a little. commit 7e2f328 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Wed Jun 30 19:55:16 2021 +1000 Added PrawnBlaster to supported device list in readme commit e7b3571 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Wed Jun 30 19:50:55 2021 +1000 Fix typo in PrawnBlaster error message commit 0e31909 Merge: 7c1c485 60fa094 Author: Chris Billington <chrisjbillington@gmail.com> Date: Wed Jun 30 15:39:21 2021 +1000 Merge pull request #65 from rpanderson/tekscope_bugfix Tekscope bugfix commit be0970a Author: spielman <spielman@umd.edu> Date: Tue Jun 22 11:13:50 2021 -0400 Update to fix AI error that sometimes appears in nidaqmx. commit 34751ce Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Jun 1 15:05:30 2021 -0400 Add PyQT5 intersphinx inventory. commit 436f330 Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Jun 1 12:20:58 2021 -0400 Add docstring-level documentation for the new PrawnBlaster pseudoclock device. commit 17c507f Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 31 14:24:54 2021 -0400 Actually get automodule to document the PrawnBlaster code. commit 40b9a0c Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 31 14:24:26 2021 -0400 Fix warning in pylon.rst commit ab577ba Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 31 14:14:47 2021 -0400 Yet another tweak of the Prawnblaster bullet list. commit 69a7a47 Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 31 13:55:22 2021 -0400 Update sphinx_rtd_theme pin to 0.5.2 and fix PrawnBlaster nested listing. commit 3a2087f Author: David Meyer <dihm.meyer@gmail.com> Date: Mon May 31 13:45:52 2021 -0400 Basic high-level docs for the new PrawnBlaster device. commit 82871bc Author: David Meyer <dihm.meyer@gmail.com> Date: Thu May 27 15:54:51 2021 -0400 Attempting the easy mocking provided within sphinx-autodoc to mock all PyDAQmx imports. commit a78ed95 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu May 27 15:49:08 2021 -0400 Modify Spinnaker Camera so proprietary PySpin import does not happen on module load. Fixes docs-build failure and allows use of the Mock Camera for those without PySpin installed. commit b8e7923 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu May 27 15:44:58 2021 -0400 Sphinx version bump to match necessary bumps in other labscript docs. commit 45a54ed Author: David Meyer <dihm.meyer@gmail.com> Date: Thu May 27 15:43:39 2021 -0400 Adding unlisted dependencies so doc builds can successfully import more components. commit c7a4f58 Author: David Meyer <dihm.meyer@gmail.com> Date: Thu May 27 10:56:18 2021 -0400 Fix apidoc auto-run code. Apparently RTD builds are from a different directory than the makefile. Need to change the relative path specification to properly find the module code. commit 75bcb30 Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Dec 29 12:13:54 2020 -0500 Updated usage documentation for Spinnaker cameras. commit 5567a9d Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Dec 29 12:13:39 2020 -0500 Updated doc string in conf.py commit 30b983b Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 13 18:40:33 2020 -0500 Adding some basic high-level documentation. This is largely from my own experience, and could probably benefit from leveraging Chris and Phil's thesis instead. commit 7b0688f Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 13 16:06:56 2020 -0500 Increasing doc details for flycapture2 and pylon cameras. commit e597a0a Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 6 21:37:45 2020 -0500 Updating the NI_DAQmx model template and auto-generated files to produce slightly more helpful documentation. commit 8215778 Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 6 21:36:59 2020 -0500 Fix some pathing issues on the last NI-DAQmx commit. commit b5071bd Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 6 21:35:41 2020 -0500 Add NI-DAQmx documentation. This employs apidoc to auto-generate a custom templated summary of all the auto-generated sub-class models. It modifies conf.py to auto-run apidoc to create the template. Therefore new sub-classes that are added will automatically have the appropriate documentation generated. Note: apidoc creates a large number of cruft docfiles for all modules in labscript_devices using this specific custom template. This is because I haven't figured out how to get the autodoc directives to work without full specification of the module from the top level. This could be worked around by the apidoc exclude option, but it only uses very basic fnmatch syntax that can't seem to be fudged to only select a single submodule. commit 68d6837 Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 6 21:24:47 2020 -0500 Protecting the NI_DAQ.models.get_capabilities script against import. Now when sphinx imports it, it doesn't try to run NI-MAX device discovery. commit 0324995 Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Nov 6 18:29:43 2020 -0500 Add docs for the SpinnakerCamera device I somehow overlooked. commit 6ce351c Author: David Meyer <dihm.meyer@gmail.com> Date: Wed Nov 4 17:17:23 2020 -0500 Adding boiler plate for rest of Pseudoclocks. commit 79a3e58 Author: David Meyer <dihm.meyer@gmail.com> Date: Fri Oct 30 16:59:16 2020 -0400 Increasing coverage to the rest of the devices, excluding a few remaining pseudoclocks. I have used an alternate file structure for the docs on the DummyIntermediateDevice as an example of another method of documenting. commit 19e42fd Author: David Meyer <dihm.meyer@gmail.com> Date: Thu Oct 29 20:26:09 2020 -0400 A few more updates to the Pylon Camera documentation and a start to the IMAQdx documentation. Mostly just to trigger another build on ReadTheDocs. commit bc525a1 Author: David Meyer <dihm.meyer@gmail.com> Date: Wed Oct 28 21:07:55 2020 -0400 Boiler plate doc files creation. Outlines basic documentation structure to cover all the devices as well as some higher level stuff. commit 7c1c485 Merge: 76c9a44 1c7e633 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Sun May 30 10:45:53 2021 +1000 Merge pull request #76 from philipstarkey/philipstarkey/prawnblaster Support for the PrawnBlaster pseudoclock commit 1c7e633 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Fri May 28 00:33:26 2021 +1000 Fixed bug where transition_to_manual would complete when the PrawnBlaster was a secondary pseudoclock even if it hadn't finished (e.g. was still running or waiting for a trigger). Also formatted files with black. commit d7e5300 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Thu May 27 20:33:39 2021 +1000 Fixed bug with abort and added code to handle the PrawnBlaster as a secondary pseudoclock commit 91b35c8 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Sat May 22 13:43:57 2021 +1000 Hopefully fixed the timing bug where PrawnBlaster pulses were twice as long as they should have been. Also fixed an incorrect max_instructions value commit 909d296 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Fri Apr 9 23:29:04 2021 +1000 Fixed clock limit to handle updated PrawnBlaster specs commit 76c9a44 Merge: 86e805d f298181 Author: chrisjbillington <chrisjbillington@gmail.com> Date: Fri Apr 9 12:37:49 2021 +1000 Merge branch 'dihm/setuptools_scm-fix' commit f298181 Author: chrisjbillington <chrisjbillington@gmail.com> Date: Fri Apr 9 12:36:30 2021 +1000 * Continue to set local scheme based on env var in `__version__.py` for consistency. * Don't require specific setuptools or [toml] extra from setuptools_scm. We aren't configuring setuptools_scm in pyproject.toml anyway, and setuptools_scm itself will specify a fairly recent version of setuptools (we have no special requirement ourselves) * no longer use env var for version_scheme in setup.py, since we're now hard-coding release-branch-semver. commit 86e805d Merge: bdb8c13 8c7d78d Author: Chris Billington <chrisjbillington@gmail.com> Date: Thu Apr 8 21:20:07 2021 -0400 Merge pull request #74 from chrisjbillington/master Do not use deprecated set-env command in workflow commit d4e68c3 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Mon Apr 5 13:50:32 2021 +1000 More tweaks to wait length calculation commit 2a67e79 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Mon Apr 5 13:39:04 2021 +1000 Updated timing specs in labscript class commit b831752 Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Mon Apr 5 00:22:20 2021 +1000 Updated PrawnBlaster device classes to support wait monitor and also to have all trigger pins share GPIO0 by default (since PseudoclockDevices can only have a single trigger in labscript regardless of the number of pseudoclocks) commit 74ce6ad Author: Phil Starkey <philipstarkey@users.noreply.github.com> Date: Sun Feb 28 19:41:39 2021 +1100 Initial commit of support for multi-pseudoclock PrawnBlaster. I have not yet fully implemented waits in the blacs_worker yet! commit 8c7d78d Author: chrisjbillington <chrisjbillington@gmail.com> Date: Mon Jan 4 12:29:44 2021 +1100 Do not use deprecated set-env command in workflow commit 9d689bc Author: David Meyer <dihm.meyer@gmail.com> Date: Tue Dec 29 14:16:33 2020 -0500 Update default setuptools_scm version scheme to release-branch-semver. Copies config from labscript-utils. This fixes half the circular dependency issue between labscript-devices and blacs (ie can now pip install dev labscript-devices properly). commit 60fa094 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Sat Aug 15 21:30:24 2020 +1000 black and flake8 commit 775c416 Author: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Sat Aug 15 21:29:27 2020 +1000 Resolves #64 using proposal of ispielma
With a few of the easier packages down, I'm going to move on to something harder but very necessary.
Right now I only have a very rough outline of the documentation structure, and I intend to fill in quite a few holes along the way since I am generally more familiar with the details here.
Before I get too deep, I wanted to get input on a style preference: should we aim to have the bulk of the documentation as docstrings (up to and including module level stuff like basic usage for each device) or only have docstrings for API level documentation of classes and functions, writing the higher level stuff out separately in docs files?
Pros to the former is that devs tend to remember to actually write (and maintain) higher-level documentation if it is right there in the same file they are already working on. The doc building process can also be automated more completely.
Pros for the latter is that successfully automating things in sphinx, much less making it look nice, is really painful. Given the relative smallness of the modules, doing them by hand is likely to be faster in the end. Customization within a module is also much easier.