Some checks failed
Security / snyk (push) Has been cancelled
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` | [](https://docs.renovatebot.com/merge-confidence/) | [](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 @​attrs.define(kw_only=True) class Base: a: int b: int = attrs.field(default=1, kw_only=False) @​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. [#​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). [#​1427](https://github.com/python-attrs/attrs/issues/1427) - Added support for Python 3.14 and [PEP 749](https://peps.python.org/pep-0749/). [#​1446](https://github.com/python-attrs/attrs/issues/1446), [#​1451](https://github.com/python-attrs/attrs/issues/1451) - `attrs.validators.deep_mapping()` now allows to leave out either *key\_validator* xor *value\_validator*. [#​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_()`. [#​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. [#​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. [#​1461](https://github.com/python-attrs/attrs/issues/1461) - The performance of `attrs.asdict()` has been improved by 45–260%. [#​1463](https://github.com/python-attrs/attrs/issues/1463) - The performance of `attrs.astuple()` has been improved by 49–270%. [#​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. [#​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>
57 lines
1.2 KiB
TOML
57 lines
1.2 KiB
TOML
[project]
|
|
name = "ipilot"
|
|
version = "0.0.0"
|
|
description = "IP Information Lookup Tool"
|
|
readme = "README.md"
|
|
authors = [
|
|
{name = "Luke Tainton", email = "luke@tainton.uk"},
|
|
]
|
|
requires-python = "<4.0,>=3.11"
|
|
dependencies = [
|
|
"astroid==3.3.11",
|
|
"attrs==25.4.0",
|
|
"certifi==2025.10.5",
|
|
"charset-normalizer==3.4.3",
|
|
"click==8.3.0",
|
|
"dill==0.4.0",
|
|
"exceptiongroup==1.3.0",
|
|
"idna==3.10",
|
|
"iniconfig==2.1.0",
|
|
"lazy-object-proxy==1.12.0",
|
|
"mccabe==0.7.0",
|
|
"mypy-extensions==1.1.0",
|
|
"packaging==25.0",
|
|
"pathspec==0.12.1",
|
|
"platformdirs==4.4.0",
|
|
"pluggy==1.6.0",
|
|
"py==1.11.0",
|
|
"pyparsing==3.2.5",
|
|
"requests==2.32.5",
|
|
"six==1.17.0",
|
|
"tabulate==0.9.0",
|
|
"tomli==2.2.1",
|
|
"tomlkit==0.13.3",
|
|
"urllib3==2.5.0",
|
|
"wrapt==1.17.3",
|
|
]
|
|
|
|
[project.scripts]
|
|
app = "app.main:main"
|
|
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"black<25.9.1,>=25.9.0",
|
|
"coverage<8.0.0,>=7.5.0",
|
|
"pylint<4.0.0,>=3.1.0",
|
|
"pylint-exit<2.0.0,>=1.2.0",
|
|
"pytest<9.0.0,>=8.1.1",
|
|
"requests-mock<2.0.0,>=1.12.1",
|
|
]
|
|
|
|
[tool.pdm.build]
|
|
includes = []
|
|
[build-system]
|
|
requires = ["pdm-backend"]
|
|
build-backend = "pdm.backend"
|