Skip to content
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

driver: Add driver for Attocube ANC300 #915

Closed

Conversation

thibaudruelle
Copy link
Contributor

@thibaudruelle thibaudruelle commented Dec 13, 2017

Changes proposed in this pull request:

  • Add a driver for Attocube ANC300 piezo controller with ANMxx0 modules

All the features have been tested with attocube ANC300 (serial:ANC300B-C-1011-1004010, firmware:1.0.0-1271 2012-04-18 16:01), with 6x ANM300 modules in its 6 available slots.

Todo:

  • Test with ANM200 and ANM150 modules, probably make some parameters depend on module model
  • Implement mock instrument
  • Write tests
  • Write example notebook (WIP)
  • Add more specific exceptions
  • Add software limits
  • Implement output triggers as InstrumentChannel
  • Improve add_parameter calls (figure out if vals= is necessary when no set_cmd or set_cmd = False)

@WilliamHPNielsen @jenshnielsen

* Create Attocube directory in instrument_drivers
* Create empty __init__.py
* Create Attocube_ANC300.py module file
* Add initial code to Attocube_ANC300.py
@@ -0,0 +1 @@
from .devices import VoltageDivider
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This relative import is wrong and as far as I can see causing travis to fail. It'd be better to import from qcodes.instrument_drivers.devices.

@thibaudruelle
Copy link
Contributor Author

This line got there by mistake, I removed it.

Add basic examples notebook for Attocube ANC300 driver. To be expanded.
Remove line logging to error when the error check field from an instrument answer is 'ERROR'.
Unnecessary since we raise an Exception anyways.
These Exceptions can now be dealt with in a try .. except block without polluting the error log (e.g. in ANC300.__init__()).
Remove loop getting all parameters from instrument and submodules.
Use update=True in print_readable_snapshot instead.
Attempt to fix error 'Unexpected indentation' from sphinx in Travis build.
Wrap long docstring lines with single tab.
Integrate microsoft#859 changes to ask_raw in VisaInstrument in overriden ask_raw function.
Should fix Codacity 'String statement has no effect'warning.
@codecov
Copy link

codecov bot commented Dec 13, 2017

Codecov Report

Merging #915 into master will increase coverage by 9.95%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #915      +/-   ##
==========================================
+ Coverage   68.68%   78.63%   +9.95%     
==========================================
  Files         146       33     -113     
  Lines       19283     4536   -14747     
==========================================
- Hits        13244     3567    -9677     
+ Misses       6039      969    -5070

@microsoft microsoft deleted a comment from codecov bot Dec 13, 2017
@WilliamHPNielsen
Copy link
Contributor

@thibaudruelle what's the status on this work?

@thibaudruelle
Copy link
Contributor Author

@WilliamHPNielsen I've several deadlines to meet in the coming weeks so I unfortunately have not been able to work on this, and won't be in the coming weeks. I'll update this PR as soon as I've done some work on it.

@WilliamHPNielsen
Copy link
Contributor

@thibaudruelle, that's completely fine. We'll keep the PR open, then.

Errors when getting frequency parameter with some ANC300 units.
The response to such queries ends with 'H\r\nOK' or 'Hz\r\nOK'.
Fixed by allowing unit keyword parameter of ans_parser to accept lists.
Refactor ans_parser accordingly.
Change definition of frequency parameter to call ans_parser with keyword
unit=['Hz','H'].
@WilliamHPNielsen
Copy link
Contributor

@thibaudruelle, as usual, no rush, but what's the status on this PR?

@astafan8

This comment has been minimized.

@astafan8
Copy link
Contributor

@thibaudruelle

The driver in this pull request will not be supported by QCoDeS developers, and, hence, is a community driver. Please close this pull-request and open a new one against qcodes_contrib_drivers repository. QCoDeS developers will close this pull-request unconditionally in 2 weeks.

Read about qcodes_contrib_drivers repository and python package here.

@thibaudruelle
Copy link
Contributor Author

@astafan8 Thanks for the heads up.

bors bot added a commit that referenced this pull request Nov 2, 2022
4784: Update babel requirement from ~=2.10.3 to ~=2.11.0 r=jenshnielsen a=dependabot[bot]

Updates the requirements on [babel](https://github.com/python-babel/babel) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/python-babel/babel/releases">babel's releases</a>.</em></p>
<blockquote>
<h2>Version 2.11.0</h2>
<p>The below release notes are auto-generated; please see <code>CHANGES.rst</code> for a human-crafted one.</p>
<p>Thank you to all contributors!</p>
<h2>What's Changed</h2>
<ul>
<li>tests: Use bare asserts and pytest.raises by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/875">python-babel/babel#875</a></li>
<li>Use email.Message for pofile header parsing by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/876">python-babel/babel#876</a></li>
<li>Become 2.10.2 by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/884">python-babel/babel#884</a></li>
<li>Build packages in CI by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/888">python-babel/babel#888</a></li>
<li>Become 2.10.3 by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/889">python-babel/babel#889</a></li>
<li>Small downloader improvements by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/894">python-babel/babel#894</a></li>
<li>Update Python versions in dev docs by <a href="https://github.com/rnestler"><code>`@​rnestler</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/898">python-babel/babel#898</a></li>
<li>Remove <code>__nonzero__</code> methods by <a href="https://github.com/sobolevn"><code>`@​sobolevn</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/896">python-babel/babel#896</a></li>
<li>Remove superfluous <code>__unicode__</code> declarations by <a href="https://github.com/lukasjuhrich"><code>`@​lukasjuhrich</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/905">python-babel/babel#905</a></li>
<li>align license with OSI template by <a href="https://github.com/lsmith77"><code>`@​lsmith77</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/912">python-babel/babel#912</a></li>
<li>Support for hex escapes in JavaScript strings by <a href="https://github.com/codepainters"><code>`@​codepainters</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/877">python-babel/babel#877</a></li>
<li>Remove determining time zone via systemsetup on macOS by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/914">python-babel/babel#914</a></li>
<li>Add support for compact decimal formats by <a href="https://github.com/DenverCoder1"><code>`@​DenverCoder1</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/909">python-babel/babel#909</a></li>
<li>Adapt parse_date to handle ISO dates by <a href="https://github.com/ericzolf"><code>`@​ericzolf</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/842">python-babel/babel#842</a></li>
<li>Use <code>ast</code> instead of <code>eval</code> for string extraction by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/915">python-babel/babel#915</a></li>
<li>Python 3.11 compatibility by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/913">python-babel/babel#913</a></li>
<li>Quiesce pytest warnings by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/916">python-babel/babel#916</a></li>
<li>Become 2.11.0 by <a href="https://github.com/akx"><code>`@​akx</code></a>` in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/917">python-babel/babel#917</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/rnestler"><code>`@​rnestler</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/898">python-babel/babel#898</a></li>
<li><a href="https://github.com/sobolevn"><code>`@​sobolevn</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/896">python-babel/babel#896</a></li>
<li><a href="https://github.com/lukasjuhrich"><code>`@​lukasjuhrich</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/905">python-babel/babel#905</a></li>
<li><a href="https://github.com/lsmith77"><code>`@​lsmith77</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/912">python-babel/babel#912</a></li>
<li><a href="https://github.com/codepainters"><code>`@​codepainters</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/877">python-babel/babel#877</a></li>
<li><a href="https://github.com/DenverCoder1"><code>`@​DenverCoder1</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/909">python-babel/babel#909</a></li>
<li><a href="https://github.com/ericzolf"><code>`@​ericzolf</code></a>` made their first contribution in <a href="https://github-redirect.dependabot.com/python-babel/babel/pull/842">python-babel/babel#842</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/python-babel/babel/compare/v2.10.3...v2.11.0">https://github.com/python-babel/babel/compare/v2.10.3...v2.11.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/python-babel/babel/blob/master/CHANGES.rst">babel's changelog</a>.</em></p>
<blockquote>
<h2>Version 2.11.0</h2>
<p>Upcoming deprecation</p>
<pre><code>
* This version, Babel 2.11, is the last version of Babel to support Python 3.6.
  Babel 2.12 will require Python 3.7 or newer.
<p>Improvements</p>
<pre><code>
* Support for hex escapes in JavaScript string literals :gh:`[#877](python-babel/babel#877 - Przemyslaw Wegrzyn
* Add support for formatting decimals in compact form :gh:`[#909](python-babel/babel#909 - Jonah Lawrence
* Adapt parse_date to handle ISO dates in ASCII format :gh:`[#842](python-babel/babel#842 - Eric L.
* Use `ast` instead of `eval` for Python string extraction :gh:`[#915](python-babel/babel#915 - Aarni Koskela
    * This also enables extraction from static f-strings.
      F-strings with expressions are silently ignored (but won't raise an error as they used to).

Infrastructure
</code></pre>
<ul>
<li>Tests: Use regular asserts and <code>pytest.raises()</code> :gh:<code>[#875](https://github.com/python-babel/babel/issues/875)</code> – Aarni Koskela</li>
<li>Wheels are now built in GitHub Actions :gh:<code>[#888](https://github.com/python-babel/babel/issues/888)</code> – Aarni Koskela</li>
<li>Small improvements to the CLDR downloader script :gh:<code>[#894](https://github.com/python-babel/babel/issues/894)</code> – Aarni Koskela</li>
<li>Remove antiquated <code>__nonzero__</code> methods :gh:<code>[#896](https://github.com/python-babel/babel/issues/896)</code> - Nikita Sobolev</li>
<li>Remove superfluous <code>__unicode__</code> declarations :gh:<code>[#905](https://github.com/python-babel/babel/issues/905)</code> - Lukas Juhrich</li>
<li>Mark package compatible with Python 3.11 :gh:<code>[#913](https://github.com/python-babel/babel/issues/913)</code> - Aarni Koskela</li>
<li>Quiesce pytest warnings :gh:<code>[#916](https://github.com/python-babel/babel/issues/916)</code> - Aarni Koskela</li>
</ul>
<p>Bugfixes</p>
<pre><code>
* Use email.Message for pofile header parsing instead of the deprecated ``cgi.parse_header`` function. :gh:`[#876](python-babel/babel#876 – Aarni Koskela
* Remove determining time zone via systemsetup on macOS :gh:`[#914](python-babel/babel#914 - Aarni Koskela

Documentation
</code></pre>
<ul>
<li>Update Python versions in documentation :gh:<code>[#898](https://github.com/python-babel/babel/issues/898)</code> - Raphael Nestler</li>
<li>Align BSD-3 license with OSI template :gh:<code>[#912](https://github.com/python-babel/babel/issues/912)</code> - Lukas Kahwe Smith</li>
</ul>
<h2>Version 2.10.3</h2>
<p>This is a bugfix release for Babel 2.10.2, which was mistakenly packaged with outdated locale data.</p>
<p>Thanks to Michał Górny for pointing this out and Jun Omae for verifying.</p>
<p>This and future Babel PyPI packages will be built by a more automated process,
&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/python-babel/babel/commit/a30d7cff7ed2df689e9539ef07104e8ea20445a9"><code>a30d7cf</code></a> Become 2.11.0</li>
<li><a href="https://github.com/python-babel/babel/commit/bc9dc84876bed120c67c73bb6fcd2d8045198090"><code>bc9dc84</code></a> Quiesce pytest warnings (<a href="https://github-redirect.dependabot.com/python-babel/babel/issues/916">#916</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/52b83d3630c50944e84d066808b7ec2b0a259e4d"><code>52b83d3</code></a> Setup: mark as compatible with Python 3.11</li>
<li><a href="https://github.com/python-babel/babel/commit/f117ead7d512ef3c32b68db953a193c21245ad14"><code>f117ead</code></a> CI: test on Python 3.11</li>
<li><a href="https://github.com/python-babel/babel/commit/2e5708f8f231696afcbea3f5803ca43b1e33bf7f"><code>2e5708f</code></a> Use <code>ast</code> instead of <code>eval</code> for string extraction</li>
<li><a href="https://github.com/python-babel/babel/commit/a946ae6bad2701a021969d82b550ba6be1f5c7d7"><code>a946ae6</code></a> Adapt parse_date to handle ISO dates in ASCII format</li>
<li><a href="https://github.com/python-babel/babel/commit/05df10fd1474e929793183c3b0ffa28251df79eb"><code>05df10f</code></a> Add support for compact decimal formats (<a href="https://github-redirect.dependabot.com/python-babel/babel/issues/909">#909</a>)</li>
<li><a href="https://github.com/python-babel/babel/commit/03c8fae835c16d63fa5f4e3141074abb8bad3e83"><code>03c8fae</code></a> Remove determining time zone via systemsetup on macOS</li>
<li><a href="https://github.com/python-babel/babel/commit/c7d04e8cb7bd60ff305d8bc6df2ce8a3f92c0223"><code>c7d04e8</code></a> Support for hex escapes in JavaScript string literals</li>
<li><a href="https://github.com/python-babel/babel/commit/8f5757cc85402a46c1db722f08c18cfa7f119858"><code>8f5757c</code></a> align license with OSI template (<a href="https://github-redirect.dependabot.com/python-babel/babel/issues/912">#912</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/python-babel/babel/compare/v2.10.3...v2.11.0">compare view</a></li>
</ul>
</details>
<br />


You can trigger a rebase of this PR by commenting ``@dependabot` rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants