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

Complete error signature of _InValidator #951

Merged
merged 23 commits into from
Jun 13, 2022
Merged

Conversation

iron3oxide
Copy link
Contributor

Summary

This makes the _InValidator produce the error signature it is proclaimed to have in the docstring of _in(). Similarly to the other validators, the attribute, conflicting factor (in this case self.options) and the value are now included when a ValueError is raised.

Pull Request Check List

  • Added tests for changed code.
    Our CI fails if coverage is not 100%.
  • New features have been added to our Hypothesis testing strategy.
  • Changes or additions to public APIs are reflected in our type stubs (files ending in .pyi).
    • ...and used in the stub test file tests/typing_example.py.
    • If they've been added to attr/__init__.pyi, they've also been re-imported in attrs/__init__.pyi.
  • Updated documentation for changed code.
    • New functions/classes have to be added to docs/api.rst by hand.
    • Changes to the signature of @attr.s() have to be added by hand too.
    • Changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.
      Find the appropriate next version in our __init__.py file.
  • Documentation in .rst files is written using semantic newlines.
  • Changes (and possible deprecations) have news fragments in changelog.d.
  • Consider granting push permissions to the PR branch, so maintainers can fix minor issues themselves without pestering you.

I hope it's ok that I checked all the boxes that don't apply as well (e.g. sufficient documentation is already there).

Notes

It may be advisable to only include a gist of the options because otherwise this change could negatively impact performance if _in() is called on a large collection (the error message would have to use that gist as well of course).

My initial goal though was to make the ValueError do what the docstring says it does. One may want to catch a ValueError and present the user with a more "polished" (or in my case also translated) version of it. A standardized error signature can help with that, that's why _in() would now produce the same signature as e.g. matches_re() would. I think this was also the intention of the person that wrote the _in() docstring. Hope this is helpful, it's my first PR ever!

iron3oxide and others added 5 commits April 11, 2022 20:13
The docstring of _in() says the ValueError would contain these, however
it didn't. Adding said arguments enables uniform processing of
ValueErrors raised by validators. One might for example want to extract
the attr.name and the value that raised the error to show a custom, more
user-friendly error message.
Since the error message isn't the only error argument anymore (but
should still suffice to test functionality), it was necessary to only
assert against the first argument.
I thought I could get away with lazyness but it's better to do it the
right way. The tests now check the full error signature.
This should sufficiently summarize the changes.
@iron3oxide
Copy link
Contributor Author

Looks like an InternalServerError prevented the 3.9 tests from succeeding..

@hynek
Copy link
Member

hynek commented Apr 12, 2022

I’m afraid that would be a backwards-incompatible change. I also suspect the docs was a copy/paste mistake and the docs should be adapted to the behavior and not vice versa?

@iron3oxide
Copy link
Contributor Author

In theory, adapting the docs to the actual behavior is the way to go, no question about it. In this case, I thought the docstring expressed the intended behavior and the method just never got "completed".

What about adding a default argument like verbose_value_error=False to _in() and passing it to _InValidator? That way, the change should be backwards-compatible but people that need a more verbose error message could obtain it.

iron3oxide and others added 4 commits April 12, 2022 15:54
This should allow for backwards-compatibility.
…error=True"

This should sufficiently test the verbose signature.
I noticed that the number didn't correspond to the PR #, so I renamed
the file. Also modified the content to properly reflect the changes.
@hynek
Copy link
Member

hynek commented May 2, 2022

Agh ugh…that seems a lot of complexity for something that almost nobody would notice.

You know what? Let's treat it as a bug and fix it to conform to the documented behavior.

Make the newsfragment breaking and please use semantic newlines.

@iron3oxide
Copy link
Contributor Author

Semantic newlines seem pretty neat, thanks for making me discover them! I actually realized that one can also obtain the values in question from the caught error, so I won't insist on merging this if the complexity it adds outweighs the benefits in your eyes.

@hynek
Copy link
Member

hynek commented May 25, 2022

What I meant is that I'm willing to accept your original approach of adapting the behavior to the documentation since I don't expect a lot of breakage to make this complex/special case.

JFTR you've gone a bit overboard with semantic newlines…I'd call that "Poetic Newlines" 😅. We usually just add newlines after periods, colons and sometimes semicolons. :) (comma is OK, but middle of the sentence is not)

@iron3oxide
Copy link
Contributor Author

That's probably a sane strategy for semantic newlines, I can see why breaks anywhere else might seem arbitrary. I tried to follow the style used in the article you linked, found here, where breaks in the middle of a sentence can occur at "breaks between clauses", but finding these breaks can of course be cumbersome, and deciding if a break occurs may even be subjective in some cases.

Either way, I didn't quite understand the imperative of your reply, or to put it bluntly: what should I do next?

@hynek
Copy link
Member

hynek commented Jun 7, 2022

  • Roll back to your original solution of the validator behaving like it is currently documented.
  • Reduce new lines to whole sentences.

@iron3oxide
Copy link
Contributor Author

Lessons learned the hard way: git reset does not work how I thought it would (never needed to use it before) and manually reverting changes is in most cases better than using git revert. Sorry for the mess.

@hynek hynek enabled auto-merge (squash) June 13, 2022 05:57
Copy link
Member

@hynek hynek left a comment

Choose a reason for hiding this comment

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

I'll refine the changelog a bit on my own since I've pestered you enough, so thanks for playing along for this long!

@hynek hynek merged commit 2257a0c into python-attrs:main Jun 13, 2022
hynek added a commit that referenced this pull request Jun 13, 2022
mergify bot pushed a commit to aws/jsii that referenced this pull request Aug 1, 2022
…/packages/@jsii/python-runtime (#3692)

Updates the requirements on [attrs](https://github.com/python-attrs/attrs) to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/python-attrs/attrs/releases">attrs's releases</a>.</em></p>
<blockquote>
<h2>22.1.0</h2>
<h1>Highlights</h1>
<p>The main features of this release are:</p>
<ul>
<li>The departure of Python 2.7 (enjoy your retirement!),</li>
<li>and the arrival of Python 3.11.</li>
</ul>
<p>We had loftier goals feature-wise, but didn't want to block others embracing Python 3.11.</p>
<p>❤️ <strong>Huge</strong> thanks to my <a href="https://github.com/sponsors/hynek">GitHub sponsors</a>, <a href="https://tidelift.com/subscription/pkg/pypi-attrs">Tidelift subscribers</a>, and <a href="https://ko-fi.com/the_hynek">Ko-fi buyers</a>! ❤️</p>
<p>None of my projects would exist in their current form without you!</p>
<h1>Full Changelog</h1>
<h2>Backwards-incompatible Changes</h2>
<ul>
<li>
<p>Python 2.7 is not supported anymore.</p>
<p>Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.</p>
<p>We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues. All version up to 21.4.0 from December 2021 remain fully functional, of course. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/936">#936</a></p>
</li>
<li>
<p>The deprecated <code>cmp</code> attribute of <code>attrs.Attribute</code> has been removed. This does not affect the <em>cmp</em> argument to <code>attr.s</code> that can be used as a shortcut to set <em>eq</em> and <em>order</em> at the same time. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/939">#939</a></p>
</li>
</ul>
<h2>Changes</h2>
<ul>
<li>Instantiation of frozen slotted classes is now faster. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/898">#898</a></li>
<li>If an <code>eq</code> key is defined, it is also used before hashing the attribute. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/909">#909</a></li>
<li>Added <code>attrs.validators.min_len()</code>. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/916">#916</a></li>
<li><code>attrs.validators.deep_iterable()</code>'s <em>member_validator</em> argument now also accepts a list of validators and wraps them in an <code>attrs.validators.and_()</code>. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/925">#925</a></li>
<li>Added missing type stub re-imports for <code>attrs.converters</code> and <code>attrs.filters</code>. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/931">#931</a></li>
<li>Added missing stub for <code>attr(s).cmp_using()</code>. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/949">#949</a></li>
<li><code>attrs.validators._in()</code>'s <code>ValueError</code> is not missing the attribute, expected options, and the value it got anymore. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/951">#951</a></li>
<li>Python 3.11 is now officially supported. <a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/969">#969</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/python-attrs/attrs/blob/main/CHANGELOG.rst">attrs's changelog</a>.</em></p>
<blockquote>
<h2>22.1.0 (2022-07-28)</h2>
<p>Backwards-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>
<p>Python 2.7 is not supported anymore.</p>
<p>Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.</p>
<p>We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues.
All version up to 21.4.0 from December 2021 remain fully functional, of course.
<code>[#936](python-attrs/attrs#936) &lt;https://github.com/python-attrs/attrs/issues/936&gt;</code>_</p>
</li>
<li>
<p>The deprecated <code>cmp</code> attribute of <code>attrs.Attribute</code> has been removed.
This does not affect the <em>cmp</em> argument to <code>attr.s</code> that can be used as a shortcut to set <em>eq</em> and <em>order</em> at the same time.
<code>[#939](python-attrs/attrs#939) &lt;https://github.com/python-attrs/attrs/issues/939&gt;</code>_</p>
</li>
</ul>
<p>Changes
^^^^^^^</p>
<ul>
<li>Instantiation of frozen slotted classes is now faster.
<code>[#898](python-attrs/attrs#898) &lt;https://github.com/python-attrs/attrs/issues/898&gt;</code>_</li>
<li>If an <code>eq</code> key is defined, it is also used before hashing the attribute.
<code>[#909](python-attrs/attrs#909) &lt;https://github.com/python-attrs/attrs/issues/909&gt;</code>_</li>
<li>Added <code>attrs.validators.min_len()</code>.
<code>[#916](python-attrs/attrs#916) &lt;https://github.com/python-attrs/attrs/issues/916&gt;</code>_</li>
<li><code>attrs.validators.deep_iterable()</code>'s <em>member_validator</em> argument now also accepts a list of validators and wraps them in an <code>attrs.validators.and_()</code>.
<code>[#925](python-attrs/attrs#925) &lt;https://github.com/python-attrs/attrs/issues/925&gt;</code>_</li>
<li>Added missing type stub re-imports for <code>attrs.converters</code> and <code>attrs.filters</code>.
<code>[#931](python-attrs/attrs#931) &lt;https://github.com/python-attrs/attrs/issues/931&gt;</code>_</li>
<li>Added missing stub for <code>attr(s).cmp_using()</code>.
<code>[#949](python-attrs/attrs#949) &lt;https://github.com/python-attrs/attrs/issues/949&gt;</code>_</li>
<li><code>attrs.validators._in()</code>'s <code>ValueError</code> is not missing the attribute, expected options, and the value it got anymore.
<code>[#951](python-attrs/attrs#951) &lt;https://github.com/python-attrs/attrs/issues/951&gt;</code>_</li>
<li>Python 3.11 is now officially supported.
<code>[#969](python-attrs/attrs#969) &lt;https://github.com/python-attrs/attrs/issues/969&gt;</code>_</li>
</ul>
<hr />
<h2>21.4.0 (2021-12-29)</h2>
<p>Changes
^^^^^^^</p>
<ul>
<li>Fixed the test suite on PyPy3.8 where <code>cloudpickle</code> does not work.
<code>[#892](python-attrs/attrs#892) &lt;https://github.com/python-attrs/attrs/issues/892&gt;</code>_</li>
</ul>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/python-attrs/attrs/commit/b3dfebe2e10b44437c4f97d788fb5220d790efd0"><code>b3dfebe</code></a> Prepare 22.1.0</li>
<li><a href="https://github.com/python-attrs/attrs/commit/c89abcd6e6a826b00898f93e851c96b78c80891f"><code>c89abcd</code></a> It totally is correct</li>
<li><a href="https://github.com/python-attrs/attrs/commit/9f118b7dd5328ee5abd7f3880971ab9554047c3a"><code>9f118b7</code></a> Tune first steps</li>
<li><a href="https://github.com/python-attrs/attrs/commit/a3d7f20e54ba29d5ec73563c167d877351228cf2"><code>a3d7f20</code></a> Polish contributing guide</li>
<li><a href="https://github.com/python-attrs/attrs/commit/899497f165b3c8291b66c9c3a01b64881b69cf39"><code>899497f</code></a> Clarify (c) ownership</li>
<li><a href="https://github.com/python-attrs/attrs/commit/696fd786901a6b82b828dd71e3fd64bfae1014ca"><code>696fd78</code></a> Hyphenate compound adjectives</li>
<li><a href="https://github.com/python-attrs/attrs/commit/65c06831c1eee4d9895511c7db5caffba9d93c0e"><code>65c0683</code></a> Use NG APIs in glossary</li>
<li><a href="https://github.com/python-attrs/attrs/commit/5d84d9a5686e8210b1616447ac05021b6b211157"><code>5d84d9a</code></a> Move mypy config to pyproject.toml</li>
<li><a href="https://github.com/python-attrs/attrs/commit/1590917bf7c49e35bb429d117650f660aa45e0e4"><code>1590917</code></a> Update readme.rst (<a href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/986">#986</a>)</li>
<li><a href="https://github.com/python-attrs/attrs/commit/a67c84f51e4e3df875961d287583abaef673eb48"><code>a67c84f</code></a> Add more prominent callout about slots to API docs</li>
<li>Additional commits viewable in <a href="https://github.com/python-attrs/attrs/compare/21.2.0...22.1.0">compare view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually 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>
github-actions bot added a commit to MaRDI4NFDI/open-interfaces that referenced this pull request Sep 23, 2022
Bumps [attrs](https://github.com/python-attrs/attrs) from 21.4.0 to
22.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python-attrs/attrs/releases">attrs's
releases</a>.</em></p>
<blockquote>
<h2>22.1.0</h2>
<h1>Highlights</h1>
<p>The main features of this release are:</p>
<ul>
<li>The departure of Python 2.7 (enjoy your retirement!),</li>
<li>and the arrival of Python 3.11.</li>
</ul>
<p>We had loftier goals feature-wise, but didn't want to block others
embracing Python 3.11.</p>
<p>❤️ <strong>Huge</strong> thanks to my <a
href="https://github.com/sponsors/hynek">GitHub sponsors</a>, <a
href="https://tidelift.com/subscription/pkg/pypi-attrs">Tidelift
subscribers</a>, and <a href="https://ko-fi.com/the_hynek">Ko-fi
buyers</a>! ❤️</p>
<p>None of my projects would exist in their current form without
you!</p>
<h1>Full Changelog</h1>
<h2>Backwards-incompatible Changes</h2>
<ul>
<li>
<p>Python 2.7 is not supported anymore.</p>
<p>Dealing with Python 2.7 tooling has become too difficult for a
volunteer-run project.</p>
<p>We have supported Python 2 more than 2 years after it was officially
discontinued and feel that we have paid our dues. All version up to
21.4.0 from December 2021 remain fully functional, of course. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/936">#936</a></p>
</li>
<li>
<p>The deprecated <code>cmp</code> attribute of
<code>attrs.Attribute</code> has been removed. This does not affect the
<em>cmp</em> argument to <code>attr.s</code> that can be used as a
shortcut to set <em>eq</em> and <em>order</em> at the same time. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/939">#939</a></p>
</li>
</ul>
<h2>Changes</h2>
<ul>
<li>Instantiation of frozen slotted classes is now faster. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/898">#898</a></li>
<li>If an <code>eq</code> key is defined, it is also used before hashing
the attribute. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/909">#909</a></li>
<li>Added <code>attrs.validators.min_len()</code>. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/916">#916</a></li>
<li><code>attrs.validators.deep_iterable()</code>'s
<em>member_validator</em> argument now also accepts a list of validators
and wraps them in an <code>attrs.validators.and_()</code>. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/925">#925</a></li>
<li>Added missing type stub re-imports for <code>attrs.converters</code>
and <code>attrs.filters</code>. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/931">#931</a></li>
<li>Added missing stub for <code>attr(s).cmp_using()</code>. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/949">#949</a></li>
<li><code>attrs.validators._in()</code>'s <code>ValueError</code> is not
missing the attribute, expected options, and the value it got anymore.
<a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/951">#951</a></li>
<li>Python 3.11 is now officially supported. <a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/969">#969</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python-attrs/attrs/blob/main/CHANGELOG.rst">attrs's
changelog</a>.</em></p>
<blockquote>
<h2>22.1.0 (2022-07-28)</h2>
<p>Backwards-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>
<p>Python 2.7 is not supported anymore.</p>
<p>Dealing with Python 2.7 tooling has become too difficult for a
volunteer-run project.</p>
<p>We have supported Python 2 more than 2 years after it was officially
discontinued and feel that we have paid our dues.
All version up to 21.4.0 from December 2021 remain fully functional, of
course.
<code>[#936](python-attrs/attrs#936)
&lt;https://github.com/python-attrs/attrs/issues/936&gt;</code>_</p>
</li>
<li>
<p>The deprecated <code>cmp</code> attribute of
<code>attrs.Attribute</code> has been removed.
This does not affect the <em>cmp</em> argument to <code>attr.s</code>
that can be used as a shortcut to set <em>eq</em> and <em>order</em> at
the same time.
<code>[#939](python-attrs/attrs#939)
&lt;https://github.com/python-attrs/attrs/issues/939&gt;</code>_</p>
</li>
</ul>
<p>Changes
^^^^^^^</p>
<ul>
<li>Instantiation of frozen slotted classes is now faster.
<code>[#898](python-attrs/attrs#898)
&lt;https://github.com/python-attrs/attrs/issues/898&gt;</code>_</li>
<li>If an <code>eq</code> key is defined, it is also used before hashing
the attribute.
<code>[#909](python-attrs/attrs#909)
&lt;https://github.com/python-attrs/attrs/issues/909&gt;</code>_</li>
<li>Added <code>attrs.validators.min_len()</code>.
<code>[#916](python-attrs/attrs#916)
&lt;https://github.com/python-attrs/attrs/issues/916&gt;</code>_</li>
<li><code>attrs.validators.deep_iterable()</code>'s
<em>member_validator</em> argument now also accepts a list of validators
and wraps them in an <code>attrs.validators.and_()</code>.
<code>[#925](python-attrs/attrs#925)
&lt;https://github.com/python-attrs/attrs/issues/925&gt;</code>_</li>
<li>Added missing type stub re-imports for <code>attrs.converters</code>
and <code>attrs.filters</code>.
<code>[#931](python-attrs/attrs#931)
&lt;https://github.com/python-attrs/attrs/issues/931&gt;</code>_</li>
<li>Added missing stub for <code>attr(s).cmp_using()</code>.
<code>[#949](python-attrs/attrs#949)
&lt;https://github.com/python-attrs/attrs/issues/949&gt;</code>_</li>
<li><code>attrs.validators._in()</code>'s <code>ValueError</code> is not
missing the attribute, expected options, and the value it got anymore.
<code>[#951](python-attrs/attrs#951)
&lt;https://github.com/python-attrs/attrs/issues/951&gt;</code>_</li>
<li>Python 3.11 is now officially supported.
<code>[#969](python-attrs/attrs#969)
&lt;https://github.com/python-attrs/attrs/issues/969&gt;</code>_</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python-attrs/attrs/commit/b3dfebe2e10b44437c4f97d788fb5220d790efd0"><code>b3dfebe</code></a>
Prepare 22.1.0</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/c89abcd6e6a826b00898f93e851c96b78c80891f"><code>c89abcd</code></a>
It totally is correct</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/9f118b7dd5328ee5abd7f3880971ab9554047c3a"><code>9f118b7</code></a>
Tune first steps</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/a3d7f20e54ba29d5ec73563c167d877351228cf2"><code>a3d7f20</code></a>
Polish contributing guide</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/899497f165b3c8291b66c9c3a01b64881b69cf39"><code>899497f</code></a>
Clarify (c) ownership</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/696fd786901a6b82b828dd71e3fd64bfae1014ca"><code>696fd78</code></a>
Hyphenate compound adjectives</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/65c06831c1eee4d9895511c7db5caffba9d93c0e"><code>65c0683</code></a>
Use NG APIs in glossary</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/5d84d9a5686e8210b1616447ac05021b6b211157"><code>5d84d9a</code></a>
Move mypy config to pyproject.toml</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/1590917bf7c49e35bb429d117650f660aa45e0e4"><code>1590917</code></a>
Update readme.rst (<a
href="https://github-redirect.dependabot.com/python-attrs/attrs/issues/986">#986</a>)</li>
<li><a
href="https://github.com/python-attrs/attrs/commit/a67c84f51e4e3df875961d287583abaef673eb48"><code>a67c84f</code></a>
Add more prominent callout about slots to API docs</li>
<li>Additional commits viewable in <a
href="https://github.com/python-attrs/attrs/compare/21.4.0...22.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=attrs&package-manager=pip&previous-version=21.4.0&new-version=22.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually 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>
mtremer referenced this pull request in ipfire/ipfire-2.x Nov 11, 2022
- Updated from version 21.4.0 to 22.1.0
- Update of rootfile
- Changelog
   22.1.0 (2022-07-28)
	Backwards-incompatible Changes
		- Python 2.7 is not supported anymore.
		  Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.
		  We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues.
		  All version up to 21.4.0 from December 2021 remain fully functional, of course.
		  `#936 <https://github.com/python-attrs/attrs/issues/936>`_
		- The deprecated ``cmp`` attribute of ``attrs.Attribute`` has been removed.
		  This does not affect the *cmp* argument to ``attr.s`` that can be used as a shortcut to set *eq* and *order* at the same time.
		  `#939 <https://github.com/python-attrs/attrs/issues/939>`_
	Changes
		- Instantiation of frozen slotted classes is now faster.
		  `#898 <https://github.com/python-attrs/attrs/issues/898>`_
		- If an ``eq`` key is defined, it is also used before hashing the attribute.
		  `#909 <https://github.com/python-attrs/attrs/issues/909>`_
		- Added ``attrs.validators.min_len()``.
		  `#916 <https://github.com/python-attrs/attrs/issues/916>`_
		- ``attrs.validators.deep_iterable()``'s *member_validator* argument now also accepts a list of validators and wraps them in an ``attrs.validators.and_()``.
		  `#925 <https://github.com/python-attrs/attrs/issues/925>`_
		- Added missing type stub re-imports for ``attrs.converters`` and ``attrs.filters``.
		  `#931 <https://github.com/python-attrs/attrs/issues/931>`_
		- Added missing stub for ``attr(s).cmp_using()``.
		  `#949 <https://github.com/python-attrs/attrs/issues/949>`_
		- ``attrs.validators._in()``'s ``ValueError`` is not missing the attribute, expected options, and the value it got anymore.
		  `#951 <https://github.com/python-attrs/attrs/issues/951>`_
		- Python 3.11 is now officially supported.
		  `#969 <https://github.com/python-attrs/attrs/issues/969>`_

Tested-by: Adolf Belka <[email protected]>
Signed-off-by: Adolf Belka <[email protected]>
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