Skip to content

Conversation

@dihm
Copy link
Contributor

@dihm dihm commented Oct 29, 2020

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.

@philipstarkey
Copy link
Member

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.

@dihm
Copy link
Contributor Author

dihm commented Oct 29, 2020

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).

  • Case 2 Structure: Basically what I have up there now. The class level documentation is located in docs/devices/pylon.rst, including the automodule tags.
  • Case 1 Structure: Moves the installation, usage, etc sections into labscript-devices/PylonCamera/init.py. Apidoc with a custom template could find this and auto-generate the rest of the Pylon Cameras doc page automodules with only the overview section being in the rst.

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.

@dihm
Copy link
Contributor Author

dihm commented Oct 30, 2020

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?

@philipstarkey
Copy link
Member

philipstarkey commented Oct 30, 2020

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...

@philipstarkey
Copy link
Member

@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)

@dihm
Copy link
Contributor Author

dihm commented Oct 30, 2020

@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.

@dihm
Copy link
Contributor Author

dihm commented Oct 30, 2020

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.

@dihm
Copy link
Contributor Author

dihm commented Oct 30, 2020

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.

@philipstarkey
Copy link
Member

@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.

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.

@philipstarkey
Copy link
Member

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.

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 from blah import * being problematic. Alternatively, we could look at whether the proprietary imports should be restructured so they don't happen on device module import. For example, imports done in the BLACS worker class usually happen inside the init method, and since methods don't actually run when building docs, not having them won't be a problem if that's the only place they exist (I think).

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.

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.

@philipstarkey philipstarkey self-assigned this Oct 31, 2020
@dihm
Copy link
Contributor Author

dihm commented Nov 7, 2020

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.

@dihm
Copy link
Contributor Author

dihm commented Nov 16, 2020

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.

@dihm
Copy link
Contributor Author

dihm commented Dec 29, 2020

Fairly confident that merging #73 will allow these docs to finally build. Once that happens, we can hopefully get these docs merged as well.

@dihm
Copy link
Contributor Author

dihm commented May 27, 2021

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.

@dihm
Copy link
Contributor Author

dihm commented May 27, 2021

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:

  • AlazarTechBoard: currently because tqdm isn't in the requirements, but will fail trying to import the proprietary ATSApi.dll library from the atsapi.py module.
  • Apparently FunctionRunner.blacs_workers fails trying to import runmanager, which is an unlisted dependency
  • NI_DAQmx utilities get_capabilities, daqmx_utils, and NI_DAQmx.blacs_workers fail trying to import PyDAQmx because it can't find the niDAQmx library
  • SpinnakerCamera.blacs_workers fails to import proprietary python dependency PySpin
  • labscript_devices.TekScope.TekScope fails trying to import unlisted dependecy pyvisa

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.

@dihm
Copy link
Contributor Author

dihm commented May 27, 2021

I have fixed everything but the atsapi import. It probably isn't too hard to fix, but it would require changing how that module actually works (like putting the import inside a function that has to be called to import the library). Not exactly hard, but not sure I want to monkey around with a device that I know so little about.

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.

dihm added 10 commits May 31, 2021 12:23
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.
dihm added 9 commits May 31, 2021 12:23
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.
@dihm
Copy link
Contributor Author

dihm commented May 31, 2021

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

@dihm
Copy link
Contributor Author

dihm commented Jul 15, 2021

Ready to go. Docstring coverage is 28.8%.

@dihm dihm merged commit 7b8adc6 into labscript-suite:master Jul 16, 2021
@dihm dihm deleted the devices-docs branch July 16, 2021 19:18
@dihm dihm mentioned this pull request Jul 17, 2021
dihm added a commit to dihm/labscript-devices that referenced this pull request Nov 8, 2021
dihm added a commit to dihm/labscript-devices that referenced this pull request Nov 18, 2021
dihm added a commit that referenced this pull request Dec 7, 2021
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants