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

feature: Use unit in label #495

Merged
merged 5 commits into from
Mar 2, 2017
Merged

feature: Use unit in label #495

merged 5 commits into from
Mar 2, 2017

Conversation

giulioungaretti
Copy link
Contributor

@giulioungaretti giulioungaretti commented Feb 14, 2017

Use units for plotting. Pyqtgraph uses units in a clever way!

Needs #494 to be 100% great.

@giulioungaretti
Copy link
Contributor Author

@MerlinSmiles this is what we talked about, opinions ?
@QCoDeS/core opinions ?

🦄

@giulioungaretti
Copy link
Contributor Author

This clearly does not work as intended with multi dimensional parameters.

@MerlinSmiles
Copy link
Contributor

MerlinSmiles commented Feb 14, 2017

@giulioungaretti Yes, thats exactly the thing
and does not need #494 to be perfect, if a parameter does not have a unit it wont show up.
And you will have issues with multi dimensions [volt, current] ... but that is an issue with how you kind of try to plot an datasomethin that has two sets of data.

@MerlinSmiles
Copy link
Contributor

I have no idea where the dataset and stuff is now. previously it was that an array in the dataset got the units from the parameter, if it was a list it would just have a list. which ofc is wrong.

@giulioungaretti
Copy link
Contributor Author

@MerlinSmiles yep. it's pretty much still the same spaghetti.

@giulioungaretti
Copy link
Contributor Author

something that we have to keep in mind for #476 !

@AdriaanRol
Copy link
Contributor

@giulioungaretti I really love this feature. However, I generally use the QCoDeS plotting independently. Would it be possible to allow specifying custom units using xlabel and ylabel (as per the docstring)

I am suggesting something allowing the following syntax

PyQtPlotObj.add(x=x, y=np.sin(x), xlabel=('Time', 's'), ylabel=('Amplitude', 'V'))

From what I can tell this would be a trivial addition to this PR that would greatly improve the plotting API.

@giulioungaretti
Copy link
Contributor Author

@AdriaanRol sure!

@giulioungaretti
Copy link
Contributor Author

@AdriaanRol ✔️

@AdriaanRol
Copy link
Contributor

@giulioungaretti, If I read your changes correctly, this change would not allow using the labels in the "old" simple way, i.e.,:

xlabel=('label', 'unit'), is usable (+1) but it is no longer be possible to use xlabel='label', while the default PyQtGraph API does allow this in both ways.

Would it be possible to default the unit to None if no unit is specified or otherwise just passing the arguments on to PyQtGraph directly? I think this would be good both for keeping the API as simple as possible to use as well as for backwards compatibility.

In any case I'd be happy to use this either way

@giulioungaretti
Copy link
Contributor Author

@AdriaanRol

qc.QtPlot.add(x=data, y=data, labelx=("a", "V"), labely=("b", "V")

where one must pass a tuple of (label, unit).
It does break a bit the old API , but it's a lot less ambiguous than having either a tuple or a string.
But it's a easy change if people feel like it's better. Feedback @QCoDeS/core @QCoDeS/core-contributors >

@MerlinSmiles
Copy link
Contributor

@giulioungaretti im with @AdriaanRol here. In the simple way to plot something with add(xdata, ydata, 'x-string', y-string) it would be nice if one isn't forced to write tuples and None units, but just leave them out.

@giulioungaretti
Copy link
Contributor Author

@MerlinSmiles @AdriaanRol the best we can do, give the current way this is handled is:

qc.QtPlot.add(x=data, y=data, xlabel="a", xunit= "V", ylabely="b", yunit= "V")

everything must be a kwarg, not my favourite but that's the way qc plot was give us :D

@AdriaanRol
Copy link
Contributor

@giulioungaretti, I'd be fine with that syntax (though there is a funny ylabel*y* ).

That being said, I see no reason why accepting the kwarg to either be a float or a tuple of two floats would not be possible, a simple type check on the value should suffice. (Though at this point I'm happy either way).

I also agree that the API being kwargs only is not optimal, but that is a completely different topic :)

@giulioungaretti
Copy link
Contributor Author

@AdriaanRol @MerlinSmiles @QCoDeS/core ok took more that I thought to fix this, the internals are quite interesting. Would love a review!

Copy link
Contributor

@AdriaanRol AdriaanRol left a comment

Choose a reason for hiding this comment

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

@giulioungaretti , Looks great to me. Can't wait to start using it 👍

One thing I noticed is that there are no tests for this. Altough testing graphical things is hard, I consider it good practice to just test for errors. As in create the minimal working examples run them in a test and not test if the result is right but just if it does not crash. That seems to catch most accidental breakings of the API in any case.

@@ -81,7 +81,11 @@ def add(self, *args, updater=None, **kwargs):
into `x`, `y`, and optionally `z`, these are passed along to
self.add_to_plot.
To use custom labels and units pass for example:
>>> plot.add(x=set, y=amplitude, xlabel=("set", "s"), ylabel= ("Amplitude", "V"))
plot.add(x=set, y=amplitude,
Copy link
Contributor

Choose a reason for hiding this comment

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

Good docstring 👍

I guess it would not be possible to make them explicit keyword arguments of the add function that then always get passed on to the relevant subfunction? I think this would improve usability, as the shift-tab functionality would then show this as default keyword arguments.

That being said, I consider that an enhancement that goes beyond the scope of this PR, so maybe for a next time.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@AdriaanRol right now that's unfortunately not possible :( but it soon will !

"""
for axletter, side in (('x', 'bottom'), ('y', 'left')):
ax = subplot_object.getAxis(side)
# danger: 🍝
Copy link
Contributor

Choose a reason for hiding this comment

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

why danger? I'd say that if someone wants to overwrite a label (to e.g., more clearly distinguish two voltages) that is intended behaviour.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@AdriaanRol danger as in enter spaghetti code. (The emoji maybe does not render :D )

@giulioungaretti
Copy link
Contributor Author

@AdriaanRol testing wise, this is tricky as you say. I think we'll live with this for now. Then once we have a leaner api, we can actually test the logic without plotting (i.e. making sure we actually have the right data and metadata ) and let the plotting library developers do their testing 🗡

I will then proceed merging soon!

@giulioungaretti giulioungaretti merged commit e95d623 into master Mar 2, 2017
@giulioungaretti giulioungaretti deleted the feature/useunits branch March 2, 2017 16:54
giulioungaretti pushed a commit that referenced this pull request Mar 2, 2017
Author: Giulio Ungaretti <giulio.ungaretti@gmail.com>

    feature: Use unit in label (#495)
bors bot added a commit that referenced this pull request Sep 29, 2022
4662: Update pytest-mock requirement from ~=3.8.2 to ~=3.9.0 r=jenshnielsen a=dependabot[bot]

Updates the requirements on [pytest-mock](https://github.com/pytest-dev/pytest-mock) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's releases</a>.</em></p>
<blockquote>
<h2>v3.9.0</h2>
<h1>Releases</h1>
<h2>3.9.0 (2022-09-28)</h2>
<ul>
<li>Expose <code>NonCallableMagicMock</code> via the <code>mocker</code> fixture (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/318">#318</a>).</li>
</ul>
<h2>3.8.2 (2022-07-05)</h2>
<ul>
<li>Fixed <code>AsyncMock</code> support for Python 3.7+ in <code>mocker.async_stub</code> (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/302">#302</a>).</li>
</ul>
<h2>3.8.1 (2022-06-24)</h2>
<ul>
<li>Fixed regression caused by an explicit <code>mock</code> dependency in the code (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">#298</a>).</li>
</ul>
<h2>3.8.0 (2022-06-24)</h2>
<ul>
<li>Add <code>MockerFixture.async_mock</code> method. Thanks <a href="https://github.com/PerchunPak"><code>`@​PerchunPak</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/296">#296</a>).</li>
</ul>
<h2>3.7.0 (2022-01-28)</h2>
<ul>
<li>Python 3.10 now officially supported.</li>
<li>Dropped support for Python 3.6.</li>
</ul>
<h2>3.6.1 (2021-05-06)</h2>
<ul>
<li>Fix <code>mocker.resetall()</code> when using <code>mocker.spy()</code> (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">#237</a>). Thanks <a href="https://github.com/blaxter"><code>`@​blaxter</code></a>` for the report and <a href="https://github.com/shadycuz"><code>`@​shadycuz</code></a>` for the PR.</li>
</ul>
<h2>3.6.0 (2021-04-24)</h2>
<ul>
<li>pytest-mock no longer supports Python 3.5.</li>
<li>Correct type annotations for <code>mocker.patch.object</code> to also include the string form.
Thanks <a href="https://github.com/plannigan"><code>`@​plannigan</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/235">#235</a>).</li>
<li><code>reset_all</code> now supports <code>return_value</code> and <code>side_effect</code> keyword arguments. Thanks <a href="https://github.com/alex-marty"><code>`@​alex-marty</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/214">#214</a>).</li>
</ul>
<h2>3.5.1 (2021-01-10)</h2>
<ul>
<li>Use <code>inspect.getattr_static</code> instead of resorting to <code>object.__getattribute__</code>
magic. This should better comply with objects which implement a custom descriptor
protocol. Thanks <a href="https://github.com/yesthesoup"><code>`@​yesthesoup</code></a>` for the PR (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/224">#224</a>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p>
<blockquote>
<h2>3.9.0 (2022-09-28)</h2>
<ul>
<li>Expose <code>NonCallableMagicMock</code> via the <code>mocker</code> fixture (<code>[#318](https://github.com/pytest-dev/pytest-mock/issues/318)</code>_).</li>
</ul>
<p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/318">#318</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/318">pytest-dev/pytest-mock#318</a></p>
<h2>3.8.2 (2022-07-05)</h2>
<ul>
<li>Fixed <code>AsyncMock</code> support for Python 3.7+ in <code>mocker.async_stub</code> (<code>[#302](https://github.com/pytest-dev/pytest-mock/issues/302)</code>_).</li>
</ul>
<p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/302">#302</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/302">pytest-dev/pytest-mock#302</a></p>
<h2>3.8.1 (2022-06-24)</h2>
<ul>
<li>Fixed regression caused by an explicit <code>mock</code> dependency in the code (<code>[#298](https://github.com/pytest-dev/pytest-mock/issues/298)</code>_).</li>
</ul>
<p>.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">#298</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/298">pytest-dev/pytest-mock#298</a></p>
<h2>3.8.0 (2022-06-24)</h2>
<ul>
<li>Add <code>MockerFixture.async_mock</code> method. Thanks <code>`@PerchunPak</code>_` for the PR (<code>[#296](https://github.com/pytest-dev/pytest-mock/issues/296)</code>_).</li>
</ul>
<p>.. _<a href="https://github.com/PerchunPak"><code>`@​PerchunPak</code></a>:` <a href="https://github.com/PerchunPak">https://github.com/PerchunPak</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/296">#296</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/296">pytest-dev/pytest-mock#296</a></p>
<h2>3.7.0 (2022-01-28)</h2>
<ul>
<li>Python 3.10 now officially supported.</li>
<li>Dropped support for Python 3.6.</li>
</ul>
<h2>3.6.1 (2021-05-06)</h2>
<ul>
<li>Fix <code>mocker.resetall()</code> when using <code>mocker.spy()</code> (<code>[#237](https://github.com/pytest-dev/pytest-mock/issues/237)</code><em>). Thanks <code>`@blaxter</code></em>` for the report and <code>`@shadycuz</code>_` for the PR.</li>
</ul>
<p>.. _<a href="https://github.com/blaxter"><code>`@​blaxter</code></a>:` <a href="https://github.com/blaxter">https://github.com/blaxter</a>
.. _<a href="https://github.com/shadycuz"><code>`@​shadycuz</code></a>:` <a href="https://github.com/shadycuz">https://github.com/shadycuz</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">#237</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/237">pytest-dev/pytest-mock#237</a></p>
<h2>3.6.0 (2021-04-24)</h2>
<ul>
<li>
<p>pytest-mock no longer supports Python 3.5.</p>
</li>
<li>
<p>Correct type annotations for <code>mocker.patch.object</code> to also include the string form.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/64a34f64215d779dc0384acc3cdd5a164544a60a"><code>64a34f6</code></a> Update CHANGELOG for 3.9.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/4e31630aad7dca66258f232e6b62754dadd79f2b"><code>4e31630</code></a> Add test for NonCallableMagicMock</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/247b9d46e6fdfc696257c4daade9c08a195c45aa"><code>247b9d4</code></a> Expose NonCallableMagicMock in MockerFixture</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/0fd7fea3eece2e2dd09affeed39f0e3a50295f0d"><code>0fd7fea</code></a> Update link to notes about usage as context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/313">#313</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/903b97283d1c8271596d748a9a8eef5038f96bb6"><code>903b972</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/311">#311</a> from pytest-dev/pre-commit-ci-update-config</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/a5a33ac9461e469736ed0d2ceae135f2cfb3fad0"><code>a5a33ac</code></a> [pre-commit.ci] pre-commit autoupdate</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/d01b267622b8ae21f977115edc624638da0f2508"><code>d01b267</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/309">#309</a> from pytest-dev/pre-commit-ci-update-config</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/736f2ab0caa4a51544627773818d1ef4822ab31c"><code>736f2ab</code></a> [pre-commit.ci] pre-commit autoupdate</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/59b60cb85116016e2e5e458d00b8ca3c5b267178"><code>59b60cb</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/308">#308</a> from juliangilbey/add-static-dir</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/305e0829c4100d1316dd30e91d978e56602cf893"><code>305e082</code></a> Add docs/_static directory to allow sphinx-build to work without warnings</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.8.2...v3.9.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>

4663: Update pytest-cov requirement from ~=3.0.0 to ~=4.0.0 r=jenshnielsen a=dependabot[bot]

Updates the requirements on [pytest-cov](https://github.com/pytest-dev/pytest-cov) to permit the latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's changelog</a>.</em></p>
<blockquote>
<h2>4.0.0 (2022-09-28)</h2>
<p><strong>Note that this release drops support for multiprocessing.</strong></p>
<ul>
<li>
<p><code>--cov-fail-under</code> no longer causes <code>pytest --collect-only</code> to fail
Contributed by Zac Hatfield-Dodds in <code>[#511](pytest-dev/pytest-cov#511) &lt;https://github.com/pytest-dev/pytest-cov/pull/511&gt;</code>_.</p>
</li>
<li>
<p>Dropped support for multiprocessing (mostly because <code>issue 82408 &lt;https://github.com/python/cpython/issues/82408&gt;</code>_). This feature was
mostly working but very broken in certain scenarios and made the test suite very flaky and slow.</p>
<p>There is builtin multiprocessing support in coverage and you can migrate to that. All you need is this in your
<code>.coveragerc</code>::</p>
<p>[run]
concurrency = multiprocessing
parallel = true
sigterm = true</p>
</li>
<li>
<p>Fixed deprecation in <code>setup.py</code> by trying to import setuptools before distutils.
Contributed by Ben Greiner in <code>[#545](pytest-dev/pytest-cov#545) &lt;https://github.com/pytest-dev/pytest-cov/pull/545&gt;</code>_.</p>
</li>
<li>
<p>Removed undesirable new lines that were displayed while reporting was disabled.
Contributed by Delgan in <code>[#540](pytest-dev/pytest-cov#540) &lt;https://github.com/pytest-dev/pytest-cov/pull/540&gt;</code>_.</p>
</li>
<li>
<p>Documentation fixes.
Contributed by Andre Brisco in <code>[#543](pytest-dev/pytest-cov#543) &lt;https://github.com/pytest-dev/pytest-cov/pull/543&gt;</code>_
and Colin O'Dell in <code>[#525](pytest-dev/pytest-cov#525) &lt;https://github.com/pytest-dev/pytest-cov/pull/525&gt;</code>_.</p>
</li>
<li>
<p>Added support for LCOV output format via <code>--cov-report=lcov</code>. Only works with coverage 6.3+.
Contributed by Christian Fetzer in <code>[#536](pytest-dev/pytest-cov#536) &lt;https://github.com/pytest-dev/pytest-cov/issues/536&gt;</code>_.</p>
</li>
<li>
<p>Modernized pytest hook implementation.
Contributed by Bruno Oliveira in <code>[#549](pytest-dev/pytest-cov#549) &lt;https://github.com/pytest-dev/pytest-cov/pull/549&gt;</code>_
and Ronny Pfannschmidt in <code>[#550](pytest-dev/pytest-cov#550) &lt;https://github.com/pytest-dev/pytest-cov/pull/550&gt;</code>_.</p>
</li>
</ul>
<h2>3.0.0 (2021-10-04)</h2>
<p><strong>Note that this release drops support for Python 2.7 and Python 3.5.</strong></p>
<ul>
<li>Added support for Python 3.10 and updated various test dependencies.
Contributed by Hugo van Kemenade in
<code>[#500](pytest-dev/pytest-cov#500) &lt;https://github.com/pytest-dev/pytest-cov/pull/500&gt;</code>_.</li>
<li>Switched from Travis CI to GitHub Actions. Contributed by Hugo van Kemenade in
<code>[#494](pytest-dev/pytest-cov#494) &lt;https://github.com/pytest-dev/pytest-cov/pull/494&gt;</code>_ and
<code>[#495](pytest-dev/pytest-cov#495) &lt;https://github.com/pytest-dev/pytest-cov/pull/495&gt;</code>_.</li>
<li>Add a <code>--cov-reset</code> CLI option.
Contributed by Danilo Šegan in
<code>[#459](pytest-dev/pytest-cov#459) &lt;https://github.com/pytest-dev/pytest-cov/pull/459&gt;</code>_.</li>
<li>Improved validation of <code>--cov-fail-under</code> CLI option.
Contributed by ... Ronny Pfannschmidt's desire for skark in
<code>[#480](pytest-dev/pytest-cov#480) &lt;https://github.com/pytest-dev/pytest-cov/pull/480&gt;</code>_.</li>
<li>Dropped Python 2.7 support.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/28db055bebbf3ee016a2144c8b69dd7b80b48cc5"><code>28db055</code></a> Bump version: 3.0.0 → 4.0.0</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/57e9354a86f658556fe6f15f07625c4b9a9ddf53"><code>57e9354</code></a> Really update the changelog.</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/56b810b91c9ae15d1462633c6a8a1b522ebf8e65"><code>56b810b</code></a> Update chagelog.</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/f7fced579e36b72b57e14768026467e4c4511a40"><code>f7fced5</code></a> Add support for LCOV output</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/1211d3134bb74abb7b00c3c2209091aaab440417"><code>1211d31</code></a> Fix flake8 error</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/b077753f5d9d200815fe500d0ef23e306784e65b"><code>b077753</code></a> Use modern approach to specify hook options</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/00713b3fec90cb8c98a9e4bfb3212e574c08e67b"><code>00713b3</code></a> removed incorrect docs on <code>data_file</code>.</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/b3dda36fddd3ca75689bb3645cd320aa8392aaf3"><code>b3dda36</code></a> Improve workflow with a collecting status check. (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-cov/issues/548">#548</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/218419f665229d61356f1eea3ddc8e18aa21f87c"><code>218419f</code></a> Prevent undesirable new lines to be displayed when report is disabled</li>
<li><a href="https://github.com/pytest-dev/pytest-cov/commit/60b73ec673c60942a3cf052ee8a1fdc442840558"><code>60b73ec</code></a> migrate build command from distutils to setuptools</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-cov/compare/v3.0.0...v4.0.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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants