renovate[bot] bfb0a2dfc0
Some checks failed
Security / snyk (push) Has been cancelled
fix(deps): update dependency attrs to v25.4.0 (#381)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [attrs](https://github.com/python-attrs/attrs) ([changelog](https://www.attrs.org/en/stable/changelog.html)) | `==25.3.0` -> `==25.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/attrs/25.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/attrs/25.3.0/25.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>python-attrs/attrs (attrs)</summary>

### [`v25.4.0`](https://github.com/python-attrs/attrs/blob/HEAD/CHANGELOG.md#2540---2025-10-06)

[Compare Source](https://github.com/python-attrs/attrs/compare/25.3.0...25.4.0)

##### Backwards-incompatible Changes

- Class-level `kw_only=True` behavior is now consistent with `dataclasses`.

  Previously, a class that sets `kw_only=True` makes all attributes keyword-only, including those from base classes.
  If an attribute sets `kw_only=False`, that setting is ignored, and it is still made keyword-only.

  Now, only the attributes defined in that class that doesn't explicitly set `kw_only=False` are made keyword-only.

  This shouldn't be a problem for most users, unless you have a pattern like this:

  ```python
  @&#8203;attrs.define(kw_only=True)
  class Base:
      a: int
      b: int = attrs.field(default=1, kw_only=False)

  @&#8203;attrs.define
  class Subclass(Base):
      c: int
  ```

  Here, we have a `kw_only=True` *attrs* class (`Base`) with an attribute that sets `kw_only=False` and has a default (`Base.b`), and then create a subclass (`Subclass`) with required arguments (`Subclass.c`).
  Previously this would work, since it would make `Base.b` keyword-only, but now this fails since `Base.b` is positional, and we have a required positional argument (`Subclass.c`) following another argument with defaults.
  [#&#8203;1457](https://github.com/python-attrs/attrs/issues/1457)

##### Changes

- Values passed to the `__init__()` method of `attrs` classes are now correctly passed to `__attrs_pre_init__()` instead of their default values (in cases where *kw\_only* was not specified).
  [#&#8203;1427](https://github.com/python-attrs/attrs/issues/1427)
- Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/).
  [#&#8203;1446](https://github.com/python-attrs/attrs/issues/1446),
  [#&#8203;1451](https://github.com/python-attrs/attrs/issues/1451)
- `attrs.validators.deep_mapping()` now allows to leave out either *key\_validator* xor *value\_validator*.
  [#&#8203;1448](https://github.com/python-attrs/attrs/issues/1448)
- `attrs.validators.deep_iterator()` and `attrs.validators.deep_mapping()` now accept lists and tuples for all validators and wrap them into a `attrs.validators.and_()`.
  [#&#8203;1449](https://github.com/python-attrs/attrs/issues/1449)
- Added a new **experimental** way to inspect classes:

  `attrs.inspect(cls)` returns the *effective* class-wide parameters that were used by *attrs* to construct the class.

  The returned class is the same data structure that *attrs* uses internally to decide how to construct the final class.
  [#&#8203;1454](https://github.com/python-attrs/attrs/issues/1454)
- Fixed annotations for `attrs.field(converter=...)`.
  Previously, a `tuple` of converters was only accepted if it had exactly one element.
  [#&#8203;1461](https://github.com/python-attrs/attrs/issues/1461)
- The performance of `attrs.asdict()` has been improved by 45–260%.
  [#&#8203;1463](https://github.com/python-attrs/attrs/issues/1463)
- The performance of `attrs.astuple()` has been improved by 49–270%.
  [#&#8203;1469](https://github.com/python-attrs/attrs/issues/1469)
- The type annotation for `attrs.validators.or_()` now allows for different types of validators.

  This was only an issue on Pyright.
  [#&#8203;1474](https://github.com/python-attrs/attrs/issues/1474)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->

Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/381
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>
2025-10-06 20:12:04 +02:00
2025-01-17 00:30:00 +01:00
2025-01-17 00:30:00 +01:00
2025-01-17 00:30:00 +01:00
2023-02-28 17:14:59 +00:00
2025-02-17 11:57:05 +01:00

iPilot CI Quality Gate Status

Description

IP Information Lookup Tool

How to install

pip install ipilot

How to use

ipilot --help

Description
No description provided
Readme 3.8 MiB
v1.8.15 Latest
2025-09-28 11:01:24 +02:00
Languages
Python 91.2%
Dockerfile 5.1%
Shell 3.7%