From 5d92abb079e3a7714219ca9e9f19a2dd84928ae9 Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Feb 2025 14:57:31 -0600 Subject: [PATCH 01/51] feat(hotreload): first pass at debounce support --- hotreload/hotreload.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hotreload/hotreload.py b/hotreload/hotreload.py index 268a41a..14100f7 100644 --- a/hotreload/hotreload.py +++ b/hotreload/hotreload.py @@ -122,11 +122,18 @@ class HotReloadHandler(RegexMatchingEventHandler): self.cog: HotReload = cog self.path: Path = path self.logger: RedTraceLogger = getLogger(name="red.SeaCogs.HotReload.Observer") + self.debounce: bool = False def on_any_event(self, event: FileSystemEvent) -> None: """Handle filesystem events.""" if event.is_directory: return + if self.debounce: + self.logger.trace("Debouncing enabled, ignoring event '%s'", event.event_type) + return + + self.debounce = True + self.logger.verbose("Starting cog reload process, enabling debouncing during event '%s'", event.event_type) allowed_events = ("moved", "deleted", "created", "modified") if event.event_type not in allowed_events: @@ -147,13 +154,16 @@ class HotReloadHandler(RegexMatchingEventHandler): self.logger.info("File %s has been %s%s.", event.src_path, event.event_type, dest) - run_coroutine_threadsafe( + future = run_coroutine_threadsafe( coro=self.reload_cogs( cog_names=cogs_to_reload, paths=[Path(str(p)) for p in (event.src_path, getattr(event, "dest_path", None)) if p], ), loop=self.cog.bot.loop, ) + if future.done(): + self.debounce = False + self.logger.verbose("Debouncing disabled, event '%s' has been handled", event.event_type) async def reload_cogs(self, cog_names: Sequence[str], paths: Sequence[Path]) -> None: """Reload modified cogs.""" From 48c6289b2d4a9ec631371118fac688032c4c7085 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 21 Feb 2025 09:54:40 -0600 Subject: [PATCH 02/51] chore(deps): use py-dactyl from upstream instead of my fork --- pterodactyl/info.json | 7 ++- pyproject.toml | 138 +++++++++++++++++++++--------------------- uv.lock | 8 +-- 3 files changed, 78 insertions(+), 75 deletions(-) diff --git a/pterodactyl/info.json b/pterodactyl/info.json index ec7c4db..d32c39c 100644 --- a/pterodactyl/info.json +++ b/pterodactyl/info.json @@ -9,7 +9,10 @@ "hidden": false, "disabled": false, "min_bot_version": "3.5.0", - "min_python_version": [3, 8, 0], - "requirements": ["git+https://github.com/cswimr/pydactyl", "websockets"], + "min_python_version": [3, 10, 0], + "requirements": [ + "git+https://github.com/iamkubi/pydactyl@v2.0.5", + "websockets" + ], "tags": ["pterodactyl", "minecraft", "server", "management"] } diff --git a/pyproject.toml b/pyproject.toml index 8dce5ac..bf5bc0c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,36 +7,36 @@ license = { file = "LICENSE" } readme = "README.md" requires-python = ">=3.11" dependencies = [ - "aiosqlite>=0.20.0", - "beautifulsoup4>=4.12.3", - "colorthief>=0.2.1", - "markdownify>=0.14.1", - "numpy>=2.2.2", - "phx-class-registry>=5.1.1", - "pillow>=10.4.0", - "pip>=25.0", - "py-dactyl", - "pydantic>=2.10.6", - "red-discordbot>=3.5.14", - "watchdog>=6.0.0", - "websockets>=14.2", + "aiosqlite>=0.20.0", + "beautifulsoup4>=4.12.3", + "colorthief>=0.2.1", + "markdownify>=0.14.1", + "numpy>=2.2.2", + "phx-class-registry>=5.1.1", + "pillow>=10.4.0", + "pip>=25.0", + "py-dactyl", + "pydantic>=2.10.6", + "red-discordbot>=3.5.14", + "watchdog>=6.0.0", + "websockets>=14.2", ] [dependency-groups] documentation = [ - "mkdocs>=1.6.1", - "mkdocs-git-authors-plugin>=0.9.2", - "mkdocs-git-revision-date-localized-plugin>=1.3.0", - "mkdocs-material[imaging]>=9.5.50", - "mkdocs-redirects>=1.2.2", - "mkdocstrings[python]>=0.27.0", + "mkdocs>=1.6.1", + "mkdocs-git-authors-plugin>=0.9.2", + "mkdocs-git-revision-date-localized-plugin>=1.3.0", + "mkdocs-material[imaging]>=9.5.50", + "mkdocs-redirects>=1.2.2", + "mkdocstrings[python]>=0.27.0", ] [tool.uv] dev-dependencies = ["pylint>=3.3.3", "ruff>=0.9.3", "sqlite-web>=0.6.4"] [tool.uv.sources] -py-dactyl = { git = "https://github.com/cswimr/pydactyl" } +py-dactyl = { git = "https://github.com/iamkubi/pydactyl", tag = "v2.0.5" } [tool.basedpyright] typeCheckingMode = "basic" @@ -45,32 +45,32 @@ reportAttributeAccessIssue = false # disabled because `commands.group.command` i [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [ - ".bzr", - ".direnv", - ".eggs", - ".git", - ".git-rewrite", - ".hg", - ".ipynb_checkpoints", - ".mypy_cache", - ".nox", - ".pants.d", - ".pyenv", - ".pytest_cache", - ".pytype", - ".ruff_cache", - ".svn", - ".tox", - ".venv", - ".vscode", - "__pypackages__", - "_build", - "buck-out", - "build", - "dist", - "node_modules", - "site-packages", - "venv", + ".bzr", + ".direnv", + ".eggs", + ".git", + ".git-rewrite", + ".hg", + ".ipynb_checkpoints", + ".mypy_cache", + ".nox", + ".pants.d", + ".pyenv", + ".pytest_cache", + ".pytype", + ".ruff_cache", + ".svn", + ".tox", + ".venv", + ".vscode", + "__pypackages__", + "_build", + "buck-out", + "build", + "dist", + "node_modules", + "site-packages", + "venv", ] # Same as Black. @@ -85,29 +85,29 @@ target-version = "py311" # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or # McCabe complexity (`C901`) by default. select = [ - "I", - "N", - "F", - "W", - "E", - "G", - "A", - "COM", - "INP", - "T20", - "PLC", - "PLE", - "PLW", - "PLR", - "LOG", - "SLF", - "ERA", - "FIX", - "PERF", - "C4", - "EM", - "RET", - "RSE", + "I", + "N", + "F", + "W", + "E", + "G", + "A", + "COM", + "INP", + "T20", + "PLC", + "PLE", + "PLW", + "PLR", + "LOG", + "SLF", + "ERA", + "FIX", + "PERF", + "C4", + "EM", + "RET", + "RSE", ] ignore = ["PLR0911", "PLR0912", "PLR0915", "PLR2004", "PLR0913", "EM101"] diff --git a/uv.lock b/uv.lock index c11d993..4707381 100644 --- a/uv.lock +++ b/uv.lock @@ -592,7 +592,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp" }, + { name = "zipp", marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -1227,8 +1227,8 @@ wheels = [ [[package]] name = "py-dactyl" -version = "2.0.4" -source = { git = "https://github.com/cswimr/pydactyl#a8ad40c21b3fe2248451fd85a1146b32d29f10df" } +version = "2.0.5" +source = { git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5#ef5d8b9b807f67067dc1214097abf01ddb7e551f" } dependencies = [ { name = "requests" }, ] @@ -1701,7 +1701,7 @@ requires-dist = [ { name = "phx-class-registry", specifier = ">=5.1.1" }, { name = "pillow", specifier = ">=10.4.0" }, { name = "pip", specifier = ">=25.0" }, - { name = "py-dactyl", git = "https://github.com/cswimr/pydactyl" }, + { name = "py-dactyl", git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5" }, { name = "pydantic", specifier = ">=2.10.6" }, { name = "red-discordbot", specifier = ">=3.5.14" }, { name = "watchdog", specifier = ">=6.0.0" }, From 6bd2a2cc68578f295cd40d168cca012c85a266d9 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 21 Feb 2025 10:03:07 -0600 Subject: [PATCH 03/51] fix(pterodactyl): fix an attributeerror --- pterodactyl/websocket.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pterodactyl/websocket.py b/pterodactyl/websocket.py index 6ead074..0948a1a 100644 --- a/pterodactyl/websocket.py +++ b/pterodactyl/websocket.py @@ -153,7 +153,7 @@ async def retrieve_websocket_credentials(coginstance: Pterodactyl) -> dict: client = PterodactylClient(base_url, api_key).client coginstance.client = client - websocket_credentials: dict[str, Any] = client.servers.get_websocket(server_id).json() + websocket_credentials: dict[str, Any] = client.servers.get_websocket(server_id) if not websocket_credentials: coginstance.maybe_cancel_task() raise ValueError("Failed to retrieve websocket credentials. Please ensure the API details are correctly configured.") From 3fdb0836cf298d22f2e85a9400ffc072849edeaa Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 21 Feb 2025 10:27:10 -0600 Subject: [PATCH 04/51] chore(pterodactyl): bump version --- pterodactyl/mcsrvstatus.py | 8 ++++++++ pterodactyl/pterodactyl.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pterodactyl/mcsrvstatus.py b/pterodactyl/mcsrvstatus.py index 0d06f64..d677029 100644 --- a/pterodactyl/mcsrvstatus.py +++ b/pterodactyl/mcsrvstatus.py @@ -2,6 +2,14 @@ import aiohttp async def get_status(host: str, port: int = 25565) -> tuple[bool, dict]: + """Get the status of a Minecraft server using the [mcsrvstat.us API](https://api.mcsrvstat.us). + + Args: + host (str): The host of the server. + port (int, optional): The port to connect to. Defaults to 25565. + + Returns: + A tuple containing a boolean and a dictionary. The boolean is True if the server is online, or False if it is offline. The dictionary contains the response from the API.""" async with aiohttp.ClientSession() as session: async with session.get(f"https://api.mcsrvstat.us/2/{host}:{port}") as response: response = await response.json() # noqa: PLW2901 diff --git a/pterodactyl/pterodactyl.py b/pterodactyl/pterodactyl.py index 99891e0..cab4414 100644 --- a/pterodactyl/pterodactyl.py +++ b/pterodactyl/pterodactyl.py @@ -23,7 +23,7 @@ class Pterodactyl(commands.Cog): __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" - __version__ = "2.0.6" + __version__ = "2.0.7" __documentation__ = "https://seacogs.coastalcommits.com/pterodactyl/" def __init__(self, bot: Red): From 10b31c81b37c890d0e124610cb2d9e03891f4f8e Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 21 Feb 2025 11:58:07 -0600 Subject: [PATCH 05/51] fix(pterodactyl): use the correct language for some codeblocks --- pterodactyl/pterodactyl.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pterodactyl/pterodactyl.py b/pterodactyl/pterodactyl.py index cab4414..9690bf8 100644 --- a/pterodactyl/pterodactyl.py +++ b/pterodactyl/pterodactyl.py @@ -23,7 +23,7 @@ class Pterodactyl(commands.Cog): __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" - __version__ = "2.0.7" + __version__ = "2.0.8" __documentation__ = "https://seacogs.coastalcommits.com/pterodactyl/" def __init__(self, bot: Red): @@ -416,7 +416,7 @@ class Pterodactyl(commands.Cog): - `.$V` (version) - `.$D` (description / Message of the Day)""" await config.topic.set(text) - await ctx.send(f"Topic set to:\n{box(text, 'yaml')}") + await ctx.send(f"Topic set to:\n{box(text, 'markdown')}") @pterodactyl_config.group(name="chat") async def pterodactyl_config_chat(self, ctx: commands.Context): @@ -607,19 +607,19 @@ class Pterodactyl(commands.Cog): **Topic Hostname:** `{topic_hostname}` **Topic Port:** `{topic_port}` - **Topic Text:** {box(topic_text, "yaml")} + **Topic Text:** {box(topic_text, "markdown")} **Chat Command:** {box(chat_command, "json")} - **Chat Regex:** {box(chat_regex, "re")} - **Server Regex:** {box(server_regex, "re")} - **Join Regex:** {box(join_regex, "re")} - **Leave Regex:** {box(leave_regex, "re")} - **Achievement Regex:** {box(achievement_regex, "re")}""" + **Chat Regex:** {box(chat_regex, "regex")} + **Server Regex:** {box(server_regex, "regex")} + **Join Regex:** {box(join_regex, "regex")} + **Leave Regex:** {box(leave_regex, "regex")} + **Achievement Regex:** {box(achievement_regex, "regex")}""" await ctx.send(embed=embed) if not len(regex_blacklist) == 0: regex_blacklist_embed = discord.Embed(color=await ctx.embed_color(), title="Regex Blacklist") for name, regex in regex_blacklist.items(): - regex_blacklist_embed.add_field(name=name, value=box(regex, "re"), inline=False) + regex_blacklist_embed.add_field(name=name, value=box(regex, "regex"), inline=False) await ctx.send(embed=regex_blacklist_embed) def get_bool_str(self, inp: bool) -> str: From 15b7ef61b1ba1a273af75b119da0950cdb29d85c Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 21 Feb 2025 15:16:06 -0600 Subject: [PATCH 06/51] fix(pterodactyl): fix some incorrect function names --- pterodactyl/pterodactyl.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pterodactyl/pterodactyl.py b/pterodactyl/pterodactyl.py index 9690bf8..d500620 100644 --- a/pterodactyl/pterodactyl.py +++ b/pterodactyl/pterodactyl.py @@ -23,7 +23,7 @@ class Pterodactyl(commands.Cog): __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" - __version__ = "2.0.8" + __version__ = "2.0.9" __documentation__ = "https://seacogs.coastalcommits.com/pterodactyl/" def __init__(self, bot: Red): @@ -234,7 +234,7 @@ class Pterodactyl(commands.Cog): if view.result is True: await message.edit(content=f"Sending websocket command to {action} server...", view=None) - await self._websocket_send(json.dumps({"event": "set state", "args": [action]})) + await self._send(json.dumps({"event": "set state", "args": [action]})) await message.edit(content=f"Server {action_ing}", view=None) return @@ -248,7 +248,7 @@ class Pterodactyl(commands.Cog): ctx = await self.bot.get_context(ctx) if channel: await channel.send(f"Received console command from {ctx.author.id}: {command[:1900]}", allowed_mentions=discord.AllowedMentions.none()) - await self._websocket_send(json.dumps({"event": "send command", "args": [command]})) + await self._send(json.dumps({"event": "send command", "args": [command]})) await ctx.send(f"Command sent to server. {box(command, 'json')}") @commands.Cog.listener() From 6cd44c1fc735eb8f66af180ba92a95444bba1f57 Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:10:43 -0500 Subject: [PATCH 07/51] fix(actions): fix actions workflow & use the uv action to setup uv --- .forgejo/workflows/workflow.yaml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 2146778..091d4e8 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -9,16 +9,16 @@ jobs: lint: name: Lint Code (Ruff & Pylint) runs-on: docker - container: www.coastalcommits.com/cswimr/actions:uv@sha256:211aaf7d9ac98087579ebf9fab87a9122f51b2697e3a3649ac9f4bd3b03b8e5d + container: catthehacker/ubuntu:act-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Install python - run: uv python install 3.11 - - - name: Install dependencies - run: uv sync + - name: "Setup uv" + uses: https://github.com/astral-sh/setup-uv@v5 + with: + version: "latest" + enable-cache: true - name: Analysing code with Ruff run: uv run ruff check $(git ls-files '*.py') @@ -30,15 +30,18 @@ jobs: docs: name: Build Documentation (MkDocs) runs-on: docker - container: www.coastalcommits.com/cswimr/actions:docs@sha256:e405cd6b9b1182a570ddee32ed8dd1b2f899edc625d006c8b4b2f18c100e724f + container: catthehacker/ubuntu:act-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 - - name: Install python - run: uv python install 3.11 + - name: "Setup uv" + uses: https://github.com/astral-sh/setup-uv@v5 + with: + version: "latest" + enable-cache: true - name: Install dependencies run: uv sync --no-dev --extra=documentation From fd409d450f706ad94d7739fd5bb76efb19060b3f Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:11:55 -0500 Subject: [PATCH 08/51] fix(actions): install dependencies in a separate step --- .forgejo/workflows/workflow.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 091d4e8..8757df7 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -20,6 +20,9 @@ jobs: version: "latest" enable-cache: true + - name: "Install dependencies" + run: uv sync + - name: Analysing code with Ruff run: uv run ruff check $(git ls-files '*.py') continue-on-error: true From 6354559d3a3011636038da50e26f20fac21b5e5e Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:24:48 -0500 Subject: [PATCH 09/51] fix(actions): install the right dependencies --- .forgejo/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 8757df7..241056d 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -47,7 +47,7 @@ jobs: enable-cache: true - name: Install dependencies - run: uv sync --no-dev --extra=documentation + run: uv sync --no-dev --group=documentation - name: Set environment variables uses: actions/env@v2 From a19761b7201b3d74fbb6ae2286a43125b6083e97 Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:40:24 -0500 Subject: [PATCH 10/51] fix(actions): use a github token to prevent ratelimiting --- .forgejo/workflows/workflow.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 241056d..e25cc6f 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -19,6 +19,7 @@ jobs: with: version: "latest" enable-cache: true + github-token: ${{ secrets.GITHUBTOKEN }} - name: "Install dependencies" run: uv sync @@ -45,6 +46,7 @@ jobs: with: version: "latest" enable-cache: true + github-token: ${{ secrets.GITHUBTOKEN }} - name: Install dependencies run: uv sync --no-dev --group=documentation From d00776c006732b0e44f07931efc61fe6977b3f04 Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:47:03 -0500 Subject: [PATCH 11/51] fix(actions): don't prune the uv cachce --- .forgejo/workflows/workflow.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index e25cc6f..4bc9faa 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -19,6 +19,7 @@ jobs: with: version: "latest" enable-cache: true + prune-cache: false github-token: ${{ secrets.GITHUBTOKEN }} - name: "Install dependencies" @@ -46,6 +47,7 @@ jobs: with: version: "latest" enable-cache: true + prune-cache: false github-token: ${{ secrets.GITHUBTOKEN }} - name: Install dependencies From 091a23d6100a748c8c636a4d15afa6287a155b8a Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:55:14 -0500 Subject: [PATCH 12/51] fix(actions): don't use `uv run` `setup-uv` should be activating the virtual environment anyway, this is unnecessary --- .forgejo/workflows/workflow.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 4bc9faa..4c849ef 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -26,11 +26,11 @@ jobs: run: uv sync - name: Analysing code with Ruff - run: uv run ruff check $(git ls-files '*.py') + run: ruff check $(git ls-files '*.py') continue-on-error: true - name: Analysing code with Pylint - run: uv run pylint --rcfile=.forgejo/workflows/config/.pylintrc $(git ls-files '*.py') + run: pylint --rcfile=.forgejo/workflows/config/.pylintrc $(git ls-files '*.py') docs: name: Build Documentation (MkDocs) @@ -60,7 +60,7 @@ jobs: run: | export SITE_URL="https://$CI_ACTION_REF_NAME_SLUG.seacogs.coastalcommits.com" export EDIT_URI="src/branch/$CI_ACTION_REF_NAME/.docs" - uv run mkdocs build -v + mkdocs build -v - name: Deploy documentation run: | From 8c4afd87c97fa6a04b7909095fdf9f428ffa12f2 Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:57:07 -0500 Subject: [PATCH 13/51] Revert "fix(actions): don't use `uv run`" This reverts commit 091a23d6100a748c8c636a4d15afa6287a155b8a. --- .forgejo/workflows/workflow.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 4c849ef..4bc9faa 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -26,11 +26,11 @@ jobs: run: uv sync - name: Analysing code with Ruff - run: ruff check $(git ls-files '*.py') + run: uv run ruff check $(git ls-files '*.py') continue-on-error: true - name: Analysing code with Pylint - run: pylint --rcfile=.forgejo/workflows/config/.pylintrc $(git ls-files '*.py') + run: uv run pylint --rcfile=.forgejo/workflows/config/.pylintrc $(git ls-files '*.py') docs: name: Build Documentation (MkDocs) @@ -60,7 +60,7 @@ jobs: run: | export SITE_URL="https://$CI_ACTION_REF_NAME_SLUG.seacogs.coastalcommits.com" export EDIT_URI="src/branch/$CI_ACTION_REF_NAME/.docs" - mkdocs build -v + uv run mkdocs build -v - name: Deploy documentation run: | From 1d502bbbe815ce4b7d0ce17dd4a57ded34c1d10f Mon Sep 17 00:00:00 2001 From: cswimr Date: Tue, 18 Mar 2025 03:58:47 -0500 Subject: [PATCH 14/51] fix(actions): use the full github url --- .forgejo/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 4bc9faa..dfdd4c1 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -12,7 +12,7 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: https://github.com/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" uses: https://github.com/astral-sh/setup-uv@v5 From 4844f5892c90d750b11f733034a537fde63e6658 Mon Sep 17 00:00:00 2001 From: cswimr Date: Wed, 19 Mar 2025 08:05:09 -0400 Subject: [PATCH 15/51] fix(actions): change the meli url --- .forgejo/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index dfdd4c1..322a67d 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -74,7 +74,7 @@ jobs: echo "${YELLOW}Deploying to ${BLUE}Meli ${YELLOW}on branch ${GREEN}$CI_ACTION_REF_NAME_SLUG${YELLOW}...\n" npx -p "@getmeli/cli" meli upload ./site \ - --url "https://pages.coastalcommits.com" \ + --url "https://meli.csw.im" \ --site "${{ vars.MELI_SITE_ID }}" \ --token "${{ secrets.MELI_TOKEN }}" \ --release "$CI_ACTION_REF_NAME_SLUG/${{ env.GITHUB_SHA }}" \ From 3e345cc3af4411ee51267483d79a425a22258a97 Mon Sep 17 00:00:00 2001 From: cswimr Date: Wed, 19 Mar 2025 08:19:05 -0400 Subject: [PATCH 16/51] fix(actions): change actions urls --- .forgejo/workflows/workflow.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 322a67d..923e75e 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -12,10 +12,10 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: https://github.com/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: https://github.com/astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v5 with: version: "latest" enable-cache: true @@ -43,7 +43,7 @@ jobs: fetch-depth: 0 - name: "Setup uv" - uses: https://github.com/astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v5 with: version: "latest" enable-cache: true @@ -54,7 +54,7 @@ jobs: run: uv sync --no-dev --group=documentation - name: Set environment variables - uses: actions/env@v2 + uses: FranzDiebold/github-env-vars-action@v2 - name: Build documentation run: | From 4661555aa624044f13a455ba1498be7be2880c86 Mon Sep 17 00:00:00 2001 From: cswimr Date: Wed, 19 Mar 2025 13:57:15 -0400 Subject: [PATCH 17/51] fix(actions): use full urls for actions --- .forgejo/workflows/workflow.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 923e75e..1998bf9 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -12,10 +12,10 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: https://code.forgejo.org/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: astral-sh/setup-uv@v5 + uses: https://github.com/astral-sh/setup-uv@v5 with: version: "latest" enable-cache: true @@ -38,12 +38,12 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: https://code.forgejo.org/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 - name: "Setup uv" - uses: astral-sh/setup-uv@v5 + uses: https://github.com/astral-sh/setup-uv@v5 with: version: "latest" enable-cache: true @@ -54,7 +54,7 @@ jobs: run: uv sync --no-dev --group=documentation - name: Set environment variables - uses: FranzDiebold/github-env-vars-action@v2 + uses: https://github.com/FranzDiebold/github-env-vars-action@v2 - name: Build documentation run: | From 4f0181489664275d31b2c9b7899d513449d08c87 Mon Sep 17 00:00:00 2001 From: cswimr Date: Wed, 19 Mar 2025 15:37:53 -0400 Subject: [PATCH 18/51] fix(actions): switch back to local mirrored actions --- .forgejo/workflows/workflow.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 1998bf9..96fac37 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -12,10 +12,10 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: https://code.forgejo.org/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: https://github.com/astral-sh/setup-uv@v5 + uses: actions/setup-uv@v5 with: version: "latest" enable-cache: true @@ -38,12 +38,12 @@ jobs: container: catthehacker/ubuntu:act-latest steps: - name: Checkout - uses: https://code.forgejo.org/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 - name: "Setup uv" - uses: https://github.com/astral-sh/setup-uv@v5 + uses: actions/setup-uv@v5 with: version: "latest" enable-cache: true @@ -54,7 +54,7 @@ jobs: run: uv sync --no-dev --group=documentation - name: Set environment variables - uses: https://github.com/FranzDiebold/github-env-vars-action@v2 + uses: actions/env@v2 - name: Build documentation run: | From 0503f3b78ddc74f328e744a7a50fec93902f72a4 Mon Sep 17 00:00:00 2001 From: cswimr Date: Sat, 22 Mar 2025 09:16:34 -0400 Subject: [PATCH 19/51] feat(backup): update to most recent red version --- backup/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backup/info.json b/backup/info.json index c9a9269..a5bd8a5 100644 --- a/backup/info.json +++ b/backup/info.json @@ -11,7 +11,7 @@ "hidden": false, "disabled": false, "min_bot_version": "3.5.6", - "max_bot_version": "3.5.16", + "max_bot_version": "3.5.17", "min_python_version": [ 3, 9, From eefd5ece0947095ead61f3d569262746372766ba Mon Sep 17 00:00:00 2001 From: Renovate Date: Fri, 28 Mar 2025 10:54:31 -0400 Subject: [PATCH 20/51] chore(deps): pin dependencies (#66) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/env](https://c.csw.im/actions/env) | action | pinDigest | -> `1791216` | | [actions/setup-uv](https://c.csw.im/actions/setup-uv) | action | pinDigest | -> `2269511` | | catthehacker/ubuntu | container | pinDigest | -> `70d7485` | --- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/66 Co-authored-by: Renovate Co-committed-by: Renovate --- .forgejo/workflows/workflow.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 96fac37..f352186 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -9,13 +9,13 @@ jobs: lint: name: Lint Code (Ruff & Pylint) runs-on: docker - container: catthehacker/ubuntu:act-latest + container: catthehacker/ubuntu:act-latest@sha256:70d7485966a50a639ddab37445fd27c2f0b5086ad4959ec3bba228ed394c1928 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: actions/setup-uv@v5 + uses: actions/setup-uv@22695119d769bdb6f7032ad67b9bca0ef8c4a174 # v5 with: version: "latest" enable-cache: true @@ -35,7 +35,7 @@ jobs: docs: name: Build Documentation (MkDocs) runs-on: docker - container: catthehacker/ubuntu:act-latest + container: catthehacker/ubuntu:act-latest@sha256:70d7485966a50a639ddab37445fd27c2f0b5086ad4959ec3bba228ed394c1928 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -43,7 +43,7 @@ jobs: fetch-depth: 0 - name: "Setup uv" - uses: actions/setup-uv@v5 + uses: actions/setup-uv@22695119d769bdb6f7032ad67b9bca0ef8c4a174 # v5 with: version: "latest" enable-cache: true @@ -54,7 +54,7 @@ jobs: run: uv sync --no-dev --group=documentation - name: Set environment variables - uses: actions/env@v2 + uses: actions/env@1791216cd180e6578dd1d67fb8d2852b883a5f53 # v2 - name: Build documentation run: | From cc1745a9d28bb8fd04316042a50bbc8c57fa4aa9 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 11:05:00 -0400 Subject: [PATCH 21/51] Remove the dev container (#68) I no longer need the dev container, as I use neovim where this isn't useful to me, and the nix flake is plenty good enough. - [x] By submitting this pull request, I permit [cswimr](https://www.coastalcommits.com/cswimr) to license my work under the [Mozilla Public License Version 2.0](https://www.coastalcommits.com/cswimr/SeaCogs/src/branch/main/LICENSE). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/68 --- .devcontainer/Dockerfile | 38 ----------------------- .devcontainer/devcontainer.json | 52 -------------------------------- .devcontainer/home/.bash_aliases | 3 -- 3 files changed, 93 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .devcontainer/home/.bash_aliases diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 50a99c7..0000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM ghcr.io/astral-sh/uv:0.5.30@sha256:bb74263127d6451222fe7f71b330edfb189ab1c98d7898df2401fbf4f272d9b9 AS uv -FROM python:3.11-slim@sha256:6ed5bff4d7d377e2a27d9285553b8c21cfccc4f00881de1b24c9bc8d90016e82 AS python -FROM code.forgejo.org/forgejo/runner:6.2.1@sha256:fecc96a111a15811a6887ce488e75718089f24599e613e93db8e54fe70b706e8 AS forgejo-runner - -FROM mcr.microsoft.com/vscode/devcontainers/base:bookworm@sha256:6155a486f236fd5127b76af33086029d64f64cf49dd504accb6e5f949098eb7e -LABEL repository="www.coastalcommits.com/cswimr/SeaCogs" -LABEL maintainer="cswimr " - -RUN apt-get update; \ - apt-get install -y --no-install-recommends \ - # Red-DiscordBot - build-essential \ - git \ - # PyNaCl - libsodium-dev \ - # CFFI - libffi-dev \ - # SSH repository support - openssh-client \ - # Cog dependencies - # Audio - openjdk-17-jre-headless \ - # PyLav - libaio1 \ - libaio-dev \ - # SeaUtils - dnsutils; \ - apt-get clean; \ - rm -rf /var/lib/apt/lists/* - -COPY --from=uv --chown=vscode: /uv /uvx /bin/ -COPY --from=python --chown=vscode: /usr/local /usr/local -COPY --from=forgejo-runner --chown=vscode: /bin/forgejo-runner /bin/forgejo-runner -COPY --chown=vscode: .devcontainer/home/* /home/vscode/ - -RUN ln -s /usr/local/bin/python3.11 /usr/local/bin/python; \ - python --version; \ - python -m ensurepip diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 9bf34c9..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Red-DiscordBot: SeaCogs", - "build": { - "context": "..", - "dockerfile": "Dockerfile" - }, - "features": { - "ghcr.io/devcontainers/features/docker-in-docker:2": {} - }, - "customizations": { - "vscode": { - "settings": { - "python.terminal.activateEnvInCurrentTerminal": true, - "python.terminal.activateEnvironment": true, - "terminal.integrated.defaultProfile.linux": "zsh", - "terminal.integrated.profiles.linux": { - "zsh": { - "path": "/bin/zsh" - } - } - }, - "extensions": [ - "charliermarsh.ruff", - "ms-azuretools.vscode-docker", - "ms-python.python", - "tekumara.typos-vscode", - "tamasfe.even-better-toml", - "redhat.vscode-yaml", - "DavidAnson.vscode-markdownlint", - "yy0931.vscode-sqlite3-editor", - "aaron-bond.better-comments", - "donjayamanne.githistory", - "eamodio.gitlens" - ] - } - }, - "containerEnv": { - "DISPLAY": "dummy", - "PYTHONUNBUFFERED": "True", - "UV_LINK_MODE": "copy", - "UV_PYTHON_PREFERENCE": "only-system", - "UV_PYTHON_DOWNLOADS": "never", - "PROJECT_DIR": "/workspaces/SeaCogs" - }, - "mounts": [ - "source=seacogs-persistent-data,target=/workspaces/SeaCogs/.data,type=volume" - ], - "postCreateCommand": { - "Setup Virtual Environment": "uv sync --frozen && sudo chown -R vscode:vscode /workspaces/SeaCogs/.data && uv run redbot-setup --no-prompt --instance-name=local --data-path=/workspaces/SeaCogs/.data --backend=json" - }, - "remoteUser": "vscode" -} diff --git a/.devcontainer/home/.bash_aliases b/.devcontainer/home/.bash_aliases deleted file mode 100644 index 277fc5f..0000000 --- a/.devcontainer/home/.bash_aliases +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -alias runactions="forgejo-runner exec --default-actions-url=https://www.coastalcommits.com --gitea-instance=https://www.coastalcommits.com" From 336e01456c1a720757f2beead524afe8b56381f0 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:13:14 -0500 Subject: [PATCH 22/51] fix(aurora): bandaid fixes so pylint passes these are not good changes in the slightest and are only here because pylint is failing otherwise, you should really be using aurora v3 instead of v2 even though it's in development --- aurora/aurora.py | 335 ++++++++++++++++++------------------ aurora/utilities/factory.py | 232 +++++++++---------------- 2 files changed, 244 insertions(+), 323 deletions(-) diff --git a/aurora/aurora.py b/aurora/aurora.py index 131d2bd..d2dca4a 100644 --- a/aurora/aurora.py +++ b/aurora/aurora.py @@ -40,7 +40,7 @@ class Aurora(commands.Cog): This cog stores all of its data in an SQLite database.""" __author__ = ["cswimr"] - __version__ = "2.1.3" + __version__ = "2.1.4" __documentation__ = "https://seacogs.coastalcommits.com/aurora/" async def red_delete_data_for_user(self, *, requester, user_id: int): @@ -70,7 +70,8 @@ class Aurora(commands.Cog): await config.user_from_id(user_id).clear() else: logger.warning( - "Invalid requester passed to red_delete_data_for_user: %s", requester + "Invalid requester passed to red_delete_data_for_user: %s", + requester, ) def __init__(self, bot: Red): @@ -135,9 +136,8 @@ class Aurora(commands.Cog): if await config.guild(entry.guild).ignore_other_bots() is True: if entry.user.bot or entry.target.bot: return - else: - if entry.user.id == self.bot.user.id: - return + elif entry.user.id == self.bot.user.id: + return duration = "NULL" @@ -159,10 +159,10 @@ class Aurora(commands.Cog): elif entry.action == discord.AuditLogAction.member_update: if entry.after.timed_out_until is not None: timed_out_until_aware = entry.after.timed_out_until.replace( - tzinfo=timezone.utc + tzinfo=timezone.utc, ) duration_datetime = timed_out_until_aware - datetime.now( - tz=timezone.utc + tz=timezone.utc, ) minutes = round(duration_datetime.total_seconds() / 60) duration = timedelta(minutes=minutes) @@ -209,7 +209,7 @@ class Aurora(commands.Cog): return await interaction.response.send_message( - content=f"{target.mention} has recieved a note!\n**Reason** - `{reason}`" + content=f"{target.mention} has recieved a note!\n**Reason** - `{reason}`", ) if silent is None: @@ -239,7 +239,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has received a note! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has received a note! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -268,7 +268,7 @@ class Aurora(commands.Cog): return await interaction.response.send_message( - content=f"{target.mention} has been warned!\n**Reason** - `{reason}`" + content=f"{target.mention} has been warned!\n**Reason** - `{reason}`", ) if silent is None: @@ -298,7 +298,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been warned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been warned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -342,7 +342,8 @@ class Aurora(commands.Cog): parsed_time = parse_timedelta(duration) if parsed_time is None: await interaction.response.send_message( - content=error("Please provide a valid duration!"), ephemeral=True + content=error("Please provide a valid duration!"), + ephemeral=True, ) return else: @@ -350,12 +351,15 @@ class Aurora(commands.Cog): if role.id not in addrole_whitelist: await interaction.response.send_message( - content=error("That role isn't whitelisted!"), ephemeral=True + content=error("That role isn't whitelisted!"), + ephemeral=True, ) return if not await check_moddable( - target, interaction, ["moderate_members", "manage_roles"] + target, + interaction, + ["moderate_members", "manage_roles"], ): return @@ -390,7 +394,7 @@ class Aurora(commands.Cog): reason=f"Role added by {interaction.user.id}{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''} for: {reason}", ) response: discord.WebhookMessage = await interaction.followup.send( - content=f"{target.mention} has been given the {role.mention} role{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''}!\n**Reason** - `{reason}`" + content=f"{target.mention} has been given the {role.mention} role{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''}!\n**Reason** - `{reason}`", ) moderation_id = await mysql_log( @@ -448,7 +452,8 @@ class Aurora(commands.Cog): parsed_time = parse_timedelta(duration) if parsed_time is None: await interaction.response.send_message( - content=error("Please provide a valid duration!"), ephemeral=True + content=error("Please provide a valid duration!"), + ephemeral=True, ) return else: @@ -456,12 +461,15 @@ class Aurora(commands.Cog): if role.id not in addrole_whitelist: await interaction.response.send_message( - content=error("That role isn't whitelisted!"), ephemeral=True + content=error("That role isn't whitelisted!"), + ephemeral=True, ) return if not await check_moddable( - target, interaction, ["moderate_members", "manage_roles"] + target, + interaction, + ["moderate_members", "manage_roles"], ): return @@ -496,7 +504,7 @@ class Aurora(commands.Cog): reason=f"Role removed by {interaction.user.id}{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''} for: {reason}", ) response: discord.WebhookMessage = await interaction.followup.send( - content=f"{target.mention} has had the {role.mention} role removed{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''}!\n**Reason** - `{reason}`" + content=f"{target.mention} has had the {role.mention} role removed{' for ' + humanize_timedelta(timedelta=parsed_time) if parsed_time != 'NULL' else ''}!\n**Reason** - `{reason}`", ) moderation_id = await mysql_log( @@ -553,21 +561,24 @@ class Aurora(commands.Cog): parsed_time = parse_timedelta(duration, maximum=timedelta(days=28)) if parsed_time is None: await interaction.response.send_message( - error("Please provide a valid duration!"), ephemeral=True + error("Please provide a valid duration!"), + ephemeral=True, ) return except commands.BadArgument: await interaction.response.send_message( - error("Please provide a duration that is less than 28 days."), ephemeral=True + error("Please provide a duration that is less than 28 days."), + ephemeral=True, ) return await target.timeout( - parsed_time, reason=f"Muted by {interaction.user.id} for: {reason}" + parsed_time, + reason=f"Muted by {interaction.user.id} for: {reason}", ) await interaction.response.send_message( - content=f"{target.mention} has been muted for {humanize_timedelta(timedelta=parsed_time)}!\n**Reason** - `{reason}`" + content=f"{target.mention} has been muted for {humanize_timedelta(timedelta=parsed_time)}!\n**Reason** - `{reason}`", ) if silent is None: @@ -598,7 +609,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been muted for {humanize_timedelta(timedelta=parsed_time)}! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been muted for {humanize_timedelta(timedelta=parsed_time)}! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -636,14 +647,15 @@ class Aurora(commands.Cog): if reason: await target.timeout( - None, reason=f"Unmuted by {interaction.user.id} for: {reason}" + None, + reason=f"Unmuted by {interaction.user.id} for: {reason}", ) else: await target.timeout(None, reason=f"Unbanned by {interaction.user.id}") reason = "No reason given." await interaction.response.send_message( - content=f"{target.mention} has been unmuted!\n**Reason** - `{reason}`" + content=f"{target.mention} has been unmuted!\n**Reason** - `{reason}`", ) if silent is None: @@ -673,7 +685,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been unmuted! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been unmuted! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -702,7 +714,7 @@ class Aurora(commands.Cog): return await interaction.response.send_message( - content=f"{target.mention} has been kicked!\n**Reason** - `{reason}`" + content=f"{target.mention} has been kicked!\n**Reason** - `{reason}`", ) if silent is None: @@ -734,7 +746,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been kicked! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been kicked! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -750,7 +762,7 @@ class Aurora(commands.Cog): Choice(name="1 Day", value=86400), Choice(name="3 Days", value=259200), Choice(name="7 Days", value=604800), - ] + ], ) async def ban( self, @@ -786,7 +798,8 @@ class Aurora(commands.Cog): try: await interaction.guild.fetch_ban(target) await interaction.response.send_message( - content=error(f"{target.mention} is already banned!"), ephemeral=True + content=error(f"{target.mention} is already banned!"), + ephemeral=True, ) return except discord.errors.NotFound: @@ -796,19 +809,21 @@ class Aurora(commands.Cog): parsed_time = parse_relativedelta(duration) if parsed_time is None: await interaction.response.send_message( - content=error("Please provide a valid duration!"), ephemeral=True + content=error("Please provide a valid duration!"), + ephemeral=True, ) return try: parsed_time = timedelta_from_relativedelta(parsed_time) except ValueError: await interaction.response.send_message( - content=error("Please provide a valid duration!"), ephemeral=True + content=error("Please provide a valid duration!"), + ephemeral=True, ) return await interaction.response.send_message( - content=f"{target.mention} has been banned for {humanize_timedelta(timedelta=parsed_time)}!\n**Reason** - `{reason}`" + content=f"{target.mention} has been banned for {humanize_timedelta(timedelta=parsed_time)}!\n**Reason** - `{reason}`", ) try: @@ -842,7 +857,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been banned for {humanize_timedelta(timedelta=parsed_time)}! (Case `#{moderation_id}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been banned for {humanize_timedelta(timedelta=parsed_time)}! (Case `#{moderation_id}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -850,7 +865,7 @@ class Aurora(commands.Cog): await send_evidenceformat(interaction, case) else: await interaction.response.send_message( - content=f"{target.mention} has been banned!\n**Reason** - `{reason}`" + content=f"{target.mention} has been banned!\n**Reason** - `{reason}`", ) if silent is None: @@ -886,7 +901,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been banned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been banned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -918,22 +933,25 @@ class Aurora(commands.Cog): await interaction.guild.fetch_ban(target) except discord.errors.NotFound: await interaction.response.send_message( - content=error(f"{target.mention} is not banned!"), ephemeral=True + content=error(f"{target.mention} is not banned!"), + ephemeral=True, ) return if reason: await interaction.guild.unban( - target, reason=f"Unbanned by {interaction.user.id} for: {reason}" + target, + reason=f"Unbanned by {interaction.user.id} for: {reason}", ) else: await interaction.guild.unban( - target, reason=f"Unbanned by {interaction.user.id}" + target, + reason=f"Unbanned by {interaction.user.id}", ) reason = "No reason given." await interaction.response.send_message( - content=f"{target.mention} has been unbanned!\n**Reason** - `{reason}`" + content=f"{target.mention} has been unbanned!\n**Reason** - `{reason}`", ) if silent is None: @@ -963,7 +981,7 @@ class Aurora(commands.Cog): reason, ) await interaction.edit_original_response( - content=f"{target.mention} has been unbanned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`" + content=f"{target.mention} has been unbanned! (Case `#{moderation_id:,}`)\n**Reason** - `{reason}`", ) await log(interaction, moderation_id) @@ -1001,42 +1019,28 @@ class Aurora(commands.Cog): export: bool Exports the server's entire moderation history to a JSON file""" if ephemeral is None: - ephemeral = ( - await config.user(interaction.user).history_ephemeral() - or await config.guild(interaction.guild).history_ephemeral() - or False - ) + ephemeral = await config.user(interaction.user).history_ephemeral() or await config.guild(interaction.guild).history_ephemeral() or False if inline is None: - inline = ( - await config.user(interaction.user).history_inline() - or await config.guild(interaction.guild).history_inline() - or False - ) + inline = await config.user(interaction.user).history_inline() or await config.guild(interaction.guild).history_inline() or False if pagesize is None: if inline is True: - pagesize = ( - await config.user(interaction.user).history_inline_pagesize() - or await config.guild(interaction.guild).history_inline_pagesize() - or 6 - ) + pagesize = await config.user(interaction.user).history_inline_pagesize() or await config.guild(interaction.guild).history_inline_pagesize() or 6 else: - pagesize = ( - await config.user(interaction.user).history_pagesize() - or await config.guild(interaction.guild).history_pagesize() - or 5 - ) + pagesize = await config.user(interaction.user).history_pagesize() or await config.guild(interaction.guild).history_pagesize() or 5 await interaction.response.defer(ephemeral=ephemeral) permissions = check_permissions( - interaction.client.user, ["embed_links"], interaction + interaction.client.user, + ["embed_links"], + interaction, ) if permissions: await interaction.followup.send( error( - f"I do not have the `{permissions}` permission, required for this action." + f"I do not have the `{permissions}` permission, required for this action.", ), ephemeral=True, ) @@ -1061,18 +1065,15 @@ class Aurora(commands.Cog): cases.append(case) try: - filename = ( - str(data_manager.cog_data_path(cog_instance=self)) - + str(os.sep) - + f"moderation_{interaction.guild.id}.json" - ) + filename = str(data_manager.cog_data_path(cog_instance=self)) + str(os.sep) + f"moderation_{interaction.guild.id}.json" with open(filename, "w", encoding="utf-8") as f: json.dump(cases, f, indent=2) await interaction.followup.send( file=discord.File( - filename, f"moderation_{interaction.guild.id}.json" + filename, + f"moderation_{interaction.guild.id}.json", ), ephemeral=ephemeral, ) @@ -1081,7 +1082,7 @@ class Aurora(commands.Cog): except json.JSONDecodeError as e: await interaction.followup.send( content=error( - "An error occured while exporting the moderation history.\nError:\n" + "An error occured while exporting the moderation history.\nError:\n", ) + box(e, "py"), ephemeral=ephemeral, @@ -1127,7 +1128,7 @@ class Aurora(commands.Cog): embed = discord.Embed(color=await self.bot.get_embed_color(interaction.channel)) embed.set_author(icon_url=interaction.guild.icon.url, name="Infraction History") embed.set_footer( - text=f"Page {page:,}/{page_quantity:,} | {case_quantity:,} Results" + text=f"Page {page:,}/{page_quantity:,} | {case_quantity:,} Results", ) memory_dict = {} @@ -1136,33 +1137,30 @@ class Aurora(commands.Cog): if case["target_id"] not in memory_dict: if case["target_type"] == "USER": memory_dict[str(case["target_id"])] = await fetch_user_dict( - interaction.client, case["target_id"] + interaction.client, + case["target_id"], ) elif case["target_type"] == "CHANNEL": memory_dict[str(case["target_id"])] = await fetch_channel_dict( - interaction.guild, case["target_id"] + interaction.guild, + case["target_id"], ) target_user = memory_dict[str(case["target_id"])] if case["target_type"] == "USER": - target_name = ( - f"`{target_user['name']}`" - if target_user["discriminator"] == "0" - else f"`{target_user['name']}#{target_user['discriminator']}`" - ) + target_name = f"`{target_user['name']}`" if target_user["discriminator"] == "0" else f"`{target_user['name']}#{target_user['discriminator']}`" elif case["target_type"] == "CHANNEL": target_name = f"`{target_user['mention']}`" + else: + target_name = "" if case["moderator_id"] not in memory_dict: memory_dict[str(case["moderator_id"])] = await fetch_user_dict( - interaction.client, case["moderator_id"] + interaction.client, + case["moderator_id"], ) moderator_user = memory_dict[str(case["moderator_id"])] - moderator_name = ( - f"`{moderator_user['name']}`" - if moderator_user["discriminator"] == "0" - else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" - ) + moderator_name = f"`{moderator_user['name']}`" if moderator_user["discriminator"] == "0" else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" field_name = f"Case #{case['moderation_id']:,} ({str.title(case['moderation_type'])})" field_value = f"**Target:** {target_name} ({target_user['id']})\n**Moderator:** {moderator_name} ({moderator_user['id']})" @@ -1177,20 +1175,15 @@ class Aurora(commands.Cog): **{ unit: int(val) for unit, val in zip( - ["hours", "minutes", "seconds"], case["duration"].split(":") + ["hours", "minutes", "seconds"], + case["duration"].split(":"), ) - } - ) - duration_embed = ( - f"{humanize_timedelta(timedelta=td)} | " - if bool(case["expired"]) is False - else f"{humanize_timedelta(timedelta=td)} | Expired" + }, ) + duration_embed = f"{humanize_timedelta(timedelta=td)} | " if bool(case["expired"]) is False else f"{humanize_timedelta(timedelta=td)} | Expired" field_value += f"\n**Duration:** {duration_embed}" - field_value += ( - f"\n**Timestamp:** | " - ) + field_value += f"\n**Timestamp:** | " if case["role_id"] != "0": role = interaction.guild.get_role(int(case["role_id"])) @@ -1208,7 +1201,10 @@ class Aurora(commands.Cog): @app_commands.command(name="resolve") async def resolve( - self, interaction: discord.Interaction, case: int, reason: str = None + self, + interaction: discord.Interaction, + case: int, + reason: str = None, ): """Resolve a specific case. @@ -1226,7 +1222,7 @@ class Aurora(commands.Cog): if permissions: await interaction.response.send_message( error( - f"I do not have the `{permissions}` permission, required for this action." + f"I do not have the `{permissions}` permission, required for this action.", ), ephemeral=True, ) @@ -1235,9 +1231,7 @@ class Aurora(commands.Cog): database = connect() cursor = database.cursor() - query_1 = ( - f"SELECT * FROM moderation_{interaction.guild.id} WHERE moderation_id = ?;" - ) + query_1 = f"SELECT * FROM moderation_{interaction.guild.id} WHERE moderation_id = ?;" cursor.execute(query_1, (case,)) result_1 = cursor.fetchone() if result_1 is None or case == 0: @@ -1253,7 +1247,7 @@ class Aurora(commands.Cog): if result_2 is None: await interaction.response.send_message( content=error( - f"This moderation has already been resolved!\nUse `/case {case}` for more information." + f"This moderation has already been resolved!\nUse `/case {case}` for more information.", ), ephemeral=True, ) @@ -1267,7 +1261,7 @@ class Aurora(commands.Cog): if len(changes) > 25: await interaction.response.send_message( content=error( - "Due to limitations with Discord's embed system, you cannot edit a case more than 25 times." + "Due to limitations with Discord's embed system, you cannot edit a case more than 25 times.", ), ephemeral=True, ) @@ -1279,7 +1273,7 @@ class Aurora(commands.Cog): "timestamp": case_dict["timestamp"], "reason": case_dict["reason"], "user_id": case_dict["moderator_id"], - } + }, ) changes.append( { @@ -1287,7 +1281,7 @@ class Aurora(commands.Cog): "timestamp": int(time.time()), "reason": reason, "user_id": interaction.user.id, - } + }, ) if case_dict["moderation_type"] in ["UNMUTE", "UNBAN"]: @@ -1301,11 +1295,12 @@ class Aurora(commands.Cog): if case_dict["moderation_type"] == "MUTE": try: member = await interaction.guild.fetch_member( - case_dict["target_id"] + case_dict["target_id"], ) await member.timeout( - None, reason=f"Case #{case:,} resolved by {interaction.user.id}" + None, + reason=f"Case #{case:,} resolved by {interaction.user.id}", ) except discord.NotFound: pass @@ -1315,7 +1310,8 @@ class Aurora(commands.Cog): user = await interaction.client.fetch_user(case_dict["target_id"]) await interaction.guild.unban( - user, reason=f"Case #{case} resolved by {interaction.user.id}" + user, + reason=f"Case #{case} resolved by {interaction.user.id}", ) except discord.NotFound: pass @@ -1340,7 +1336,8 @@ class Aurora(commands.Cog): case_dict=await fetch_case(case, interaction.guild.id), ) await interaction.response.send_message( - content=f"✅ Moderation #{case:,} resolved!", embed=embed + content=f"✅ Moderation #{case:,} resolved!", + embed=embed, ) await log(interaction, case, resolved=True) @@ -1352,7 +1349,7 @@ class Aurora(commands.Cog): export=[ Choice(name="Export as File", value="file"), Choice(name="Export as Codeblock", value="codeblock"), - ] + ], ) async def case( self, @@ -1376,41 +1373,35 @@ class Aurora(commands.Cog): export: bool Export the case to a JSON file or codeblock""" permissions = check_permissions( - interaction.client.user, ["embed_links"], interaction + interaction.client.user, + ["embed_links"], + interaction, ) if permissions: await interaction.response.send_message( error( - f"I do not have the `{permissions}` permission, required for this action." + f"I do not have the `{permissions}` permission, required for this action.", ), ephemeral=True, ) return if ephemeral is None: - ephemeral = ( - await config.user(interaction.user).history_ephemeral() - or await config.guild(interaction.guild).history_ephemeral() - or False - ) + ephemeral = await config.user(interaction.user).history_ephemeral() or await config.guild(interaction.guild).history_ephemeral() or False if case != 0: case_dict = await fetch_case(case, interaction.guild.id) if case_dict: if export: if export.value == "file" or len(str(case_dict)) > 1800: - filename = ( - str(data_manager.cog_data_path(cog_instance=self)) - + str(os.sep) - + f"moderation_{interaction.guild.id}_case_{case}.json" - ) + filename = str(data_manager.cog_data_path(cog_instance=self)) + str(os.sep) + f"moderation_{interaction.guild.id}_case_{case}.json" with open(filename, "w", encoding="utf-8") as f: json.dump(case_dict, f, indent=2) if export.value == "codeblock": content = f"Case #{case:,} exported.\n" + warning( - "Case was too large to export as codeblock, so it has been uploaded as a `.json` file." + "Case was too large to export as codeblock, so it has been uploaded as a `.json` file.", ) else: content = f"Case #{case:,} exported." @@ -1427,34 +1418,41 @@ class Aurora(commands.Cog): os.remove(filename) return await interaction.response.send_message( - content=box(json.dumps(case_dict, indent=2), 'json'), + content=box(json.dumps(case_dict, indent=2), "json"), ephemeral=ephemeral, ) return if changes: embed = await changes_factory( - interaction=interaction, case_dict=case_dict + interaction=interaction, + case_dict=case_dict, ) await interaction.response.send_message( - embed=embed, ephemeral=ephemeral + embed=embed, + ephemeral=ephemeral, ) elif evidenceformat: content = await evidenceformat_factory( - interaction=interaction, case_dict=case_dict + interaction=interaction, + case_dict=case_dict, ) await interaction.response.send_message( - content=content, ephemeral=ephemeral + content=content, + ephemeral=ephemeral, ) else: embed = await case_factory( - interaction=interaction, case_dict=case_dict + interaction=interaction, + case_dict=case_dict, ) await interaction.response.send_message( - embed=embed, ephemeral=ephemeral + embed=embed, + ephemeral=ephemeral, ) return await interaction.response.send_message( - content=f"No case with case number `{case}` found.", ephemeral=True + content=f"No case with case number `{case}` found.", + ephemeral=True, ) @app_commands.command(name="edit") @@ -1476,13 +1474,16 @@ class Aurora(commands.Cog): duration: str What is the new duration? Does not reapply the moderation if it has already expired. """ + end_timestamp = None permissions = check_permissions( - interaction.client.user, ["embed_links"], interaction + interaction.client.user, + ["embed_links"], + interaction, ) if permissions: await interaction.response.send_message( error( - f"I do not have the `{permissions}` permission, required for this action." + f"I do not have the `{permissions}` permission, required for this action.", ), ephemeral=True, ) @@ -1496,26 +1497,25 @@ class Aurora(commands.Cog): parsed_time = parse_timedelta(duration) if parsed_time is None: await interaction.response.send_message( - error("Please provide a valid duration!"), ephemeral=True + error("Please provide a valid duration!"), + ephemeral=True, ) return end_timestamp = case_dict["timestamp"] + parsed_time.total_seconds() if case_dict["moderation_type"] == "MUTE": - if ( - time.time() - case_dict["timestamp"] - ) + parsed_time.total_seconds() > 2419200: + if (time.time() - case_dict["timestamp"]) + parsed_time.total_seconds() > 2419200: await interaction.response.send_message( error( - "Please provide a duration that is less than 28 days from the initial moderation." - ) + "Please provide a duration that is less than 28 days from the initial moderation.", + ), ) return try: member = await interaction.guild.fetch_member( - case_dict["target_id"] + case_dict["target_id"], ) await member.timeout( @@ -1529,7 +1529,7 @@ class Aurora(commands.Cog): if len(changes) > 25: await interaction.response.send_message( content=error( - "Due to limitations with Discord's embed system, you cannot edit a case more than 25 times." + "Due to limitations with Discord's embed system, you cannot edit a case more than 25 times.", ), ephemeral=True, ) @@ -1543,9 +1543,10 @@ class Aurora(commands.Cog): "user_id": case_dict["moderator_id"], "duration": case_dict["duration"], "end_timestamp": case_dict["end_timestamp"], - } + }, ) if parsed_time: + assert end_timestamp is not None changes.append( { "type": "EDIT", @@ -1554,7 +1555,7 @@ class Aurora(commands.Cog): "user_id": interaction.user.id, "duration": convert_timedelta_to_str(parsed_time), "end_timestamp": end_timestamp, - } + }, ) else: changes.append( @@ -1565,7 +1566,7 @@ class Aurora(commands.Cog): "user_id": interaction.user.id, "duration": case_dict["duration"], "end_timestamp": case_dict["end_timestamp"], - } + }, ) database = connect() @@ -1602,7 +1603,8 @@ class Aurora(commands.Cog): database.close() return await interaction.response.send_message( - content=error(f"No case with case number `{case}` found."), ephemeral=True + content=error(f"No case with case number `{case}` found."), + ephemeral=True, ) @tasks.loop(minutes=1) @@ -1634,14 +1636,11 @@ class Aurora(commands.Cog): unban_num = 0 for target_id, moderation_id in zip(target_ids, moderation_ids): user: discord.User = await self.bot.fetch_user(target_id) - name = ( - f"{user.name}#{user.discriminator}" - if user.discriminator != "0" - else user.name - ) + name = f"{user.name}#{user.discriminator}" if user.discriminator != "0" else user.name try: await guild.unban( - user, reason=f"Automatic unban from case #{moderation_id}" + user, + reason=f"Automatic unban from case #{moderation_id}", ) embed = await message_factory( @@ -1690,13 +1689,16 @@ class Aurora(commands.Cog): role_ids = [row[2] for row in result] for target_id, moderation_id, role_id in zip( - target_ids, moderation_ids, role_ids + target_ids, + moderation_ids, + role_ids, ): try: member = await guild.fetch_member(target_id) await member.remove_roles( - Object(role_id), reason=f"Automatic role removal from case #{moderation_id}" + Object(role_id), + reason=f"Automatic role removal from case #{moderation_id}", ) removerole_num = removerole_num + 1 @@ -1725,13 +1727,16 @@ class Aurora(commands.Cog): role_ids = [row[2] for row in result] for target_id, moderation_id, role_id in zip( - target_ids, moderation_ids, role_ids + target_ids, + moderation_ids, + role_ids, ): try: member = await guild.fetch_member(target_id) await member.add_roles( - Object(role_id), reason=f"Automatic role addition from case #{moderation_id}" + Object(role_id), + reason=f"Automatic role addition from case #{moderation_id}", ) addrole_num = addrole_num + 1 @@ -1827,15 +1832,11 @@ class Aurora(commands.Cog): @commands.admin() async def aurora_import_aurora(self, ctx: commands.Context): """Import moderation history from another bot using Aurora.""" - if ( - ctx.message.attachments - and ctx.message.attachments[0].content_type - == "application/json; charset=utf-8" - ): + if ctx.message.attachments and ctx.message.attachments[0].content_type == "application/json; charset=utf-8": message = await ctx.send( warning( - "Are you sure you want to import moderations from another bot?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*" - ) + "Are you sure you want to import moderations from another bot?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*", + ), ) await message.edit(view=ImportAuroraView(60, ctx, message)) else: @@ -1845,20 +1846,16 @@ class Aurora(commands.Cog): @commands.admin() async def aurora_import_galacticbot(self, ctx: commands.Context): """Import moderation history from GalacticBot.""" - if ( - ctx.message.attachments - and ctx.message.attachments[0].content_type - == "application/json; charset=utf-8" - ): + if ctx.message.attachments and ctx.message.attachments[0].content_type == "application/json; charset=utf-8": message = await ctx.send( warning( - "Are you sure you want to import GalacticBot moderations?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*" - ) + "Are you sure you want to import GalacticBot moderations?\n**This will overwrite any moderations that already exist in this guild's moderation table.**\n*The import process will block the rest of your bot until it is complete.*", + ), ) await message.edit(view=ImportGalacticBotView(60, ctx, message)) else: await ctx.send( - error("Please provide a valid GalacticBot moderation export file.") + error("Please provide a valid GalacticBot moderation export file."), ) @aurora.command(aliases=["tdc", "td", "timedeltaconvert"]) diff --git a/aurora/utilities/factory.py b/aurora/utilities/factory.py index 0d8a8cd..2d060b0 100644 --- a/aurora/utilities/factory.py +++ b/aurora/utilities/factory.py @@ -75,7 +75,9 @@ async def message_factory( if await config.guild(guild).show_moderator() and moderator is not None: embed.add_field( - name="Moderator", value=f"`{moderator.name} ({moderator.id})`", inline=False + name="Moderator", + value=f"`{moderator.name} ({moderator.id})`", + inline=False, ) embed.add_field(name="Reason", value=f"`{reason}`", inline=False) @@ -94,7 +96,9 @@ async def message_factory( async def log_factory( - interaction: Interaction, case_dict: dict, resolved: bool = False + interaction: Interaction, + case_dict: dict, + resolved: bool = False, ) -> Embed: """This function creates a log embed from set parameters, meant for moderation logging. @@ -103,14 +107,11 @@ async def log_factory( case_dict (dict): The case dictionary. resolved (bool, optional): Whether the case is resolved or not. Defaults to False. """ + target_name = "" if resolved: if case_dict["target_type"] == "USER": target_user = await fetch_user_dict(interaction.client, case_dict["target_id"]) - target_name = ( - f"`{target_user['name']}`" - if target_user["discriminator"] == "0" - else f"`{target_user['name']}#{target_user['discriminator']}`" - ) + target_name = f"`{target_user['name']}`" if target_user["discriminator"] == "0" else f"`{target_user['name']}#{target_user['discriminator']}`" elif case_dict["target_type"] == "CHANNEL": target_user = await fetch_channel_dict(interaction.guild, case_dict["target_id"]) if target_user["mention"]: @@ -119,11 +120,7 @@ async def log_factory( target_name = f"`{target_user['name']}`" moderator_user = await fetch_user_dict(interaction.client, case_dict["moderator_id"]) - moderator_name = ( - f"`{moderator_user['name']}`" - if moderator_user["discriminator"] == "0" - else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" - ) + moderator_name = f"`{moderator_user['name']}`" if moderator_user["discriminator"] == "0" else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" embed = Embed( title=f"📕 Case #{case_dict['moderation_id']:,} Resolved", @@ -140,40 +137,24 @@ async def log_factory( ["hours", "minutes", "seconds"], case_dict["duration"].split(":"), ) - } - ) - duration_embed = ( - f"{humanize_timedelta(timedelta=td)} | " - if case_dict["expired"] == "0" - else str(humanize_timedelta(timedelta=td)) - ) - embed.description = ( - embed.description - + f"\n**Duration:** {duration_embed}\n**Expired:** {bool(case_dict['expired'])}" + }, ) + duration_embed = f"{humanize_timedelta(timedelta=td)} | " if case_dict["expired"] == "0" else str(humanize_timedelta(timedelta=td)) + embed.description = embed.description + f"\n**Duration:** {duration_embed}\n**Expired:** {bool(case_dict['expired'])}" embed.add_field(name="Reason", value=box(case_dict["reason"]), inline=False) resolved_user = await fetch_user_dict(interaction.client, case_dict["resolved_by"]) - resolved_name = ( - resolved_user["name"] - if resolved_user["discriminator"] == "0" - else f"{resolved_user['name']}#{resolved_user['discriminator']}" - ) + resolved_name = resolved_user["name"] if resolved_user["discriminator"] == "0" else f"{resolved_user['name']}#{resolved_user['discriminator']}" embed.add_field( name="Resolve Reason", - value=f"Resolved by `{resolved_name}` ({resolved_user['id']}) for:\n" - + box(case_dict["resolve_reason"]), + value=f"Resolved by `{resolved_name}` ({resolved_user['id']}) for:\n" + box(case_dict["resolve_reason"]), inline=False, ) else: if case_dict["target_type"] == "USER": target_user = await fetch_user_dict(interaction.client, case_dict["target_id"]) - target_name = ( - f"`{target_user['name']}`" - if target_user["discriminator"] == "0" - else f"`{target_user['name']}#{target_user['discriminator']}`" - ) + target_name = f"`{target_user['name']}`" if target_user["discriminator"] == "0" else f"`{target_user['name']}#{target_user['discriminator']}`" elif case_dict["target_type"] == "CHANNEL": target_user = await fetch_channel_dict(interaction.guild, case_dict["target_id"]) if target_user["mention"]: @@ -182,11 +163,7 @@ async def log_factory( target_name = f"`{target_user['name']}`" moderator_user = await fetch_user_dict(interaction.client, case_dict["moderator_id"]) - moderator_name = ( - f"`{moderator_user['name']}`" - if moderator_user["discriminator"] == "0" - else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" - ) + moderator_name = f"`{moderator_user['name']}`" if moderator_user["discriminator"] == "0" else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" embed = Embed( title=f"📕 Case #{case_dict['moderation_id']:,}", @@ -202,12 +179,9 @@ async def log_factory( ["hours", "minutes", "seconds"], case_dict["duration"].split(":"), ) - } - ) - embed.description = ( - embed.description - + f"\n**Duration:** {humanize_timedelta(timedelta=td)} | " + }, ) + embed.description = embed.description + f"\n**Duration:** {humanize_timedelta(timedelta=td)} | " embed.add_field(name="Reason", value=box(case_dict["reason"]), inline=False) return embed @@ -220,13 +194,10 @@ async def case_factory(interaction: Interaction, case_dict: dict) -> Embed: interaction (Interaction): The interaction object. case_dict (dict): The case dictionary. """ + target_name = "" if case_dict["target_type"] == "USER": target_user = await fetch_user_dict(interaction.client, case_dict["target_id"]) - target_name = ( - f"`{target_user['name']}`" - if target_user["discriminator"] == "0" - else f"`{target_user['name']}#{target_user['discriminator']}`" - ) + target_name = f"`{target_user['name']}`" if target_user["discriminator"] == "0" else f"`{target_user['name']}#{target_user['discriminator']}`" elif case_dict["target_type"] == "CHANNEL": target_user = await fetch_channel_dict(interaction.guild, case_dict["target_id"]) if target_user["mention"]: @@ -235,11 +206,7 @@ async def case_factory(interaction: Interaction, case_dict: dict) -> Embed: target_name = f"`{target_user['name']}`" moderator_user = await fetch_user_dict(interaction.client, case_dict["moderator_id"]) - moderator_name = ( - f"`{moderator_user['name']}`" - if moderator_user["discriminator"] == "0" - else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" - ) + moderator_name = f"`{moderator_user['name']}`" if moderator_user["discriminator"] == "0" else f"`{moderator_user['name']}#{moderator_user['discriminator']}`" embed = Embed( title=f"📕 Case #{case_dict['moderation_id']:,}", @@ -252,41 +219,28 @@ async def case_factory(interaction: Interaction, case_dict: dict) -> Embed: **{ unit: int(val) for unit, val in zip( - ["hours", "minutes", "seconds"], case_dict["duration"].split(":") + ["hours", "minutes", "seconds"], + case_dict["duration"].split(":"), ) - } - ) - duration_embed = ( - f"{humanize_timedelta(timedelta=td)} | " - if bool(case_dict["expired"]) is False - else str(humanize_timedelta(timedelta=td)) + }, ) + duration_embed = f"{humanize_timedelta(timedelta=td)} | " if bool(case_dict["expired"]) is False else str(humanize_timedelta(timedelta=td)) embed.description += f"\n**Duration:** {duration_embed}\n**Expired:** {bool(case_dict['expired'])}" - embed.description += ( - f"\n**Changes:** {len(case_dict['changes']) - 1}" - if case_dict["changes"] - else "\n**Changes:** 0" - ) + embed.description += f"\n**Changes:** {len(case_dict['changes']) - 1}" if case_dict["changes"] else "\n**Changes:** 0" if case_dict["role_id"]: embed.description += f"\n**Role:** <@&{case_dict['role_id']}>" if case_dict["metadata"]: if case_dict["metadata"]["imported_from"]: - embed.description += ( - f"\n**Imported From:** {case_dict['metadata']['imported_from']}" - ) + embed.description += f"\n**Imported From:** {case_dict['metadata']['imported_from']}" embed.add_field(name="Reason", value=box(case_dict["reason"]), inline=False) if case_dict["resolved"] == 1: resolved_user = await fetch_user_dict(interaction.client, case_dict["resolved_by"]) - resolved_name = ( - f"`{resolved_user['name']}`" - if resolved_user["discriminator"] == "0" - else f"`{resolved_user['name']}#{resolved_user['discriminator']}`" - ) + resolved_name = f"`{resolved_user['name']}`" if resolved_user["discriminator"] == "0" else f"`{resolved_user['name']}#{resolved_user['discriminator']}`" embed.add_field( name="Resolve Reason", value=f"Resolved by {resolved_name} ({resolved_user['id']}) for:\n{box(case_dict['resolve_reason'])}", @@ -314,15 +268,12 @@ async def changes_factory(interaction: Interaction, case_dict: dict) -> Embed: for change in case_dict["changes"]: if change["user_id"] not in memory_dict: memory_dict[str(change["user_id"])] = await fetch_user_dict( - interaction.client, change["user_id"] + interaction.client, + change["user_id"], ) user = memory_dict[str(change["user_id"])] - name = ( - user["name"] - if user["discriminator"] == "0" - else f"{user['name']}#{user['discriminator']}" - ) + name = user["name"] if user["discriminator"] == "0" else f"{user['name']}#{user['discriminator']}" timestamp = f" | " @@ -360,24 +311,17 @@ async def evidenceformat_factory(interaction: Interaction, case_dict: dict) -> s interaction (Interaction): The interaction object. case_dict (dict): The case dictionary. """ + target_name = "" if case_dict["target_type"] == "USER": target_user = await fetch_user_dict(interaction.client, case_dict["target_id"]) - target_name = ( - target_user["name"] - if target_user["discriminator"] == "0" - else f"{target_user['name']}#{target_user['discriminator']}" - ) + target_name = target_user["name"] if target_user["discriminator"] == "0" else f"{target_user['name']}#{target_user['discriminator']}" elif case_dict["target_type"] == "CHANNEL": target_user = await fetch_channel_dict(interaction.guild, case_dict["target_id"]) target_name = target_user["name"] moderator_user = await fetch_user_dict(interaction.client, case_dict["moderator_id"]) - moderator_name = ( - moderator_user["name"] - if moderator_user["discriminator"] == "0" - else f"{moderator_user['name']}#{moderator_user['discriminator']}" - ) + moderator_name = moderator_user["name"] if moderator_user["discriminator"] == "0" else f"{moderator_user['name']}#{moderator_user['discriminator']}" content = f"Case: {case_dict['moderation_id']:,} ({str.title(case_dict['moderation_type'])})\nTarget: {target_name} ({target_user['id']})\nModerator: {moderator_name} ({moderator_user['id']})" @@ -419,17 +363,11 @@ async def overrides_embed(ctx: commands.Context) -> Embed: } override_str = [ - "- " - + bold("Auto Evidence Format: ") - + get_bool_emoji(override_settings["auto_evidenceformat"]), + "- " + bold("Auto Evidence Format: ") + get_bool_emoji(override_settings["auto_evidenceformat"]), "- " + bold("Ephemeral: ") + get_bool_emoji(override_settings["ephemeral"]), "- " + bold("History Inline: ") + get_bool_emoji(override_settings["inline"]), - "- " - + bold("History Inline Pagesize: ") - + get_pagesize_str(override_settings["inline_pagesize"]), - "- " - + bold("History Pagesize: ") - + get_pagesize_str(override_settings["pagesize"]), + "- " + bold("History Inline Pagesize: ") + get_pagesize_str(override_settings["inline_pagesize"]), + "- " + bold("History Pagesize: ") + get_pagesize_str(override_settings["pagesize"]), ] override_str = "\n".join(override_str) @@ -451,7 +389,7 @@ async def guild_embed(ctx: commands.Context) -> Embed: guild_settings = { "show_moderator": await config.guild(ctx.guild).show_moderator(), "use_discord_permissions": await config.guild( - ctx.guild + ctx.guild, ).use_discord_permissions(), "ignore_modlog": await config.guild(ctx.guild).ignore_modlog(), "ignore_other_bots": await config.guild(ctx.guild).ignore_other_bots(), @@ -461,7 +399,7 @@ async def guild_embed(ctx: commands.Context) -> Embed: "history_inline": await config.guild(ctx.guild).history_inline(), "history_pagesize": await config.guild(ctx.guild).history_pagesize(), "history_inline_pagesize": await config.guild( - ctx.guild + ctx.guild, ).history_inline_pagesize(), "auto_evidenceformat": await config.guild(ctx.guild).auto_evidenceformat(), "respect_hierarchy": await config.guild(ctx.guild).respect_hierarchy(), @@ -474,37 +412,17 @@ async def guild_embed(ctx: commands.Context) -> Embed: channel = channel.mention guild_str = [ - "- " - + bold("Show Moderator: ") - + get_bool_emoji(guild_settings["show_moderator"]), - "- " - + bold("Use Discord Permissions: ") - + get_bool_emoji(guild_settings["use_discord_permissions"]), - "- " - + bold("Respect Hierarchy: ") - + get_bool_emoji(guild_settings["respect_hierarchy"]), - "- " - + bold("Ignore Modlog: ") - + get_bool_emoji(guild_settings["ignore_modlog"]), - "- " - + bold("Ignore Other Bots: ") - + get_bool_emoji(guild_settings["ignore_other_bots"]), + "- " + bold("Show Moderator: ") + get_bool_emoji(guild_settings["show_moderator"]), + "- " + bold("Use Discord Permissions: ") + get_bool_emoji(guild_settings["use_discord_permissions"]), + "- " + bold("Respect Hierarchy: ") + get_bool_emoji(guild_settings["respect_hierarchy"]), + "- " + bold("Ignore Modlog: ") + get_bool_emoji(guild_settings["ignore_modlog"]), + "- " + bold("Ignore Other Bots: ") + get_bool_emoji(guild_settings["ignore_other_bots"]), "- " + bold("DM Users: ") + get_bool_emoji(guild_settings["dm_users"]), - "- " - + bold("Auto Evidence Format: ") - + get_bool_emoji(guild_settings["auto_evidenceformat"]), - "- " - + bold("Ephemeral: ") - + get_bool_emoji(guild_settings["history_ephemeral"]), - "- " - + bold("History Inline: ") - + get_bool_emoji(guild_settings["history_inline"]), - "- " - + bold("History Pagesize: ") - + get_pagesize_str(guild_settings["history_pagesize"]), - "- " - + bold("History Inline Pagesize: ") - + get_pagesize_str(guild_settings["history_inline_pagesize"]), + "- " + bold("Auto Evidence Format: ") + get_bool_emoji(guild_settings["auto_evidenceformat"]), + "- " + bold("Ephemeral: ") + get_bool_emoji(guild_settings["history_ephemeral"]), + "- " + bold("History Inline: ") + get_bool_emoji(guild_settings["history_inline"]), + "- " + bold("History Pagesize: ") + get_pagesize_str(guild_settings["history_pagesize"]), + "- " + bold("History Inline Pagesize: ") + get_pagesize_str(guild_settings["history_inline_pagesize"]), "- " + bold("Log Channel: ") + channel, ] guild_str = "\n".join(guild_str) @@ -528,17 +446,21 @@ async def addrole_embed(ctx: commands.Context) -> Embed: for role in whitelist: evalulated_role = ctx.guild.get_role(role) or error(f"`{role}` (Not Found)") if isinstance(evalulated_role, Role): - roles.append({ - "id": evalulated_role.id, - "mention": evalulated_role.mention, - "position": evalulated_role.position - }) + roles.append( + { + "id": evalulated_role.id, + "mention": evalulated_role.mention, + "position": evalulated_role.position, + } + ) else: - roles.append({ - "id": role, - "mention": error(f"`{role}` (Not Found)"), - "position": 0 - }) + roles.append( + { + "id": role, + "mention": error(f"`{role}` (Not Found)"), + "position": 0, + } + ) if roles: roles = sorted(roles, key=lambda x: x["position"], reverse=True) @@ -549,9 +471,7 @@ async def addrole_embed(ctx: commands.Context) -> Embed: e = await _config(ctx) e.title += ": Addrole Whitelist" - e.description = ( - "Use the select menu below to manage this guild's addrole whitelist." - ) + e.description = "Use the select menu below to manage this guild's addrole whitelist." if len(whitelist_str) > 4000 and len(whitelist_str) < 5000: lines = whitelist_str.split("\n") @@ -581,17 +501,21 @@ async def immune_embed(ctx: commands.Context) -> Embed: for role in immune_roles: evalulated_role = ctx.guild.get_role(role) or error(f"`{role}` (Not Found)") if isinstance(evalulated_role, Role): - roles.append({ - "id": evalulated_role.id, - "mention": evalulated_role.mention, - "position": evalulated_role.position - }) + roles.append( + { + "id": evalulated_role.id, + "mention": evalulated_role.mention, + "position": evalulated_role.position, + } + ) else: - roles.append({ - "id": role, - "mention": error(f"`{role}` (Not Found)"), - "position": 0 - }) + roles.append( + { + "id": role, + "mention": error(f"`{role}` (Not Found)"), + "position": 0, + } + ) if roles: roles = sorted(roles, key=lambda x: x["position"], reverse=True) From c0c84358ef3bd9552a17ff326f747ee11f932f62 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:14:30 -0500 Subject: [PATCH 23/51] fix(backup): pylint fix --- backup/backup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backup/backup.py b/backup/backup.py index 803e863..5133b43 100644 --- a/backup/backup.py +++ b/backup/backup.py @@ -26,7 +26,7 @@ class Backup(commands.Cog): __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" - __version__ = "1.1.3" + __version__ = "1.1.4" __documentation__ = "https://seacogs.coastalcommits.com/backup/" def __init__(self, bot: Red): @@ -49,7 +49,6 @@ class Backup(commands.Cog): @commands.is_owner() async def backup(self, ctx: commands.Context) -> None: """Backup your installed cogs.""" - pass @backup.command(name="export") @commands.is_owner() From ab22b791d12baa1c8f1a627bdfea282e921bccad Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:16:26 -0500 Subject: [PATCH 24/51] fix(hotreload): pylint fixes --- hotreload/hotreload.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hotreload/hotreload.py b/hotreload/hotreload.py index 268a41a..7eed202 100644 --- a/hotreload/hotreload.py +++ b/hotreload/hotreload.py @@ -21,7 +21,7 @@ class HotReload(commands.Cog): __author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"] __git__ = "https://www.coastalcommits.com/cswimr/SeaCogs" - __version__ = "1.4.1" + __version__ = "1.4.2" __documentation__ = "https://seacogs.coastalcommits.com/hotreload/" def __init__(self, bot: Red) -> None: @@ -60,6 +60,7 @@ class HotReload(commands.Cog): ] return "\n".join(text) + # pylint: disable=protected-access async def get_paths(self) -> Generator[Path, None, None]: """Retrieve user defined paths.""" cog_manager = self.bot._cog_mgr # noqa: SLF001 # We have to use this private method because there is no public API to get user defined paths @@ -91,7 +92,6 @@ class HotReload(commands.Cog): @commands.group(name="hotreload") async def hotreload_group(self, ctx: commands.Context) -> None: """HotReload configuration commands.""" - pass @hotreload_group.command(name="notifychannel") async def hotreload_notifychannel(self, ctx: commands.Context, channel: discord.TextChannel) -> None: @@ -155,6 +155,7 @@ class HotReloadHandler(RegexMatchingEventHandler): loop=self.cog.bot.loop, ) + # pylint: disable=protected-access async def reload_cogs(self, cog_names: Sequence[str], paths: Sequence[Path]) -> None: """Reload modified cogs.""" if not self.compile_modified_files(cog_names, paths): From df22f73d2e517046e9f059166ecbfb15de24f6eb Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:17:25 -0500 Subject: [PATCH 25/51] style(aurora): reformat with ruff --- aurora/importers/aurora.py | 18 +++-------- aurora/importers/galacticbot.py | 22 +++---------- aurora/menus/addrole.py | 6 ++-- aurora/menus/guild.py | 30 +++++++++++------- aurora/menus/immune.py | 6 ++-- aurora/menus/overrides.py | 18 ++++++++--- aurora/utilities/database.py | 11 ++----- aurora/utilities/utils.py | 55 +++++++++------------------------ 8 files changed, 64 insertions(+), 102 deletions(-) diff --git a/aurora/importers/aurora.py b/aurora/importers/aurora.py index 44cab98..af0b639 100644 --- a/aurora/importers/aurora.py +++ b/aurora/importers/aurora.py @@ -17,13 +17,9 @@ class ImportAuroraView(ui.View): self.message: Message = message @ui.button(label="Yes", style=ButtonStyle.success) - async def import_button_y( - self, interaction: Interaction, button: ui.Button - ): # pylint: disable=unused-argument + async def import_button_y(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument await self.message.delete() - await interaction.response.send_message( - "Deleting original table...", ephemeral=True - ) + await interaction.response.send_message("Deleting original table...", ephemeral=True) database = connect() cursor = database.cursor() @@ -101,16 +97,10 @@ class ImportAuroraView(ui.View): await interaction.edit_original_response(content="Import complete.") if failed_cases: - await interaction.edit_original_response( - content="Import complete.\n" - + warning("Failed to import the following cases:\n") - + box(failed_cases) - ) + await interaction.edit_original_response(content="Import complete.\n" + warning("Failed to import the following cases:\n") + box(failed_cases)) @ui.button(label="No", style=ButtonStyle.danger) - async def import_button_n( - self, interaction: Interaction, button: ui.Button - ): # pylint: disable=unused-argument + async def import_button_n(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument await self.message.edit(content="Import cancelled.", view=None) await self.message.delete(10) await self.ctx.message.delete(10) diff --git a/aurora/importers/galacticbot.py b/aurora/importers/galacticbot.py index c6e0b99..39c2c2d 100644 --- a/aurora/importers/galacticbot.py +++ b/aurora/importers/galacticbot.py @@ -16,13 +16,9 @@ class ImportGalacticBotView(ui.View): self.message: Message = message @ui.button(label="Yes", style=ButtonStyle.success) - async def import_button_y( - self, interaction: Interaction, button: ui.Button - ): # pylint: disable=unused-argument + async def import_button_y(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument await self.message.delete() - await interaction.response.send_message( - "Deleting original table...", ephemeral=True - ) + await interaction.response.send_message("Deleting original table...", ephemeral=True) database = connect() cursor = database.cursor() @@ -92,9 +88,7 @@ class ImportGalacticBotView(ui.View): if resolved_by is None: resolved_by = "?" if resolved_reason is None: - resolved_reason = ( - "Could not get resolve reason during moderation import." - ) + resolved_reason = "Could not get resolve reason during moderation import." if resolved_timestamp is None: resolved_timestamp = timestamp changes = [ @@ -142,16 +136,10 @@ class ImportGalacticBotView(ui.View): await interaction.edit_original_response(content="Import complete.") if failed_cases: - await interaction.edit_original_response( - content="Import complete.\n" - + warning("Failed to import the following cases:\n") - + box(failed_cases) - ) + await interaction.edit_original_response(content="Import complete.\n" + warning("Failed to import the following cases:\n") + box(failed_cases)) @ui.button(label="No", style=ButtonStyle.danger) - async def import_button_n( - self, interaction: Interaction, button: ui.Button - ): # pylint: disable=unused-argument + async def import_button_n(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument await self.message.edit(content="Import cancelled.", view=None) await self.message.delete(10) await self.ctx.message.delete(10) diff --git a/aurora/menus/addrole.py b/aurora/menus/addrole.py index 11f6b32..fa45b87 100644 --- a/aurora/menus/addrole.py +++ b/aurora/menus/addrole.py @@ -23,7 +23,7 @@ class Addrole(ui.View): return await interaction.response.defer() async with config.guild(self.ctx.guild).addrole_whitelist() as addrole_whitelist: - addrole_whitelist: list # type hint + addrole_whitelist: list # type hint for value in select.values: if value.id in addrole_whitelist: addrole_whitelist.remove(value.id) @@ -32,7 +32,7 @@ class Addrole(ui.View): await interaction.message.edit(embed=await addrole_embed(self.ctx)) @ui.button(label="Clear", style=ButtonStyle.red, row=1) - async def clear(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def clear(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message(error("You must have the manage guild permission to clear the guild's addrole whitelist."), ephemeral=True) return @@ -41,7 +41,7 @@ class Addrole(ui.View): await interaction.message.edit(embed=await addrole_embed(self.ctx)) @ui.button(label="Close", style=ButtonStyle.gray) - async def close(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def close(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message(error("You can't do that!"), ephemeral=True) return diff --git a/aurora/menus/guild.py b/aurora/menus/guild.py index f99e552..dbc26e0 100644 --- a/aurora/menus/guild.py +++ b/aurora/menus/guild.py @@ -17,7 +17,7 @@ class Guild(ui.View): await self.message.edit(view=None) @ui.button(label="Show Moderator", style=ButtonStyle.green, row=0) - async def show_moderator(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def show_moderator(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -27,7 +27,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Use Discord Permissions", style=ButtonStyle.green, row=0) - async def use_discord_permissions(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def use_discord_permissions(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -37,7 +37,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Respect Hierarchy", style=ButtonStyle.green, row=0) - async def respect_heirarchy(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def respect_heirarchy(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -47,7 +47,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Ignore Modlog", style=ButtonStyle.green, row=0) - async def ignore_modlog(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def ignore_modlog(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -57,7 +57,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Ignore Other Bots", style=ButtonStyle.green, row=0) - async def ignore_other_bots(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def ignore_other_bots(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -67,7 +67,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="DM Users", style=ButtonStyle.green, row=1) - async def dm_users(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def dm_users(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -77,7 +77,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Auto Evidence Format", style=ButtonStyle.green, row=1) - async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -87,7 +87,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="Ephemeral", style=ButtonStyle.green, row=1) - async def ephemeral(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def ephemeral(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -97,7 +97,7 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.button(label="History Inline", style=ButtonStyle.green, row=1) - async def inline(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def inline(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -107,7 +107,11 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.select(placeholder="History Pagesize", options=create_pagesize_options(), row=2) - async def pagesize(self, interaction: Interaction, select: ui.Select,): + async def pagesize( + self, + interaction: Interaction, + select: ui.Select, + ): if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return @@ -119,7 +123,11 @@ class Guild(ui.View): await interaction.message.edit(embed=await guild_embed(self.ctx)) @ui.select(placeholder="History Inline Pagesize", options=create_pagesize_options(), row=3) - async def inline_pagesize(self, interaction: Interaction, select: ui.Select,): + async def inline_pagesize( + self, + interaction: Interaction, + select: ui.Select, + ): if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message("You must have the manage guild permission to change this setting.", ephemeral=True) return diff --git a/aurora/menus/immune.py b/aurora/menus/immune.py index 2a5c007..891b1b5 100644 --- a/aurora/menus/immune.py +++ b/aurora/menus/immune.py @@ -23,7 +23,7 @@ class Immune(ui.View): return await interaction.response.defer() async with config.guild(self.ctx.guild).immune_roles() as immune_roles: - immune_roles: list # type hint + immune_roles: list # type hint for value in select.values: if value.id in immune_roles: immune_roles.remove(value.id) @@ -32,7 +32,7 @@ class Immune(ui.View): await interaction.message.edit(embed=await immune_embed(self.ctx)) @ui.button(label="Clear", style=ButtonStyle.red, row=1) - async def clear(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def clear(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message(error("You must have the manage guild permission to clear the guild's immune roles."), ephemeral=True) return @@ -41,7 +41,7 @@ class Immune(ui.View): await interaction.message.edit(embed=await immune_embed(self.ctx)) @ui.button(label="Close", style=ButtonStyle.gray) - async def close(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def close(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if not interaction.user.guild_permissions.manage_guild and not interaction.user.guild_permissions.administrator: await interaction.response.send_message(error("You can't do that!"), ephemeral=True) return diff --git a/aurora/menus/overrides.py b/aurora/menus/overrides.py index c5d0e68..1c270f5 100644 --- a/aurora/menus/overrides.py +++ b/aurora/menus/overrides.py @@ -17,7 +17,7 @@ class Overrides(ui.View): await self.message.edit(view=None) @ui.button(label="Auto Evidence Format", style=ButtonStyle.green, row=0) - async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def auto_evidenceformat(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if self.ctx.author != interaction.user: await interaction.response.send_message("You cannot change this setting for other users.", ephemeral=True) return @@ -32,7 +32,7 @@ class Overrides(ui.View): await interaction.message.edit(embed=await overrides_embed(self.ctx)) @ui.button(label="Ephemeral", style=ButtonStyle.green, row=0) - async def ephemeral(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def ephemeral(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if self.ctx.author != interaction.user: await interaction.response.send_message("You cannot change this setting for other users.", ephemeral=True) return @@ -47,7 +47,7 @@ class Overrides(ui.View): await interaction.message.edit(embed=await overrides_embed(self.ctx)) @ui.button(label="Inline", style=ButtonStyle.green, row=0) - async def inline(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument + async def inline(self, interaction: Interaction, button: ui.Button): # pylint: disable=unused-argument if self.ctx.author != interaction.user: await interaction.response.send_message("You cannot change this setting for other users.", ephemeral=True) return @@ -62,7 +62,11 @@ class Overrides(ui.View): await interaction.message.edit(embed=await overrides_embed(self.ctx)) @ui.select(placeholder="Inline Pagesize", options=create_pagesize_options(), row=1) - async def inline_pagesize(self, interaction: Interaction, select: ui.Select,): + async def inline_pagesize( + self, + interaction: Interaction, + select: ui.Select, + ): if self.ctx.author != interaction.user: await interaction.response.send_message("You cannot change this setting for other users.", ephemeral=True) return @@ -74,7 +78,11 @@ class Overrides(ui.View): await interaction.message.edit(embed=await overrides_embed(self.ctx)) @ui.select(placeholder="Pagesize", options=create_pagesize_options(), row=2) - async def pagesize(self, interaction: Interaction, select: ui.Select,): + async def pagesize( + self, + interaction: Interaction, + select: ui.Select, + ): if self.ctx.author != interaction.user: await interaction.response.send_message("You cannot change this setting for other users.", ephemeral=True) return diff --git a/aurora/utilities/database.py b/aurora/utilities/database.py index a2bcb92..fd1f721 100644 --- a/aurora/utilities/database.py +++ b/aurora/utilities/database.py @@ -8,23 +8,18 @@ from discord import Guild from redbot.core import data_manager from .logger import logger -from .utils import (convert_timedelta_to_str, generate_dict, - get_next_case_number) +from .utils import convert_timedelta_to_str, generate_dict, get_next_case_number def connect() -> sqlite3.Connection: """Connects to the SQLite database, and returns a connection object.""" try: - connection = sqlite3.connect( - database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db" - ) + connection = sqlite3.connect(database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db") return connection except sqlite3.OperationalError as e: logger.error("Unable to access the SQLite database!\nError:\n%s", e.msg) - raise ConnectionRefusedError( - f"Unable to access the SQLite Database!\n{e.msg}" - ) from e + raise ConnectionRefusedError(f"Unable to access the SQLite Database!\n{e.msg}") from e async def create_guild_table(guild: Guild): diff --git a/aurora/utilities/utils.py b/aurora/utilities/utils.py index 1ff21fa..d99bfcd 100644 --- a/aurora/utilities/utils.py +++ b/aurora/utilities/utils.py @@ -32,24 +32,17 @@ def check_permissions( raise (KeyError) for permission in permissions: - if ( - not getattr(resolved_permissions, permission, False) - and resolved_permissions.administrator is not True - ): + if not getattr(resolved_permissions, permission, False) and resolved_permissions.administrator is not True: return permission return False -async def check_moddable( - target: Union[User, Member], interaction: Interaction, permissions: list -) -> bool: +async def check_moddable(target: Union[User, Member], interaction: Interaction, permissions: list) -> bool: """Checks if a moderator can moderate a target.""" if check_permissions(interaction.client.user, permissions, guild=interaction.guild): await interaction.response.send_message( - error( - f"I do not have the `{permissions}` permission, required for this action." - ), + error(f"I do not have the `{permissions}` permission, required for this action."), ephemeral=True, ) return False @@ -57,43 +50,30 @@ async def check_moddable( if await config.guild(interaction.guild).use_discord_permissions() is True: if check_permissions(interaction.user, permissions, guild=interaction.guild): await interaction.response.send_message( - error( - f"You do not have the `{permissions}` permission, required for this action." - ), + error(f"You do not have the `{permissions}` permission, required for this action."), ephemeral=True, ) return False if interaction.user.id == target.id: - await interaction.response.send_message( - content="You cannot moderate yourself!", ephemeral=True - ) + await interaction.response.send_message(content="You cannot moderate yourself!", ephemeral=True) return False if target.bot: - await interaction.response.send_message( - content="You cannot moderate bots!", ephemeral=True - ) + await interaction.response.send_message(content="You cannot moderate bots!", ephemeral=True) return False if isinstance(target, Member): if interaction.user.top_role <= target.top_role and await config.guild(interaction.guild).respect_hierarchy() is True: await interaction.response.send_message( - content=error( - "You cannot moderate members with a higher role than you!" - ), + content=error("You cannot moderate members with a higher role than you!"), ephemeral=True, ) return False - if ( - interaction.guild.get_member(interaction.client.user.id).top_role - <= target.top_role - ): + if interaction.guild.get_member(interaction.client.user.id).top_role <= target.top_role: await interaction.response.send_message( - content=error( - "You cannot moderate members with a role higher than the bot!" - ), + content=error("You cannot moderate members with a role higher than the bot!"), ephemeral=True, ) return False @@ -118,9 +98,7 @@ async def get_next_case_number(guild_id: str, cursor=None) -> int: if not cursor: database = connect() cursor = database.cursor() - cursor.execute( - f"SELECT moderation_id FROM `moderation_{guild_id}` ORDER BY moderation_id DESC LIMIT 1" - ) + cursor.execute(f"SELECT moderation_id FROM `moderation_{guild_id}` ORDER BY moderation_id DESC LIMIT 1") result = cursor.fetchone() return (result[0] + 1) if result else 1 @@ -171,7 +149,6 @@ async def fetch_user_dict(client: commands.Bot, user_id: str) -> dict: "discriminator": "0", } - return user_dict @@ -216,9 +193,7 @@ async def log(interaction: Interaction, moderation_id: int, resolved: bool = Fal case = await fetch_case(moderation_id, interaction.guild.id) if case: - embed = await log_factory( - interaction=interaction, case_dict=case, resolved=resolved - ) + embed = await log_factory(interaction=interaction, case_dict=case, resolved=resolved) try: await logging_channel.send(embed=embed) except Forbidden: @@ -229,11 +204,7 @@ async def send_evidenceformat(interaction: Interaction, case_dict: dict) -> None """This function sends an ephemeral message to the moderator who took the moderation action, with a pre-made codeblock for use in the mod-evidence channel.""" from .factory import evidenceformat_factory - send_evidence_bool = ( - await config.user(interaction.user).auto_evidenceformat() - or await config.guild(interaction.guild).auto_evidenceformat() - or False - ) + send_evidence_bool = await config.user(interaction.user).auto_evidenceformat() or await config.guild(interaction.guild).auto_evidenceformat() or False if send_evidence_bool is False: return @@ -286,12 +257,14 @@ def create_pagesize_options() -> list[SelectOption]: ) return options + def timedelta_from_relativedelta(relativedelta: rd) -> td: """Converts a relativedelta object to a timedelta object.""" now = datetime.now() then = now - relativedelta return now - then + def get_footer_image(coginstance: commands.Cog) -> File: """Returns the footer image for the embeds.""" image_path = data_manager.bundled_data_path(coginstance) / "arrow.png" From 4407a99b8e2508fdcfa15cd764d26913f3826b0a Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:17:43 -0500 Subject: [PATCH 26/51] style(pterodactyl): ruff reformat --- pterodactyl/config.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pterodactyl/config.py b/pterodactyl/config.py index 28fecd8..800d773 100644 --- a/pterodactyl/config.py +++ b/pterodactyl/config.py @@ -2,28 +2,29 @@ from redbot.core import Config config: Config = Config.get_conf(None, identifier=457581387213637448123567, cog_name="Pterodactyl", force_registration=True) + def register_config(config_obj: Config) -> None: config_obj.register_global( base_url=None, server_id=None, console_channel=None, console_commands_enabled=False, - current_status='', + current_status="", chat_regex=r"^\[\d{2}:\d{2}:\d{2}\sINFO\]: (?!\[(?:Server|Rcon)\])(?:<|\[)(\w+)(?:>|\]) (.*)", server_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]:(?: \[Not Secure\])? \[(?:Server|Rcon)\] (.*)", join_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: ([^<\n]+) joined the game$", leave_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: ([^<\n]+) left the game$", achievement_regex=r"^\[\d{2}:\d{2}:\d{2} INFO\]: (.*) has (made the advancement|completed the challenge) \[(.*)\]$", - chat_command='tellraw @a ["",{"text":".$N ","color":".$C","insertion":"<@.$I>","hoverEvent":{"action":"show_text","contents":"Shift click to mention this user inside Discord"}},{"text":"(DISCORD):","color":"blue","clickEvent":{"action":"open_url","value":".$V"},"hoverEvent":{"action":"show_text","contents":"Click to join the Discord Server"}},{"text":" .$M","color":"white"}]', # noqa: E501 - topic='Server IP: .$H\nServer Players: .$P/.$M', + chat_command='tellraw @a ["",{"text":".$N ","color":".$C","insertion":"<@.$I>","hoverEvent":{"action":"show_text","contents":"Shift click to mention this user inside Discord"}},{"text":"(DISCORD):","color":"blue","clickEvent":{"action":"open_url","value":".$V"},"hoverEvent":{"action":"show_text","contents":"Click to join the Discord Server"}},{"text":" .$M","color":"white"}]', # noqa: E501 + topic="Server IP: .$H\nServer Players: .$P/.$M", topic_hostname=None, topic_port=25565, api_endpoint="minecraft", chat_channel=None, - startup_msg='Server started!', - shutdown_msg='Server stopped!', - join_msg='Welcome to the server! 👋', - leave_msg='Goodbye! 👋', + startup_msg="Server started!", + shutdown_msg="Server stopped!", + join_msg="Welcome to the server! 👋", + leave_msg="Goodbye! 👋", mask_ip=True, invite=None, regex_blacklist={}, From 2505dd0980dfe4199dcd08372e50655d96b80011 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:22:08 -0500 Subject: [PATCH 27/51] fix(aurora): more ruff fixes --- aurora/aurora.py | 4 ++-- aurora/utilities/database.py | 6 +++--- aurora/utilities/factory.py | 8 ++++---- aurora/utilities/utils.py | 20 +++++--------------- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/aurora/aurora.py b/aurora/aurora.py index d2dca4a..955b5cc 100644 --- a/aurora/aurora.py +++ b/aurora/aurora.py @@ -40,7 +40,7 @@ class Aurora(commands.Cog): This cog stores all of its data in an SQLite database.""" __author__ = ["cswimr"] - __version__ = "2.1.4" + __version__ = "2.1.5" __documentation__ = "https://seacogs.coastalcommits.com/aurora/" async def red_delete_data_for_user(self, *, requester, user_id: int): @@ -872,7 +872,7 @@ class Aurora(commands.Cog): silent = not await config.guild(interaction.guild).dm_users() if silent is False: try: - embed = embed = await message_factory( + embed = await message_factory( await self.bot.get_embed_color(interaction.channel), guild=interaction.guild, moderator=interaction.user, diff --git a/aurora/utilities/database.py b/aurora/utilities/database.py index fd1f721..aa876e8 100644 --- a/aurora/utilities/database.py +++ b/aurora/utilities/database.py @@ -14,12 +14,12 @@ from .utils import convert_timedelta_to_str, generate_dict, get_next_case_number def connect() -> sqlite3.Connection: """Connects to the SQLite database, and returns a connection object.""" try: - connection = sqlite3.connect(database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db") - return connection + return sqlite3.connect(database=data_manager.cog_data_path(raw_name="Aurora") / "aurora.db") except sqlite3.OperationalError as e: logger.error("Unable to access the SQLite database!\nError:\n%s", e.msg) - raise ConnectionRefusedError(f"Unable to access the SQLite Database!\n{e.msg}") from e + msg = f"Unable to access the SQLite Database!\n{e.msg}" + raise ConnectionRefusedError(msg) from e async def create_guild_table(guild: Guild): diff --git a/aurora/utilities/factory.py b/aurora/utilities/factory.py index 2d060b0..4c54a1d 100644 --- a/aurora/utilities/factory.py +++ b/aurora/utilities/factory.py @@ -451,7 +451,7 @@ async def addrole_embed(ctx: commands.Context) -> Embed: "id": evalulated_role.id, "mention": evalulated_role.mention, "position": evalulated_role.position, - } + }, ) else: roles.append( @@ -459,7 +459,7 @@ async def addrole_embed(ctx: commands.Context) -> Embed: "id": role, "mention": error(f"`{role}` (Not Found)"), "position": 0, - } + }, ) if roles: @@ -506,7 +506,7 @@ async def immune_embed(ctx: commands.Context) -> Embed: "id": evalulated_role.id, "mention": evalulated_role.mention, "position": evalulated_role.position, - } + }, ) else: roles.append( @@ -514,7 +514,7 @@ async def immune_embed(ctx: commands.Context) -> Embed: "id": role, "mention": error(f"`{role}` (Not Found)"), "position": 0, - } + }, ) if roles: diff --git a/aurora/utilities/utils.py b/aurora/utilities/utils.py index d99bfcd..049eb0d 100644 --- a/aurora/utilities/utils.py +++ b/aurora/utilities/utils.py @@ -104,7 +104,7 @@ async def get_next_case_number(guild_id: str, cursor=None) -> int: def generate_dict(result) -> dict: - case = { + return { "moderation_id": result[0], "timestamp": result[1], "moderation_type": result[2], @@ -122,7 +122,6 @@ def generate_dict(result) -> dict: "changes": json.loads(result[14]), "metadata": json.loads(result[15]), } - return case async def fetch_user_dict(client: commands.Bot, user_id: str) -> dict: @@ -175,11 +174,9 @@ async def fetch_role_dict(guild: Guild, role_id: int) -> dict: """This function returns a dictionary containing either role information or a standard deleted role template.""" role = guild.get_role(int(role_id)) if not role: - role_dict = {"id": role_id, "name": "Deleted Role"} + pass - role_dict = {"id": role.id, "name": role.name} - - return role_dict + return {"id": role.id, "name": role.name} async def log(interaction: Interaction, moderation_id: int, resolved: bool = False) -> None: @@ -245,16 +242,9 @@ def create_pagesize_options() -> list[SelectOption]: label="Default", value="default", description="Reset the pagesize to the default value.", - ) + ), ) - for i in range(1, 21): - options.append( - SelectOption( - label=str(i), - value=str(i), - description=f"Set the pagesize to {i}.", - ) - ) + options.extend(SelectOption(label=str(i), value=str(i), description=f"Set the pagesize to {i}") for i in range(1, 21)) return options From 1c557f6f1fa6f42f2d00c4dac83d0719f7c15a85 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:25:01 -0500 Subject: [PATCH 28/51] fix(actions): correct meli url --- .forgejo/workflows/workflow.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index f352186..143ba1c 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -81,6 +81,6 @@ jobs: --branch "$CI_ACTION_REF_NAME_SLUG" echo "\n${YELLOW}Deployed to ${BLUE}Meli ${YELLOW}on branch ${GREEN}$CI_ACTION_REF_NAME_SLUG${YELLOW}!" - echo "${GREEN}https://$CI_ACTION_REF_NAME_SLUG.seacogs.coastalcommits.com/" + echo "${GREEN}https://$CI_ACTION_REF_NAME_SLUG.seacogs.csw.im/" env: GITEA_TOKEN: ${{ secrets.COASTALCOMMITSTOKEN }} From 12b8dbdbdf82be0dd56741fbea25708b6d736599 Mon Sep 17 00:00:00 2001 From: cswimr Date: Fri, 28 Mar 2025 10:37:49 -0500 Subject: [PATCH 29/51] chore(repo): update readme --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ea29384..90818be 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,56 @@ # SeaCogs [![Discord](https://img.shields.io/discord/1070058354925383681?logo=discord&color=%235661f6)](https://discord.gg/eMUMe77Yb8) -[![Documentation](https://img.shields.io/badge/docs-CoastalCommits%20Pages-3e83fd?logo=materialformkdocs)](https://seacogs.coastalcommits.com) +[![Documentation](https://img.shields.io/badge/docs-CoastalCommits%20Pages-3e83fd?logo=materialformkdocs)](https://seacogs.csw.im) ![Python Versions](https://img.shields.io/badge/python-3.10%20%7C%203.11-%233776ab?logo=python) My assorted cogs for Red-DiscordBot. -## Development +## Developing -To get started with a development environment, first clone this repository. +You'll need some prerequisites before you can start working on my cogs. +[git](https://git-scm.com) - [uv](https://docs.astral.sh/uv) +Additionally, I recommend a code editor of some variety. [Visual Studio Code](https://code.visualstudio.com) is a good, beginner-friendly option. -```sh -git clone https://coastalcommits.com/cswimr/SeaCogs.git +### Installing Prerequisites + +_This section of the guide only applies to Windows systems. +If you're on Linux, refer to the documentation of the projects listed above. I also offer a [Nix Flake](./flake.nix) that contains all of the required prerequisites, if you're a Nix user._ + +#### [`git`](https://git-scm.com) + +You can download git from the [git download page](https://git-scm.com/downloads/win). + +Alternatively, you can use `winget`: + +```ps1 +winget install --id=Git.Git -e --source=winget ``` -Then, install Poetry. +#### [`uv`](https://docs.astral.sh/uv) -```sh -pip install poetry +You can install uv with the following Powershell command: + +```ps1 +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ``` -Finally, use Poetry to create a virtual environment with all of the dependencies required by my cogs. +Alternatively, you can use `winget`: -```sh -poetry install +```ps1 +winget install --id=astral-sh.uv -e +``` + +### Getting the Source Code + +Once you have [`git`](https://git-scm.com) installed, you can use the `git clone` command to get a copy of the repository on your system. + +```bash +git clone https://c.csw.im/cswimr/SeaCogs.git +``` + +Then, you can use `uv` to install the Python dependencies required for development. + +```bash +uv sync --frozen ``` From 7562e1eff261724d2ceee3d315b238712a60c9f9 Mon Sep 17 00:00:00 2001 From: cswimr Date: Sat, 29 Mar 2025 07:09:51 -0500 Subject: [PATCH 30/51] chore(repo): switch to exact versions, as opposed to lower bound version ranges this is because of https://github.com/renovatebot/renovate/discussions/34181 --- pyproject.toml | 38 +++---- uv.lock | 298 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 219 insertions(+), 117 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index bf5bc0c..6f5450e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,33 +7,33 @@ license = { file = "LICENSE" } readme = "README.md" requires-python = ">=3.11" dependencies = [ - "aiosqlite>=0.20.0", - "beautifulsoup4>=4.12.3", - "colorthief>=0.2.1", - "markdownify>=0.14.1", - "numpy>=2.2.2", - "phx-class-registry>=5.1.1", - "pillow>=10.4.0", - "pip>=25.0", + "aiosqlite==0.20.0", + "beautifulsoup4==4.12.3", + "colorthief==0.2.1", + "markdownify==0.14.1", + "numpy==2.2.2", + "phx-class-registry==5.1.1", + "pillow==10.4.0", + "pip==25.0", "py-dactyl", - "pydantic>=2.10.6", - "red-discordbot>=3.5.14", - "watchdog>=6.0.0", - "websockets>=14.2", + "pydantic==2.10.6", + "red-discordbot==3.5.17", + "watchdog==6.0.0", + "websockets==14.2", ] [dependency-groups] documentation = [ - "mkdocs>=1.6.1", - "mkdocs-git-authors-plugin>=0.9.2", - "mkdocs-git-revision-date-localized-plugin>=1.3.0", - "mkdocs-material[imaging]>=9.5.50", - "mkdocs-redirects>=1.2.2", - "mkdocstrings[python]>=0.27.0", + "mkdocs==1.6.1", + "mkdocs-git-authors-plugin==0.9.2", + "mkdocs-git-revision-date-localized-plugin==1.3.0", + "mkdocs-material[imaging]==9.5.50", + "mkdocs-redirects==1.2.2", + "mkdocstrings[python]==0.27.0", ] [tool.uv] -dev-dependencies = ["pylint>=3.3.3", "ruff>=0.9.3", "sqlite-web>=0.6.4"] +dev-dependencies = ["pylint==3.3.3", "ruff==0.9.3", "sqlite-web==0.6.4"] [tool.uv.sources] py-dactyl = { git = "https://github.com/iamkubi/pydactyl", tag = "v2.0.5" } diff --git a/uv.lock b/uv.lock index 4707381..d05d3a4 100644 --- a/uv.lock +++ b/uv.lock @@ -1,7 +1,8 @@ version = 1 requires-python = ">=3.11" resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version < '3.12'", ] @@ -76,14 +77,14 @@ wheels = [ [[package]] name = "aiosqlite" -version = "0.21.0" +version = "0.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454 } +sdist = { url = "https://files.pythonhosted.org/packages/0d/3a/22ff5415bf4d296c1e92b07fd746ad42c96781f13295a074d58e77747848/aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7", size = 21691 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792 }, + { url = "https://files.pythonhosted.org/packages/00/c4/c93eb22025a2de6b83263dfe3d7df2e19138e345bca6f18dba7394120930/aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6", size = 15564 }, ] [[package]] @@ -135,11 +136,11 @@ wheels = [ [[package]] name = "astroid" -version = "3.3.8" +version = "3.3.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/80/c5/5c83c48bbf547f3dd8b587529db7cf5a265a3368b33e85e76af8ff6061d3/astroid-3.3.8.tar.gz", hash = "sha256:a88c7994f914a4ea8572fac479459f4955eeccc877be3f2d959a33273b0cf40b", size = 398196 } +sdist = { url = "https://files.pythonhosted.org/packages/39/33/536530122a22a7504b159bccaf30a1f76aa19d23028bd8b5009eb9b2efea/astroid-3.3.9.tar.gz", hash = "sha256:622cc8e3048684aa42c820d9d218978021c3c3d174fb03a9f0d615921744f550", size = 398731 } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/28/0bc8a17d6cd4cc3c79ae41b7105a2b9a327c110e5ddd37a8a27b29a5c8a2/astroid-3.3.8-py3-none-any.whl", hash = "sha256:187ccc0c248bfbba564826c26f070494f7bc964fd286b6d9fff4420e55de828c", size = 275153 }, + { url = "https://files.pythonhosted.org/packages/de/80/c749efbd8eef5ea77c7d6f1956e8fbfb51963b7f93ef79647afd4d9886e3/astroid-3.3.9-py3-none-any.whl", hash = "sha256:d05bfd0acba96a7bd43e222828b7d9bc1e138aaeb0649707908d3702a9831248", size = 275339 }, ] [[package]] @@ -160,6 +161,46 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a", size = 63152 }, ] +[[package]] +name = "audioop-lts" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dd/3b/69ff8a885e4c1c42014c2765275c4bd91fe7bc9847e9d8543dbcbb09f820/audioop_lts-0.2.1.tar.gz", hash = "sha256:e81268da0baa880431b68b1308ab7257eb33f356e57a5f9b1f915dfb13dd1387", size = 30204 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/91/a219253cc6e92db2ebeaf5cf8197f71d995df6f6b16091d1f3ce62cb169d/audioop_lts-0.2.1-cp313-abi3-macosx_10_13_universal2.whl", hash = "sha256:fd1345ae99e17e6910f47ce7d52673c6a1a70820d78b67de1b7abb3af29c426a", size = 46252 }, + { url = "https://files.pythonhosted.org/packages/ec/f6/3cb21e0accd9e112d27cee3b1477cd04dafe88675c54ad8b0d56226c1e0b/audioop_lts-0.2.1-cp313-abi3-macosx_10_13_x86_64.whl", hash = "sha256:e175350da05d2087e12cea8e72a70a1a8b14a17e92ed2022952a4419689ede5e", size = 27183 }, + { url = "https://files.pythonhosted.org/packages/ea/7e/f94c8a6a8b2571694375b4cf94d3e5e0f529e8e6ba280fad4d8c70621f27/audioop_lts-0.2.1-cp313-abi3-macosx_11_0_arm64.whl", hash = "sha256:4a8dd6a81770f6ecf019c4b6d659e000dc26571b273953cef7cd1d5ce2ff3ae6", size = 26726 }, + { url = "https://files.pythonhosted.org/packages/ef/f8/a0e8e7a033b03fae2b16bc5aa48100b461c4f3a8a38af56d5ad579924a3a/audioop_lts-0.2.1-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cd3c0b6f2ca25c7d2b1c3adeecbe23e65689839ba73331ebc7d893fcda7ffe", size = 80718 }, + { url = "https://files.pythonhosted.org/packages/8f/ea/a98ebd4ed631c93b8b8f2368862cd8084d75c77a697248c24437c36a6f7e/audioop_lts-0.2.1-cp313-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff3f97b3372c97782e9c6d3d7fdbe83bce8f70de719605bd7ee1839cd1ab360a", size = 88326 }, + { url = "https://files.pythonhosted.org/packages/33/79/e97a9f9daac0982aa92db1199339bd393594d9a4196ad95ae088635a105f/audioop_lts-0.2.1-cp313-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a351af79edefc2a1bd2234bfd8b339935f389209943043913a919df4b0f13300", size = 80539 }, + { url = "https://files.pythonhosted.org/packages/b2/d3/1051d80e6f2d6f4773f90c07e73743a1e19fcd31af58ff4e8ef0375d3a80/audioop_lts-0.2.1-cp313-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2aeb6f96f7f6da80354330470b9134d81b4cf544cdd1c549f2f45fe964d28059", size = 78577 }, + { url = "https://files.pythonhosted.org/packages/7a/1d/54f4c58bae8dc8c64a75071c7e98e105ddaca35449376fcb0180f6e3c9df/audioop_lts-0.2.1-cp313-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c589f06407e8340e81962575fcffbba1e92671879a221186c3d4662de9fe804e", size = 82074 }, + { url = "https://files.pythonhosted.org/packages/36/89/2e78daa7cebbea57e72c0e1927413be4db675548a537cfba6a19040d52fa/audioop_lts-0.2.1-cp313-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fbae5d6925d7c26e712f0beda5ed69ebb40e14212c185d129b8dfbfcc335eb48", size = 84210 }, + { url = "https://files.pythonhosted.org/packages/a5/57/3ff8a74df2ec2fa6d2ae06ac86e4a27d6412dbb7d0e0d41024222744c7e0/audioop_lts-0.2.1-cp313-abi3-musllinux_1_2_i686.whl", hash = "sha256:d2d5434717f33117f29b5691fbdf142d36573d751716249a288fbb96ba26a281", size = 85664 }, + { url = "https://files.pythonhosted.org/packages/16/01/21cc4e5878f6edbc8e54be4c108d7cb9cb6202313cfe98e4ece6064580dd/audioop_lts-0.2.1-cp313-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:f626a01c0a186b08f7ff61431c01c055961ee28769591efa8800beadd27a2959", size = 93255 }, + { url = "https://files.pythonhosted.org/packages/3e/28/7f7418c362a899ac3b0bf13b1fde2d4ffccfdeb6a859abd26f2d142a1d58/audioop_lts-0.2.1-cp313-abi3-musllinux_1_2_s390x.whl", hash = "sha256:05da64e73837f88ee5c6217d732d2584cf638003ac72df124740460531e95e47", size = 87760 }, + { url = "https://files.pythonhosted.org/packages/6d/d8/577a8be87dc7dd2ba568895045cee7d32e81d85a7e44a29000fe02c4d9d4/audioop_lts-0.2.1-cp313-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:56b7a0a4dba8e353436f31a932f3045d108a67b5943b30f85a5563f4d8488d77", size = 84992 }, + { url = "https://files.pythonhosted.org/packages/ef/9a/4699b0c4fcf89936d2bfb5425f55f1a8b86dff4237cfcc104946c9cd9858/audioop_lts-0.2.1-cp313-abi3-win32.whl", hash = "sha256:6e899eb8874dc2413b11926b5fb3857ec0ab55222840e38016a6ba2ea9b7d5e3", size = 26059 }, + { url = "https://files.pythonhosted.org/packages/3a/1c/1f88e9c5dd4785a547ce5fd1eb83fff832c00cc0e15c04c1119b02582d06/audioop_lts-0.2.1-cp313-abi3-win_amd64.whl", hash = "sha256:64562c5c771fb0a8b6262829b9b4f37a7b886c01b4d3ecdbae1d629717db08b4", size = 30412 }, + { url = "https://files.pythonhosted.org/packages/c4/e9/c123fd29d89a6402ad261516f848437472ccc602abb59bba522af45e281b/audioop_lts-0.2.1-cp313-abi3-win_arm64.whl", hash = "sha256:c45317debeb64002e980077642afbd977773a25fa3dfd7ed0c84dccfc1fafcb0", size = 23578 }, + { url = "https://files.pythonhosted.org/packages/7a/99/bb664a99561fd4266687e5cb8965e6ec31ba4ff7002c3fce3dc5ef2709db/audioop_lts-0.2.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:3827e3fce6fee4d69d96a3d00cd2ab07f3c0d844cb1e44e26f719b34a5b15455", size = 46827 }, + { url = "https://files.pythonhosted.org/packages/c4/e3/f664171e867e0768ab982715e744430cf323f1282eb2e11ebfb6ee4c4551/audioop_lts-0.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:161249db9343b3c9780ca92c0be0d1ccbfecdbccac6844f3d0d44b9c4a00a17f", size = 27479 }, + { url = "https://files.pythonhosted.org/packages/a6/0d/2a79231ff54eb20e83b47e7610462ad6a2bea4e113fae5aa91c6547e7764/audioop_lts-0.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5b7b4ff9de7a44e0ad2618afdc2ac920b91f4a6d3509520ee65339d4acde5abf", size = 27056 }, + { url = "https://files.pythonhosted.org/packages/86/46/342471398283bb0634f5a6df947806a423ba74b2e29e250c7ec0e3720e4f/audioop_lts-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72e37f416adb43b0ced93419de0122b42753ee74e87070777b53c5d2241e7fab", size = 87802 }, + { url = "https://files.pythonhosted.org/packages/56/44/7a85b08d4ed55517634ff19ddfbd0af05bf8bfd39a204e4445cd0e6f0cc9/audioop_lts-0.2.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:534ce808e6bab6adb65548723c8cbe189a3379245db89b9d555c4210b4aaa9b6", size = 95016 }, + { url = "https://files.pythonhosted.org/packages/a8/2a/45edbca97ea9ee9e6bbbdb8d25613a36e16a4d1e14ae01557392f15cc8d3/audioop_lts-0.2.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2de9b6fb8b1cf9f03990b299a9112bfdf8b86b6987003ca9e8a6c4f56d39543", size = 87394 }, + { url = "https://files.pythonhosted.org/packages/14/ae/832bcbbef2c510629593bf46739374174606e25ac7d106b08d396b74c964/audioop_lts-0.2.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f24865991b5ed4b038add5edbf424639d1358144f4e2a3e7a84bc6ba23e35074", size = 84874 }, + { url = "https://files.pythonhosted.org/packages/26/1c/8023c3490798ed2f90dfe58ec3b26d7520a243ae9c0fc751ed3c9d8dbb69/audioop_lts-0.2.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bdb3b7912ccd57ea53197943f1bbc67262dcf29802c4a6df79ec1c715d45a78", size = 88698 }, + { url = "https://files.pythonhosted.org/packages/2c/db/5379d953d4918278b1f04a5a64b2c112bd7aae8f81021009da0dcb77173c/audioop_lts-0.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:120678b208cca1158f0a12d667af592e067f7a50df9adc4dc8f6ad8d065a93fb", size = 90401 }, + { url = "https://files.pythonhosted.org/packages/99/6e/3c45d316705ab1aec2e69543a5b5e458d0d112a93d08994347fafef03d50/audioop_lts-0.2.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:54cd4520fc830b23c7d223693ed3e1b4d464997dd3abc7c15dce9a1f9bd76ab2", size = 91864 }, + { url = "https://files.pythonhosted.org/packages/08/58/6a371d8fed4f34debdb532c0b00942a84ebf3e7ad368e5edc26931d0e251/audioop_lts-0.2.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:d6bd20c7a10abcb0fb3d8aaa7508c0bf3d40dfad7515c572014da4b979d3310a", size = 98796 }, + { url = "https://files.pythonhosted.org/packages/ee/77/d637aa35497e0034ff846fd3330d1db26bc6fd9dd79c406e1341188b06a2/audioop_lts-0.2.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:f0ed1ad9bd862539ea875fb339ecb18fcc4148f8d9908f4502df28f94d23491a", size = 94116 }, + { url = "https://files.pythonhosted.org/packages/1a/60/7afc2abf46bbcf525a6ebc0305d85ab08dc2d1e2da72c48dbb35eee5b62c/audioop_lts-0.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e1af3ff32b8c38a7d900382646e91f2fc515fd19dea37e9392275a5cbfdbff63", size = 91520 }, + { url = "https://files.pythonhosted.org/packages/65/6d/42d40da100be1afb661fd77c2b1c0dfab08af1540df57533621aea3db52a/audioop_lts-0.2.1-cp313-cp313t-win32.whl", hash = "sha256:f51bb55122a89f7a0817d7ac2319744b4640b5b446c4c3efcea5764ea99ae509", size = 26482 }, + { url = "https://files.pythonhosted.org/packages/01/09/f08494dca79f65212f5b273aecc5a2f96691bf3307cac29acfcf84300c01/audioop_lts-0.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f0f2f336aa2aee2bce0b0dcc32bbba9178995454c7b979cf6ce086a8801e14c7", size = 30780 }, + { url = "https://files.pythonhosted.org/packages/5d/35/be73b6015511aa0173ec595fc579133b797ad532996f2998fd6b8d1bbe6b/audioop_lts-0.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:78bfb3703388c780edf900be66e07de5a3d4105ca8e8720c5c4d67927e0b15d0", size = 23918 }, +] + [[package]] name = "babel" version = "2.17.0" @@ -171,15 +212,14 @@ wheels = [ [[package]] name = "beautifulsoup4" -version = "4.13.3" +version = "4.12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve" }, - { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516 } +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, ] [[package]] @@ -410,15 +450,15 @@ wheels = [ [[package]] name = "cssselect2" -version = "0.7.0" +version = "0.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tinycss2" }, { name = "webencodings" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e7/fc/326cb6f988905998f09bb54a3f5d98d4462ba119363c0dfad29750d48c09/cssselect2-0.7.0.tar.gz", hash = "sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a", size = 35888 } +sdist = { url = "https://files.pythonhosted.org/packages/9f/86/fd7f58fc498b3166f3a7e8e0cddb6e620fe1da35b02248b1bd59e95dbaaa/cssselect2-0.8.0.tar.gz", hash = "sha256:7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a", size = 35716 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/3a/e39436efe51894243ff145a37c4f9a030839b97779ebcc4f13b3ba21c54e/cssselect2-0.7.0-py3-none-any.whl", hash = "sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969", size = 15586 }, + { url = "https://files.pythonhosted.org/packages/0f/e7/aa315e6a749d9b96c2504a1ba0ba031ba2d0517e972ce22682e3fccecb09/cssselect2-0.8.0-py3-none-any.whl", hash = "sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e", size = 15454 }, ] [[package]] @@ -441,14 +481,15 @@ wheels = [ [[package]] name = "discord-py" -version = "2.4.0" +version = "2.5.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, + { name = "audioop-lts", marker = "python_full_version >= '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/39/af/80cab4015722d3bee175509b7249a11d5adf77b5ff4c27f268558079d149/discord_py-2.4.0.tar.gz", hash = "sha256:d07cb2a223a185873a1d0ee78b9faa9597e45b3f6186df21a95cec1e9bcdc9a5", size = 1027707 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/dd/5817c7af5e614e45cdf38cbf6c3f4597590c442822a648121a34dee7fa0f/discord_py-2.5.2.tar.gz", hash = "sha256:01cd362023bfea1a4a1d43f5280b5ef00cad2c7eba80098909f98bf28e578524", size = 1054879 } wheels = [ - { url = "https://files.pythonhosted.org/packages/23/10/3c44e9331a5ec3bae8b2919d51f611a5b94e179563b1b89eb6423a8f43eb/discord.py-2.4.0-py3-none-any.whl", hash = "sha256:b8af6711c70f7e62160bfbecb55be699b5cb69d007426759ab8ab06b1bd77d1d", size = 1125988 }, + { url = "https://files.pythonhosted.org/packages/57/a8/dc908a0fe4cd7e3950c9fa6906f7bf2e5d92d36b432f84897185e1b77138/discord_py-2.5.2-py3-none-any.whl", hash = "sha256:81f23a17c50509ffebe0668441cb80c139e74da5115305f70e27ce821361295a", size = 1155105 }, ] [[package]] @@ -568,14 +609,14 @@ wheels = [ [[package]] name = "griffe" -version = "1.5.6" +version = "1.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/88/f0/a001e06c321dfa220103418259afbac50b933eac7a86657a4b572f0517e8/griffe-1.5.6.tar.gz", hash = "sha256:181f6666d5aceb6cd6e2da5a2b646cfb431e47a0da1fda283845734b67e10944", size = 391173 } +sdist = { url = "https://files.pythonhosted.org/packages/30/1b/fe7a3a33a2fb7ad7807f71957e6108a50d93271ab718d9a56080415f66de/griffe-1.7.1.tar.gz", hash = "sha256:464730d0e95d0afd038e699a5f7276d7438d0712db0c489a17e761f70e011507", size = 394522 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/87/505777c4e5ca9c4fa5ae53fa4b0d5c2ba13a6d55a503a5594e94a2ba9b5a/griffe-1.5.6-py3-none-any.whl", hash = "sha256:b2a3afe497c6c1f952e54a23095ecc09435016293e77af8478ed65df1022a394", size = 128176 }, + { url = "https://files.pythonhosted.org/packages/1d/94/48e28b1c7402f750200e9e3ef4834c862ea85c64f426a231a6dc312f61a9/griffe-1.7.1-py3-none-any.whl", hash = "sha256:37a7f15233937d723ddc969fa4117fdd03988885c16938dc43bccdfe8fa4d02d", size = 129134 }, ] [[package]] @@ -592,7 +633,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "python_full_version >= '3.12'" }, + { name = "zipp" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -601,11 +642,11 @@ wheels = [ [[package]] name = "isort" -version = "6.0.0" +version = "5.13.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1c/28/b382d1656ac0ee4cef4bf579b13f9c6c813bff8a5cb5996669592c8c75fa/isort-6.0.0.tar.gz", hash = "sha256:75d9d8a1438a9432a7d7b54f2d3b45cad9a4a0fdba43617d9873379704a8bdf1", size = 828356 } +sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303 } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c7/d6017f09ae5b1206fbe531f7af3b6dac1f67aedcbd2e79f3b386c27955d6/isort-6.0.0-py3-none-any.whl", hash = "sha256:567954102bb47bb12e0fae62606570faacddd441e45683968c8d1734fb1af892", size = 94053 }, + { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 }, ] [[package]] @@ -619,14 +660,14 @@ wheels = [ [[package]] name = "jinja2" -version = "3.1.5" +version = "3.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/af/92/b3130cbbf5591acf9ade8708c365f3238046ac7cb8ccba6e81abccb0ccff/jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb", size = 244674 } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, ] [[package]] @@ -764,16 +805,16 @@ wheels = [ [[package]] name = "mkdocs-autorefs" -version = "1.3.0" +version = "1.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown" }, { name = "markupsafe" }, { name = "mkdocs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/18/fb1e17fb705228b51bf7b2f791adaf83c0fa708e51bbc003411ba48ae21e/mkdocs_autorefs-1.3.0.tar.gz", hash = "sha256:6867764c099ace9025d6ac24fd07b85a98335fbd30107ef01053697c8f46db61", size = 42597 } +sdist = { url = "https://files.pythonhosted.org/packages/c2/44/140469d87379c02f1e1870315f3143718036a983dd0416650827b8883192/mkdocs_autorefs-1.4.1.tar.gz", hash = "sha256:4b5b6235a4becb2b10425c2fa191737e415b37aa3418919db33e5d774c9db079", size = 4131355 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/4a/960c441950f98becfa5dd419adab20274939fd575ab848aee2c87e3599ac/mkdocs_autorefs-1.3.0-py3-none-any.whl", hash = "sha256:d180f9778a04e78b7134e31418f238bba56f56d6a8af97873946ff661befffb3", size = 17642 }, + { url = "https://files.pythonhosted.org/packages/f8/29/1125f7b11db63e8e32bcfa0752a4eea30abff3ebd0796f808e14571ddaa2/mkdocs_autorefs-1.4.1-py3-none-any.whl", hash = "sha256:9793c5ac06a6ebbe52ec0f8439256e66187badf4b5334b5fde0b128ec134df4f", size = 5782047 }, ] [[package]] @@ -819,7 +860,7 @@ wheels = [ [[package]] name = "mkdocs-material" -version = "9.6.2" +version = "9.5.50" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, @@ -834,9 +875,9 @@ dependencies = [ { name = "regex" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/75/fb8f772d4acf5439a446aedbe6e49b4c42a4bc4f8c866c930a7b0c3be2f8/mkdocs_material-9.6.2.tar.gz", hash = "sha256:a3de1c5d4c745f10afa78b1a02f917b9dce0808fb206adc0f5bb48b58c1ca21f", size = 3942567 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/16/c48d5a28bc4a67c49808180b6009d4d1b4c0753739ffee3cc37046ab29d7/mkdocs_material-9.5.50.tar.gz", hash = "sha256:ae5fe16f3d7c9ccd05bb6916a7da7420cf99a9ce5e33debd9d40403a090d5825", size = 3923354 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/17/b97aa245d43933acd416361d4f34612baec8ad4a6337339d45448cde728d/mkdocs_material-9.6.2-py3-none-any.whl", hash = "sha256:71d90dbd63b393ad11a4d90151dfe3dcbfcd802c0f29ce80bebd9bbac6abc753", size = 8688648 }, + { url = "https://files.pythonhosted.org/packages/ee/b5/1bf29cd744896ae83bd38c72970782c843ba13e0240b1a85277bd3928637/mkdocs_material-9.5.50-py3-none-any.whl", hash = "sha256:f24100f234741f4d423a9d672a909d859668a4f404796be3cf035f10d6050385", size = 8645274 }, ] [package.optional-dependencies] @@ -868,20 +909,21 @@ wheels = [ [[package]] name = "mkdocstrings" -version = "0.28.0" +version = "0.27.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "click" }, { name = "jinja2" }, { name = "markdown" }, { name = "markupsafe" }, { name = "mkdocs" }, { name = "mkdocs-autorefs" }, - { name = "mkdocs-get-deps" }, + { name = "platformdirs" }, { name = "pymdown-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/86/4b/70522427768a4637ffac376140f362dc3d159364fb64e698667e51053d57/mkdocstrings-0.28.0.tar.gz", hash = "sha256:df20afef1eafe36ba466ae20732509ecb74237653a585f5061937e54b553b4e0", size = 3392797 } +sdist = { url = "https://files.pythonhosted.org/packages/e2/5a/5de70538c2cefae7ac3a15b5601e306ef3717290cb2aab11d51cbbc2d1c0/mkdocstrings-0.27.0.tar.gz", hash = "sha256:16adca6d6b0a1f9e0c07ff0b02ced8e16f228a9d65a37c063ec4c14d7b76a657", size = 94830 } wheels = [ - { url = "https://files.pythonhosted.org/packages/75/c3/e5a319d4de0867c1b59ff22abb93bf898f9812e934ab75dcf7fe94e85bb6/mkdocstrings-0.28.0-py3-none-any.whl", hash = "sha256:84cf3dc910614781fe0fee46ce8006fde7df6cc7cca2e3f799895fb8a9170b39", size = 4700952 }, + { url = "https://files.pythonhosted.org/packages/cd/10/4c27c3063c2b3681a4b7942f8dbdeb4fa34fecb2c19b594e7345ebf4f86f/mkdocstrings-0.27.0-py3-none-any.whl", hash = "sha256:6ceaa7ea830770959b55a16203ac63da24badd71325b96af950e59fd37366332", size = 30658 }, ] [package.optional-dependencies] @@ -891,16 +933,16 @@ python = [ [[package]] name = "mkdocstrings-python" -version = "1.14.5" +version = "1.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "griffe" }, { name = "mkdocs-autorefs" }, { name = "mkdocstrings" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/00/75f8badeca7bcc06dd2ca0a09b98998b228beb2109f6dd4e9155ea6a6cc7/mkdocstrings_python-1.14.5.tar.gz", hash = "sha256:8582eeac8cce952f395d76ec636fc814757cba7d8458aa75ba0529a3aa10d98c", size = 421738 } +sdist = { url = "https://files.pythonhosted.org/packages/ab/ae/32703e35d74040051c672400fd9f5f2b48a6ea094f5071dd8a0e3be35322/mkdocstrings_python-1.13.0.tar.gz", hash = "sha256:2dbd5757e8375b9720e81db16f52f1856bf59905428fd7ef88005d1370e2f64c", size = 185697 } wheels = [ - { url = "https://files.pythonhosted.org/packages/17/1e/c970d43d2dc844b7dfabb5daf24bc1c8ffdb40c56e3ec65d6dc78879ce16/mkdocstrings_python-1.14.5-py3-none-any.whl", hash = "sha256:ac394f273ae298aeaa6be4506768f05e61bd7c8119437ea98553354b1185c469", size = 448584 }, + { url = "https://files.pythonhosted.org/packages/51/23/d02d86553327296c3bf369d444194ea83410cce8f0e690565264f37f3261/mkdocstrings_python-1.13.0-py3-none-any.whl", hash = "sha256:b88bbb207bab4086434743849f8e796788b373bd32e7bfefbf8560ac45d88f97", size = 112254 }, ] [[package]] @@ -1212,17 +1254,17 @@ wheels = [ [[package]] name = "psutil" -version = "6.1.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, ] [[package]] @@ -1320,7 +1362,7 @@ wheels = [ [[package]] name = "pylint" -version = "3.3.4" +version = "3.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astroid" }, @@ -1331,9 +1373,9 @@ dependencies = [ { name = "platformdirs" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/b9/50be49afc91469f832c4bf12318ab4abe56ee9aa3700a89aad5359ad195f/pylint-3.3.4.tar.gz", hash = "sha256:74ae7a38b177e69a9b525d0794bd8183820bfa7eb68cc1bee6e8ed22a42be4ce", size = 1518905 } +sdist = { url = "https://files.pythonhosted.org/packages/17/fd/e9a739afac274a39596bbe562e9d966db6f3917fdb2bd7322ffc56da0ba2/pylint-3.3.3.tar.gz", hash = "sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a", size = 1516550 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/8b/eef15df5f4e7aa393de31feb96ca9a3d6639669bd59d589d0685d5ef4e62/pylint-3.3.4-py3-none-any.whl", hash = "sha256:289e6a1eb27b453b08436478391a48cd53bb0efb824873f949e709350f3de018", size = 522280 }, + { url = "https://files.pythonhosted.org/packages/91/e1/26d55acea92b1ea4d33672e48f09ceeb274e84d7d542a4fb9a32a556db46/pylint-3.3.3-py3-none-any.whl", hash = "sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183", size = 521918 }, ] [[package]] @@ -1363,11 +1405,11 @@ wheels = [ [[package]] name = "pytz" -version = "2025.1" +version = "2025.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617 } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884 } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930 }, + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, ] [[package]] @@ -1481,7 +1523,7 @@ wheels = [ [[package]] name = "red-discordbot" -version = "3.5.16" +version = "3.5.17" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -1521,10 +1563,11 @@ dependencies = [ { name = "uvloop", marker = "platform_python_implementation == 'CPython' and sys_platform != 'win32'" }, { name = "yarl" }, { name = "zipp", marker = "python_full_version >= '3.12'" }, + { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8a/2a/3d3ae9ba47de022a1a47ed5f5ea08739b069b079508a7a818bd74d18e29f/red_discordbot-3.5.16.tar.gz", hash = "sha256:f77f54cd65523ed0ea30b40cc81b07574fe10d1f1a80d013281c872664cabb35", size = 3685700 } +sdist = { url = "https://files.pythonhosted.org/packages/25/68/265ea5a29eafad00bab2f34395af56e07228e631ff2b24b831bb3043ca69/red_discordbot-3.5.17.tar.gz", hash = "sha256:defcb2d27a20f800157ebe82240e4180be04b3fecd6d5022840e57fb6418b2cb", size = 3735303 } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/58/4ae469ee7961bc8f488669432ffb62d42a89376ad92ed809d66512228f27/Red_DiscordBot-3.5.16-py3-none-any.whl", hash = "sha256:c042c20b94b3e12b388b8ffa1d0472179403630d3e979108e7ee288a549f2ec2", size = 5777054 }, + { url = "https://files.pythonhosted.org/packages/6b/ed/d35c8ff2109e38891afcd1ffcc27da74803a218bee32ee29aca0bdeb42e3/Red_DiscordBot-3.5.17-py3-none-any.whl", hash = "sha256:751fe88a6b9ab89daf82f1e6d6d84775ba6e26f5e852769450e15e7307d9456d", size = 5883300 }, ] [[package]] @@ -1624,27 +1667,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.9.4" +version = "0.9.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c0/17/529e78f49fc6f8076f50d985edd9a2cf011d1dbadb1cdeacc1d12afc1d26/ruff-0.9.4.tar.gz", hash = "sha256:6907ee3529244bb0ed066683e075f09285b38dd5b4039370df6ff06041ca19e7", size = 3599458 } +sdist = { url = "https://files.pythonhosted.org/packages/1e/7f/60fda2eec81f23f8aa7cbbfdf6ec2ca11eb11c273827933fb2541c2ce9d8/ruff-0.9.3.tar.gz", hash = "sha256:8293f89985a090ebc3ed1064df31f3b4b56320cdfcec8b60d3295bddb955c22a", size = 3586740 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/f8/3fafb7804d82e0699a122101b5bee5f0d6e17c3a806dcbc527bb7d3f5b7a/ruff-0.9.4-py3-none-linux_armv6l.whl", hash = "sha256:64e73d25b954f71ff100bb70f39f1ee09e880728efb4250c632ceed4e4cdf706", size = 11668400 }, - { url = "https://files.pythonhosted.org/packages/2e/a6/2efa772d335da48a70ab2c6bb41a096c8517ca43c086ea672d51079e3d1f/ruff-0.9.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6ce6743ed64d9afab4fafeaea70d3631b4d4b28b592db21a5c2d1f0ef52934bf", size = 11628395 }, - { url = "https://files.pythonhosted.org/packages/dc/d7/cd822437561082f1c9d7225cc0d0fbb4bad117ad7ac3c41cd5d7f0fa948c/ruff-0.9.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:54499fb08408e32b57360f6f9de7157a5fec24ad79cb3f42ef2c3f3f728dfe2b", size = 11090052 }, - { url = "https://files.pythonhosted.org/packages/9e/67/3660d58e893d470abb9a13f679223368ff1684a4ef40f254a0157f51b448/ruff-0.9.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37c892540108314a6f01f105040b5106aeb829fa5fb0561d2dcaf71485021137", size = 11882221 }, - { url = "https://files.pythonhosted.org/packages/79/d1/757559995c8ba5f14dfec4459ef2dd3fcea82ac43bc4e7c7bf47484180c0/ruff-0.9.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de9edf2ce4b9ddf43fd93e20ef635a900e25f622f87ed6e3047a664d0e8f810e", size = 11424862 }, - { url = "https://files.pythonhosted.org/packages/c0/96/7915a7c6877bb734caa6a2af424045baf6419f685632469643dbd8eb2958/ruff-0.9.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87c90c32357c74f11deb7fbb065126d91771b207bf9bfaaee01277ca59b574ec", size = 12626735 }, - { url = "https://files.pythonhosted.org/packages/0e/cc/dadb9b35473d7cb17c7ffe4737b4377aeec519a446ee8514123ff4a26091/ruff-0.9.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:56acd6c694da3695a7461cc55775f3a409c3815ac467279dfa126061d84b314b", size = 13255976 }, - { url = "https://files.pythonhosted.org/packages/5f/c3/ad2dd59d3cabbc12df308cced780f9c14367f0321e7800ca0fe52849da4c/ruff-0.9.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0c93e7d47ed951b9394cf352d6695b31498e68fd5782d6cbc282425655f687a", size = 12752262 }, - { url = "https://files.pythonhosted.org/packages/c7/17/5f1971e54bd71604da6788efd84d66d789362b1105e17e5ccc53bba0289b/ruff-0.9.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4c8772670aecf037d1bf7a07c39106574d143b26cfe5ed1787d2f31e800214", size = 14401648 }, - { url = "https://files.pythonhosted.org/packages/30/24/6200b13ea611b83260501b6955b764bb320e23b2b75884c60ee7d3f0b68e/ruff-0.9.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfc5f1d7afeda8d5d37660eeca6d389b142d7f2b5a1ab659d9214ebd0e025231", size = 12414702 }, - { url = "https://files.pythonhosted.org/packages/34/cb/f5d50d0c4ecdcc7670e348bd0b11878154bc4617f3fdd1e8ad5297c0d0ba/ruff-0.9.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:faa935fc00ae854d8b638c16a5f1ce881bc3f67446957dd6f2af440a5fc8526b", size = 11859608 }, - { url = "https://files.pythonhosted.org/packages/d6/f4/9c8499ae8426da48363bbb78d081b817b0f64a9305f9b7f87eab2a8fb2c1/ruff-0.9.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6c634fc6f5a0ceae1ab3e13c58183978185d131a29c425e4eaa9f40afe1e6d6", size = 11485702 }, - { url = "https://files.pythonhosted.org/packages/18/59/30490e483e804ccaa8147dd78c52e44ff96e1c30b5a95d69a63163cdb15b/ruff-0.9.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:433dedf6ddfdec7f1ac7575ec1eb9844fa60c4c8c2f8887a070672b8d353d34c", size = 12067782 }, - { url = "https://files.pythonhosted.org/packages/3d/8c/893fa9551760b2f8eb2a351b603e96f15af167ceaf27e27ad873570bc04c/ruff-0.9.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d612dbd0f3a919a8cc1d12037168bfa536862066808960e0cc901404b77968f0", size = 12483087 }, - { url = "https://files.pythonhosted.org/packages/23/15/f6751c07c21ca10e3f4a51ea495ca975ad936d780c347d9808bcedbd7182/ruff-0.9.4-py3-none-win32.whl", hash = "sha256:db1192ddda2200671f9ef61d9597fcef89d934f5d1705e571a93a67fb13a4402", size = 9852302 }, - { url = "https://files.pythonhosted.org/packages/12/41/2d2d2c6a72e62566f730e49254f602dfed23019c33b5b21ea8f8917315a1/ruff-0.9.4-py3-none-win_amd64.whl", hash = "sha256:05bebf4cdbe3ef75430d26c375773978950bbf4ee3c95ccb5448940dc092408e", size = 10850051 }, - { url = "https://files.pythonhosted.org/packages/c6/e6/3d6ec3bc3d254e7f005c543a661a41c3e788976d0e52a1ada195bd664344/ruff-0.9.4-py3-none-win_arm64.whl", hash = "sha256:585792f1e81509e38ac5123492f8875fbc36f3ede8185af0a26df348e5154f41", size = 10078251 }, + { url = "https://files.pythonhosted.org/packages/f9/77/4fb790596d5d52c87fd55b7160c557c400e90f6116a56d82d76e95d9374a/ruff-0.9.3-py3-none-linux_armv6l.whl", hash = "sha256:7f39b879064c7d9670197d91124a75d118d00b0990586549949aae80cdc16624", size = 11656815 }, + { url = "https://files.pythonhosted.org/packages/a2/a8/3338ecb97573eafe74505f28431df3842c1933c5f8eae615427c1de32858/ruff-0.9.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a187171e7c09efa4b4cc30ee5d0d55a8d6c5311b3e1b74ac5cb96cc89bafc43c", size = 11594821 }, + { url = "https://files.pythonhosted.org/packages/8e/89/320223c3421962762531a6b2dd58579b858ca9916fb2674874df5e97d628/ruff-0.9.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c59ab92f8e92d6725b7ded9d4a31be3ef42688a115c6d3da9457a5bda140e2b4", size = 11040475 }, + { url = "https://files.pythonhosted.org/packages/b2/bd/1d775eac5e51409535804a3a888a9623e87a8f4b53e2491580858a083692/ruff-0.9.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc153c25e715be41bb228bc651c1e9b1a88d5c6e5ed0194fa0dfea02b026439", size = 11856207 }, + { url = "https://files.pythonhosted.org/packages/7f/c6/3e14e09be29587393d188454064a4aa85174910d16644051a80444e4fd88/ruff-0.9.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:646909a1e25e0dc28fbc529eab8eb7bb583079628e8cbe738192853dbbe43af5", size = 11420460 }, + { url = "https://files.pythonhosted.org/packages/ef/42/b7ca38ffd568ae9b128a2fa76353e9a9a3c80ef19746408d4ce99217ecc1/ruff-0.9.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a5a46e09355695fbdbb30ed9889d6cf1c61b77b700a9fafc21b41f097bfbba4", size = 12605472 }, + { url = "https://files.pythonhosted.org/packages/a6/a1/3167023f23e3530fde899497ccfe239e4523854cb874458ac082992d206c/ruff-0.9.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c4bb09d2bbb394e3730d0918c00276e79b2de70ec2a5231cd4ebb51a57df9ba1", size = 13243123 }, + { url = "https://files.pythonhosted.org/packages/d0/b4/3c600758e320f5bf7de16858502e849f4216cb0151f819fa0d1154874802/ruff-0.9.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96a87ec31dc1044d8c2da2ebbed1c456d9b561e7d087734336518181b26b3aa5", size = 12744650 }, + { url = "https://files.pythonhosted.org/packages/be/38/266fbcbb3d0088862c9bafa8b1b99486691d2945a90b9a7316336a0d9a1b/ruff-0.9.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb7554aca6f842645022fe2d301c264e6925baa708b392867b7a62645304df4", size = 14458585 }, + { url = "https://files.pythonhosted.org/packages/63/a6/47fd0e96990ee9b7a4abda62de26d291bd3f7647218d05b7d6d38af47c30/ruff-0.9.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabc332b7075a914ecea912cd1f3d4370489c8018f2c945a30bcc934e3bc06a6", size = 12419624 }, + { url = "https://files.pythonhosted.org/packages/84/5d/de0b7652e09f7dda49e1a3825a164a65f4998175b6486603c7601279baad/ruff-0.9.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:33866c3cc2a575cbd546f2cd02bdd466fed65118e4365ee538a3deffd6fcb730", size = 11843238 }, + { url = "https://files.pythonhosted.org/packages/9e/be/3f341ceb1c62b565ec1fb6fd2139cc40b60ae6eff4b6fb8f94b1bb37c7a9/ruff-0.9.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:006e5de2621304c8810bcd2ee101587712fa93b4f955ed0985907a36c427e0c2", size = 11484012 }, + { url = "https://files.pythonhosted.org/packages/a3/c8/ff8acbd33addc7e797e702cf00bfde352ab469723720c5607b964491d5cf/ruff-0.9.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ba6eea4459dbd6b1be4e6bfc766079fb9b8dd2e5a35aff6baee4d9b1514ea519", size = 12038494 }, + { url = "https://files.pythonhosted.org/packages/73/b1/8d9a2c0efbbabe848b55f877bc10c5001a37ab10aca13c711431673414e5/ruff-0.9.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:90230a6b8055ad47d3325e9ee8f8a9ae7e273078a66401ac66df68943ced029b", size = 12473639 }, + { url = "https://files.pythonhosted.org/packages/cb/44/a673647105b1ba6da9824a928634fe23186ab19f9d526d7bdf278cd27bc3/ruff-0.9.3-py3-none-win32.whl", hash = "sha256:eabe5eb2c19a42f4808c03b82bd313fc84d4e395133fb3fc1b1516170a31213c", size = 9834353 }, + { url = "https://files.pythonhosted.org/packages/c3/01/65cadb59bf8d4fbe33d1a750103e6883d9ef302f60c28b73b773092fbde5/ruff-0.9.3-py3-none-win_amd64.whl", hash = "sha256:040ceb7f20791dfa0e78b4230ee9dce23da3b64dd5848e40e3bf3ab76468dcf4", size = 10821444 }, + { url = "https://files.pythonhosted.org/packages/69/cb/b3fe58a136a27d981911cba2f18e4b29f15010623b79f0f2510fd0d31fd3/ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b", size = 10038168 }, ] [[package]] @@ -1693,34 +1736,34 @@ documentation = [ [package.metadata] requires-dist = [ - { name = "aiosqlite", specifier = ">=0.20.0" }, - { name = "beautifulsoup4", specifier = ">=4.12.3" }, - { name = "colorthief", specifier = ">=0.2.1" }, - { name = "markdownify", specifier = ">=0.14.1" }, - { name = "numpy", specifier = ">=2.2.2" }, - { name = "phx-class-registry", specifier = ">=5.1.1" }, - { name = "pillow", specifier = ">=10.4.0" }, - { name = "pip", specifier = ">=25.0" }, + { name = "aiosqlite", specifier = "==0.20.0" }, + { name = "beautifulsoup4", specifier = "==4.12.3" }, + { name = "colorthief", specifier = "==0.2.1" }, + { name = "markdownify", specifier = "==0.14.1" }, + { name = "numpy", specifier = "==2.2.2" }, + { name = "phx-class-registry", specifier = "==5.1.1" }, + { name = "pillow", specifier = "==10.4.0" }, + { name = "pip", specifier = "==25.0" }, { name = "py-dactyl", git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5" }, - { name = "pydantic", specifier = ">=2.10.6" }, - { name = "red-discordbot", specifier = ">=3.5.14" }, - { name = "watchdog", specifier = ">=6.0.0" }, - { name = "websockets", specifier = ">=14.2" }, + { name = "pydantic", specifier = "==2.10.6" }, + { name = "red-discordbot", specifier = "==3.5.17" }, + { name = "watchdog", specifier = "==6.0.0" }, + { name = "websockets", specifier = "==14.2" }, ] [package.metadata.requires-dev] dev = [ - { name = "pylint", specifier = ">=3.3.3" }, - { name = "ruff", specifier = ">=0.9.3" }, - { name = "sqlite-web", specifier = ">=0.6.4" }, + { name = "pylint", specifier = "==3.3.3" }, + { name = "ruff", specifier = "==0.9.3" }, + { name = "sqlite-web", specifier = "==0.6.4" }, ] documentation = [ - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-git-authors-plugin", specifier = ">=0.9.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.3.0" }, - { name = "mkdocs-material", extras = ["imaging"], specifier = ">=9.5.50" }, - { name = "mkdocs-redirects", specifier = ">=1.2.2" }, - { name = "mkdocstrings", extras = ["python"], specifier = ">=0.27.0" }, + { name = "mkdocs", specifier = "==1.6.1" }, + { name = "mkdocs-git-authors-plugin", specifier = "==0.9.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.3.0" }, + { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.5.50" }, + { name = "mkdocs-redirects", specifier = "==1.2.2" }, + { name = "mkdocstrings", extras = ["python"], specifier = "==0.27.0" }, ] [[package]] @@ -1986,3 +2029,62 @@ sdist = { url = "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123 wheels = [ { url = "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", size = 9200 }, ] + +[[package]] +name = "zstandard" +version = "0.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/40/f67e7d2c25a0e2dc1744dd781110b0b60306657f8696cafb7ad7579469bd/zstandard-0.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e", size = 788699 }, + { url = "https://files.pythonhosted.org/packages/e8/46/66d5b55f4d737dd6ab75851b224abf0afe5774976fe511a54d2eb9063a41/zstandard-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23", size = 633681 }, + { url = "https://files.pythonhosted.org/packages/63/b6/677e65c095d8e12b66b8f862b069bcf1f1d781b9c9c6f12eb55000d57583/zstandard-0.23.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a", size = 4944328 }, + { url = "https://files.pythonhosted.org/packages/59/cc/e76acb4c42afa05a9d20827116d1f9287e9c32b7ad58cc3af0721ce2b481/zstandard-0.23.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db", size = 5311955 }, + { url = "https://files.pythonhosted.org/packages/78/e4/644b8075f18fc7f632130c32e8f36f6dc1b93065bf2dd87f03223b187f26/zstandard-0.23.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2", size = 5344944 }, + { url = "https://files.pythonhosted.org/packages/76/3f/dbafccf19cfeca25bbabf6f2dd81796b7218f768ec400f043edc767015a6/zstandard-0.23.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca", size = 5442927 }, + { url = "https://files.pythonhosted.org/packages/0c/c3/d24a01a19b6733b9f218e94d1a87c477d523237e07f94899e1c10f6fd06c/zstandard-0.23.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c", size = 4864910 }, + { url = "https://files.pythonhosted.org/packages/1c/a9/cf8f78ead4597264f7618d0875be01f9bc23c9d1d11afb6d225b867cb423/zstandard-0.23.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e", size = 4935544 }, + { url = "https://files.pythonhosted.org/packages/2c/96/8af1e3731b67965fb995a940c04a2c20997a7b3b14826b9d1301cf160879/zstandard-0.23.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5", size = 5467094 }, + { url = "https://files.pythonhosted.org/packages/ff/57/43ea9df642c636cb79f88a13ab07d92d88d3bfe3e550b55a25a07a26d878/zstandard-0.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48", size = 4860440 }, + { url = "https://files.pythonhosted.org/packages/46/37/edb78f33c7f44f806525f27baa300341918fd4c4af9472fbc2c3094be2e8/zstandard-0.23.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c", size = 4700091 }, + { url = "https://files.pythonhosted.org/packages/c1/f1/454ac3962671a754f3cb49242472df5c2cced4eb959ae203a377b45b1a3c/zstandard-0.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003", size = 5208682 }, + { url = "https://files.pythonhosted.org/packages/85/b2/1734b0fff1634390b1b887202d557d2dd542de84a4c155c258cf75da4773/zstandard-0.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78", size = 5669707 }, + { url = "https://files.pythonhosted.org/packages/52/5a/87d6971f0997c4b9b09c495bf92189fb63de86a83cadc4977dc19735f652/zstandard-0.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473", size = 5201792 }, + { url = "https://files.pythonhosted.org/packages/79/02/6f6a42cc84459d399bd1a4e1adfc78d4dfe45e56d05b072008d10040e13b/zstandard-0.23.0-cp311-cp311-win32.whl", hash = "sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160", size = 430586 }, + { url = "https://files.pythonhosted.org/packages/be/a2/4272175d47c623ff78196f3c10e9dc7045c1b9caf3735bf041e65271eca4/zstandard-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0", size = 495420 }, + { url = "https://files.pythonhosted.org/packages/7b/83/f23338c963bd9de687d47bf32efe9fd30164e722ba27fb59df33e6b1719b/zstandard-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094", size = 788713 }, + { url = "https://files.pythonhosted.org/packages/5b/b3/1a028f6750fd9227ee0b937a278a434ab7f7fdc3066c3173f64366fe2466/zstandard-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8", size = 633459 }, + { url = "https://files.pythonhosted.org/packages/26/af/36d89aae0c1f95a0a98e50711bc5d92c144939efc1f81a2fcd3e78d7f4c1/zstandard-0.23.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1", size = 4945707 }, + { url = "https://files.pythonhosted.org/packages/cd/2e/2051f5c772f4dfc0aae3741d5fc72c3dcfe3aaeb461cc231668a4db1ce14/zstandard-0.23.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072", size = 5306545 }, + { url = "https://files.pythonhosted.org/packages/0a/9e/a11c97b087f89cab030fa71206963090d2fecd8eb83e67bb8f3ffb84c024/zstandard-0.23.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20", size = 5337533 }, + { url = "https://files.pythonhosted.org/packages/fc/79/edeb217c57fe1bf16d890aa91a1c2c96b28c07b46afed54a5dcf310c3f6f/zstandard-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373", size = 5436510 }, + { url = "https://files.pythonhosted.org/packages/81/4f/c21383d97cb7a422ddf1ae824b53ce4b51063d0eeb2afa757eb40804a8ef/zstandard-0.23.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db", size = 4859973 }, + { url = "https://files.pythonhosted.org/packages/ab/15/08d22e87753304405ccac8be2493a495f529edd81d39a0870621462276ef/zstandard-0.23.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772", size = 4936968 }, + { url = "https://files.pythonhosted.org/packages/eb/fa/f3670a597949fe7dcf38119a39f7da49a8a84a6f0b1a2e46b2f71a0ab83f/zstandard-0.23.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105", size = 5467179 }, + { url = "https://files.pythonhosted.org/packages/4e/a9/dad2ab22020211e380adc477a1dbf9f109b1f8d94c614944843e20dc2a99/zstandard-0.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba", size = 4848577 }, + { url = "https://files.pythonhosted.org/packages/08/03/dd28b4484b0770f1e23478413e01bee476ae8227bbc81561f9c329e12564/zstandard-0.23.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd", size = 4693899 }, + { url = "https://files.pythonhosted.org/packages/2b/64/3da7497eb635d025841e958bcd66a86117ae320c3b14b0ae86e9e8627518/zstandard-0.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a", size = 5199964 }, + { url = "https://files.pythonhosted.org/packages/43/a4/d82decbab158a0e8a6ebb7fc98bc4d903266bce85b6e9aaedea1d288338c/zstandard-0.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90", size = 5655398 }, + { url = "https://files.pythonhosted.org/packages/f2/61/ac78a1263bc83a5cf29e7458b77a568eda5a8f81980691bbc6eb6a0d45cc/zstandard-0.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35", size = 5191313 }, + { url = "https://files.pythonhosted.org/packages/e7/54/967c478314e16af5baf849b6ee9d6ea724ae5b100eb506011f045d3d4e16/zstandard-0.23.0-cp312-cp312-win32.whl", hash = "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d", size = 430877 }, + { url = "https://files.pythonhosted.org/packages/75/37/872d74bd7739639c4553bf94c84af7d54d8211b626b352bc57f0fd8d1e3f/zstandard-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b", size = 495595 }, + { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975 }, + { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448 }, + { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269 }, + { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228 }, + { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891 }, + { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310 }, + { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912 }, + { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946 }, + { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994 }, + { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681 }, + { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239 }, + { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149 }, + { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392 }, + { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299 }, + { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862 }, + { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578 }, +] From e0137734b58256e3cc345f4cc82deb753a30e5f1 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:12:59 -0400 Subject: [PATCH 31/51] chore(deps): update dependency pylint to v3.3.6 (#70) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | tool.uv.dev-dependencies | patch | `==3.3.3` -> `==3.3.6` | --- ### Release Notes
pylint-dev/pylint (pylint) ### [`v3.3.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.6) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.5...v3.3.6) ## What's new in Pylint 3.3.6? Release date: 2025-03-20 ## False Positives Fixed - Fix a false positive for `used-before-assignment` when an inner function's return type annotation is a class defined at module scope. Closes [#​9391](https://github.com/pylint-dev/pylint/issues/9391) ### [`v3.3.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.5) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.5) ## What's new in Pylint 3.3.5? Release date: 2025-03-09 ## False Positives Fixed - Fix false positives for `use-implicit-booleaness-not-comparison`, `use-implicit-booleaness-not-comparison-to-string` and `use-implicit-booleaness-not-comparison-to-zero` when chained comparisons are checked. Closes [#​10065](https://github.com/pylint-dev/pylint/issues/10065) - Fix a false positive for `invalid-getnewargs-ex-returned` when the tuple or dict has been assigned to a name. Closes [#​10208](https://github.com/pylint-dev/pylint/issues/10208) - Remove `getopt` and `optparse` from the list of deprecated modules. Closes [#​10211](https://github.com/pylint-dev/pylint/issues/10211) ## Other Bug Fixes - Fixed conditional import x.y causing false positive possibly-used-before-assignment. Closes [#​10081](https://github.com/pylint-dev/pylint/issues/10081) - Fix a crash when something besides a class is found in an except handler. Closes [#​10106](https://github.com/pylint-dev/pylint/issues/10106) - Fixed raising invalid-name when using camelCase for private methods with two leading underscores. Closes [#​10189](https://github.com/pylint-dev/pylint/issues/10189) ## Other Changes - Upload release assets to PyPI via Trusted Publishing. Closes [#​10256](https://github.com/pylint-dev/pylint/issues/10256) ### [`v3.3.4`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.4) [Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.3...v3.3.4) ## Other Bug Fixes - Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number. Closes [#​10073](https://github.com/pylint-dev/pylint/issues/10073) - Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage. Closes [#​10103](https://github.com/pylint-dev/pylint/issues/10103) - Relaxed the requirements for isort so pylint can benefit from isort 6. Closes [#​10203](https://github.com/pylint-dev/pylint/issues/10203)
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/70 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6f5450e..819275d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ documentation = [ ] [tool.uv] -dev-dependencies = ["pylint==3.3.3", "ruff==0.9.3", "sqlite-web==0.6.4"] +dev-dependencies = ["pylint==3.3.6", "ruff==0.9.3", "sqlite-web==0.6.4"] [tool.uv.sources] py-dactyl = { git = "https://github.com/iamkubi/pydactyl", tag = "v2.0.5" } diff --git a/uv.lock b/uv.lock index d05d3a4..a9d1cb9 100644 --- a/uv.lock +++ b/uv.lock @@ -1,4 +1,5 @@ version = 1 +revision = 1 requires-python = ">=3.11" resolution-markers = [ "python_full_version >= '3.13'", @@ -633,7 +634,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp" }, + { name = "zipp", marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -1362,7 +1363,7 @@ wheels = [ [[package]] name = "pylint" -version = "3.3.3" +version = "3.3.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astroid" }, @@ -1373,9 +1374,9 @@ dependencies = [ { name = "platformdirs" }, { name = "tomlkit" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/17/fd/e9a739afac274a39596bbe562e9d966db6f3917fdb2bd7322ffc56da0ba2/pylint-3.3.3.tar.gz", hash = "sha256:07c607523b17e6d16e2ae0d7ef59602e332caa762af64203c24b41c27139f36a", size = 1516550 } +sdist = { url = "https://files.pythonhosted.org/packages/69/a7/113d02340afb9dcbb0c8b25454e9538cd08f0ebf3e510df4ed916caa1a89/pylint-3.3.6.tar.gz", hash = "sha256:b634a041aac33706d56a0d217e6587228c66427e20ec21a019bc4cdee48c040a", size = 1519586 } wheels = [ - { url = "https://files.pythonhosted.org/packages/91/e1/26d55acea92b1ea4d33672e48f09ceeb274e84d7d542a4fb9a32a556db46/pylint-3.3.3-py3-none-any.whl", hash = "sha256:26e271a2bc8bce0fc23833805a9076dd9b4d5194e2a02164942cb3cdc37b4183", size = 521918 }, + { url = "https://files.pythonhosted.org/packages/31/21/9537fc94aee9ec7316a230a49895266cf02d78aa29b0a2efbc39566e0935/pylint-3.3.6-py3-none-any.whl", hash = "sha256:8b7c2d3e86ae3f94fb27703d521dd0b9b6b378775991f504d7c3a6275aa0a6a6", size = 522462 }, ] [[package]] @@ -1753,7 +1754,7 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ - { name = "pylint", specifier = "==3.3.3" }, + { name = "pylint", specifier = "==3.3.6" }, { name = "ruff", specifier = "==0.9.3" }, { name = "sqlite-web", specifier = "==0.6.4" }, ] From 293e3fbc4c841169eec942392d14be6843687b14 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:13:07 -0400 Subject: [PATCH 32/51] chore(deps): update dependency mkdocs-git-authors-plugin to v0.9.4 (#69) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mkdocs-git-authors-plugin](https://github.com/timvink/mkdocs-git-authors-plugin) | dependency-groups | patch | `==0.9.2` -> `==0.9.4` | --- ### Release Notes
timvink/mkdocs-git-authors-plugin (mkdocs-git-authors-plugin) ### [`v0.9.4`](https://github.com/timvink/mkdocs-git-authors-plugin/releases/tag/v0.9.4): git-authors v0.9.4 [Compare Source](https://github.com/timvink/mkdocs-git-authors-plugin/compare/v0.9.3...v0.9.4) #### What's Changed - Fix docs_dir git finding regression by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-authors-plugin/pull/106 - Update Gitlab Build Instructions by [@​jmrtnz94](https://github.com/jmrtnz94) in https://github.com/timvink/mkdocs-git-authors-plugin/pull/105 #### New Contributors - [@​jmrtnz94](https://github.com/jmrtnz94) made their first contribution in https://github.com/timvink/mkdocs-git-authors-plugin/pull/105 **Full Changelog**: https://github.com/timvink/mkdocs-git-authors-plugin/compare/v0.9.3...v0.9.4 ### [`v0.9.3`](https://github.com/timvink/mkdocs-git-authors-plugin/releases/tag/v0.9.3): git-authors v0.9.3 [Compare Source](https://github.com/timvink/mkdocs-git-authors-plugin/compare/v0.9.2...v0.9.3) #### What's Changed - Ignore whitespace when determining authors by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-authors-plugin/pull/102 - Support git inside documentation folder by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-authors-plugin/pull/103 **Full Changelog**: https://github.com/timvink/mkdocs-git-authors-plugin/compare/v0.9.2...v0.9.3
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/69 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 819275d..5b6c0f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,7 @@ dependencies = [ [dependency-groups] documentation = [ "mkdocs==1.6.1", - "mkdocs-git-authors-plugin==0.9.2", + "mkdocs-git-authors-plugin==0.9.4", "mkdocs-git-revision-date-localized-plugin==1.3.0", "mkdocs-material[imaging]==9.5.50", "mkdocs-redirects==1.2.2", diff --git a/uv.lock b/uv.lock index a9d1cb9..79aff7a 100644 --- a/uv.lock +++ b/uv.lock @@ -834,14 +834,14 @@ wheels = [ [[package]] name = "mkdocs-git-authors-plugin" -version = "0.9.2" +version = "0.9.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mkdocs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/ef/09ab7178d580e342cb3ba279c48eaf3abf55795a2ae6e5426fe2c725143c/mkdocs_git_authors_plugin-0.9.2.tar.gz", hash = "sha256:77f97c321e08a8757beb866293eb257070b11cd5a080976bc6696b249cbade4f", size = 21403 } +sdist = { url = "https://files.pythonhosted.org/packages/87/9a/063c4a3688e4669eb2054e4bf6e9cc582f6c1d85674e3f5b836ceff97c3b/mkdocs_git_authors_plugin-0.9.4.tar.gz", hash = "sha256:f5cfaf93d08981ce25591bbaf642051ed168c3886bb96ecd2dca53f0ef1973b8", size = 21914 } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/08/57d0fea1cc30096fcc94ec9cd4ccdee625be89fd710626f78d90fc13738e/mkdocs_git_authors_plugin-0.9.2-py3-none-any.whl", hash = "sha256:f6cefc4dc832865d26f7f9f944c0a8c7dc852742d79320f3800e0d97814e2a84", size = 20332 }, + { url = "https://files.pythonhosted.org/packages/5c/ac/2b5bae4047276fda2bdd14a6d4af59288fb4d5de54151ae4e6ba17611ceb/mkdocs_git_authors_plugin-0.9.4-py3-none-any.whl", hash = "sha256:84b9b56c703841189c64d8ff6947034fe0a9c14a0a8f1f6255edfcfe3a56825f", size = 20752 }, ] [[package]] @@ -1760,7 +1760,7 @@ dev = [ ] documentation = [ { name = "mkdocs", specifier = "==1.6.1" }, - { name = "mkdocs-git-authors-plugin", specifier = "==0.9.2" }, + { name = "mkdocs-git-authors-plugin", specifier = "==0.9.4" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.3.0" }, { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.5.50" }, { name = "mkdocs-redirects", specifier = "==1.2.2" }, From 5d64248ce1caa446f4e0c750de0d64342a36ad87 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:17:06 -0400 Subject: [PATCH 33/51] fix(deps): update dependency pip to v25.0.1 (#72) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pip](https://github.com/pypa/pip) ([changelog](https://pip.pypa.io/en/stable/news/)) | project.dependencies | patch | `==25.0` -> `==25.0.1` | --- ### Release Notes
pypa/pip (pip) ### [`v25.0.1`](https://github.com/pypa/pip/compare/25.0...25.0.1) [Compare Source](https://github.com/pypa/pip/compare/25.0...25.0.1)
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/72 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5b6c0f9..e3a2b2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ dependencies = [ "numpy==2.2.2", "phx-class-registry==5.1.1", "pillow==10.4.0", - "pip==25.0", + "pip==25.0.1", "py-dactyl", "pydantic==2.10.6", "red-discordbot==3.5.17", diff --git a/uv.lock b/uv.lock index 79aff7a..887bf27 100644 --- a/uv.lock +++ b/uv.lock @@ -1180,11 +1180,11 @@ wheels = [ [[package]] name = "pip" -version = "25.0" +version = "25.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/47/3e/68beeeeb306ea20ffd30b3ed993f531d16cd884ec4f60c9b1e238f69f2af/pip-25.0.tar.gz", hash = "sha256:8e0a97f7b4c47ae4a494560da84775e9e2f671d415d8d828e052efefb206b30b", size = 1950328 } +sdist = { url = "https://files.pythonhosted.org/packages/70/53/b309b4a497b09655cb7e07088966881a57d082f48ac3cb54ea729fd2c6cf/pip-25.0.1.tar.gz", hash = "sha256:88f96547ea48b940a3a385494e181e29fb8637898f88d88737c5049780f196ea", size = 1950850 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/8a/1ddf40be20103bcc605db840e9ade09c8e8c9f920a03e9cfe88eae97a058/pip-25.0-py3-none-any.whl", hash = "sha256:b6eb97a803356a52b2dd4bb73ba9e65b2ba16caa6bcb25a7497350a4e5859b65", size = 1841506 }, + { url = "https://files.pythonhosted.org/packages/c9/bc/b7db44f5f39f9d0494071bddae6880eb645970366d0a200022a1a93d57f5/pip-25.0.1-py3-none-any.whl", hash = "sha256:c46efd13b6aa8279f33f2864459c8ce587ea6a1a59ee20de055868d8f7688f7f", size = 1841526 }, ] [[package]] @@ -1744,7 +1744,7 @@ requires-dist = [ { name = "numpy", specifier = "==2.2.2" }, { name = "phx-class-registry", specifier = "==5.1.1" }, { name = "pillow", specifier = "==10.4.0" }, - { name = "pip", specifier = "==25.0" }, + { name = "pip", specifier = "==25.0.1" }, { name = "py-dactyl", git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5" }, { name = "pydantic", specifier = "==2.10.6" }, { name = "red-discordbot", specifier = "==3.5.17" }, From 8868323e359b69c30cfe9c6ad465e7a3de8ba36a Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:17:27 -0400 Subject: [PATCH 34/51] fix(deps): update dependency red-discordbot to v3.5.18 (#73) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [red-discordbot](https://github.com/Cog-Creators/Red-DiscordBot) ([changelog](https://docs.discord.red/en/stable/changelog.html)) | project.dependencies | patch | `==3.5.17` -> `==3.5.18` | --- ### Release Notes
Cog-Creators/Red-DiscordBot (red-discordbot) ### [`v3.5.18`](https://github.com/Cog-Creators/Red-DiscordBot/blob/HEAD/CHANGES.rst#Redbot-3518-2025-03-26) [Compare Source](https://github.com/Cog-Creators/Red-DiscordBot/compare/3.5.17...3.5.18) \========================== | Thanks to all these amazing people that contributed to this release: | :ghuser:`Jackenmen`, :ghuser:`Kreusada` ## Read before updating \#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point): We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly. More specifically, we bumped the version of YT source plugin. `Download Red 3.5.18's default application.yml file `__ ## End-user changelog Changes *** - **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6543`) Fixes *** - |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6542`) ***
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/73 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e3a2b2d..32da781 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ dependencies = [ "pip==25.0.1", "py-dactyl", "pydantic==2.10.6", - "red-discordbot==3.5.17", + "red-discordbot==3.5.18", "watchdog==6.0.0", "websockets==14.2", ] diff --git a/uv.lock b/uv.lock index 887bf27..b35aa5c 100644 --- a/uv.lock +++ b/uv.lock @@ -155,11 +155,11 @@ wheels = [ [[package]] name = "attrs" -version = "25.1.0" +version = "25.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/49/7c/fdf464bcc51d23881d110abd74b512a42b3d5d376a55a831b44c603ae17f/attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e", size = 810562 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/30/d4986a882011f9df997a55e6becd864812ccfcd821d64aac8570ee39f719/attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a", size = 63152 }, + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815 }, ] [[package]] @@ -1524,7 +1524,7 @@ wheels = [ [[package]] name = "red-discordbot" -version = "3.5.17" +version = "3.5.18" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -1566,9 +1566,9 @@ dependencies = [ { name = "zipp", marker = "python_full_version >= '3.12'" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/25/68/265ea5a29eafad00bab2f34395af56e07228e631ff2b24b831bb3043ca69/red_discordbot-3.5.17.tar.gz", hash = "sha256:defcb2d27a20f800157ebe82240e4180be04b3fecd6d5022840e57fb6418b2cb", size = 3735303 } +sdist = { url = "https://files.pythonhosted.org/packages/da/49/8926e62a2185699fa08c138181f49cb21c4bdeb6b2833c8b168aa34dc1b0/red_discordbot-3.5.18.tar.gz", hash = "sha256:bf760a35c54b57bd51f6d03eba66e77d8cedc58da0f59fc3243b0a1ed359523c", size = 3735416 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/ed/d35c8ff2109e38891afcd1ffcc27da74803a218bee32ee29aca0bdeb42e3/Red_DiscordBot-3.5.17-py3-none-any.whl", hash = "sha256:751fe88a6b9ab89daf82f1e6d6d84775ba6e26f5e852769450e15e7307d9456d", size = 5883300 }, + { url = "https://files.pythonhosted.org/packages/84/8f/bf3bba7fde1146564053e4131f72c2fc439221732e634f700623787a11ab/red_discordbot-3.5.18-py3-none-any.whl", hash = "sha256:51048b356003bffc17057a705d6eced538b997f770f4401731af7e0fccd8e7a3", size = 5883303 }, ] [[package]] @@ -1747,7 +1747,7 @@ requires-dist = [ { name = "pip", specifier = "==25.0.1" }, { name = "py-dactyl", git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5" }, { name = "pydantic", specifier = "==2.10.6" }, - { name = "red-discordbot", specifier = "==3.5.17" }, + { name = "red-discordbot", specifier = "==3.5.18" }, { name = "watchdog", specifier = "==6.0.0" }, { name = "websockets", specifier = "==14.2" }, ] @@ -1828,11 +1828,11 @@ wheels = [ [[package]] name = "typing-extensions" -version = "4.12.2" +version = "4.13.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +sdist = { url = "https://files.pythonhosted.org/packages/0e/3e/b00a62db91a83fff600de219b6ea9908e6918664899a2d85db222f4fbf19/typing_extensions-4.13.0.tar.gz", hash = "sha256:0a4ac55a5820789d87e297727d229866c9650f6521b64206413c4fbada24d95b", size = 106520 } wheels = [ - { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, + { url = "https://files.pythonhosted.org/packages/e0/86/39b65d676ec5732de17b7e3c476e45bb80ec64eb50737a8dce1a4178aba1/typing_extensions-4.13.0-py3-none-any.whl", hash = "sha256:c8dd92cc0d6425a97c18fbb9d1954e5ff92c1ca881a309c45f06ebc0b79058e5", size = 45683 }, ] [[package]] From 54e736e313d905473e1d3874fbbfabcbeaf079af Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:17:43 -0400 Subject: [PATCH 35/51] chore(deps): update dependency mkdocs-material to v9.6.9 (#75) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) ([changelog](https://squidfunk.github.io/mkdocs-material/changelog/)) | dependency-groups | minor | `==9.5.50` -> `==9.6.9` | --- ### Release Notes
squidfunk/mkdocs-material (mkdocs-material) ### [`v9.6.9`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.9): mkdocs-material-9.6.9 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.8...9.6.9) - Updated Serbo-Croatian translations - Fixed [#​8086](https://github.com/squidfunk/mkdocs-material/issues/8086): Custom SVG icons containing hashes break rendering - Fixed [#​8067](https://github.com/squidfunk/mkdocs-material/issues/8067): Drawer has gap on right side in Firefox on some OSs ### [`v9.6.8`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.8): mkdocs-material-9.6.8 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.7...9.6.8) - Added Welsh translations - Fixed [#​8076](https://github.com/squidfunk/mkdocs-material/issues/8076): Privacy plugin crashes if HTTP download fails ### [`v9.6.7`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.7): mkdocs-material-9.6.7 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.6...9.6.7) - Fixed [#​8056](https://github.com/squidfunk/mkdocs-material/issues/8056): Error in backrefs implementation (9.6.6 regression) - Fixed [#​8054](https://github.com/squidfunk/mkdocs-material/issues/8054): Unescaped quotes in ARIA labels of table of contents ### [`v9.6.6`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.6): mkdocs-material-9.6.6 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.5...9.6.6) - Fixed [#​8040](https://github.com/squidfunk/mkdocs-material/issues/8040): Privacy plugin not replacing exteral assets (9.6.5 regression) - Fixed [#​8031](https://github.com/squidfunk/mkdocs-material/issues/8031): Replace unmaintained `regex` package in search plugin ### [`v9.6.5`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.5): mkdocs-material-9.6.5 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.4...9.6.5) - Fixed [#​8016](https://github.com/squidfunk/mkdocs-material/issues/8016): Tags listing not showing when when file name has spaces - Fixed [#​8012](https://github.com/squidfunk/mkdocs-material/issues/8012): Privacy plugin crashes if HTTP download fails ### [`v9.6.4`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.4): mkdocs-material-9.6.4 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.3...9.6.4) - Fixed [#​7985](https://github.com/squidfunk/mkdocs-material/issues/7985): Blog content sometimes not stretching to full width - Fixed [#​7978](https://github.com/squidfunk/mkdocs-material/issues/7978): Navigation rendering bug in Safari 18.3 ### [`v9.6.3`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.3): mkdocs-material-9.6.3 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.2...9.6.3) - Fixed rendering of arrow heads in Mermaid.js class diagrams - Fixed [#​7960](https://github.com/squidfunk/mkdocs-material/issues/7960): Tags plugin crashes on numeric metadata titles ### [`v9.6.2`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.2): mkdocs-material-9.6.2 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.1...9.6.2) - Fixed [#​7955](https://github.com/squidfunk/mkdocs-material/issues/7955): Excessively long words don't break on narrow screens - Fixed [#​7947](https://github.com/squidfunk/mkdocs-material/issues/7947): Scope setting interferes with outdated version banner ### [`v9.6.1`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.1): mkdocs-material-9.6.1 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.0...9.6.1) - Fixed [#​7943](https://github.com/squidfunk/mkdocs-material/issues/7943): Tags plugin crashing due to merge error ### [`v9.6.0`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.0): mkdocs-material-9.6.0 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.5.50...9.6.0) - Added meta plugin - Rewrite of the tags plugin - Added support for allow lists in tags plugin - Added support for and custom sorting in tags plugin - Added support for related links in blog plugin - Added support for custom index pages in blog plugin - Added support for navigation subtitles - Fixed [#​7924](https://github.com/squidfunk/mkdocs-material/issues/7924): Anchors might require two clicks when using instant navigation
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/75 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 76 ++++++++++++-------------------------------------- 2 files changed, 19 insertions(+), 59 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 32da781..146f7ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ documentation = [ "mkdocs==1.6.1", "mkdocs-git-authors-plugin==0.9.4", "mkdocs-git-revision-date-localized-plugin==1.3.0", - "mkdocs-material[imaging]==9.5.50", + "mkdocs-material[imaging]==9.6.9", "mkdocs-redirects==1.2.2", "mkdocstrings[python]==0.27.0", ] diff --git a/uv.lock b/uv.lock index b35aa5c..e8353c2 100644 --- a/uv.lock +++ b/uv.lock @@ -211,6 +211,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, ] +[[package]] +name = "backrefs" +version = "5.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/46/caba1eb32fa5784428ab401a5487f73db4104590ecd939ed9daaf18b47e0/backrefs-5.8.tar.gz", hash = "sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd", size = 6773994 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/cb/d019ab87fe70e0fe3946196d50d6a4428623dc0c38a6669c8cae0320fbf3/backrefs-5.8-py310-none-any.whl", hash = "sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d", size = 380337 }, + { url = "https://files.pythonhosted.org/packages/a9/86/abd17f50ee21b2248075cb6924c6e7f9d23b4925ca64ec660e869c2633f1/backrefs-5.8-py311-none-any.whl", hash = "sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b", size = 392142 }, + { url = "https://files.pythonhosted.org/packages/b3/04/7b415bd75c8ab3268cc138c76fa648c19495fcc7d155508a0e62f3f82308/backrefs-5.8-py312-none-any.whl", hash = "sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486", size = 398021 }, + { url = "https://files.pythonhosted.org/packages/04/b8/60dcfb90eb03a06e883a92abbc2ab95c71f0d8c9dd0af76ab1d5ce0b1402/backrefs-5.8-py313-none-any.whl", hash = "sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585", size = 399915 }, + { url = "https://files.pythonhosted.org/packages/0c/37/fb6973edeb700f6e3d6ff222400602ab1830446c25c7b4676d8de93e65b8/backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc", size = 380336 }, +] + [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -861,10 +874,11 @@ wheels = [ [[package]] name = "mkdocs-material" -version = "9.5.50" +version = "9.6.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, + { name = "backrefs" }, { name = "colorama" }, { name = "jinja2" }, { name = "markdown" }, @@ -873,12 +887,11 @@ dependencies = [ { name = "paginate" }, { name = "pygments" }, { name = "pymdown-extensions" }, - { name = "regex" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c7/16/c48d5a28bc4a67c49808180b6009d4d1b4c0753739ffee3cc37046ab29d7/mkdocs_material-9.5.50.tar.gz", hash = "sha256:ae5fe16f3d7c9ccd05bb6916a7da7420cf99a9ce5e33debd9d40403a090d5825", size = 3923354 } +sdist = { url = "https://files.pythonhosted.org/packages/11/cb/6dd3b6a7925429c0229738098ee874dbf7fa02db55558adb2c5bf86077b2/mkdocs_material-9.6.9.tar.gz", hash = "sha256:a4872139715a1f27b2aa3f3dc31a9794b7bbf36333c0ba4607cf04786c94f89c", size = 3948083 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/b5/1bf29cd744896ae83bd38c72970782c843ba13e0240b1a85277bd3928637/mkdocs_material-9.5.50-py3-none-any.whl", hash = "sha256:f24100f234741f4d423a9d672a909d859668a4f404796be3cf035f10d6050385", size = 8645274 }, + { url = "https://files.pythonhosted.org/packages/db/7c/ea5a671b2ff5d0e3f3108a7f7d75b541d683e4969aaead2a8f3e59e0fc27/mkdocs_material-9.6.9-py3-none-any.whl", hash = "sha256:6e61b7fb623ce2aa4622056592b155a9eea56ff3487d0835075360be45a4c8d1", size = 8697935 }, ] [package.optional-dependencies] @@ -1585,59 +1598,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/01/748c284bd03e788ac2c6cf2c58f19b4d1e3ad96dae36b21e289f1bc6c5e5/Red_Lavalink-0.11.0-py3-none-any.whl", hash = "sha256:f76329eee2ec5e4d77e0e97fe6ba76207efdcc8d963a9c39913cf91057d7920a", size = 36060 }, ] -[[package]] -name = "regex" -version = "2024.11.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 }, - { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 }, - { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 }, - { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 }, - { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 }, - { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 }, - { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 }, - { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 }, - { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 }, - { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 }, - { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 }, - { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 }, - { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 }, - { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 }, - { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 }, - { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 }, - { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 }, - { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 }, - { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 }, - { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 }, - { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 }, - { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 }, - { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 }, - { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 }, - { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 }, - { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 }, - { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 }, - { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 }, - { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 }, - { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 }, - { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 }, - { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 }, - { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 }, - { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 }, - { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 }, - { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 }, - { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 }, - { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 }, - { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 }, - { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 }, - { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 }, - { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 }, - { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 }, - { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 }, - { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, -] - [[package]] name = "requests" version = "2.32.3" @@ -1762,7 +1722,7 @@ documentation = [ { name = "mkdocs", specifier = "==1.6.1" }, { name = "mkdocs-git-authors-plugin", specifier = "==0.9.4" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.3.0" }, - { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.5.50" }, + { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.6.9" }, { name = "mkdocs-redirects", specifier = "==1.2.2" }, { name = "mkdocstrings", extras = ["python"], specifier = "==0.27.0" }, ] From e1b97974aeddcd8901087cc8288cad0440cc79dd Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:18:33 -0400 Subject: [PATCH 36/51] chore(deps): update dependency mkdocstrings to v0.29.0 (#76) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) ([changelog](https://mkdocstrings.github.io/changelog)) | dependency-groups | minor | `==0.27.0` -> `==0.29.0` | --- ### Release Notes
mkdocstrings/mkdocstrings (mkdocstrings) ### [`v0.29.0`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#0290---2025-03-10) [Compare Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.3...0.29.0) [Compare with 0.28.3](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.3...0.29.0) **This is the last version before v1!** ##### Build - Depend on MkDocs 1.6 ([11bc400](https://github.com/mkdocstrings/mkdocstrings/commit/11bc400ab7089a47755f24a790c08f2f904c570b) by Timothée Mazzucotelli). ##### Features - Support rendering backlinks through handlers ([d4c7b9c](https://github.com/mkdocstrings/mkdocstrings/commit/d4c7b9c42f2de5df234c1ffefae0405a120e383c) by Timothée Mazzucotelli). [Issue-723](https://github.com/mkdocstrings/mkdocstrings/issues/723), [Issue-mkdocstrings-python-153](https://github.com/mkdocstrings/python/issues/153), [PR-739](https://github.com/mkdocstrings/mkdocstrings/pull/739) ##### Code Refactoring - Save and forward titles to autorefs ([f49fb29](https://github.com/mkdocstrings/mkdocstrings/commit/f49fb29582714795ca03febf1ee243aa2992917e) by Timothée Mazzucotelli). - Use a combined event (each split with a different priority) for `on_env` ([8d1dd75](https://github.com/mkdocstrings/mkdocstrings/commit/8d1dd754b4babd3c4f9e6c1d8856be57fe4ba9ea) by Timothée Mazzucotelli). ### [`v0.28.3`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#0283---2025-03-08) [Compare Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.2...0.28.3) [Compare with 0.28.2](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.2...0.28.3) ##### Deprecations All public objects must now be imported from the top-level `mkdocstrings` module. Importing from submodules is deprecated, and will raise errors starting with v1. This should be the last deprecation before v1. ##### Build - Make `python` extra depend on latest mkdocstrings-python (1.16.2) ([ba9003e](https://github.com/mkdocstrings/mkdocstrings/commit/ba9003e96c8e5e01900743d5c464cbd228d732f4) by Timothée Mazzucotelli). ##### Code Refactoring - Finish exposing/hiding public/internal objects ([0723fc2](https://github.com/mkdocstrings/mkdocstrings/commit/0723fc25fdf5d45bc3b949f370712a706b85fbab) by Timothée Mazzucotelli). - Re-expose public API in the top-level `mkdocstrings` module ([e66e080](https://github.com/mkdocstrings/mkdocstrings/commit/e66e08096d45f6790492d9a0b767d512e42f67a9) by Timothée Mazzucotelli). - Move modules to internal folder ([23fe23f](https://github.com/mkdocstrings/mkdocstrings/commit/23fe23f11011d0470a6342ca85e060e5ac2b6bd6) by Timothée Mazzucotelli). ### [`v0.28.2`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#0282---2025-02-24) [Compare Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.1...0.28.2) [Compare with 0.28.1](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.1...0.28.2) ##### Build - Depend on mkdocs-autorefs >= 1.4 ([2c22bdc](https://github.com/mkdocstrings/mkdocstrings/commit/2c22bdc49f6bf5600aefd5ec711747686fda96a8) by Timothée Mazzucotelli). ### [`v0.28.1`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#0281---2025-02-14) [Compare Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.0...0.28.1) [Compare with 0.28.0](https://github.com/mkdocstrings/mkdocstrings/compare/0.28.0...0.28.1) ##### Bug Fixes - Renew MkDocs' `relpath` processor instead of using same instance ([4ab180d](https://github.com/mkdocstrings/mkdocstrings/commit/4ab180d01964c3ef8005cd72c8d91ba3fd241e27) by Timothée Mazzucotelli). [Issue-mkdocs-3919](https://github.com/mkdocs/mkdocs/issues/3919) ### [`v0.28.0`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#0280---2025-02-03) [Compare Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.27.0...0.28.0) [Compare with 0.27.0](https://github.com/mkdocstrings/mkdocstrings/compare/0.27.0...0.28.0) ##### Breaking Changes Although the following changes are "breaking" in terms of public API, we didn't find any public use of these classes and methods on GitHub. - `mkdocstrings.extension.AutoDocProcessor.__init__(parser)`: *Parameter was removed* - `mkdocstrings.extension.AutoDocProcessor.__init__(md)`: *Positional parameter was moved* - `mkdocstrings.extension.AutoDocProcessor.__init__(config)`: *Parameter was removed* - `mkdocstrings.extension.AutoDocProcessor.__init__(handlers)`: *Parameter kind was changed*: `positional or keyword` -> `keyword-only` - `mkdocstrings.extension.AutoDocProcessor.__init__(autorefs)`: *Parameter kind was changed*: `positional or keyword` -> `keyword-only` - `mkdocstrings.extension.MkdocstringsExtension.__init__(config)`: *Parameter was removed* - `mkdocstrings.extension.MkdocstringsExtension.__init__(handlers)`: *Positional parameter was moved* - `mkdocstrings.extension.MkdocstringsExtension.__init__(autorefs)`: *Positional parameter was moved* - `mkdocstrings.handlers.base.Handlers.__init__(config)`: *Parameter was removed* - `mkdocstrings.handlers.base.Handlers.__init__(theme)`: *Parameter was added as required* - `mkdocstrings.handlers.base.Handlers.__init__(default)`: *Parameter was added as required* - `mkdocstrings.handlers.base.Handlers.__init__(inventory_project)`: *Parameter was added as required* - `mkdocstrings.handlers.base.Handlers.__init__(tool_config)`: *Parameter was added as required* Similarly, the following parameters were renamed, but the methods are only called from our own code, using positional arguments. - `mkdocstrings.handlers.base.BaseHandler.collect(config)`: *Parameter was renamed `options`* - `mkdocstrings.handlers.base.BaseHandler.render(config)`: *Parameter was renamed `options`* Finally, the following method was removed, but this is again taken into account in our own code: - `mkdocstrings.handlers.base.BaseHandler.get_anchors`: *Public object was removed* For these reasons, and because we're still in v0, we do not bump to v1 yet. See following deprecations. ##### Deprecations *mkdocstrings* 0.28 will start emitting these deprecations warnings: > The `handler` argument is deprecated. The handler name must be specified as a class attribute. Previously, the `get_handler` function would pass a `handler` (name) argument to the handler constructor. This name must now be set on the handler's class directly. ```python class MyHandler: name = "myhandler" ``` > The `domain` attribute must be specified as a class attribute. The `domain` class attribute on handlers is now mandatory and cannot be an empty string. ```python class MyHandler: domain = "mh" ``` > The `theme` argument must be passed as a keyword argument. This argument could previously be passed as a positional argument (from the `get_handler` function), and must now be passed as a keyword argument. > The `custom_templates` argument must be passed as a keyword argument. Same as for `theme`, but with `custom_templates`. > The `mdx` argument must be provided (as a keyword argument). The `get_handler` function now receives a `mdx` argument, which it must forward to the handler constructor and then to the base handler, either explicitly or through `**kwargs`: \=== "Explicitly" ```python def get_handler(..., mdx, ...): return MyHandler(..., mdx=mdx, ...) class MyHandler: def __init__(self, ..., mdx, ...): super().__init__(..., mdx=mdx, ...) ``` \=== "Through `**kwargs`" ```python def get_handler(..., **kwargs): return MyHandler(..., **kwargs) class MyHandler: def __init__(self, ..., **kwargs): super().__init__(**kwargs) ``` In the meantime we still retrieve this `mdx` value at a different moment, by reading it from the MkDocs configuration. > The `mdx_config` argument must be provided (as a keyword argument). Same as for `mdx`, but with `mdx_config`. > mkdocstrings v1 will stop handling 'import' in handlers configuration. Instead your handler must define a `get_inventory_urls` method that returns a list of URLs to download. Previously, mkdocstrings would pop the `import` key from a handler's configuration to download each item (URLs). Items could be strings, or dictionaries with a `url` key. Now mkdocstrings gives back control to handlers, which must store this inventory configuration within them, and expose it again through a `get_inventory_urls` method. This method returns a list of tuples: an URL, and a dictionary of options that will be passed again to their `load_inventory` method. Handlers have now full control over the "inventory" setting. ```python from copy import deepcopy def get_handler(..., handler_config, ...): return MyHandler(..., config=handler_config, ...) class MyHandler: def __init__(self, ..., config, ...): self.config = config def get_inventory_urls(self): config = deepcopy(self.config["import"]) return [(inv, {}) if isinstance(inv, str) else (inv.pop("url"), inv) for inv in config] ``` Changing the name of the key (for example from `import` to `inventories`) involves a change in user configuration, and both keys will have to be supported by your handler for some time. ```python def get_handler(..., handler_config, ...): if "inventories" not in handler_config and "import" in handler_config: warn("The 'import' key is renamed 'inventories'", FutureWarning) handler_config["inventories"] = handler_config.pop("import") return MyHandler(..., config=handler_config, ...) ``` > Setting a fallback anchor function is deprecated and will be removed in a future release. This comes from mkdocstrings and mkdocs-autorefs, and will disappear with mkdocstrings v0.28. > mkdocstrings v1 will start using your handler's `get_options` method to build options instead of merging the global and local options (dictionaries). Handlers must now store their own global options (in an instance attribute), and implement a `get_options` method that receives `local_options` (a dict) and returns combined options (dict or custom object). These combined options are then passed to `collect` and `render`, so that these methods can use them right away. ```python def get_handler(..., handler_config, ...): return MyHandler(..., config=handler_config, ...) class MyHandler: def __init__(self, ..., config, ...): self.config = config def get_options(local_options): return {**self.default_options, **self.config["options"], **local_options} ``` > The `update_env(md)` parameter is deprecated. Use `self.md` instead. Handlers can remove the `md` parameter from their `update_env` method implementation, and use `self.md` instead, if they need it. > No need to call `super().update_env()` anymore. Handlers don't have to call the parent `update_env` method from their own implementation anymore, and can just drop the call. > The `get_anchors` method is deprecated. Declare a `get_aliases` method instead, accepting a string (identifier) instead of a collected object. Previously, handlers would implement a `get_anchors` method that received a data object (typed `CollectorItem`) to return aliases for this object. This forced mkdocstrings to collect this object through the handler's `collect` method, which then required some logic with "fallback config" as to prevent unwanted collection. mkdocstrings gives back control to handlers and now calls `get_aliases` instead, which accepts an `identifier` (string) and lets the handler decide how to return aliases for this identifier. For example, it can replicate previous behavior by calling its own `collect` method with its own "fallback config", or do something different (cache lookup, etc.). ```python class MyHandler: def get_aliases(identifier): try: obj = self.collect(identifier, self.fallback_config) ### or obj = self._objects_cache[identifier] except CollectionError: # or KeyError return () return ... # previous logic in `get_anchors` ``` > The `config_file_path` argument in `get_handler` functions is deprecated. Use `tool_config.get('config_file_path')` instead. The `config_file_path` argument is now deprecated and only passed to `get_handler` functions if they accept it. If you used it to compute a "base directory", you can now use the `tool_config` argument instead, which is the configuration of the SSG tool in use (here MkDocs): ```python base_dir = Path(tool_config.config_file_path or "./mkdocs.yml").parent ``` **Most of these warnings will disappear with the next version of mkdocstrings-python.** ##### Bug Fixes - Update handlers in JSON schema to be an object instead of an array ([3cf7d51](https://github.com/mkdocstrings/mkdocstrings/commit/3cf7d51704378adc50d4ea50080aacae39e0e731) by Matthew Messinger). [Issue-733](https://github.com/mkdocstrings/mkdocstrings/issues/733), [PR-734](https://github.com/mkdocstrings/mkdocstrings/pull/734) - Fix broken table of contents when nesting autodoc instructions ([12c8f82](https://github.com/mkdocstrings/mkdocstrings/commit/12c8f82e9a959ce32cada09f0d2b5c651a705fdb) by Timothée Mazzucotelli). [Issue-348](https://github.com/mkdocstrings/mkdocstrings/issues/348) ##### Code Refactoring - Pass `config_file_path` to `get_handler` if it expects it ([8c476ee](https://github.com/mkdocstrings/mkdocstrings/commit/8c476ee0b82c09a5b20d7a773ecaf4be17b9e4d1) by Timothée Mazzucotelli). - Give back inventory control to handlers ([b84653f](https://github.com/mkdocstrings/mkdocstrings/commit/b84653f2b175824c73bd0291fafff8343ba80125) by Timothée Mazzucotelli). [Related-to-issue-719](https://github.com/mkdocstrings/mkdocstrings/issues/719) - Give back control to handlers on how they want to handle global/local options ([c00de7a](https://github.com/mkdocstrings/mkdocstrings/commit/c00de7a42b9072cbaa47ecbf18e3e15a6d5ab634) by Timothée Mazzucotelli). [Issue-719](https://github.com/mkdocstrings/mkdocstrings/issues/719) - Deprecate base handler's `get_anchors` method in favor of `get_aliases` method ([7a668f0](https://github.com/mkdocstrings/mkdocstrings/commit/7a668f0f731401b07123bd02aafbbfc55cd24c0d) by Timothée Mazzucotelli). - Register all identifiers of rendered objects into autorefs ([434d8c7](https://github.com/mkdocstrings/mkdocstrings/commit/434d8c7cd1e3edbdb9d4c45a9b44b290b19d88f1) by Timothée Mazzucotelli). - Use mkdocs-get-deps' download utility to remove duplicated code ([bb87cd8](https://github.com/mkdocstrings/mkdocstrings/commit/bb87cd833f2333e77cb2c2926aa24a434c97391f) by Timothée Mazzucotelli). - Clean up data passed down from plugin to extension and handlers ([b8e8703](https://github.com/mkdocstrings/mkdocstrings/commit/b8e87036e0e1ec5c181b4a2ec5931f1a60636a32) by Timothée Mazzucotelli). [PR-726](https://github.com/mkdocstrings/mkdocstrings/pull/726)
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/76 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 146f7ad..4076280 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ documentation = [ "mkdocs-git-revision-date-localized-plugin==1.3.0", "mkdocs-material[imaging]==9.6.9", "mkdocs-redirects==1.2.2", - "mkdocstrings[python]==0.27.0", + "mkdocstrings[python]==0.29.0", ] [tool.uv] diff --git a/uv.lock b/uv.lock index e8353c2..54b981d 100644 --- a/uv.lock +++ b/uv.lock @@ -923,21 +923,19 @@ wheels = [ [[package]] name = "mkdocstrings" -version = "0.27.0" +version = "0.29.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "click" }, { name = "jinja2" }, { name = "markdown" }, { name = "markupsafe" }, { name = "mkdocs" }, { name = "mkdocs-autorefs" }, - { name = "platformdirs" }, { name = "pymdown-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/5a/5de70538c2cefae7ac3a15b5601e306ef3717290cb2aab11d51cbbc2d1c0/mkdocstrings-0.27.0.tar.gz", hash = "sha256:16adca6d6b0a1f9e0c07ff0b02ced8e16f228a9d65a37c063ec4c14d7b76a657", size = 94830 } +sdist = { url = "https://files.pythonhosted.org/packages/8e/4d/a9484dc5d926295bdf308f1f6c4f07fcc99735b970591edc414d401fcc91/mkdocstrings-0.29.0.tar.gz", hash = "sha256:3657be1384543ce0ee82112c3e521bbf48e41303aa0c229b9ffcccba057d922e", size = 1212185 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/10/4c27c3063c2b3681a4b7942f8dbdeb4fa34fecb2c19b594e7345ebf4f86f/mkdocstrings-0.27.0-py3-none-any.whl", hash = "sha256:6ceaa7ea830770959b55a16203ac63da24badd71325b96af950e59fd37366332", size = 30658 }, + { url = "https://files.pythonhosted.org/packages/15/47/eb876dfd84e48f31ff60897d161b309cf6a04ca270155b0662aae562b3fb/mkdocstrings-0.29.0-py3-none-any.whl", hash = "sha256:8ea98358d2006f60befa940fdebbbc88a26b37ecbcded10be726ba359284f73d", size = 1630824 }, ] [package.optional-dependencies] @@ -947,16 +945,16 @@ python = [ [[package]] name = "mkdocstrings-python" -version = "1.13.0" +version = "1.16.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "griffe" }, { name = "mkdocs-autorefs" }, { name = "mkdocstrings" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ab/ae/32703e35d74040051c672400fd9f5f2b48a6ea094f5071dd8a0e3be35322/mkdocstrings_python-1.13.0.tar.gz", hash = "sha256:2dbd5757e8375b9720e81db16f52f1856bf59905428fd7ef88005d1370e2f64c", size = 185697 } +sdist = { url = "https://files.pythonhosted.org/packages/8e/b8/62190ea298fdb1e84670ef548590748c633ab4e05b35bcf902e89f2f28c6/mkdocstrings_python-1.16.8.tar.gz", hash = "sha256:9453ccae69be103810c1cf6435ce71c8f714ae37fef4d87d16aa92a7c800fe1d", size = 205119 } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/23/d02d86553327296c3bf369d444194ea83410cce8f0e690565264f37f3261/mkdocstrings_python-1.13.0-py3-none-any.whl", hash = "sha256:b88bbb207bab4086434743849f8e796788b373bd32e7bfefbf8560ac45d88f97", size = 112254 }, + { url = "https://files.pythonhosted.org/packages/67/d0/ef6e82f7a68c7ac02e1a01815fbe88773f4f9e40728ed35bd1664a5d76f2/mkdocstrings_python-1.16.8-py3-none-any.whl", hash = "sha256:211b7aaf776cd45578ecb531e5ad0d3a35a8be9101a6bfa10de38a69af9d8fd8", size = 124116 }, ] [[package]] @@ -1724,7 +1722,7 @@ documentation = [ { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.3.0" }, { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.6.9" }, { name = "mkdocs-redirects", specifier = "==1.2.2" }, - { name = "mkdocstrings", extras = ["python"], specifier = "==0.27.0" }, + { name = "mkdocstrings", extras = ["python"], specifier = "==0.29.0" }, ] [[package]] From 3c1acdca3338058760b73c9324a74fe1e56691f7 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:18:43 -0400 Subject: [PATCH 37/51] fix(deps): update dependency numpy to v2.2.4 (#71) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [numpy](https://github.com/numpy/numpy) ([changelog](https://numpy.org/doc/stable/release)) | project.dependencies | patch | `==2.2.2` -> `==2.2.4` | --- ### Release Notes
numpy/numpy (numpy) ### [`v2.2.4`](https://github.com/numpy/numpy/releases/tag/v2.2.4): 2.2.4 (Mar 16, 2025) [Compare Source](https://github.com/numpy/numpy/compare/v2.2.3...v2.2.4) ### NumPy 2.2.4 Release Notes NumPy 2.2.4 is a patch release that fixes bugs found after the 2.2.3 release. There are a large number of typing improvements, the rest of the changes are the usual mix of bugfixes and platform maintenace. This release supports Python versions 3.10-3.13. #### Contributors A total of 15 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - Abhishek Kumar - Andrej Zhilenkov - Andrew Nelson - Charles Harris - Giovanni Del Monte - Guan Ming(Wesley) Chiu + - Jonathan Albrecht + - Joren Hammudoglu - Mark Harfouche - Matthieu Darbois - Nathan Goldbaum - Pieter Eendebak - Sebastian Berg - Tyler Reddy - lvllvl + #### Pull requests merged A total of 17 pull requests were merged for this release. - [#​28333](https://github.com/numpy/numpy/pull/28333): MAINT: Prepare 2.2.x for further development. - [#​28348](https://github.com/numpy/numpy/pull/28348): TYP: fix positional- and keyword-only params in astype, cross... - [#​28377](https://github.com/numpy/numpy/pull/28377): MAINT: Update FreeBSD version and fix test failure - [#​28379](https://github.com/numpy/numpy/pull/28379): BUG: numpy.loadtxt reads only 50000 lines when skip_rows >= max_rows - [#​28385](https://github.com/numpy/numpy/pull/28385): BUG: Make np.nonzero threading safe - [#​28420](https://github.com/numpy/numpy/pull/28420): BUG: safer bincount casting (backport to 2.2.x) - [#​28422](https://github.com/numpy/numpy/pull/28422): BUG: Fix building on s390x with clang - [#​28423](https://github.com/numpy/numpy/pull/28423): CI: use QEMU 9.2.2 for Linux Qemu tests - [#​28424](https://github.com/numpy/numpy/pull/28424): BUG: skip legacy dtype multithreaded test on 32 bit runners - [#​28435](https://github.com/numpy/numpy/pull/28435): BUG: Fix searchsorted and CheckFromAny byte-swapping logic - [#​28449](https://github.com/numpy/numpy/pull/28449): BUG: sanity check `__array_interface__` number of dimensions - [#​28510](https://github.com/numpy/numpy/pull/28510): MAINT: Hide decorator from pytest traceback - [#​28512](https://github.com/numpy/numpy/pull/28512): TYP: Typing fixes backported from [#​28452](https://github.com/numpy/numpy/issues/28452), [#​28491](https://github.com/numpy/numpy/issues/28491), [#​28494](https://github.com/numpy/numpy/issues/28494) - [#​28521](https://github.com/numpy/numpy/pull/28521): TYP: Backport fixes from [#​28505](https://github.com/numpy/numpy/issues/28505), [#​28506](https://github.com/numpy/numpy/issues/28506), [#​28508](https://github.com/numpy/numpy/issues/28508), and [#​28511](https://github.com/numpy/numpy/issues/28511) - [#​28533](https://github.com/numpy/numpy/pull/28533): TYP: Backport typing fixes from main (2) - [#​28534](https://github.com/numpy/numpy/pull/28534): TYP: Backport typing fixes from main (3) - [#​28542](https://github.com/numpy/numpy/pull/28542): TYP: Backport typing fixes from main (4) #### Checksums ##### MD5 935928cbd2de140da097f6d5f4a01d72 numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl bf7fd01bb177885e920173b610c195d9 numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl 826e52cd898567a0c446113ab7a7b362 numpy-2.2.4-cp310-cp310-macosx_14_0_arm64.whl 9982a91d7327aea541c24aff94d3e462 numpy-2.2.4-cp310-cp310-macosx_14_0_x86_64.whl 5bdf5b63f4ee01fa808d13043b2a2275 numpy-2.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 677b3031105e24eaee2e0e57d7c2a306 numpy-2.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl d857867787fe1eb236670e7fdb25f414 numpy-2.2.4-cp310-cp310-musllinux_1_2_aarch64.whl a5aff3a7eb2923878e67fbe1cd04a9e9 numpy-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl e00bd3ac85d8f34b46b7f97a8278aeb3 numpy-2.2.4-cp310-cp310-win32.whl e5cb2a5d14bccee316bb73173be125ec numpy-2.2.4-cp310-cp310-win_amd64.whl 494f60d8e1c3500413bd093bb3f486ea numpy-2.2.4-cp311-cp311-macosx_10_9_x86_64.whl a886a9f3e80a60ce6ba95b431578bbca numpy-2.2.4-cp311-cp311-macosx_11_0_arm64.whl 889f3b507bab9272d9b549780840a642 numpy-2.2.4-cp311-cp311-macosx_14_0_arm64.whl 059788668d2c4e9aace4858e77c099ed numpy-2.2.4-cp311-cp311-macosx_14_0_x86_64.whl db9ae978afb76a4bf79df0657a66aaeb numpy-2.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl e36963a4c177157dc7b0775c309fa5a8 numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3603e683878b74f38e5617f04ff6a369 numpy-2.2.4-cp311-cp311-musllinux_1_2_aarch64.whl afbc410fb9b42b19f4f7c81c21d6777f numpy-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl 33ff8081378188894097942f80c33e26 numpy-2.2.4-cp311-cp311-win32.whl 5b11fe8d26318d85e0bc577a654f6643 numpy-2.2.4-cp311-cp311-win_amd64.whl 91121787f396d3e98210de8b617e5d48 numpy-2.2.4-cp312-cp312-macosx_10_13_x86_64.whl c524d1020b4652aacf4477d1628fa1ba numpy-2.2.4-cp312-cp312-macosx_11_0_arm64.whl eb08f551bdd6772155bb39ac0da47479 numpy-2.2.4-cp312-cp312-macosx_14_0_arm64.whl 7cb37fc9145d0ebbea5666b4f9ed1027 numpy-2.2.4-cp312-cp312-macosx_14_0_x86_64.whl c4452a5dc557c291904b5c51a4148237 numpy-2.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl bd23a12ead870759f264160ab38b2c9d numpy-2.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 07b44109381985b48d1eef80feebc5ad numpy-2.2.4-cp312-cp312-musllinux_1_2_aarch64.whl 95f1a27d33106fa9f40ee0714681c840 numpy-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl 507e550a55b19dedf267b58a487ba0bc numpy-2.2.4-cp312-cp312-win32.whl be21ccbf8931e92ba1fdb2dc1250bf2a numpy-2.2.4-cp312-cp312-win_amd64.whl e94003c2b65d81b00203711c5c42fb8e numpy-2.2.4-cp313-cp313-macosx_10_13_x86_64.whl cf781fd5412ffd826e0436883452cc17 numpy-2.2.4-cp313-cp313-macosx_11_0_arm64.whl 92c9a30386a64f2deddad1db742bd296 numpy-2.2.4-cp313-cp313-macosx_14_0_arm64.whl 7fd16554fa0a15b7f99b1fabf1c4592c numpy-2.2.4-cp313-cp313-macosx_14_0_x86_64.whl 9293b0575a902b2d55c35567dee7679e numpy-2.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 9970699bd95e8a64a562b1e6328b83d0 numpy-2.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl e8597c611a919a8e88229d6889c1f86e numpy-2.2.4-cp313-cp313-musllinux_1_2_aarch64.whl 329288501f012606605bdbed368e58e9 numpy-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl 04bf8d0f6a9e279ab01df4ed0b4aeee1 numpy-2.2.4-cp313-cp313-win32.whl 66801fe84a436b7ed3be6e0082b86917 numpy-2.2.4-cp313-cp313-win_amd64.whl 3e2f31e01b45cd16a87b794477de3714 numpy-2.2.4-cp313-cp313t-macosx_10_13_x86_64.whl 7504018213a3a8fea7173e2c1d0fcfd1 numpy-2.2.4-cp313-cp313t-macosx_11_0_arm64.whl e299021397c3cdb941b7ffe77cf0fefe numpy-2.2.4-cp313-cp313t-macosx_14_0_arm64.whl 1cc2731a246079bcab361179f38e7ccb numpy-2.2.4-cp313-cp313t-macosx_14_0_x86_64.whl e6eccf936d25c9eda9df1a4d50ae2fdc numpy-2.2.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl ba825efd05cca6d56c3dca9f7f1f88e7 numpy-2.2.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 369eebec47c9c27cb4841a13e9522167 numpy-2.2.4-cp313-cp313t-musllinux_1_2_aarch64.whl 554dbfa52988d01f715cbe8d4da4b409 numpy-2.2.4-cp313-cp313t-musllinux_1_2_x86_64.whl 811d25a008c68086c9382487e9a4127a numpy-2.2.4-cp313-cp313t-win32.whl 893fd2fdd42f386e300bee885bbb7778 numpy-2.2.4-cp313-cp313t-win_amd64.whl 65e284546c5ee575eca0a3726c0a1d98 numpy-2.2.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl e4e73511eac8f1a10c6abbd6fa2fa0aa numpy-2.2.4-pp310-pypy310_pp73-macosx_14_0_x86_64.whl a884ed5263b91fa87b5e3d14caf955a5 numpy-2.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 7330087a6ad1527ae20a495e2fb3b357 numpy-2.2.4-pp310-pypy310_pp73-win_amd64.whl 56232f4a69b03dd7a87a55fffc5f2ebc numpy-2.2.4.tar.gz ##### SHA256 8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9 numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl a84eda42bd12edc36eb5b53bbcc9b406820d3353f1994b6cfe453a33ff101775 numpy-2.2.4-cp310-cp310-macosx_14_0_arm64.whl 4ba5054787e89c59c593a4169830ab362ac2bee8a969249dc56e5d7d20ff8df9 numpy-2.2.4-cp310-cp310-macosx_14_0_x86_64.whl 7716e4a9b7af82c06a2543c53ca476fa0b57e4d760481273e09da04b74ee6ee2 numpy-2.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl adf8c1d66f432ce577d0197dceaac2ac00c0759f573f28516246351c58a85020 numpy-2.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 218f061d2faa73621fa23d6359442b0fc658d5b9a70801373625d958259eaca3 numpy-2.2.4-cp310-cp310-musllinux_1_2_aarch64.whl df2f57871a96bbc1b69733cd4c51dc33bea66146b8c63cacbfed73eec0883017 numpy-2.2.4-cp310-cp310-musllinux_1_2_x86_64.whl a0258ad1f44f138b791327961caedffbf9612bfa504ab9597157806faa95194a numpy-2.2.4-cp310-cp310-win32.whl 0d54974f9cf14acf49c60f0f7f4084b6579d24d439453d5fc5805d46a165b542 numpy-2.2.4-cp310-cp310-win_amd64.whl e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4 numpy-2.2.4-cp311-cp311-macosx_10_9_x86_64.whl 9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4 numpy-2.2.4-cp311-cp311-macosx_11_0_arm64.whl bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f numpy-2.2.4-cp311-cp311-macosx_14_0_arm64.whl cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880 numpy-2.2.4-cp311-cp311-macosx_14_0_x86_64.whl 2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1 numpy-2.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5 numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687 numpy-2.2.4-cp311-cp311-musllinux_1_2_aarch64.whl db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6 numpy-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09 numpy-2.2.4-cp311-cp311-win32.whl f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91 numpy-2.2.4-cp311-cp311-win_amd64.whl a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4 numpy-2.2.4-cp312-cp312-macosx_10_13_x86_64.whl dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854 numpy-2.2.4-cp312-cp312-macosx_11_0_arm64.whl bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24 numpy-2.2.4-cp312-cp312-macosx_14_0_arm64.whl f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee numpy-2.2.4-cp312-cp312-macosx_14_0_x86_64.whl c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba numpy-2.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592 numpy-2.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb numpy-2.2.4-cp312-cp312-musllinux_1_2_aarch64.whl 11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f numpy-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl 65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00 numpy-2.2.4-cp312-cp312-win32.whl 2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146 numpy-2.2.4-cp312-cp312-win_amd64.whl 1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7 numpy-2.2.4-cp313-cp313-macosx_10_13_x86_64.whl 1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0 numpy-2.2.4-cp313-cp313-macosx_11_0_arm64.whl 79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392 numpy-2.2.4-cp313-cp313-macosx_14_0_arm64.whl 3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc numpy-2.2.4-cp313-cp313-macosx_14_0_x86_64.whl 6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298 numpy-2.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7 numpy-2.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6 numpy-2.2.4-cp313-cp313-musllinux_1_2_aarch64.whl 81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd numpy-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c numpy-2.2.4-cp313-cp313-win32.whl 207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3 numpy-2.2.4-cp313-cp313-win_amd64.whl 8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8 numpy-2.2.4-cp313-cp313t-macosx_10_13_x86_64.whl a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39 numpy-2.2.4-cp313-cp313t-macosx_11_0_arm64.whl ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd numpy-2.2.4-cp313-cp313t-macosx_14_0_arm64.whl 879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0 numpy-2.2.4-cp313-cp313t-macosx_14_0_x86_64.whl f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960 numpy-2.2.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8 numpy-2.2.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc numpy-2.2.4-cp313-cp313t-musllinux_1_2_aarch64.whl ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff numpy-2.2.4-cp313-cp313t-musllinux_1_2_x86_64.whl 05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286 numpy-2.2.4-cp313-cp313t-win32.whl 188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d numpy-2.2.4-cp313-cp313t-win_amd64.whl 7051ee569db5fbac144335e0f3b9c2337e0c8d5c9fee015f259a5bd70772b7e8 numpy-2.2.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl ab2939cd5bec30a7430cbdb2287b63151b77cf9624de0532d629c9a1c59b1d5c numpy-2.2.4-pp310-pypy310_pp73-macosx_14_0_x86_64.whl d0f35b19894a9e08639fd60a1ec1978cb7f5f7f1eace62f38dd36be8aecdef4d numpy-2.2.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl b4adfbbc64014976d2f91084915ca4e626fbf2057fb81af209c1a6d776d23e3d numpy-2.2.4-pp310-pypy310_pp73-win_amd64.whl 9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f numpy-2.2.4.tar.gz ### [`v2.2.3`](https://github.com/numpy/numpy/releases/tag/v2.2.3): 2.2.3 (Feb 13, 2025) [Compare Source](https://github.com/numpy/numpy/compare/v2.2.2...v2.2.3) ### NumPy 2.2.3 Release Notes NumPy 2.2.3 is a patch release that fixes bugs found after the 2.2.2 release. The majority of the changes are typing improvements and fixes for free threaded Python. Both of those areas are still under development, so if you discover new problems, please report them. This release supports Python versions 3.10-3.13. #### Contributors A total of 9 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - !amotzop - Charles Harris - Chris Sidebottom - Joren Hammudoglu - Matthew Brett - Nathan Goldbaum - Raghuveer Devulapalli - Sebastian Berg - Yakov Danishevsky + #### Pull requests merged A total of 21 pull requests were merged for this release. - [#​28185](https://github.com/numpy/numpy/pull/28185): MAINT: Prepare 2.2.x for further development - [#​28201](https://github.com/numpy/numpy/pull/28201): BUG: fix data race in a more minimal way on stable branch - [#​28208](https://github.com/numpy/numpy/pull/28208): BUG: Fix `from_float_positional` errors for huge pads - [#​28209](https://github.com/numpy/numpy/pull/28209): BUG: fix data race in np.repeat - [#​28212](https://github.com/numpy/numpy/pull/28212): MAINT: Use VQSORT_COMPILER_COMPATIBLE to determine if we should... - [#​28224](https://github.com/numpy/numpy/pull/28224): MAINT: update highway to latest - [#​28236](https://github.com/numpy/numpy/pull/28236): BUG: Add cpp atomic support ([#​28234](https://github.com/numpy/numpy/issues/28234)) - [#​28237](https://github.com/numpy/numpy/pull/28237): BLD: Compile fix for clang-cl on WoA - [#​28243](https://github.com/numpy/numpy/pull/28243): TYP: Avoid upcasting `float64` in the set-ops - [#​28249](https://github.com/numpy/numpy/pull/28249): BLD: better fix for clang / ARM compiles - [#​28266](https://github.com/numpy/numpy/pull/28266): TYP: Fix `timedelta64.__divmod__` and `timedelta64.__mod__`... - [#​28274](https://github.com/numpy/numpy/pull/28274): TYP: Fixed missing typing information of set_printoptions - [#​28278](https://github.com/numpy/numpy/pull/28278): BUG: backport resource cleanup bugfix from [gh-28273](https://github.com/numpy/numpy/issues/28273) - [#​28282](https://github.com/numpy/numpy/pull/28282): BUG: fix incorrect bytes to stringdtype coercion - [#​28283](https://github.com/numpy/numpy/pull/28283): TYP: Fix scalar constructors - [#​28284](https://github.com/numpy/numpy/pull/28284): TYP: stub `numpy.matlib` - [#​28285](https://github.com/numpy/numpy/pull/28285): TYP: stub the missing `numpy.testing` modules - [#​28286](https://github.com/numpy/numpy/pull/28286): CI: Fix the github label for `TYP:` PR's and issues - [#​28305](https://github.com/numpy/numpy/pull/28305): TYP: Backport typing updates from main - [#​28321](https://github.com/numpy/numpy/pull/28321): BUG: fix race initializing legacy dtype casts - [#​28324](https://github.com/numpy/numpy/pull/28324): CI: update test_moderately_small_alpha #### Checksums ##### MD5 9cd8b5e358f89016f403a6c1a27e7e87 numpy-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl 2818f5a9efcfc3bb6bf657137df26046 numpy-2.2.3-cp310-cp310-macosx_11_0_arm64.whl 6d65c6a336cfb69fe4ddd756cad73d55 numpy-2.2.3-cp310-cp310-macosx_14_0_arm64.whl 7f4cf33c634b33f633d4bf47f560a86d numpy-2.2.3-cp310-cp310-macosx_14_0_x86_64.whl 3c04024badd42bfcc68c14f106efa93f numpy-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 07658df1de0e1d3721de0aacff4313cd numpy-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 3e753fc4b7c879b29442ee9bab25eddd numpy-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl d1811f1988d88b00825bc6e943d8e22d numpy-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl b5fe91363c16001ea30cbd5befbb0555 numpy-2.2.3-cp310-cp310-win32.whl 44dfe1df1640e4fe762bedad57cd7165 numpy-2.2.3-cp310-cp310-win_amd64.whl 6156418f596620b00a3c221baef02476 numpy-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl 97b925bac245aad1297d22ad3cfaa74c numpy-2.2.3-cp311-cp311-macosx_11_0_arm64.whl 3f05819fcb71df1d3093e5d1c041a4e9 numpy-2.2.3-cp311-cp311-macosx_14_0_arm64.whl f6763893ba9a5739fefa0929fd152db2 numpy-2.2.3-cp311-cp311-macosx_14_0_x86_64.whl e93cf6ed4e1a3f9a8009ee7f2fcb0da8 numpy-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 851dcbcbe90212c385dcdac1614cca83 numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 9b27cf1d6319f70370f4b0af10c03f5c numpy-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl 28d20c95ff23d27ae639b4960df777ec numpy-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl 559fefe30c0043a088adeca90231b382 numpy-2.2.3-cp311-cp311-win32.whl 5e32a1cc3dcfe729f675784a53e4d553 numpy-2.2.3-cp311-cp311-win_amd64.whl 12134dcf62b2bca2eeebb7bbc45c2a71 numpy-2.2.3-cp312-cp312-macosx_10_13_x86_64.whl c72318236531d3ca61d229eaf96f7d04 numpy-2.2.3-cp312-cp312-macosx_11_0_arm64.whl 1b807acc844c2ba5be7bc7586d4a3a6b numpy-2.2.3-cp312-cp312-macosx_14_0_arm64.whl 810d4908371bb2f08b0c7b16d3f05970 numpy-2.2.3-cp312-cp312-macosx_14_0_x86_64.whl bb918cedd0931cb68af9e77096dedf54 numpy-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 92c6c6c5b22b207425b329f061bd18fa numpy-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 10d48fb9d86280db1afe7224b15a51af numpy-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl a73da0434a971b21d8a9c0596015d629 numpy-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl c5f1e734c7d872e2f9af71d32e62d59c numpy-2.2.3-cp312-cp312-win32.whl 884c1a89844f539ab15b7016a43d231c numpy-2.2.3-cp312-cp312-win_amd64.whl 3a2de7f886cb756cf8d0375a36721926 numpy-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl c1fe5b6a9015c2877647419caa009be0 numpy-2.2.3-cp313-cp313-macosx_11_0_arm64.whl bb3f3a69219bbcdb719bbe38e4e69f79 numpy-2.2.3-cp313-cp313-macosx_14_0_arm64.whl 8158c2e980a1cbfb4d98ff3a273bb2e9 numpy-2.2.3-cp313-cp313-macosx_14_0_x86_64.whl 4d3d9b0c14db955e4b1aa1a1971d2def numpy-2.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 6575308269513900c94803258b89ac83 numpy-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 945b91c2093fed2a1f34597fc66e5a35 numpy-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl c5867508607f75ed23426315a7ad86d7 numpy-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl 5a1497c262d9aa52ce6859a12a54ebbc numpy-2.2.3-cp313-cp313-win32.whl 69c98e036d59eb74e4620c7649b5d7fc numpy-2.2.3-cp313-cp313-win_amd64.whl 2535d7c0f98ad848bcf1f48f7c358e41 numpy-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl aea9afa69d510ce905b2b8dbf0e33a11 numpy-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl cc5aceacd0a44a67cdd2cf8d5a446ca3 numpy-2.2.3-cp313-cp313t-macosx_14_0_arm64.whl 32eb2ed1e734ea26c90f75b1f5616564 numpy-2.2.3-cp313-cp313t-macosx_14_0_x86_64.whl f1d85f322c3e85ef748c3e5594b94226 numpy-2.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 7f24ce01ad5c352c76614a12fa5e2319 numpy-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 62841d4b49c5a0cef2c2ba26a16f6959 numpy-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl d7b512f83999d05c47e55b931f2dcdfe numpy-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl 1dca2f20e0accc1741e5fb233ecf7dff numpy-2.2.3-cp313-cp313t-win32.whl 347b71f0db5b49a25ef1ed677e47999b numpy-2.2.3-cp313-cp313t-win_amd64.whl 3615d13c8c14c323aeda1c07d5a7fd55 numpy-2.2.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl f7d2ba950c5aa11c100bb6bf202d5799 numpy-2.2.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl b4336174c843c4943084e17945cd1165 numpy-2.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 0d856a89e028c393f8125739c56591e0 numpy-2.2.3-pp310-pypy310_pp73-win_amd64.whl c6ee254bcdf1e2fdb13d87e0ee4166ba numpy-2.2.3.tar.gz ##### SHA256 cbc6472e01952d3d1b2772b720428f8b90e2deea8344e854df22b0618e9cce71 numpy-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl cdfe0c22692a30cd830c0755746473ae66c4a8f2e7bd508b35fb3b6a0813d787 numpy-2.2.3-cp310-cp310-macosx_11_0_arm64.whl e37242f5324ffd9f7ba5acf96d774f9276aa62a966c0bad8dae692deebec7716 numpy-2.2.3-cp310-cp310-macosx_14_0_arm64.whl 95172a21038c9b423e68be78fd0be6e1b97674cde269b76fe269a5dfa6fadf0b numpy-2.2.3-cp310-cp310-macosx_14_0_x86_64.whl d5b47c440210c5d1d67e1cf434124e0b5c395eee1f5806fdd89b553ed1acd0a3 numpy-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 0391ea3622f5c51a2e29708877d56e3d276827ac5447d7f45e9bc4ade8923c52 numpy-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl f6b3dfc7661f8842babd8ea07e9897fe3d9b69a1d7e5fbb743e4160f9387833b numpy-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl 1ad78ce7f18ce4e7df1b2ea4019b5817a2f6a8a16e34ff2775f646adce0a5027 numpy-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl 5ebeb7ef54a7be11044c33a17b2624abe4307a75893c001a4800857956b41094 numpy-2.2.3-cp310-cp310-win32.whl 596140185c7fa113563c67c2e894eabe0daea18cf8e33851738c19f70ce86aeb numpy-2.2.3-cp310-cp310-win_amd64.whl 16372619ee728ed67a2a606a614f56d3eabc5b86f8b615c79d01957062826ca8 numpy-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl 5521a06a3148686d9269c53b09f7d399a5725c47bbb5b35747e1cb76326b714b numpy-2.2.3-cp311-cp311-macosx_11_0_arm64.whl 7c8dde0ca2f77828815fd1aedfdf52e59071a5bae30dac3b4da2a335c672149a numpy-2.2.3-cp311-cp311-macosx_14_0_arm64.whl 77974aba6c1bc26e3c205c2214f0d5b4305bdc719268b93e768ddb17e3fdd636 numpy-2.2.3-cp311-cp311-macosx_14_0_x86_64.whl d42f9c36d06440e34226e8bd65ff065ca0963aeecada587b937011efa02cdc9d numpy-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl f2712c5179f40af9ddc8f6727f2bd910ea0eb50206daea75f58ddd9fa3f715bb numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl c8b0451d2ec95010d1db8ca733afc41f659f425b7f608af569711097fd6014e2 numpy-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl d9b4a8148c57ecac25a16b0e11798cbe88edf5237b0df99973687dd866f05e1b numpy-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl 1f45315b2dc58d8a3e7754fe4e38b6fce132dab284a92851e41b2b344f6441c5 numpy-2.2.3-cp311-cp311-win32.whl 9f48ba6f6c13e5e49f3d3efb1b51c8193215c42ac82610a04624906a9270be6f numpy-2.2.3-cp311-cp311-win_amd64.whl 12c045f43b1d2915eca6b880a7f4a256f59d62df4f044788c8ba67709412128d numpy-2.2.3-cp312-cp312-macosx_10_13_x86_64.whl 87eed225fd415bbae787f93a457af7f5990b92a334e346f72070bf569b9c9c95 numpy-2.2.3-cp312-cp312-macosx_11_0_arm64.whl 712a64103d97c404e87d4d7c47fb0c7ff9acccc625ca2002848e0d53288b90ea numpy-2.2.3-cp312-cp312-macosx_14_0_arm64.whl a5ae282abe60a2db0fd407072aff4599c279bcd6e9a2475500fc35b00a57c532 numpy-2.2.3-cp312-cp312-macosx_14_0_x86_64.whl 5266de33d4c3420973cf9ae3b98b54a2a6d53a559310e3236c4b2b06b9c07d4e numpy-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 3b787adbf04b0db1967798dba8da1af07e387908ed1553a0d6e74c084d1ceafe numpy-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 34c1b7e83f94f3b564b35f480f5652a47007dd91f7c839f404d03279cc8dd021 numpy-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl 4d8335b5f1b6e2bce120d55fb17064b0262ff29b459e8493d1785c18ae2553b8 numpy-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl 4d9828d25fb246bedd31e04c9e75714a4087211ac348cb39c8c5f99dbb6683fe numpy-2.2.3-cp312-cp312-win32.whl 83807d445817326b4bcdaaaf8e8e9f1753da04341eceec705c001ff342002e5d numpy-2.2.3-cp312-cp312-win_amd64.whl 7bfdb06b395385ea9b91bf55c1adf1b297c9fdb531552845ff1d3ea6e40d5aba numpy-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl 23c9f4edbf4c065fddb10a4f6e8b6a244342d95966a48820c614891e5059bb50 numpy-2.2.3-cp313-cp313-macosx_11_0_arm64.whl a0c03b6be48aaf92525cccf393265e02773be8fd9551a2f9adbe7db1fa2b60f1 numpy-2.2.3-cp313-cp313-macosx_14_0_arm64.whl 2376e317111daa0a6739e50f7ee2a6353f768489102308b0d98fcf4a04f7f3b5 numpy-2.2.3-cp313-cp313-macosx_14_0_x86_64.whl 8fb62fe3d206d72fe1cfe31c4a1106ad2b136fcc1606093aeab314f02930fdf2 numpy-2.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 52659ad2534427dffcc36aac76bebdd02b67e3b7a619ac67543bc9bfe6b7cdb1 numpy-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 1b416af7d0ed3271cad0f0a0d0bee0911ed7eba23e66f8424d9f3dfcdcae1304 numpy-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl 1402da8e0f435991983d0a9708b779f95a8c98c6b18a171b9f1be09005e64d9d numpy-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl 136553f123ee2951bfcfbc264acd34a2fc2f29d7cdf610ce7daf672b6fbaa693 numpy-2.2.3-cp313-cp313-win32.whl 5b732c8beef1d7bc2d9e476dbba20aaff6167bf205ad9aa8d30913859e82884b numpy-2.2.3-cp313-cp313-win_amd64.whl 435e7a933b9fda8126130b046975a968cc2d833b505475e588339e09f7672890 numpy-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl 7678556eeb0152cbd1522b684dcd215250885993dd00adb93679ec3c0e6e091c numpy-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl 2e8da03bd561504d9b20e7a12340870dfc206c64ea59b4cfee9fceb95070ee94 numpy-2.2.3-cp313-cp313t-macosx_14_0_arm64.whl c9aa4496fd0e17e3843399f533d62857cef5900facf93e735ef65aa4bbc90ef0 numpy-2.2.3-cp313-cp313t-macosx_14_0_x86_64.whl f4ca91d61a4bf61b0f2228f24bbfa6a9facd5f8af03759fe2a655c50ae2c6610 numpy-2.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl deaa09cd492e24fd9b15296844c0ad1b3c976da7907e1c1ed3a0ad21dded6f76 numpy-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 246535e2f7496b7ac85deffe932896a3577be7af8fb7eebe7146444680297e9a numpy-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl daf43a3d1ea699402c5a850e5313680ac355b4adc9770cd5cfc2940e7861f1bf numpy-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl cf802eef1f0134afb81fef94020351be4fe1d6681aadf9c5e862af6602af64ef numpy-2.2.3-cp313-cp313t-win32.whl aee2512827ceb6d7f517c8b85aa5d3923afe8fc7a57d028cffcd522f1c6fd082 numpy-2.2.3-cp313-cp313t-win_amd64.whl 3c2ec8a0f51d60f1e9c0c5ab116b7fc104b165ada3f6c58abf881cb2eb16044d numpy-2.2.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl ed2cf9ed4e8ebc3b754d398cba12f24359f018b416c380f577bbae112ca52fc9 numpy-2.2.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl 39261798d208c3095ae4f7bc8eaeb3481ea8c6e03dc48028057d3cbdbdb8937e numpy-2.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 783145835458e60fa97afac25d511d00a1eca94d4a8f3ace9fe2043003c678e4 numpy-2.2.3-pp310-pypy310_pp73-win_amd64.whl dbdc15f0c81611925f382dfa97b3bd0bc2c1ce19d4fe50482cb0ddc12ba30020 numpy-2.2.3.tar.gz
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/71 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 86 +++++++++++++++++++++++++------------------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4076280..955f40c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ "beautifulsoup4==4.12.3", "colorthief==0.2.1", "markdownify==0.14.1", - "numpy==2.2.2", + "numpy==2.2.4", "phx-class-registry==5.1.1", "pillow==10.4.0", "pip==25.0.1", diff --git a/uv.lock b/uv.lock index 54b981d..8f8266e 100644 --- a/uv.lock +++ b/uv.lock @@ -1013,50 +1013,50 @@ wheels = [ [[package]] name = "numpy" -version = "2.2.2" +version = "2.2.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/d0/c12ddfd3a02274be06ffc71f3efc6d0e457b0409c4481596881e748cb264/numpy-2.2.2.tar.gz", hash = "sha256:ed6906f61834d687738d25988ae117683705636936cc605be0bb208b23df4d8f", size = 20233295 } +sdist = { url = "https://files.pythonhosted.org/packages/e1/78/31103410a57bc2c2b93a3597340a8119588571f6a4539067546cb9a0bfac/numpy-2.2.4.tar.gz", hash = "sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f", size = 20270701 } wheels = [ - { url = "https://files.pythonhosted.org/packages/21/67/32c68756eed84df181c06528ff57e09138f893c4653448c4967311e0f992/numpy-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:642199e98af1bd2b6aeb8ecf726972d238c9877b0f6e8221ee5ab945ec8a2189", size = 21220002 }, - { url = "https://files.pythonhosted.org/packages/3b/89/f43bcad18f2b2e5814457b1c7f7b0e671d0db12c8c0e43397ab8cb1831ed/numpy-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6d9fc9d812c81e6168b6d405bf00b8d6739a7f72ef22a9214c4241e0dc70b323", size = 14391215 }, - { url = "https://files.pythonhosted.org/packages/9c/e6/efb8cd6122bf25e86e3dd89d9dbfec9e6861c50e8810eed77d4be59b51c6/numpy-2.2.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c7d1fd447e33ee20c1f33f2c8e6634211124a9aabde3c617687d8b739aa69eac", size = 5391918 }, - { url = "https://files.pythonhosted.org/packages/47/e2/fccf89d64d9b47ffb242823d4e851fc9d36fa751908c9aac2807924d9b4e/numpy-2.2.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:451e854cfae0febe723077bd0cf0a4302a5d84ff25f0bfece8f29206c7bed02e", size = 6933133 }, - { url = "https://files.pythonhosted.org/packages/34/22/5ece749c0e5420a9380eef6fbf83d16a50010bd18fef77b9193d80a6760e/numpy-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd249bc894af67cbd8bad2c22e7cbcd46cf87ddfca1f1289d1e7e54868cc785c", size = 14338187 }, - { url = "https://files.pythonhosted.org/packages/5b/86/caec78829311f62afa6fa334c8dfcd79cffb4d24bcf96ee02ae4840d462b/numpy-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02935e2c3c0c6cbe9c7955a8efa8908dd4221d7755644c59d1bba28b94fd334f", size = 16393429 }, - { url = "https://files.pythonhosted.org/packages/c8/4e/0c25f74c88239a37924577d6ad780f3212a50f4b4b5f54f5e8c918d726bd/numpy-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a972cec723e0563aa0823ee2ab1df0cb196ed0778f173b381c871a03719d4826", size = 15559103 }, - { url = "https://files.pythonhosted.org/packages/d4/bd/d557f10fa50dc4d5871fb9606af563249b66af2fc6f99041a10e8757c6f1/numpy-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d6d6a0910c3b4368d89dde073e630882cdb266755565155bc33520283b2d9df8", size = 18182967 }, - { url = "https://files.pythonhosted.org/packages/30/e9/66cc0f66386d78ed89e45a56e2a1d051e177b6e04477c4a41cd590ef4017/numpy-2.2.2-cp311-cp311-win32.whl", hash = "sha256:860fd59990c37c3ef913c3ae390b3929d005243acca1a86facb0773e2d8d9e50", size = 6571499 }, - { url = "https://files.pythonhosted.org/packages/66/a3/4139296b481ae7304a43581046b8f0a20da6a0dfe0ee47a044cade796603/numpy-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:da1eeb460ecce8d5b8608826595c777728cdf28ce7b5a5a8c8ac8d949beadcf2", size = 12919805 }, - { url = "https://files.pythonhosted.org/packages/0c/e6/847d15770ab7a01e807bdfcd4ead5bdae57c0092b7dc83878171b6af97bb/numpy-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ac9bea18d6d58a995fac1b2cb4488e17eceeac413af014b1dd26170b766d8467", size = 20912636 }, - { url = "https://files.pythonhosted.org/packages/d1/af/f83580891577b13bd7e261416120e036d0d8fb508c8a43a73e38928b794b/numpy-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23ae9f0c2d889b7b2d88a3791f6c09e2ef827c2446f1c4a3e3e76328ee4afd9a", size = 14098403 }, - { url = "https://files.pythonhosted.org/packages/2b/86/d019fb60a9d0f1d4cf04b014fe88a9135090adfadcc31c1fadbb071d7fa7/numpy-2.2.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3074634ea4d6df66be04f6728ee1d173cfded75d002c75fac79503a880bf3825", size = 5128938 }, - { url = "https://files.pythonhosted.org/packages/7a/1b/50985edb6f1ec495a1c36452e860476f5b7ecdc3fc59ea89ccad3c4926c5/numpy-2.2.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ec0636d3f7d68520afc6ac2dc4b8341ddb725039de042faf0e311599f54eb37", size = 6661937 }, - { url = "https://files.pythonhosted.org/packages/f4/1b/17efd94cad1b9d605c3f8907fb06bcffc4ce4d1d14d46b95316cccccf2b9/numpy-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ffbb1acd69fdf8e89dd60ef6182ca90a743620957afb7066385a7bbe88dc748", size = 14049518 }, - { url = "https://files.pythonhosted.org/packages/5b/73/65d2f0b698df1731e851e3295eb29a5ab8aa06f763f7e4188647a809578d/numpy-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0349b025e15ea9d05c3d63f9657707a4e1d471128a3b1d876c095f328f8ff7f0", size = 16099146 }, - { url = "https://files.pythonhosted.org/packages/d5/69/308f55c0e19d4b5057b5df286c5433822e3c8039ede06d4051d96f1c2c4e/numpy-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:463247edcee4a5537841d5350bc87fe8e92d7dd0e8c71c995d2c6eecb8208278", size = 15246336 }, - { url = "https://files.pythonhosted.org/packages/f0/d8/d8d333ad0d8518d077a21aeea7b7c826eff766a2b1ce1194dea95ca0bacf/numpy-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9dd47ff0cb2a656ad69c38da850df3454da88ee9a6fde0ba79acceee0e79daba", size = 17863507 }, - { url = "https://files.pythonhosted.org/packages/82/6e/0b84ad3103ffc16d6673e63b5acbe7901b2af96c2837174c6318c98e27ab/numpy-2.2.2-cp312-cp312-win32.whl", hash = "sha256:4525b88c11906d5ab1b0ec1f290996c0020dd318af8b49acaa46f198b1ffc283", size = 6276491 }, - { url = "https://files.pythonhosted.org/packages/fc/84/7f801a42a67b9772a883223a0a1e12069a14626c81a732bd70aac57aebc1/numpy-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:5acea83b801e98541619af398cc0109ff48016955cc0818f478ee9ef1c5c3dcb", size = 12616372 }, - { url = "https://files.pythonhosted.org/packages/e1/fe/df5624001f4f5c3e0b78e9017bfab7fdc18a8d3b3d3161da3d64924dd659/numpy-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b208cfd4f5fe34e1535c08983a1a6803fdbc7a1e86cf13dd0c61de0b51a0aadc", size = 20899188 }, - { url = "https://files.pythonhosted.org/packages/a9/80/d349c3b5ed66bd3cb0214be60c27e32b90a506946857b866838adbe84040/numpy-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d0bbe7dd86dca64854f4b6ce2ea5c60b51e36dfd597300057cf473d3615f2369", size = 14113972 }, - { url = "https://files.pythonhosted.org/packages/9d/50/949ec9cbb28c4b751edfa64503f0913cbfa8d795b4a251e7980f13a8a655/numpy-2.2.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:22ea3bb552ade325530e72a0c557cdf2dea8914d3a5e1fecf58fa5dbcc6f43cd", size = 5114294 }, - { url = "https://files.pythonhosted.org/packages/8d/f3/399c15629d5a0c68ef2aa7621d430b2be22034f01dd7f3c65a9c9666c445/numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:128c41c085cab8a85dc29e66ed88c05613dccf6bc28b3866cd16050a2f5448be", size = 6648426 }, - { url = "https://files.pythonhosted.org/packages/2c/03/c72474c13772e30e1bc2e558cdffd9123c7872b731263d5648b5c49dd459/numpy-2.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:250c16b277e3b809ac20d1f590716597481061b514223c7badb7a0f9993c7f84", size = 14045990 }, - { url = "https://files.pythonhosted.org/packages/83/9c/96a9ab62274ffafb023f8ee08c88d3d31ee74ca58869f859db6845494fa6/numpy-2.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c8854b09bc4de7b041148d8550d3bd712b5c21ff6a8ed308085f190235d7ff", size = 16096614 }, - { url = "https://files.pythonhosted.org/packages/d5/34/cd0a735534c29bec7093544b3a509febc9b0df77718a9b41ffb0809c9f46/numpy-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b6fb9c32a91ec32a689ec6410def76443e3c750e7cfc3fb2206b985ffb2b85f0", size = 15242123 }, - { url = "https://files.pythonhosted.org/packages/5e/6d/541717a554a8f56fa75e91886d9b79ade2e595918690eb5d0d3dbd3accb9/numpy-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:57b4012e04cc12b78590a334907e01b3a85efb2107df2b8733ff1ed05fce71de", size = 17859160 }, - { url = "https://files.pythonhosted.org/packages/b9/a5/fbf1f2b54adab31510728edd06a05c1b30839f37cf8c9747cb85831aaf1b/numpy-2.2.2-cp313-cp313-win32.whl", hash = "sha256:4dbd80e453bd34bd003b16bd802fac70ad76bd463f81f0c518d1245b1c55e3d9", size = 6273337 }, - { url = "https://files.pythonhosted.org/packages/56/e5/01106b9291ef1d680f82bc47d0c5b5e26dfed15b0754928e8f856c82c881/numpy-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:5a8c863ceacae696aff37d1fd636121f1a512117652e5dfb86031c8d84836369", size = 12609010 }, - { url = "https://files.pythonhosted.org/packages/9f/30/f23d9876de0f08dceb707c4dcf7f8dd7588266745029debb12a3cdd40be6/numpy-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b3482cb7b3325faa5f6bc179649406058253d91ceda359c104dac0ad320e1391", size = 20924451 }, - { url = "https://files.pythonhosted.org/packages/6a/ec/6ea85b2da9d5dfa1dbb4cb3c76587fc8ddcae580cb1262303ab21c0926c4/numpy-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9491100aba630910489c1d0158034e1c9a6546f0b1340f716d522dc103788e39", size = 14122390 }, - { url = "https://files.pythonhosted.org/packages/68/05/bfbdf490414a7dbaf65b10c78bc243f312c4553234b6d91c94eb7c4b53c2/numpy-2.2.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:41184c416143defa34cc8eb9d070b0a5ba4f13a0fa96a709e20584638254b317", size = 5156590 }, - { url = "https://files.pythonhosted.org/packages/f7/ec/fe2e91b2642b9d6544518388a441bcd65c904cea38d9ff998e2e8ebf808e/numpy-2.2.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7dca87ca328f5ea7dafc907c5ec100d187911f94825f8700caac0b3f4c384b49", size = 6671958 }, - { url = "https://files.pythonhosted.org/packages/b1/6f/6531a78e182f194d33ee17e59d67d03d0d5a1ce7f6be7343787828d1bd4a/numpy-2.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bc61b307655d1a7f9f4b043628b9f2b721e80839914ede634e3d485913e1fb2", size = 14019950 }, - { url = "https://files.pythonhosted.org/packages/e1/fb/13c58591d0b6294a08cc40fcc6b9552d239d773d520858ae27f39997f2ae/numpy-2.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fad446ad0bc886855ddf5909cbf8cb5d0faa637aaa6277fb4b19ade134ab3c7", size = 16079759 }, - { url = "https://files.pythonhosted.org/packages/2c/f2/f2f8edd62abb4b289f65a7f6d1f3650273af00b91b7267a2431be7f1aec6/numpy-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:149d1113ac15005652e8d0d3f6fd599360e1a708a4f98e43c9c77834a28238cb", size = 15226139 }, - { url = "https://files.pythonhosted.org/packages/aa/29/14a177f1a90b8ad8a592ca32124ac06af5eff32889874e53a308f850290f/numpy-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:106397dbbb1896f99e044efc90360d098b3335060375c26aa89c0d8a97c5f648", size = 17856316 }, - { url = "https://files.pythonhosted.org/packages/95/03/242ae8d7b97f4e0e4ab8dd51231465fb23ed5e802680d629149722e3faf1/numpy-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:0eec19f8af947a61e968d5429f0bd92fec46d92b0008d0a6685b40d6adf8a4f4", size = 6329134 }, - { url = "https://files.pythonhosted.org/packages/80/94/cd9e9b04012c015cb6320ab3bf43bc615e248dddfeb163728e800a5d96f0/numpy-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:97b974d3ba0fb4612b77ed35d7627490e8e3dff56ab41454d9e8b23448940576", size = 12696208 }, + { url = "https://files.pythonhosted.org/packages/16/fb/09e778ee3a8ea0d4dc8329cca0a9c9e65fed847d08e37eba74cb7ed4b252/numpy-2.2.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4", size = 21254989 }, + { url = "https://files.pythonhosted.org/packages/a2/0a/1212befdbecab5d80eca3cde47d304cad986ad4eec7d85a42e0b6d2cc2ef/numpy-2.2.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4", size = 14425910 }, + { url = "https://files.pythonhosted.org/packages/2b/3e/e7247c1d4f15086bb106c8d43c925b0b2ea20270224f5186fa48d4fb5cbd/numpy-2.2.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f", size = 5426490 }, + { url = "https://files.pythonhosted.org/packages/5d/fa/aa7cd6be51419b894c5787a8a93c3302a1ed4f82d35beb0613ec15bdd0e2/numpy-2.2.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880", size = 6967754 }, + { url = "https://files.pythonhosted.org/packages/d5/ee/96457c943265de9fadeb3d2ffdbab003f7fba13d971084a9876affcda095/numpy-2.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1", size = 14373079 }, + { url = "https://files.pythonhosted.org/packages/c5/5c/ceefca458559f0ccc7a982319f37ed07b0d7b526964ae6cc61f8ad1b6119/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5", size = 16428819 }, + { url = "https://files.pythonhosted.org/packages/22/31/9b2ac8eee99e001eb6add9fa27514ef5e9faf176169057a12860af52704c/numpy-2.2.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687", size = 15881470 }, + { url = "https://files.pythonhosted.org/packages/f0/dc/8569b5f25ff30484b555ad8a3f537e0225d091abec386c9420cf5f7a2976/numpy-2.2.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6", size = 18218144 }, + { url = "https://files.pythonhosted.org/packages/5e/05/463c023a39bdeb9bb43a99e7dee2c664cb68d5bb87d14f92482b9f6011cc/numpy-2.2.4-cp311-cp311-win32.whl", hash = "sha256:ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09", size = 6606368 }, + { url = "https://files.pythonhosted.org/packages/8b/72/10c1d2d82101c468a28adc35de6c77b308f288cfd0b88e1070f15b98e00c/numpy-2.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91", size = 12947526 }, + { url = "https://files.pythonhosted.org/packages/a2/30/182db21d4f2a95904cec1a6f779479ea1ac07c0647f064dea454ec650c42/numpy-2.2.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4", size = 20947156 }, + { url = "https://files.pythonhosted.org/packages/24/6d/9483566acfbda6c62c6bc74b6e981c777229d2af93c8eb2469b26ac1b7bc/numpy-2.2.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854", size = 14133092 }, + { url = "https://files.pythonhosted.org/packages/27/f6/dba8a258acbf9d2bed2525cdcbb9493ef9bae5199d7a9cb92ee7e9b2aea6/numpy-2.2.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24", size = 5163515 }, + { url = "https://files.pythonhosted.org/packages/62/30/82116199d1c249446723c68f2c9da40d7f062551036f50b8c4caa42ae252/numpy-2.2.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee", size = 6696558 }, + { url = "https://files.pythonhosted.org/packages/0e/b2/54122b3c6df5df3e87582b2e9430f1bdb63af4023c739ba300164c9ae503/numpy-2.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba", size = 14084742 }, + { url = "https://files.pythonhosted.org/packages/02/e2/e2cbb8d634151aab9528ef7b8bab52ee4ab10e076509285602c2a3a686e0/numpy-2.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592", size = 16134051 }, + { url = "https://files.pythonhosted.org/packages/8e/21/efd47800e4affc993e8be50c1b768de038363dd88865920439ef7b422c60/numpy-2.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb", size = 15578972 }, + { url = "https://files.pythonhosted.org/packages/04/1e/f8bb88f6157045dd5d9b27ccf433d016981032690969aa5c19e332b138c0/numpy-2.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f", size = 17898106 }, + { url = "https://files.pythonhosted.org/packages/2b/93/df59a5a3897c1f036ae8ff845e45f4081bb06943039ae28a3c1c7c780f22/numpy-2.2.4-cp312-cp312-win32.whl", hash = "sha256:65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00", size = 6311190 }, + { url = "https://files.pythonhosted.org/packages/46/69/8c4f928741c2a8efa255fdc7e9097527c6dc4e4df147e3cadc5d9357ce85/numpy-2.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146", size = 12644305 }, + { url = "https://files.pythonhosted.org/packages/2a/d0/bd5ad792e78017f5decfb2ecc947422a3669a34f775679a76317af671ffc/numpy-2.2.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7", size = 20933623 }, + { url = "https://files.pythonhosted.org/packages/c3/bc/2b3545766337b95409868f8e62053135bdc7fa2ce630aba983a2aa60b559/numpy-2.2.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0", size = 14148681 }, + { url = "https://files.pythonhosted.org/packages/6a/70/67b24d68a56551d43a6ec9fe8c5f91b526d4c1a46a6387b956bf2d64744e/numpy-2.2.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392", size = 5148759 }, + { url = "https://files.pythonhosted.org/packages/1c/8b/e2fc8a75fcb7be12d90b31477c9356c0cbb44abce7ffb36be39a0017afad/numpy-2.2.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc", size = 6683092 }, + { url = "https://files.pythonhosted.org/packages/13/73/41b7b27f169ecf368b52533edb72e56a133f9e86256e809e169362553b49/numpy-2.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298", size = 14081422 }, + { url = "https://files.pythonhosted.org/packages/4b/04/e208ff3ae3ddfbafc05910f89546382f15a3f10186b1f56bd99f159689c2/numpy-2.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7", size = 16132202 }, + { url = "https://files.pythonhosted.org/packages/fe/bc/2218160574d862d5e55f803d88ddcad88beff94791f9c5f86d67bd8fbf1c/numpy-2.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6", size = 15573131 }, + { url = "https://files.pythonhosted.org/packages/a5/78/97c775bc4f05abc8a8426436b7cb1be806a02a2994b195945600855e3a25/numpy-2.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd", size = 17894270 }, + { url = "https://files.pythonhosted.org/packages/b9/eb/38c06217a5f6de27dcb41524ca95a44e395e6a1decdc0c99fec0832ce6ae/numpy-2.2.4-cp313-cp313-win32.whl", hash = "sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c", size = 6308141 }, + { url = "https://files.pythonhosted.org/packages/52/17/d0dd10ab6d125c6d11ffb6dfa3423c3571befab8358d4f85cd4471964fcd/numpy-2.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3", size = 12636885 }, + { url = "https://files.pythonhosted.org/packages/fa/e2/793288ede17a0fdc921172916efb40f3cbc2aa97e76c5c84aba6dc7e8747/numpy-2.2.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8", size = 20961829 }, + { url = "https://files.pythonhosted.org/packages/3a/75/bb4573f6c462afd1ea5cbedcc362fe3e9bdbcc57aefd37c681be1155fbaa/numpy-2.2.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39", size = 14161419 }, + { url = "https://files.pythonhosted.org/packages/03/68/07b4cd01090ca46c7a336958b413cdbe75002286295f2addea767b7f16c9/numpy-2.2.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd", size = 5196414 }, + { url = "https://files.pythonhosted.org/packages/a5/fd/d4a29478d622fedff5c4b4b4cedfc37a00691079623c0575978d2446db9e/numpy-2.2.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0", size = 6709379 }, + { url = "https://files.pythonhosted.org/packages/41/78/96dddb75bb9be730b87c72f30ffdd62611aba234e4e460576a068c98eff6/numpy-2.2.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960", size = 14051725 }, + { url = "https://files.pythonhosted.org/packages/00/06/5306b8199bffac2a29d9119c11f457f6c7d41115a335b78d3f86fad4dbe8/numpy-2.2.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8", size = 16101638 }, + { url = "https://files.pythonhosted.org/packages/fa/03/74c5b631ee1ded596945c12027649e6344614144369fd3ec1aaced782882/numpy-2.2.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc", size = 15571717 }, + { url = "https://files.pythonhosted.org/packages/cb/dc/4fc7c0283abe0981e3b89f9b332a134e237dd476b0c018e1e21083310c31/numpy-2.2.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff", size = 17879998 }, + { url = "https://files.pythonhosted.org/packages/e5/2b/878576190c5cfa29ed896b518cc516aecc7c98a919e20706c12480465f43/numpy-2.2.4-cp313-cp313t-win32.whl", hash = "sha256:05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286", size = 6366896 }, + { url = "https://files.pythonhosted.org/packages/3e/05/eb7eec66b95cf697f08c754ef26c3549d03ebd682819f794cb039574a0a6/numpy-2.2.4-cp313-cp313t-win_amd64.whl", hash = "sha256:188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d", size = 12739119 }, ] [[package]] @@ -1699,7 +1699,7 @@ requires-dist = [ { name = "beautifulsoup4", specifier = "==4.12.3" }, { name = "colorthief", specifier = "==0.2.1" }, { name = "markdownify", specifier = "==0.14.1" }, - { name = "numpy", specifier = "==2.2.2" }, + { name = "numpy", specifier = "==2.2.4" }, { name = "phx-class-registry", specifier = "==5.1.1" }, { name = "pillow", specifier = "==10.4.0" }, { name = "pip", specifier = "==25.0.1" }, From 4a41bbc2b251657b5c1e95e1acfb09ba3b67965f Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:18:55 -0400 Subject: [PATCH 38/51] chore(deps): update dependency ruff to v0.11.2 (#77) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ruff](https://docs.astral.sh/ruff) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | tool.uv.dev-dependencies | minor | `==0.9.3` -> `==0.11.2` | --- ### Release Notes
astral-sh/ruff (ruff) ### [`v0.11.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0112) [Compare Source](https://github.com/astral-sh/ruff/compare/0.11.1...0.11.2) ##### Preview features - \[syntax-errors] Fix false-positive syntax errors emitted for annotations on variadic parameters before Python 3.11 ([#​16878](https://github.com/astral-sh/ruff/pull/16878)) ### [`v0.11.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0111) [Compare Source](https://github.com/astral-sh/ruff/compare/0.11.0...0.11.1) ##### Preview features - \[`airflow`] Add `chain`, `chain_linear` and `cross_downstream` for `AIR302` ([#​16647](https://github.com/astral-sh/ruff/pull/16647)) - \[syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors ([#​16581](https://github.com/astral-sh/ruff/pull/16581)) - \[syntax-errors] PEP 701 f-strings before Python 3.12 ([#​16543](https://github.com/astral-sh/ruff/pull/16543)) - \[syntax-errors] Parenthesized context managers before Python 3.9 ([#​16523](https://github.com/astral-sh/ruff/pull/16523)) - \[syntax-errors] Star annotations before Python 3.11 ([#​16545](https://github.com/astral-sh/ruff/pull/16545)) - \[syntax-errors] Star expression in index before Python 3.11 ([#​16544](https://github.com/astral-sh/ruff/pull/16544)) - \[syntax-errors] Unparenthesized assignment expressions in sets and indexes ([#​16404](https://github.com/astral-sh/ruff/pull/16404)) ##### Bug fixes - Server: Allow `FixAll` action in presence of version-specific syntax errors ([#​16848](https://github.com/astral-sh/ruff/pull/16848)) - \[`flake8-bandit`] Allow raw strings in `suspicious-mark-safe-usage` (`S308`) [#​16702](https://github.com/astral-sh/ruff/issues/16702) ([#​16770](https://github.com/astral-sh/ruff/pull/16770)) - \[`refurb`] Avoid panicking `unwrap` in `verbose-decimal-constructor` (`FURB157`) ([#​16777](https://github.com/astral-sh/ruff/pull/16777)) - \[`refurb`] Fix starred expressions fix (`FURB161`) ([#​16550](https://github.com/astral-sh/ruff/pull/16550)) - Fix `--statistics` reporting for unsafe fixes ([#​16756](https://github.com/astral-sh/ruff/pull/16756)) ##### Rule changes - \[`flake8-executables`] Allow `uv run` in shebang line for `shebang-missing-python` (`EXE003`) ([#​16849](https://github.com/astral-sh/ruff/pull/16849),[#​16855](https://github.com/astral-sh/ruff/pull/16855)) ##### CLI - Add `--exit-non-zero-on-format` ([#​16009](https://github.com/astral-sh/ruff/pull/16009)) ##### Documentation - Update Ruff tutorial to avoid non-existent fix in `__init__.py` ([#​16818](https://github.com/astral-sh/ruff/pull/16818)) - \[`flake8-gettext`] Swap `format-` and `printf-in-get-text-func-call` examples (`INT002`, `INT003`) ([#​16769](https://github.com/astral-sh/ruff/pull/16769)) ### [`v0.11.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0110) [Compare Source](https://github.com/astral-sh/ruff/compare/0.10.0...0.11.0) This is a follow-up to release 0.10.0. Because of a mistake in the release process, the `requires-python` inference changes were not included in that release. Ruff 0.11.0 now includes this change as well as the stabilization of the preview behavior for `PGH004`. ##### Breaking changes - **Changes to how the Python version is inferred when a `target-version` is not specified** ([#​16319](https://github.com/astral-sh/ruff/pull/16319)) In previous versions of Ruff, you could specify your Python version with: - The `target-version` option in a `ruff.toml` file or the `[tool.ruff]` section of a pyproject.toml file. - The `project.requires-python` field in a `pyproject.toml` file with a `[tool.ruff]` section. These options worked well in most cases, and are still recommended for fine control of the Python version. However, because of the way Ruff discovers config files, `pyproject.toml` files without a `[tool.ruff]` section would be ignored, including the `requires-python` setting. Ruff would then use the default Python version (3.9 as of this writing) instead, which is surprising when you've attempted to request another version. In v0.10, config discovery has been updated to address this issue: - If Ruff finds a `ruff.toml` file without a `target-version`, it will check for a `pyproject.toml` file in the same directory and respect its `requires-python` version, even if it does not contain a `[tool.ruff]` section. - If Ruff finds a user-level configuration, the `requires-python` field of the closest `pyproject.toml` in a parent directory will take precedence. - If there is no config file (`ruff.toml`or `pyproject.toml` with a `[tool.ruff]` section) in the directory of the file being checked, Ruff will search for the closest `pyproject.toml` in the parent directories and use its `requires-python` setting. ##### Stabilization The following behaviors have been stabilized: - [`blanket-noqa`](https://docs.astral.sh/ruff/rules/blanket-noqa/) (`PGH004`): Also detect blanked file-level noqa comments (and not just line level comments). ##### Preview features - \[syntax-errors] Tuple unpacking in `for` statement iterator clause before Python 3.9 ([#​16558](https://github.com/astral-sh/ruff/pull/16558)) ### [`v0.10.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0100) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.10...0.10.0) Check out the [blog post](https://astral.sh/blog/ruff-v0.10.0) for a migration guide and overview of the changes! ##### Breaking changes See also, the "Remapped rules" section which may result in disabled rules. - **Changes to how the Python version is inferred when a `target-version` is not specified** ([#​16319](https://github.com/astral-sh/ruff/pull/16319)) Because of a mistake in the release process, the `requires-python` inference changes are not included in this release and instead shipped as part of 0.11.0. You can find a description of this change in the 0.11.0 section. - **Updated `TYPE_CHECKING` behavior** ([#​16669](https://github.com/astral-sh/ruff/pull/16669)) Previously, Ruff only recognized typechecking blocks that tested the `typing.TYPE_CHECKING` symbol. Now, Ruff recognizes any local variable named `TYPE_CHECKING`. This release also removes support for the legacy `if 0:` and `if False:` typechecking checks. Use a local `TYPE_CHECKING` variable instead. - **More robust noqa parsing** ([#​16483](https://github.com/astral-sh/ruff/pull/16483)) The syntax for both file-level and in-line suppression comments has been unified and made more robust to certain errors. In most cases, this will result in more suppression comments being read by Ruff, but there are a few instances where previously read comments will now log an error to the user instead. Please refer to the documentation on [*Error suppression*](https://docs.astral.sh/ruff/linter/#error-suppression) for the full specification. - **Avoid unnecessary parentheses around with statements with a single context manager and a trailing comment** ([#​14005](https://github.com/astral-sh/ruff/pull/14005)) This change fixes a bug in the formatter where it introduced unnecessary parentheses around with statements with a single context manager and a trailing comment. This change may result in a change in formatting for some users. - **Bump alpine default tag to 3.21 for derived Docker images** ([#​16456](https://github.com/astral-sh/ruff/pull/16456)) Alpine 3.21 was released in Dec 2024 and is used in the official Alpine-based Python images. Now the ruff:alpine image will use 3.21 instead of 3.20 and ruff:alpine3.20 will no longer be updated. ##### Deprecated Rules The following rules have been deprecated: - [`non-pep604-isinstance`](https://docs.astral.sh/ruff/rules/non-pep604-isinstance/) (`UP038`) - [`suspicious-xmle-tree-usage`](https://docs.astral.sh/ruff/rules/suspicious-xmle-tree-usage/) (`S320`) ##### Remapped rules The following rules have been remapped to new rule codes: - \[`unsafe-markup-use`]: `RUF035` to `S704` ##### Stabilization The following rules have been stabilized and are no longer in preview: - [`batched-without-explicit-strict`](https://docs.astral.sh/ruff/rules/batched-without-explicit-strict) (`B911`) - [`unnecessary-dict-comprehension-for-iterable`](https://docs.astral.sh/ruff/rules/unnecessary-dict-comprehension-for-iterable) (`C420`) - [`datetime-min-max`](https://docs.astral.sh/ruff/rules/datetime-min-max) (`DTZ901`) - [`fast-api-unused-path-parameter`](https://docs.astral.sh/ruff/rules/fast-api-unused-path-parameter) (`FAST003`) - [`root-logger-call`](https://docs.astral.sh/ruff/rules/root-logger-call) (`LOG015`) - [`len-test`](https://docs.astral.sh/ruff/rules/len-test) (`PLC1802`) - [`shallow-copy-environ`](https://docs.astral.sh/ruff/rules/shallow-copy-environ) (`PLW1507`) - [`os-listdir`](https://docs.astral.sh/ruff/rules/os-listdir) (`PTH208`) - [`invalid-pathlib-with-suffix`](https://docs.astral.sh/ruff/rules/invalid-pathlib-with-suffix) (`PTH210`) - [`invalid-assert-message-literal-argument`](https://docs.astral.sh/ruff/rules/invalid-assert-message-literal-argument) (`RUF040`) - [`unnecessary-nested-literal`](https://docs.astral.sh/ruff/rules/unnecessary-nested-literal) (`RUF041`) - [`unnecessary-cast-to-int`](https://docs.astral.sh/ruff/rules/unnecessary-cast-to-int) (`RUF046`) - [`map-int-version-parsing`](https://docs.astral.sh/ruff/rules/map-int-version-parsing) (`RUF048`) - [`if-key-in-dict-del`](https://docs.astral.sh/ruff/rules/if-key-in-dict-del) (`RUF051`) - [`unsafe-markup-use`](https://docs.astral.sh/ruff/rules/unsafe-markup-use) (`S704`). This rule has also been renamed from `RUF035`. - [`split-static-string`](https://docs.astral.sh/ruff/rules/split-static-string) (`SIM905`) - [`runtime-cast-value`](https://docs.astral.sh/ruff/rules/runtime-cast-value) (`TC006`) - [`unquoted-type-alias`](https://docs.astral.sh/ruff/rules/unquoted-type-alias) (`TC007`) - [`non-pep646-unpack`](https://docs.astral.sh/ruff/rules/non-pep646-unpack) (`UP044`) The following behaviors have been stabilized: - [`bad-staticmethod-argument`](https://docs.astral.sh/ruff/rules/bad-staticmethod-argument/) (`PLW0211`) [`invalid-first-argument-name-for-class-method`](https://docs.astral.sh/ruff/rules/invalid-first-argument-name-for-class-method/) (`N804`): `__new__` methods are now no longer flagged by `invalid-first-argument-name-for-class-method` (`N804`) but instead by `bad-staticmethod-argument` (`PLW0211`) - [`bad-str-strip-call`](https://docs.astral.sh/ruff/rules/bad-str-strip-call/) (`PLE1310`): The rule now applies to objects which are known to have type `str` or `bytes`. - [`custom-type-var-for-self`](https://docs.astral.sh/ruff/rules/custom-type-var-for-self/) (`PYI019`): More accurate detection of custom `TypeVars` replaceable by `Self`. The range of the diagnostic is now the full function header rather than just the return annotation. - [`invalid-argument-name`](https://docs.astral.sh/ruff/rules/invalid-argument-name/) (`N803`): Ignore argument names of functions decorated with `typing.override` - [`invalid-envvar-default`](https://docs.astral.sh/ruff/rules/invalid-envvar-default/) (`PLW1508`): Detect default value arguments to `os.environ.get` with invalid type. - [`pytest-raises-with-multiple-statements`](https://docs.astral.sh/ruff/rules/pytest-raises-with-multiple-statements/) (`PT012`) [`pytest-warns-with-multiple-statements`](https://docs.astral.sh/ruff/rules/pytest-warns-with-multiple-statements/) (`PT031`): Allow `for` statements with an empty body in `pytest.raises` and `pytest.warns` `with` statements. - [`redundant-open-modes`](https://docs.astral.sh/ruff/rules/redundant-open-modes/) (`UP015`): The diagnostic range is now the range of the redundant mode argument where it previously was the range of the entire open call. You may have to replace your `noqa` comments when suppressing `UP015`. - [`stdlib-module-shadowing`](https://docs.astral.sh/ruff/rules/stdlib-module-shadowing/) (`A005`): Changes the default value of `lint.flake8-builtins.strict-checking` from `true` to `false`. - [`type-none-comparison`](https://docs.astral.sh/ruff/rules/type-none-comparison/) (`FURB169`): Now also recognizes `type(expr) is type(None)` comparisons where `expr` isn't a name expression. The following fixes or improvements to fixes have been stabilized: - [`repeated-equality-comparison`](https://docs.astral.sh/ruff/rules/repeated-equality-comparison/) (`PLR1714`) ([#​16685](https://github.com/astral-sh/ruff/pull/16685)) - [`needless-bool`](https://docs.astral.sh/ruff/rules/needless-bool/) (`SIM103`) ([#​16684](https://github.com/astral-sh/ruff/pull/16684)) - [`unused-private-type-var`](https://docs.astral.sh/ruff/rules/unused-private-type-var/) (`PYI018`) ([#​16682](https://github.com/astral-sh/ruff/pull/16682)) ##### Server - Remove logging output for `ruff.printDebugInformation` ([#​16617](https://github.com/astral-sh/ruff/pull/16617)) ##### Configuration - \[`flake8-builtins`] Deprecate the `builtins-` prefixed options in favor of the unprefixed options (e.g. `builtins-allowed-modules` is now deprecated in favor of `allowed-modules`) ([#​16092](https://github.com/astral-sh/ruff/pull/16092)) ##### Bug fixes - \[flake8-bandit] Fix mixed-case hash algorithm names (S324) ([#​16552](https://github.com/astral-sh/ruff/pull/16552)) ##### CLI - \[ruff] Fix `last_tag`/`commits_since_last_tag` for `version` command ([#​16686](https://github.com/astral-sh/ruff/pull/16686)) ### [`v0.9.10`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0910) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.9...0.9.10) ##### Preview features - \[`ruff`] Add new rule `RUF059`: Unused unpacked assignment ([#​16449](https://github.com/astral-sh/ruff/pull/16449)) - \[`syntax-errors`] Detect assignment expressions before Python 3.8 ([#​16383](https://github.com/astral-sh/ruff/pull/16383)) - \[`syntax-errors`] Named expressions in decorators before Python 3.9 ([#​16386](https://github.com/astral-sh/ruff/pull/16386)) - \[`syntax-errors`] Parenthesized keyword argument names after Python 3.8 ([#​16482](https://github.com/astral-sh/ruff/pull/16482)) - \[`syntax-errors`] Positional-only parameters before Python 3.8 ([#​16481](https://github.com/astral-sh/ruff/pull/16481)) - \[`syntax-errors`] Tuple unpacking in `return` and `yield` before Python 3.8 ([#​16485](https://github.com/astral-sh/ruff/pull/16485)) - \[`syntax-errors`] Type parameter defaults before Python 3.13 ([#​16447](https://github.com/astral-sh/ruff/pull/16447)) - \[`syntax-errors`] Type parameter lists before Python 3.12 ([#​16479](https://github.com/astral-sh/ruff/pull/16479)) - \[`syntax-errors`] `except*` before Python 3.11 ([#​16446](https://github.com/astral-sh/ruff/pull/16446)) - \[`syntax-errors`] `type` statements before Python 3.12 ([#​16478](https://github.com/astral-sh/ruff/pull/16478)) ##### Bug fixes - Escape template filenames in glob patterns in configuration ([#​16407](https://github.com/astral-sh/ruff/pull/16407)) - \[`flake8-simplify`] Exempt unittest context methods for `SIM115` rule ([#​16439](https://github.com/astral-sh/ruff/pull/16439)) - Formatter: Fix syntax error location in notebooks ([#​16499](https://github.com/astral-sh/ruff/pull/16499)) - \[`pyupgrade`] Do not offer fix when at least one target is `global`/`nonlocal` (`UP028`) ([#​16451](https://github.com/astral-sh/ruff/pull/16451)) - \[`flake8-builtins`] Ignore variables matching module attribute names (`A001`) ([#​16454](https://github.com/astral-sh/ruff/pull/16454)) - \[`pylint`] Convert `code` keyword argument to a positional argument in fix for (`PLR1722`) ([#​16424](https://github.com/astral-sh/ruff/pull/16424)) ##### CLI - Move rule code from `description` to `check_name` in GitLab output serializer ([#​16437](https://github.com/astral-sh/ruff/pull/16437)) ##### Documentation - \[`pydocstyle`] Clarify that `D417` only checks docstrings with an arguments section ([#​16494](https://github.com/astral-sh/ruff/pull/16494)) ### [`v0.9.9`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#099) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.8...0.9.9) ##### Preview features - Fix caching of unsupported-syntax errors ([#​16425](https://github.com/astral-sh/ruff/pull/16425)) ##### Bug fixes - Only show unsupported-syntax errors in editors when preview mode is enabled ([#​16429](https://github.com/astral-sh/ruff/pull/16429)) ### [`v0.9.8`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#098) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.7...0.9.8) ##### Preview features - Start detecting version-related syntax errors in the parser ([#​16090](https://github.com/astral-sh/ruff/pull/16090)) ##### Rule changes - \[`pylint`] Mark fix unsafe (`PLW1507`) ([#​16343](https://github.com/astral-sh/ruff/pull/16343)) - \[`pylint`] Catch `case np.nan`/`case math.nan` in `match` statements (`PLW0177`) ([#​16378](https://github.com/astral-sh/ruff/pull/16378)) - \[`ruff`] Add more Pydantic models variants to the list of default copy semantics (`RUF012`) ([#​16291](https://github.com/astral-sh/ruff/pull/16291)) ##### Server - Avoid indexing the project if `configurationPreference` is `editorOnly` ([#​16381](https://github.com/astral-sh/ruff/pull/16381)) - Avoid unnecessary info at non-trace server log level ([#​16389](https://github.com/astral-sh/ruff/pull/16389)) - Expand `ruff.configuration` to allow inline config ([#​16296](https://github.com/astral-sh/ruff/pull/16296)) - Notify users for invalid client settings ([#​16361](https://github.com/astral-sh/ruff/pull/16361)) ##### Configuration - Add `per-file-target-version` option ([#​16257](https://github.com/astral-sh/ruff/pull/16257)) ##### Bug fixes - \[`refurb`] Do not consider docstring(s) (`FURB156`) ([#​16391](https://github.com/astral-sh/ruff/pull/16391)) - \[`flake8-self`] Ignore attribute accesses on instance-like variables (`SLF001`) ([#​16149](https://github.com/astral-sh/ruff/pull/16149)) - \[`pylint`] Fix false positives, add missing methods, and support positional-only parameters (`PLE0302`) ([#​16263](https://github.com/astral-sh/ruff/pull/16263)) - \[`flake8-pyi`] Mark `PYI030` fix unsafe when comments are deleted ([#​16322](https://github.com/astral-sh/ruff/pull/16322)) ##### Documentation - Fix example for `S611` ([#​16316](https://github.com/astral-sh/ruff/pull/16316)) - Normalize inconsistent markdown headings in docstrings ([#​16364](https://github.com/astral-sh/ruff/pull/16364)) - Document MSRV policy ([#​16384](https://github.com/astral-sh/ruff/pull/16384)) ### [`v0.9.7`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#097) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.6...0.9.7) ##### Preview features - Consider `__new__` methods as special function type for enforcing class method or static method rules ([#​13305](https://github.com/astral-sh/ruff/pull/13305)) - \[`airflow`] Improve the internal logic to differentiate deprecated symbols (`AIR303`) ([#​16013](https://github.com/astral-sh/ruff/pull/16013)) - \[`refurb`] Manual timezone monkeypatching (`FURB162`) ([#​16113](https://github.com/astral-sh/ruff/pull/16113)) - \[`ruff`] Implicit class variable in dataclass (`RUF045`) ([#​14349](https://github.com/astral-sh/ruff/pull/14349)) - \[`ruff`] Skip singleton starred expressions for `incorrectly-parenthesized-tuple-in-subscript` (`RUF031`) ([#​16083](https://github.com/astral-sh/ruff/pull/16083)) - \[`refurb`] Check for subclasses includes subscript expressions (`FURB189`) ([#​16155](https://github.com/astral-sh/ruff/pull/16155)) ##### Rule changes - \[`flake8-debugger`] Also flag `sys.breakpointhook` and `sys.__breakpointhook__` (`T100`) ([#​16191](https://github.com/astral-sh/ruff/pull/16191)) - \[`pycodestyle`] Exempt `site.addsitedir(...)` calls (`E402`) ([#​16251](https://github.com/astral-sh/ruff/pull/16251)) ##### Formatter - Fix unstable formatting of trailing end-of-line comments of parenthesized attribute values ([#​16187](https://github.com/astral-sh/ruff/pull/16187)) ##### Server - Fix handling of requests received after shutdown message ([#​16262](https://github.com/astral-sh/ruff/pull/16262)) - Ignore `source.organizeImports.ruff` and `source.fixAll.ruff` code actions for a notebook cell ([#​16154](https://github.com/astral-sh/ruff/pull/16154)) - Include document specific debug info for `ruff.printDebugInformation` ([#​16215](https://github.com/astral-sh/ruff/pull/16215)) - Update server to return the debug info as string with `ruff.printDebugInformation` ([#​16214](https://github.com/astral-sh/ruff/pull/16214)) ##### CLI - Warn on invalid `noqa` even when there are no diagnostics ([#​16178](https://github.com/astral-sh/ruff/pull/16178)) - Better error messages while loading configuration `extend`s ([#​15658](https://github.com/astral-sh/ruff/pull/15658)) ##### Bug fixes - \[`flake8-comprehensions`] Handle trailing comma in `C403` fix ([#​16110](https://github.com/astral-sh/ruff/pull/16110)) - \[`flake8-pyi`] Avoid flagging `custom-typevar-for-self` on metaclass methods (`PYI019`) ([#​16141](https://github.com/astral-sh/ruff/pull/16141)) - \[`pydocstyle`] Handle arguments with the same names as sections (`D417`) ([#​16011](https://github.com/astral-sh/ruff/pull/16011)) - \[`pylint`] Correct ordering of arguments in fix for `if-stmt-min-max` (`PLR1730`) ([#​16080](https://github.com/astral-sh/ruff/pull/16080)) - \[`pylint`] Do not offer fix for raw strings (`PLE251`) ([#​16132](https://github.com/astral-sh/ruff/pull/16132)) - \[`pyupgrade`] Do not upgrade functional `TypedDicts` with private field names to the class-based syntax (`UP013`) ([#​16219](https://github.com/astral-sh/ruff/pull/16219)) - \[`pyupgrade`] Handle micro version numbers correctly (`UP036`) ([#​16091](https://github.com/astral-sh/ruff/pull/16091)) - \[`pyupgrade`] Unwrap unary expressions correctly (`UP018`) ([#​15919](https://github.com/astral-sh/ruff/pull/15919)) - \[`refurb`] Correctly handle lengths of literal strings in `slice-to-remove-prefix-or-suffix` (`FURB188`) ([#​16237](https://github.com/astral-sh/ruff/pull/16237)) - \[`ruff`] Skip `RUF001` diagnostics when visiting string type definitions ([#​16122](https://github.com/astral-sh/ruff/pull/16122)) ##### Documentation - Add FAQ entry for `source.*` code actions in Notebook ([#​16212](https://github.com/astral-sh/ruff/pull/16212)) - Add `SECURITY.md` ([#​16224](https://github.com/astral-sh/ruff/pull/16224)) ### [`v0.9.6`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#096) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.5...0.9.6) ##### Preview features - \[`airflow`] Add `external_task.{ExternalTaskMarker, ExternalTaskSensor}` for `AIR302` ([#​16014](https://github.com/astral-sh/ruff/pull/16014)) - \[`flake8-builtins`] Make strict module name comparison optional (`A005`) ([#​15951](https://github.com/astral-sh/ruff/pull/15951)) - \[`flake8-pyi`] Extend fix to Python <= 3.9 for `redundant-none-literal` (`PYI061`) ([#​16044](https://github.com/astral-sh/ruff/pull/16044)) - \[`pylint`] Also report when the object isn't a literal (`PLE1310`) ([#​15985](https://github.com/astral-sh/ruff/pull/15985)) - \[`ruff`] Implement `indented-form-feed` (`RUF054`) ([#​16049](https://github.com/astral-sh/ruff/pull/16049)) - \[`ruff`] Skip type definitions for `missing-f-string-syntax` (`RUF027`) ([#​16054](https://github.com/astral-sh/ruff/pull/16054)) ##### Rule changes - \[`flake8-annotations`] Correct syntax for `typing.Union` in suggested return type fixes for `ANN20x` rules ([#​16025](https://github.com/astral-sh/ruff/pull/16025)) - \[`flake8-builtins`] Match upstream module name comparison (`A005`) ([#​16006](https://github.com/astral-sh/ruff/pull/16006)) - \[`flake8-comprehensions`] Detect overshadowed `list`/`set`/`dict`, ignore variadics and named expressions (`C417`) ([#​15955](https://github.com/astral-sh/ruff/pull/15955)) - \[`flake8-pie`] Remove following comma correctly when the unpacked dictionary is empty (`PIE800`) ([#​16008](https://github.com/astral-sh/ruff/pull/16008)) - \[`flake8-simplify`] Only trigger `SIM401` on known dictionaries ([#​15995](https://github.com/astral-sh/ruff/pull/15995)) - \[`pylint`] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (`PLE1310`) ([#​15984](https://github.com/astral-sh/ruff/pull/15984)) - \[`pyupgrade`] Comments within parenthesized value ranges should not affect applicability (`UP040`) ([#​16027](https://github.com/astral-sh/ruff/pull/16027)) - \[`pyupgrade`] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (`UP040`) ([#​16026](https://github.com/astral-sh/ruff/pull/16026)) - \[`pyupgrade`] Ensure we do not rename two type parameters to the same name (`UP049`) ([#​16038](https://github.com/astral-sh/ruff/pull/16038)) - \[`pyupgrade`] \[`ruff`] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (`UP049`, `RUF052`) ([#​16032](https://github.com/astral-sh/ruff/pull/16032)) - \[`ruff`] Update `RUF009` to behave similar to `B008` and ignore attributes with immutable types ([#​16048](https://github.com/astral-sh/ruff/pull/16048)) ##### Server - Root exclusions in the server to project root ([#​16043](https://github.com/astral-sh/ruff/pull/16043)) ##### Bug fixes - \[`flake8-datetime`] Ignore `.replace()` calls while looking for `.astimezone` ([#​16050](https://github.com/astral-sh/ruff/pull/16050)) - \[`flake8-type-checking`] Avoid `TC004` false positive where the runtime definition is provided by `__getattr__` ([#​16052](https://github.com/astral-sh/ruff/pull/16052)) ##### Documentation - Improve `ruff-lsp` migration document ([#​16072](https://github.com/astral-sh/ruff/pull/16072)) - Undeprecate `ruff.nativeServer` ([#​16039](https://github.com/astral-sh/ruff/pull/16039)) ### [`v0.9.5`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#095) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.4...0.9.5) ##### Preview features - Recognize all symbols named `TYPE_CHECKING` for `in_type_checking_block` ([#​15719](https://github.com/astral-sh/ruff/pull/15719)) - \[`flake8-comprehensions`] Handle builtins at top of file correctly for `unnecessary-dict-comprehension-for-iterable` (`C420`) ([#​15837](https://github.com/astral-sh/ruff/pull/15837)) - \[`flake8-logging`] `.exception()` and `exc_info=` outside exception handlers (`LOG004`, `LOG014`) ([#​15799](https://github.com/astral-sh/ruff/pull/15799)) - \[`flake8-pyi`] Fix incorrect behaviour of `custom-typevar-return-type` preview-mode autofix if `typing` was already imported (`PYI019`) ([#​15853](https://github.com/astral-sh/ruff/pull/15853)) - \[`flake8-pyi`] Fix more complex cases (`PYI019`) ([#​15821](https://github.com/astral-sh/ruff/pull/15821)) - \[`flake8-pyi`] Make `PYI019` autofixable for `.py` files in preview mode as well as stubs ([#​15889](https://github.com/astral-sh/ruff/pull/15889)) - \[`flake8-pyi`] Remove type parameter correctly when it is the last (`PYI019`) ([#​15854](https://github.com/astral-sh/ruff/pull/15854)) - \[`pylint`] Fix missing parens in unsafe fix for `unnecessary-dunder-call` (`PLC2801`) ([#​15762](https://github.com/astral-sh/ruff/pull/15762)) - \[`pyupgrade`] Better messages and diagnostic range (`UP015`) ([#​15872](https://github.com/astral-sh/ruff/pull/15872)) - \[`pyupgrade`] Rename private type parameters in PEP 695 generics (`UP049`) ([#​15862](https://github.com/astral-sh/ruff/pull/15862)) - \[`refurb`] Also report non-name expressions (`FURB169`) ([#​15905](https://github.com/astral-sh/ruff/pull/15905)) - \[`refurb`] Mark fix as unsafe if there are comments (`FURB171`) ([#​15832](https://github.com/astral-sh/ruff/pull/15832)) - \[`ruff`] Classes with mixed type variable style (`RUF053`) ([#​15841](https://github.com/astral-sh/ruff/pull/15841)) - \[`airflow`] `BashOperator` has been moved to `airflow.providers.standard.operators.bash.BashOperator` (`AIR302`) ([#​15922](https://github.com/astral-sh/ruff/pull/15922)) - \[`flake8-pyi`] Add autofix for unused-private-type-var (`PYI018`) ([#​15999](https://github.com/astral-sh/ruff/pull/15999)) - \[`flake8-pyi`] Significantly improve accuracy of `PYI019` if preview mode is enabled ([#​15888](https://github.com/astral-sh/ruff/pull/15888)) ##### Rule changes - Preserve triple quotes and prefixes for strings ([#​15818](https://github.com/astral-sh/ruff/pull/15818)) - \[`flake8-comprehensions`] Skip when `TypeError` present from too many (kw)args for `C410`,`C411`, and `C418` ([#​15838](https://github.com/astral-sh/ruff/pull/15838)) - \[`flake8-pyi`] Rename `PYI019` and improve its diagnostic message ([#​15885](https://github.com/astral-sh/ruff/pull/15885)) - \[`pep8-naming`] Ignore `@override` methods (`N803`) ([#​15954](https://github.com/astral-sh/ruff/pull/15954)) - \[`pyupgrade`] Reuse replacement logic from `UP046` and `UP047` to preserve more comments (`UP040`) ([#​15840](https://github.com/astral-sh/ruff/pull/15840)) - \[`ruff`] Analyze deferred annotations before enforcing `mutable-(data)class-default` and `function-call-in-dataclass-default-argument` (`RUF008`,`RUF009`,`RUF012`) ([#​15921](https://github.com/astral-sh/ruff/pull/15921)) - \[`pycodestyle`] Exempt `sys.path += ...` calls (`E402`) ([#​15980](https://github.com/astral-sh/ruff/pull/15980)) ##### Configuration - Config error only when `flake8-import-conventions` alias conflicts with `isort.required-imports` bound name ([#​15918](https://github.com/astral-sh/ruff/pull/15918)) - Workaround Even Better TOML crash related to `allOf` ([#​15992](https://github.com/astral-sh/ruff/pull/15992)) ##### Bug fixes - \[`flake8-comprehensions`] Unnecessary `list` comprehension (rewrite as a `set` comprehension) (`C403`) - Handle extraneous parentheses around list comprehension ([#​15877](https://github.com/astral-sh/ruff/pull/15877)) - \[`flake8-comprehensions`] Handle trailing comma in fixes for `unnecessary-generator-list/set` (`C400`,`C401`) ([#​15929](https://github.com/astral-sh/ruff/pull/15929)) - \[`flake8-pyi`] Fix several correctness issues with `custom-type-var-return-type` (`PYI019`) ([#​15851](https://github.com/astral-sh/ruff/pull/15851)) - \[`pep8-naming`] Consider any number of leading underscore for `N801` ([#​15988](https://github.com/astral-sh/ruff/pull/15988)) - \[`pyflakes`] Visit forward annotations in `TypeAliasType` as types (`F401`) ([#​15829](https://github.com/astral-sh/ruff/pull/15829)) - \[`pylint`] Correct min/max auto-fix and suggestion for (`PL1730`) ([#​15930](https://github.com/astral-sh/ruff/pull/15930)) - \[`refurb`] Handle unparenthesized tuples correctly (`FURB122`, `FURB142`) ([#​15953](https://github.com/astral-sh/ruff/pull/15953)) - \[`refurb`] Avoid `None | None` as well as better detection and fix (`FURB168`) ([#​15779](https://github.com/astral-sh/ruff/pull/15779)) ##### Documentation - Add deprecation warning for `ruff-lsp` related settings ([#​15850](https://github.com/astral-sh/ruff/pull/15850)) - Docs (`linter.md`): clarify that Python files are always searched for in subdirectories ([#​15882](https://github.com/astral-sh/ruff/pull/15882)) - Fix a typo in `non_pep695_generic_class.rs` ([#​15946](https://github.com/astral-sh/ruff/pull/15946)) - Improve Docs: Pylint subcategories' codes ([#​15909](https://github.com/astral-sh/ruff/pull/15909)) - Remove non-existing `lint.extendIgnore` editor setting ([#​15844](https://github.com/astral-sh/ruff/pull/15844)) - Update black deviations ([#​15928](https://github.com/astral-sh/ruff/pull/15928)) - Mention `UP049` in `UP046` and `UP047`, add `See also` section to `UP040` ([#​15956](https://github.com/astral-sh/ruff/pull/15956)) - Add instance variable examples to `RUF012` ([#​15982](https://github.com/astral-sh/ruff/pull/15982)) - Explain precedence for `ignore` and `select` config ([#​15883](https://github.com/astral-sh/ruff/pull/15883)) ### [`v0.9.4`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#094) [Compare Source](https://github.com/astral-sh/ruff/compare/0.9.3...0.9.4) ##### Preview features - \[`airflow`] Extend airflow context parameter check for `BaseOperator.execute` (`AIR302`) ([#​15713](https://github.com/astral-sh/ruff/pull/15713)) - \[`airflow`] Update `AIR302` to check for deprecated context keys ([#​15144](https://github.com/astral-sh/ruff/pull/15144)) - \[`flake8-bandit`] Permit suspicious imports within stub files (`S4`) ([#​15822](https://github.com/astral-sh/ruff/pull/15822)) - \[`pylint`] Do not trigger `PLR6201` on empty collections ([#​15732](https://github.com/astral-sh/ruff/pull/15732)) - \[`refurb`] Do not emit diagnostic when loop variables are used outside loop body (`FURB122`) ([#​15757](https://github.com/astral-sh/ruff/pull/15757)) - \[`ruff`] Add support for more `re` patterns (`RUF055`) ([#​15764](https://github.com/astral-sh/ruff/pull/15764)) - \[`ruff`] Check for shadowed `map` before suggesting fix (`RUF058`) ([#​15790](https://github.com/astral-sh/ruff/pull/15790)) - \[`ruff`] Do not emit diagnostic when all arguments to `zip()` are variadic (`RUF058`) ([#​15744](https://github.com/astral-sh/ruff/pull/15744)) - \[`ruff`] Parenthesize fix when argument spans multiple lines for `unnecessary-round` (`RUF057`) ([#​15703](https://github.com/astral-sh/ruff/pull/15703)) ##### Rule changes - Preserve quote style in generated code ([#​15726](https://github.com/astral-sh/ruff/pull/15726), [#​15778](https://github.com/astral-sh/ruff/pull/15778), [#​15794](https://github.com/astral-sh/ruff/pull/15794)) - \[`flake8-bugbear`] Exempt `NewType` calls where the original type is immutable (`B008`) ([#​15765](https://github.com/astral-sh/ruff/pull/15765)) - \[`pylint`] Honor banned top-level imports by `TID253` in `PLC0415`. ([#​15628](https://github.com/astral-sh/ruff/pull/15628)) - \[`pyupgrade`] Ignore `is_typeddict` and `TypedDict` for `deprecated-import` (`UP035`) ([#​15800](https://github.com/astral-sh/ruff/pull/15800)) ##### CLI - Fix formatter warning message for `flake8-quotes` option ([#​15788](https://github.com/astral-sh/ruff/pull/15788)) - Implement tab autocomplete for `ruff config` ([#​15603](https://github.com/astral-sh/ruff/pull/15603)) ##### Bug fixes - \[`flake8-comprehensions`] Do not emit `unnecessary-map` diagnostic when lambda has different arity (`C417`) ([#​15802](https://github.com/astral-sh/ruff/pull/15802)) - \[`flake8-comprehensions`] Parenthesize `sorted` when needed for `unnecessary-call-around-sorted` (`C413`) ([#​15825](https://github.com/astral-sh/ruff/pull/15825)) - \[`pyupgrade`] Handle end-of-line comments for `quoted-annotation` (`UP037`) ([#​15824](https://github.com/astral-sh/ruff/pull/15824)) ##### Documentation - Add missing config docstrings ([#​15803](https://github.com/astral-sh/ruff/pull/15803)) - Add references to `trio.run_process` and `anyio.run_process` ([#​15761](https://github.com/astral-sh/ruff/pull/15761)) - Use `uv init --lib` in tutorial ([#​15718](https://github.com/astral-sh/ruff/pull/15718))
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/77 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 955f40c..0019b56 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ documentation = [ ] [tool.uv] -dev-dependencies = ["pylint==3.3.6", "ruff==0.9.3", "sqlite-web==0.6.4"] +dev-dependencies = ["pylint==3.3.6", "ruff==0.11.2", "sqlite-web==0.6.4"] [tool.uv.sources] py-dactyl = { git = "https://github.com/iamkubi/pydactyl", tag = "v2.0.5" } diff --git a/uv.lock b/uv.lock index 8f8266e..6e8324d 100644 --- a/uv.lock +++ b/uv.lock @@ -1626,27 +1626,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.9.3" +version = "0.11.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7f/60fda2eec81f23f8aa7cbbfdf6ec2ca11eb11c273827933fb2541c2ce9d8/ruff-0.9.3.tar.gz", hash = "sha256:8293f89985a090ebc3ed1064df31f3b4b56320cdfcec8b60d3295bddb955c22a", size = 3586740 } +sdist = { url = "https://files.pythonhosted.org/packages/90/61/fb87430f040e4e577e784e325351186976516faef17d6fcd921fe28edfd7/ruff-0.11.2.tar.gz", hash = "sha256:ec47591497d5a1050175bdf4e1a4e6272cddff7da88a2ad595e1e326041d8d94", size = 3857511 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/77/4fb790596d5d52c87fd55b7160c557c400e90f6116a56d82d76e95d9374a/ruff-0.9.3-py3-none-linux_armv6l.whl", hash = "sha256:7f39b879064c7d9670197d91124a75d118d00b0990586549949aae80cdc16624", size = 11656815 }, - { url = "https://files.pythonhosted.org/packages/a2/a8/3338ecb97573eafe74505f28431df3842c1933c5f8eae615427c1de32858/ruff-0.9.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a187171e7c09efa4b4cc30ee5d0d55a8d6c5311b3e1b74ac5cb96cc89bafc43c", size = 11594821 }, - { url = "https://files.pythonhosted.org/packages/8e/89/320223c3421962762531a6b2dd58579b858ca9916fb2674874df5e97d628/ruff-0.9.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c59ab92f8e92d6725b7ded9d4a31be3ef42688a115c6d3da9457a5bda140e2b4", size = 11040475 }, - { url = "https://files.pythonhosted.org/packages/b2/bd/1d775eac5e51409535804a3a888a9623e87a8f4b53e2491580858a083692/ruff-0.9.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dc153c25e715be41bb228bc651c1e9b1a88d5c6e5ed0194fa0dfea02b026439", size = 11856207 }, - { url = "https://files.pythonhosted.org/packages/7f/c6/3e14e09be29587393d188454064a4aa85174910d16644051a80444e4fd88/ruff-0.9.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:646909a1e25e0dc28fbc529eab8eb7bb583079628e8cbe738192853dbbe43af5", size = 11420460 }, - { url = "https://files.pythonhosted.org/packages/ef/42/b7ca38ffd568ae9b128a2fa76353e9a9a3c80ef19746408d4ce99217ecc1/ruff-0.9.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a5a46e09355695fbdbb30ed9889d6cf1c61b77b700a9fafc21b41f097bfbba4", size = 12605472 }, - { url = "https://files.pythonhosted.org/packages/a6/a1/3167023f23e3530fde899497ccfe239e4523854cb874458ac082992d206c/ruff-0.9.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c4bb09d2bbb394e3730d0918c00276e79b2de70ec2a5231cd4ebb51a57df9ba1", size = 13243123 }, - { url = "https://files.pythonhosted.org/packages/d0/b4/3c600758e320f5bf7de16858502e849f4216cb0151f819fa0d1154874802/ruff-0.9.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96a87ec31dc1044d8c2da2ebbed1c456d9b561e7d087734336518181b26b3aa5", size = 12744650 }, - { url = "https://files.pythonhosted.org/packages/be/38/266fbcbb3d0088862c9bafa8b1b99486691d2945a90b9a7316336a0d9a1b/ruff-0.9.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb7554aca6f842645022fe2d301c264e6925baa708b392867b7a62645304df4", size = 14458585 }, - { url = "https://files.pythonhosted.org/packages/63/a6/47fd0e96990ee9b7a4abda62de26d291bd3f7647218d05b7d6d38af47c30/ruff-0.9.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cabc332b7075a914ecea912cd1f3d4370489c8018f2c945a30bcc934e3bc06a6", size = 12419624 }, - { url = "https://files.pythonhosted.org/packages/84/5d/de0b7652e09f7dda49e1a3825a164a65f4998175b6486603c7601279baad/ruff-0.9.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:33866c3cc2a575cbd546f2cd02bdd466fed65118e4365ee538a3deffd6fcb730", size = 11843238 }, - { url = "https://files.pythonhosted.org/packages/9e/be/3f341ceb1c62b565ec1fb6fd2139cc40b60ae6eff4b6fb8f94b1bb37c7a9/ruff-0.9.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:006e5de2621304c8810bcd2ee101587712fa93b4f955ed0985907a36c427e0c2", size = 11484012 }, - { url = "https://files.pythonhosted.org/packages/a3/c8/ff8acbd33addc7e797e702cf00bfde352ab469723720c5607b964491d5cf/ruff-0.9.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ba6eea4459dbd6b1be4e6bfc766079fb9b8dd2e5a35aff6baee4d9b1514ea519", size = 12038494 }, - { url = "https://files.pythonhosted.org/packages/73/b1/8d9a2c0efbbabe848b55f877bc10c5001a37ab10aca13c711431673414e5/ruff-0.9.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:90230a6b8055ad47d3325e9ee8f8a9ae7e273078a66401ac66df68943ced029b", size = 12473639 }, - { url = "https://files.pythonhosted.org/packages/cb/44/a673647105b1ba6da9824a928634fe23186ab19f9d526d7bdf278cd27bc3/ruff-0.9.3-py3-none-win32.whl", hash = "sha256:eabe5eb2c19a42f4808c03b82bd313fc84d4e395133fb3fc1b1516170a31213c", size = 9834353 }, - { url = "https://files.pythonhosted.org/packages/c3/01/65cadb59bf8d4fbe33d1a750103e6883d9ef302f60c28b73b773092fbde5/ruff-0.9.3-py3-none-win_amd64.whl", hash = "sha256:040ceb7f20791dfa0e78b4230ee9dce23da3b64dd5848e40e3bf3ab76468dcf4", size = 10821444 }, - { url = "https://files.pythonhosted.org/packages/69/cb/b3fe58a136a27d981911cba2f18e4b29f15010623b79f0f2510fd0d31fd3/ruff-0.9.3-py3-none-win_arm64.whl", hash = "sha256:800d773f6d4d33b0a3c60e2c6ae8f4c202ea2de056365acfa519aa48acf28e0b", size = 10038168 }, + { url = "https://files.pythonhosted.org/packages/62/99/102578506f0f5fa29fd7e0df0a273864f79af044757aef73d1cae0afe6ad/ruff-0.11.2-py3-none-linux_armv6l.whl", hash = "sha256:c69e20ea49e973f3afec2c06376eb56045709f0212615c1adb0eda35e8a4e477", size = 10113146 }, + { url = "https://files.pythonhosted.org/packages/74/ad/5cd4ba58ab602a579997a8494b96f10f316e874d7c435bcc1a92e6da1b12/ruff-0.11.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2c5424cc1c4eb1d8ecabe6d4f1b70470b4f24a0c0171356290b1953ad8f0e272", size = 10867092 }, + { url = "https://files.pythonhosted.org/packages/fc/3e/d3f13619e1d152c7b600a38c1a035e833e794c6625c9a6cea6f63dbf3af4/ruff-0.11.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ecf20854cc73f42171eedb66f006a43d0a21bfb98a2523a809931cda569552d9", size = 10224082 }, + { url = "https://files.pythonhosted.org/packages/90/06/f77b3d790d24a93f38e3806216f263974909888fd1e826717c3ec956bbcd/ruff-0.11.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c543bf65d5d27240321604cee0633a70c6c25c9a2f2492efa9f6d4b8e4199bb", size = 10394818 }, + { url = "https://files.pythonhosted.org/packages/99/7f/78aa431d3ddebfc2418cd95b786642557ba8b3cb578c075239da9ce97ff9/ruff-0.11.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20967168cc21195db5830b9224be0e964cc9c8ecf3b5a9e3ce19876e8d3a96e3", size = 9952251 }, + { url = "https://files.pythonhosted.org/packages/30/3e/f11186d1ddfaca438c3bbff73c6a2fdb5b60e6450cc466129c694b0ab7a2/ruff-0.11.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:955a9ce63483999d9f0b8f0b4a3ad669e53484232853054cc8b9d51ab4c5de74", size = 11563566 }, + { url = "https://files.pythonhosted.org/packages/22/6c/6ca91befbc0a6539ee133d9a9ce60b1a354db12c3c5d11cfdbf77140f851/ruff-0.11.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:86b3a27c38b8fce73bcd262b0de32e9a6801b76d52cdb3ae4c914515f0cef608", size = 12208721 }, + { url = "https://files.pythonhosted.org/packages/19/b0/24516a3b850d55b17c03fc399b681c6a549d06ce665915721dc5d6458a5c/ruff-0.11.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3b66a03b248c9fcd9d64d445bafdf1589326bee6fc5c8e92d7562e58883e30f", size = 11662274 }, + { url = "https://files.pythonhosted.org/packages/d7/65/76be06d28ecb7c6070280cef2bcb20c98fbf99ff60b1c57d2fb9b8771348/ruff-0.11.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0397c2672db015be5aa3d4dac54c69aa012429097ff219392c018e21f5085147", size = 13792284 }, + { url = "https://files.pythonhosted.org/packages/ce/d2/4ceed7147e05852876f3b5f3fdc23f878ce2b7e0b90dd6e698bda3d20787/ruff-0.11.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:869bcf3f9abf6457fbe39b5a37333aa4eecc52a3b99c98827ccc371a8e5b6f1b", size = 11327861 }, + { url = "https://files.pythonhosted.org/packages/c4/78/4935ecba13706fd60ebe0e3dc50371f2bdc3d9bc80e68adc32ff93914534/ruff-0.11.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2a2b50ca35457ba785cd8c93ebbe529467594087b527a08d487cf0ee7b3087e9", size = 10276560 }, + { url = "https://files.pythonhosted.org/packages/81/7f/1b2435c3f5245d410bb5dc80f13ec796454c21fbda12b77d7588d5cf4e29/ruff-0.11.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7c69c74bf53ddcfbc22e6eb2f31211df7f65054bfc1f72288fc71e5f82db3eab", size = 9945091 }, + { url = "https://files.pythonhosted.org/packages/39/c4/692284c07e6bf2b31d82bb8c32f8840f9d0627d92983edaac991a2b66c0a/ruff-0.11.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6e8fb75e14560f7cf53b15bbc55baf5ecbe373dd5f3aab96ff7aa7777edd7630", size = 10977133 }, + { url = "https://files.pythonhosted.org/packages/94/cf/8ab81cb7dd7a3b0a3960c2769825038f3adcd75faf46dd6376086df8b128/ruff-0.11.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:842a472d7b4d6f5924e9297aa38149e5dcb1e628773b70e6387ae2c97a63c58f", size = 11378514 }, + { url = "https://files.pythonhosted.org/packages/d9/3a/a647fa4f316482dacf2fd68e8a386327a33d6eabd8eb2f9a0c3d291ec549/ruff-0.11.2-py3-none-win32.whl", hash = "sha256:aca01ccd0eb5eb7156b324cfaa088586f06a86d9e5314b0eb330cb48415097cc", size = 10319835 }, + { url = "https://files.pythonhosted.org/packages/86/54/3c12d3af58012a5e2cd7ebdbe9983f4834af3f8cbea0e8a8c74fa1e23b2b/ruff-0.11.2-py3-none-win_amd64.whl", hash = "sha256:3170150172a8f994136c0c66f494edf199a0bbea7a409f649e4bc8f4d7084080", size = 11373713 }, + { url = "https://files.pythonhosted.org/packages/d6/d4/dd813703af8a1e2ac33bf3feb27e8a5ad514c9f219df80c64d69807e7f71/ruff-0.11.2-py3-none-win_arm64.whl", hash = "sha256:52933095158ff328f4c77af3d74f0379e34fd52f175144cefc1b192e7ccd32b4", size = 10441990 }, ] [[package]] @@ -1713,7 +1713,7 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ { name = "pylint", specifier = "==3.3.6" }, - { name = "ruff", specifier = "==0.9.3" }, + { name = "ruff", specifier = "==0.11.2" }, { name = "sqlite-web", specifier = "==0.6.4" }, ] documentation = [ From 19536a235102e5cafc56b9f0a331403cb87d483f Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:20:26 -0400 Subject: [PATCH 39/51] fix(deps): update dependency beautifulsoup4 to v4.13.3 (#79) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | beautifulsoup4 ([changelog](https://git.launchpad.net/beautifulsoup/tree/CHANGELOG)) | project.dependencies | minor | `==4.12.3` -> `==4.13.3` | --- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/79 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0019b56..9f51e9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ readme = "README.md" requires-python = ">=3.11" dependencies = [ "aiosqlite==0.20.0", - "beautifulsoup4==4.12.3", + "beautifulsoup4==4.13.3", "colorthief==0.2.1", "markdownify==0.14.1", "numpy==2.2.4", diff --git a/uv.lock b/uv.lock index 6e8324d..02a0bcf 100644 --- a/uv.lock +++ b/uv.lock @@ -226,14 +226,15 @@ wheels = [ [[package]] name = "beautifulsoup4" -version = "4.12.3" +version = "4.13.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, + { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, ] [[package]] @@ -1696,7 +1697,7 @@ documentation = [ [package.metadata] requires-dist = [ { name = "aiosqlite", specifier = "==0.20.0" }, - { name = "beautifulsoup4", specifier = "==4.12.3" }, + { name = "beautifulsoup4", specifier = "==4.13.3" }, { name = "colorthief", specifier = "==0.2.1" }, { name = "markdownify", specifier = "==0.14.1" }, { name = "numpy", specifier = "==2.2.4" }, From 3d09f36b56eb8cc4c06e4b0ad1ffa099c2bae52d Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:20:45 -0400 Subject: [PATCH 40/51] fix(deps): update dependency websockets to v15 (#83) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [websockets](https://github.com/python-websockets/websockets) ([changelog](https://websockets.readthedocs.io/en/stable/project/changelog.html)) | project.dependencies | major | `==14.2` -> `==15.0.1` | --- ### Release Notes
python-websockets/websockets (websockets) ### [`v15.0.1`](https://github.com/python-websockets/websockets/releases/tag/15.0.1) [Compare Source](https://github.com/python-websockets/websockets/compare/15.0...15.0.1) See https://websockets.readthedocs.io/en/stable/project/changelog.html for details. ### [`v15.0`](https://github.com/python-websockets/websockets/releases/tag/15.0) [Compare Source](https://github.com/python-websockets/websockets/compare/14.2...15.0) See https://websockets.readthedocs.io/en/stable/project/changelog.html for 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/83 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 74 +++++++++++++++++++++++++------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9f51e9d..a2efae1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ dependencies = [ "pydantic==2.10.6", "red-discordbot==3.5.18", "watchdog==6.0.0", - "websockets==14.2", + "websockets==15.0.1", ] [dependency-groups] diff --git a/uv.lock b/uv.lock index 02a0bcf..9356a9f 100644 --- a/uv.lock +++ b/uv.lock @@ -1708,7 +1708,7 @@ requires-dist = [ { name = "pydantic", specifier = "==2.10.6" }, { name = "red-discordbot", specifier = "==3.5.18" }, { name = "watchdog", specifier = "==6.0.0" }, - { name = "websockets", specifier = "==14.2" }, + { name = "websockets", specifier = "==15.0.1" }, ] [package.metadata.requires-dev] @@ -1867,44 +1867,44 @@ wheels = [ [[package]] name = "websockets" -version = "14.2" +version = "15.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/54/8359678c726243d19fae38ca14a334e740782336c9f19700858c4eb64a1e/websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5", size = 164394 } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } wheels = [ - { url = "https://files.pythonhosted.org/packages/15/b6/504695fb9a33df0ca56d157f5985660b5fc5b4bf8c78f121578d2d653392/websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166", size = 163088 }, - { url = "https://files.pythonhosted.org/packages/81/26/ebfb8f6abe963c795122439c6433c4ae1e061aaedfc7eff32d09394afbae/websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f", size = 160745 }, - { url = "https://files.pythonhosted.org/packages/a1/c6/1435ad6f6dcbff80bb95e8986704c3174da8866ddb751184046f5c139ef6/websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910", size = 160995 }, - { url = "https://files.pythonhosted.org/packages/96/63/900c27cfe8be1a1f2433fc77cd46771cf26ba57e6bdc7cf9e63644a61863/websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c", size = 170543 }, - { url = "https://files.pythonhosted.org/packages/00/8b/bec2bdba92af0762d42d4410593c1d7d28e9bfd952c97a3729df603dc6ea/websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473", size = 169546 }, - { url = "https://files.pythonhosted.org/packages/6b/a9/37531cb5b994f12a57dec3da2200ef7aadffef82d888a4c29a0d781568e4/websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473", size = 169911 }, - { url = "https://files.pythonhosted.org/packages/60/d5/a6eadba2ed9f7e65d677fec539ab14a9b83de2b484ab5fe15d3d6d208c28/websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56", size = 170183 }, - { url = "https://files.pythonhosted.org/packages/76/57/a338ccb00d1df881c1d1ee1f2a20c9c1b5b29b51e9e0191ee515d254fea6/websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142", size = 169623 }, - { url = "https://files.pythonhosted.org/packages/64/22/e5f7c33db0cb2c1d03b79fd60d189a1da044e2661f5fd01d629451e1db89/websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d", size = 169583 }, - { url = "https://files.pythonhosted.org/packages/aa/2e/2b4662237060063a22e5fc40d46300a07142afe30302b634b4eebd717c07/websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a", size = 163969 }, - { url = "https://files.pythonhosted.org/packages/94/a5/0cda64e1851e73fc1ecdae6f42487babb06e55cb2f0dc8904b81d8ef6857/websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b", size = 164408 }, - { url = "https://files.pythonhosted.org/packages/c1/81/04f7a397653dc8bec94ddc071f34833e8b99b13ef1a3804c149d59f92c18/websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c", size = 163096 }, - { url = "https://files.pythonhosted.org/packages/ec/c5/de30e88557e4d70988ed4d2eabd73fd3e1e52456b9f3a4e9564d86353b6d/websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967", size = 160758 }, - { url = "https://files.pythonhosted.org/packages/e5/8c/d130d668781f2c77d106c007b6c6c1d9db68239107c41ba109f09e6c218a/websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990", size = 160995 }, - { url = "https://files.pythonhosted.org/packages/a6/bc/f6678a0ff17246df4f06765e22fc9d98d1b11a258cc50c5968b33d6742a1/websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda", size = 170815 }, - { url = "https://files.pythonhosted.org/packages/d8/b2/8070cb970c2e4122a6ef38bc5b203415fd46460e025652e1ee3f2f43a9a3/websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95", size = 169759 }, - { url = "https://files.pythonhosted.org/packages/81/da/72f7caabd94652e6eb7e92ed2d3da818626e70b4f2b15a854ef60bf501ec/websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3", size = 170178 }, - { url = "https://files.pythonhosted.org/packages/31/e0/812725b6deca8afd3a08a2e81b3c4c120c17f68c9b84522a520b816cda58/websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9", size = 170453 }, - { url = "https://files.pythonhosted.org/packages/66/d3/8275dbc231e5ba9bb0c4f93144394b4194402a7a0c8ffaca5307a58ab5e3/websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267", size = 169830 }, - { url = "https://files.pythonhosted.org/packages/a3/ae/e7d1a56755ae15ad5a94e80dd490ad09e345365199600b2629b18ee37bc7/websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe", size = 169824 }, - { url = "https://files.pythonhosted.org/packages/b6/32/88ccdd63cb261e77b882e706108d072e4f1c839ed723bf91a3e1f216bf60/websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205", size = 163981 }, - { url = "https://files.pythonhosted.org/packages/b3/7d/32cdb77990b3bdc34a306e0a0f73a1275221e9a66d869f6ff833c95b56ef/websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce", size = 164421 }, - { url = "https://files.pythonhosted.org/packages/82/94/4f9b55099a4603ac53c2912e1f043d6c49d23e94dd82a9ce1eb554a90215/websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e", size = 163102 }, - { url = "https://files.pythonhosted.org/packages/8e/b7/7484905215627909d9a79ae07070057afe477433fdacb59bf608ce86365a/websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad", size = 160766 }, - { url = "https://files.pythonhosted.org/packages/a3/a4/edb62efc84adb61883c7d2c6ad65181cb087c64252138e12d655989eec05/websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03", size = 160998 }, - { url = "https://files.pythonhosted.org/packages/f5/79/036d320dc894b96af14eac2529967a6fc8b74f03b83c487e7a0e9043d842/websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f", size = 170780 }, - { url = "https://files.pythonhosted.org/packages/63/75/5737d21ee4dd7e4b9d487ee044af24a935e36a9ff1e1419d684feedcba71/websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5", size = 169717 }, - { url = "https://files.pythonhosted.org/packages/2c/3c/bf9b2c396ed86a0b4a92ff4cdaee09753d3ee389be738e92b9bbd0330b64/websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a", size = 170155 }, - { url = "https://files.pythonhosted.org/packages/75/2d/83a5aca7247a655b1da5eb0ee73413abd5c3a57fc8b92915805e6033359d/websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20", size = 170495 }, - { url = "https://files.pythonhosted.org/packages/79/dd/699238a92761e2f943885e091486378813ac8f43e3c84990bc394c2be93e/websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2", size = 169880 }, - { url = "https://files.pythonhosted.org/packages/c8/c9/67a8f08923cf55ce61aadda72089e3ed4353a95a3a4bc8bf42082810e580/websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307", size = 169856 }, - { url = "https://files.pythonhosted.org/packages/17/b1/1ffdb2680c64e9c3921d99db460546194c40d4acbef999a18c37aa4d58a3/websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc", size = 163974 }, - { url = "https://files.pythonhosted.org/packages/14/13/8b7fc4cb551b9cfd9890f0fd66e53c18a06240319915533b033a56a3d520/websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f", size = 164420 }, - { url = "https://files.pythonhosted.org/packages/7b/c8/d529f8a32ce40d98309f4470780631e971a5a842b60aec864833b3615786/websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b", size = 157416 }, + { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423 }, + { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082 }, + { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330 }, + { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878 }, + { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883 }, + { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252 }, + { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521 }, + { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958 }, + { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918 }, + { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388 }, + { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828 }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440 }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098 }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329 }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111 }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054 }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496 }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829 }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217 }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, ] [[package]] From 1701540fa7a09d0da557d587741bbd125cd856ef Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:24:14 -0400 Subject: [PATCH 41/51] chore(deps): update dependency mkdocs-git-revision-date-localized-plugin to v1.4.5 (#74) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mkdocs-git-revision-date-localized-plugin](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin) | dependency-groups | minor | `==1.3.0` -> `==1.4.5` | --- ### Release Notes
timvink/mkdocs-git-revision-date-localized-plugin (mkdocs-git-revision-date-localized-plugin) ### [`v1.4.5`](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases/tag/v1.4.5): revision-date-localized v1.4.5 [Compare Source](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.4...v1.4.5) #### What's Changed - Fix monorepo compability for techdocs by [@​timo-reymann](https://github.com/timo-reymann) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/174 #### New Contributors - [@​timo-reymann](https://github.com/timo-reymann) made their first contribution in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/174 **Full Changelog**: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.4...v1.4.5 ### [`v1.4.4`](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases/tag/v1.4.4) [Compare Source](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.2...v1.4.4) #### What's Changed - Fix regression causing verbose output by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/171 **Full Changelog**: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.3...v1.4.4 ### [`v1.4.2`](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.1...v1.4.2) [Compare Source](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.1...v1.4.2) ### [`v1.4.1`](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases/tag/v1.4.1): revision-date-localized v1.4.1 [Compare Source](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.0...v1.4.1) #### What's Changed - Fix monorepo compatibility by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/168 **Full Changelog**: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.4.0...v1.4.1 ### [`v1.4.0`](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases/tag/v1.4.0): revision-date-localized v1.4.0 [Compare Source](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.3.0...v1.4.0) #### What's Changed ##### New features - New option `enable_parallel_processing` (default: True) for a 2-5x speedup by [@​kunickiaj](https://github.com/kunickiaj) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/116, and by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/166 - New option `ignored_commits_file` enabling you to to ignore specific commits by [@​allanlw](https://github.com/allanlw) in [#​114](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/issues/114), and [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/157 - Support 5 letter locale settings by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/165 - Git hash and git tag information now also exposed to developers by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/162 - Enable seeing datetime when hovering over element by adding datetime string to span element as title by [@​mschoettle](https://github.com/mschoettle) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/152 ##### Enhancements - Catch errors explicitly by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/159 - Raise error when dubious git ownership is at fault by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/161 - Ensure creation date is never later than revision date by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/163 - When using `type: custom`, the `locale` is now properly respective by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/165 ##### Documentation - fix: broken link by [@​sheeeng](https://github.com/sheeeng) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/153 - Add tips to speed up builds by [@​timvink](https://github.com/timvink) in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/160 #### New Contributors - [@​sheeeng](https://github.com/sheeeng) made their first contribution in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/153 - [@​mschoettle](https://github.com/mschoettle) made their first contribution in https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/pull/152 **Full Changelog**: https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.3.0...v1.4.0
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/74 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a2efae1..af0d164 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ documentation = [ "mkdocs==1.6.1", "mkdocs-git-authors-plugin==0.9.4", - "mkdocs-git-revision-date-localized-plugin==1.3.0", + "mkdocs-git-revision-date-localized-plugin==1.4.5", "mkdocs-material[imaging]==9.6.9", "mkdocs-redirects==1.2.2", "mkdocstrings[python]==0.29.0", diff --git a/uv.lock b/uv.lock index 9356a9f..c6ff55b 100644 --- a/uv.lock +++ b/uv.lock @@ -860,7 +860,7 @@ wheels = [ [[package]] name = "mkdocs-git-revision-date-localized-plugin" -version = "1.3.0" +version = "1.4.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, @@ -868,9 +868,9 @@ dependencies = [ { name = "mkdocs" }, { name = "pytz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/73/85/6dc9d4eca486ed5734a05f7fd5c612a8e60a35e65610dad6aa9c58118c3f/mkdocs_git_revision_date_localized_plugin-1.3.0.tar.gz", hash = "sha256:439e2f14582204050a664c258861c325064d97cdc848c541e48bb034a6c4d0cb", size = 384797 } +sdist = { url = "https://files.pythonhosted.org/packages/3c/93/3987505121a9b596b05c8a38054b587cfe0d78a1a3e92144204f2c45722b/mkdocs_git_revision_date_localized_plugin-1.4.5.tar.gz", hash = "sha256:9e37f1343d314c9cd8f9cbbf117c4bdc1d2d24a0653c5bbd7059d072f2cd0972", size = 450263 } wheels = [ - { url = "https://files.pythonhosted.org/packages/67/e5/ffeb92db53af8c3aa2d92e21a3cf6b5f83eee7e03b9cf9234ef6b30230d5/mkdocs_git_revision_date_localized_plugin-1.3.0-py3-none-any.whl", hash = "sha256:c99377ee119372d57a9e47cff4e68f04cce634a74831c06bc89b33e456e840a1", size = 22549 }, + { url = "https://files.pythonhosted.org/packages/da/c0/b63cb3008564242a3d1ba7a6dd6dc29d7fb297e65bda93cef655780757af/mkdocs_git_revision_date_localized_plugin-1.4.5-py3-none-any.whl", hash = "sha256:395ae0b9eec565c78a76fffc938b70f52774bf2971245482d31aba47018c5fa9", size = 25284 }, ] [[package]] @@ -1720,7 +1720,7 @@ dev = [ documentation = [ { name = "mkdocs", specifier = "==1.6.1" }, { name = "mkdocs-git-authors-plugin", specifier = "==0.9.4" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.3.0" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.4.5" }, { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.6.9" }, { name = "mkdocs-redirects", specifier = "==1.2.2" }, { name = "mkdocstrings", extras = ["python"], specifier = "==0.29.0" }, From 6b3398c3d057bb58be2b3985aff599181901ea42 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:24:45 -0400 Subject: [PATCH 42/51] fix(deps): update dependency aiosqlite to v0.21.0 (#78) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [aiosqlite](https://github.com/omnilib/aiosqlite) | project.dependencies | minor | `==0.20.0` -> `==0.21.0` | --- ### Release Notes
omnilib/aiosqlite (aiosqlite) ### [`v0.21.0`](https://github.com/omnilib/aiosqlite/blob/HEAD/CHANGELOG.md#v0210) [Compare Source](https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.21.0) Maintenance release - Fix: close connection correctly when BaseException raised in connection ([#​317](https://github.com/omnilib/aiosqlite/issues/317)) - Metadata improvements - Tested and supported on Python 3.13 - Drop support for Python 3.8 - Drop testing on PyPy ```text $ git shortlog -s v0.20.0...v0.21.0 6 Amethyst Reese 1 Gabriel 1 Stanley Kudrow 11 dependabot[bot] ```
--- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/78 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index af0d164..54b88b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = { file = "LICENSE" } readme = "README.md" requires-python = ">=3.11" dependencies = [ - "aiosqlite==0.20.0", + "aiosqlite==0.21.0", "beautifulsoup4==4.13.3", "colorthief==0.2.1", "markdownify==0.14.1", diff --git a/uv.lock b/uv.lock index c6ff55b..99e4da3 100644 --- a/uv.lock +++ b/uv.lock @@ -78,14 +78,14 @@ wheels = [ [[package]] name = "aiosqlite" -version = "0.20.0" +version = "0.21.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0d/3a/22ff5415bf4d296c1e92b07fd746ad42c96781f13295a074d58e77747848/aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7", size = 21691 } +sdist = { url = "https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz", hash = "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size = 13454 } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/c4/c93eb22025a2de6b83263dfe3d7df2e19138e345bca6f18dba7394120930/aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6", size = 15564 }, + { url = "https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl", hash = "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size = 15792 }, ] [[package]] @@ -1696,7 +1696,7 @@ documentation = [ [package.metadata] requires-dist = [ - { name = "aiosqlite", specifier = "==0.20.0" }, + { name = "aiosqlite", specifier = "==0.21.0" }, { name = "beautifulsoup4", specifier = "==4.13.3" }, { name = "colorthief", specifier = "==0.2.1" }, { name = "markdownify", specifier = "==0.14.1" }, From aa20b5dcc0c6ad8de161deb273518a3abe0fe2ff Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:24:56 -0400 Subject: [PATCH 43/51] fix(deps): update dependency markdownify to v1 (#81) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [markdownify](https://github.com/matthewwithanm/python-markdownify) | project.dependencies | major | `==0.14.1` -> `==1.1.0` | --- ### Release Notes
matthewwithanm/python-markdownify (markdownify) ### [`v1.1.0`](https://github.com/matthewwithanm/python-markdownify/releases/tag/1.1.0) [Compare Source](https://github.com/matthewwithanm/python-markdownify/compare/1.0.0...1.1.0) #### What's Changed - Support `video` tag with `poster` attribute by [@​itmammoth](https://github.com/itmammoth) in https://github.com/matthewwithanm/python-markdownify/pull/189 - Add missing newlines for definition lists by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/200 - In inline contexts, resolve `
` to a space instead of an empty string by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/202 - Generalize `colspan` handling to handle missing header rows by [@​sbrown61](https://github.com/sbrown61) in https://github.com/matthewwithanm/python-markdownify/pull/203 #### New Contributors - [@​itmammoth](https://github.com/itmammoth) made their first contribution in https://github.com/matthewwithanm/python-markdownify/pull/189 - [@​sbrown61](https://github.com/sbrown61) made their first contribution in https://github.com/matthewwithanm/python-markdownify/pull/203 **Full Changelog**: https://github.com/matthewwithanm/python-markdownify/compare/1.0.0...1.1.0 ### [`v1.0.0`](https://github.com/matthewwithanm/python-markdownify/releases/tag/1.0.0) [Compare Source](https://github.com/matthewwithanm/python-markdownify/compare/0.14.1...1.0.0) #### Breaking Changes If you are using custom tag conversion functions (`convert_*()`), note that the function interface has changed. See [#​191](https://github.com/matthewwithanm/python-markdownify/issues/191) for details. #### What's Changed - Do not construct Markdown links in code spans and code blocks by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/165 - Insert a blank line between table caption, table content by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/167 - Allow a `wrap_width` value of `None` for unlimited line lengths by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/169 - Optimize empty-line handling for `
  • ` and `
    ` content by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/171 - Support HTML definition lists (`
    `, `
    `, and `
    `) by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/173 - Add a new `table_infer_header` configuration option to control table header row inference by [@​SomeBottle](https://github.com/SomeBottle) in https://github.com/matthewwithanm/python-markdownify/pull/161 - For `convert_*` functions, allow for tags with special characters in their name (like "subtag-name") by [@​Fess-AKA-DeadMonk](https://github.com/Fess-AKA-DeadMonk) in https://github.com/matthewwithanm/python-markdownify/pull/136 - Code simplification to remove the `children_only` parameter by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/174 - Add blank line before ATX-style headings to avoid ambiguity by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/178 - Add blank line before/after preformatted blocks by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/179 - Remove superfluous leading/trailing whitespace by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/181 - Simplify computation of `convert_children_as_inline` variable by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/182 - When computing `
      `/`
    1. ` numbering, ignore non-`
    2. ` previous siblings by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/183 - Make conversion non-destructive to soup; improve div/article/section handling by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/184 - Propagate parent tag context downward to improve runtime by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/191 - Avoid stripping nonbreaking spaces by [@​jsm28](https://github.com/jsm28) in https://github.com/matthewwithanm/python-markdownify/pull/188 - Escape right square brackets by [@​jsm28](https://github.com/jsm28) in https://github.com/matthewwithanm/python-markdownify/pull/187 - Rename regex pattern variables by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/195 - Use a conversion function cache to improve runtime by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/196 - Use compiled regex patterns for escaping to improve runtime by [@​chrispy-snps](https://github.com/chrispy-snps) in https://github.com/matthewwithanm/python-markdownify/pull/194 #### New Contributors - [@​SomeBottle](https://github.com/SomeBottle) made their first contribution in https://github.com/matthewwithanm/python-markdownify/pull/161 - [@​Fess-AKA-DeadMonk](https://github.com/Fess-AKA-DeadMonk) made their first contribution in https://github.com/matthewwithanm/python-markdownify/pull/136 **Full Changelog**: https://github.com/matthewwithanm/python-markdownify/compare/0.14.1...1.0.0
  • --- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/81 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 54b88b2..93c3240 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ "aiosqlite==0.21.0", "beautifulsoup4==4.13.3", "colorthief==0.2.1", - "markdownify==0.14.1", + "markdownify==1.1.0", "numpy==2.2.4", "phx-class-registry==5.1.1", "pillow==10.4.0", diff --git a/uv.lock b/uv.lock index 99e4da3..4df54ed 100644 --- a/uv.lock +++ b/uv.lock @@ -708,15 +708,15 @@ wheels = [ [[package]] name = "markdownify" -version = "0.14.1" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "beautifulsoup4" }, { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1b/75/483a4bcca436fe88d02dc7686c372631d833848951b368700bdc0c770bb7/markdownify-0.14.1.tar.gz", hash = "sha256:a62a7a216947ed0b8dafb95b99b2ef4a0edd1e18d5653c656f68f03db2bfb2f1", size = 14332 } +sdist = { url = "https://files.pythonhosted.org/packages/2f/78/c48fed23c7aebc2c16049062e72de1da3220c274de59d28c942acdc9ffb2/markdownify-1.1.0.tar.gz", hash = "sha256:449c0bbbf1401c5112379619524f33b63490a8fa479456d41de9dc9e37560ebd", size = 17127 } wheels = [ - { url = "https://files.pythonhosted.org/packages/65/0b/74cec93a7b05edf4fc3ea1c899fe8a37f041d7b9d303c75abf7a162924e0/markdownify-0.14.1-py3-none-any.whl", hash = "sha256:4c46a6c0c12c6005ddcd49b45a5a890398b002ef51380cd319db62df5e09bc2a", size = 11530 }, + { url = "https://files.pythonhosted.org/packages/64/11/b751af7ad41b254a802cf52f7bc1fca7cabe2388132f2ce60a1a6b9b9622/markdownify-1.1.0-py3-none-any.whl", hash = "sha256:32a5a08e9af02c8a6528942224c91b933b4bd2c7d078f9012943776fc313eeef", size = 13901 }, ] [[package]] @@ -1699,7 +1699,7 @@ requires-dist = [ { name = "aiosqlite", specifier = "==0.21.0" }, { name = "beautifulsoup4", specifier = "==4.13.3" }, { name = "colorthief", specifier = "==0.2.1" }, - { name = "markdownify", specifier = "==0.14.1" }, + { name = "markdownify", specifier = "==1.1.0" }, { name = "numpy", specifier = "==2.2.4" }, { name = "phx-class-registry", specifier = "==5.1.1" }, { name = "pillow", specifier = "==10.4.0" }, From a491d8e5fc1a0257dbd09a715e34bac2118e8ab7 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 08:25:06 -0400 Subject: [PATCH 44/51] fix(deps): update dependency pydantic to v2.11.1 (#80) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | project.dependencies | minor | `==2.10.6` -> `==2.11.1` | --- ### Release Notes
    pydantic/pydantic (pydantic) ### [`v2.11.1`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2111-2025-03-28) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.11.0...v2.11.1) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.1) ##### What's Changed ##### Fixes - Do not override `'definitions-ref'` schemas containing serialization schemas or metadata by [@​Viicos](https://github.com/Viicos) in [#​11644](https://github.com/pydantic/pydantic/pull/11644) ### [`v2.11.0`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2110-2025-03-27) [Compare Source](https://github.com/pydantic/pydantic/compare/v2.10.6...v2.11.0) [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0) ##### What's Changed Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). See the [blog post](https://pydantic.dev/articles/pydantic-v2-11-release) for more details. ##### Packaging - Bump `pydantic-core` to v2.33.0 by [@​Viicos](https://github.com/Viicos) in [#​11631](https://github.com/pydantic/pydantic/pull/11631) ##### New Features - Add `encoded_string()` method to the URL types by [@​YassinNouh21](https://github.com/YassinNouh21) in [#​11580](https://github.com/pydantic/pydantic/pull/11580) - Add support for `defer_build` with `@validate_call` decorator by [@​Viicos](https://github.com/Viicos) in [#​11584](https://github.com/pydantic/pydantic/pull/11584) - Allow `@with_config` decorator to be used with keyword arguments by [@​Viicos](https://github.com/Viicos) in [#​11608](https://github.com/pydantic/pydantic/pull/11608) - Simplify customization of default value inclusion in JSON Schema generation by [@​Viicos](https://github.com/Viicos) in [#​11634](https://github.com/pydantic/pydantic/pull/11634) - Add `generate_arguments_schema()` function by [@​Viicos](https://github.com/Viicos) in [#​11572](https://github.com/pydantic/pydantic/pull/11572) ##### Fixes - Allow generic typed dictionaries to be used for unpacked variadic keyword parameters by [@​Viicos](https://github.com/Viicos) in [#​11571](https://github.com/pydantic/pydantic/pull/11571) - Fix runtime error when computing model string representation involving cached properties and self-referenced models by [@​Viicos](https://github.com/Viicos) in [#​11579](https://github.com/pydantic/pydantic/pull/11579) - Preserve other steps when using the ellipsis in the pipeline API by [@​Viicos](https://github.com/Viicos) in [#​11626](https://github.com/pydantic/pydantic/pull/11626) - Fix deferred discriminator application logic by [@​Viicos](https://github.com/Viicos) in [#​11591](https://github.com/pydantic/pydantic/pull/11591) ##### New Contributors - [@​cmenon12](https://github.com/cmenon12) made their first contribution in [#​11562](https://github.com/pydantic/pydantic/pull/11562) - [@​Jeukoh](https://github.com/Jeukoh) made their first contribution in [#​11611](https://github.com/pydantic/pydantic/pull/11611)
    --- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/80 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 121 +++++++++++++++++++++++++++++-------------------- 2 files changed, 74 insertions(+), 49 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 93c3240..9bff756 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ dependencies = [ "pillow==10.4.0", "pip==25.0.1", "py-dactyl", - "pydantic==2.10.6", + "pydantic==2.11.1", "red-discordbot==3.5.18", "watchdog==6.0.0", "websockets==15.0.1", diff --git a/uv.lock b/uv.lock index 4df54ed..3b7cf2e 100644 --- a/uv.lock +++ b/uv.lock @@ -1299,69 +1299,82 @@ wheels = [ [[package]] name = "pydantic" -version = "2.10.6" +version = "2.11.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, { name = "pydantic-core" }, { name = "typing-extensions" }, + { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/ae/d5220c5c52b158b1de7ca89fc5edb72f304a70a4c540c84c8844bf4008de/pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236", size = 761681 } +sdist = { url = "https://files.pythonhosted.org/packages/93/a3/698b87a4d4d303d7c5f62ea5fbf7a79cab236ccfbd0a17847b7f77f8163e/pydantic-2.11.1.tar.gz", hash = "sha256:442557d2910e75c991c39f4b4ab18963d57b9b55122c8b2a9cd176d8c29ce968", size = 782817 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/3c/8cc1cc84deffa6e25d2d0c688ebb80635dfdbf1dbea3e30c541c8cf4d860/pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584", size = 431696 }, + { url = "https://files.pythonhosted.org/packages/cc/12/f9221a949f2419e2e23847303c002476c26fbcfd62dc7f3d25d0bec5ca99/pydantic-2.11.1-py3-none-any.whl", hash = "sha256:5b6c415eee9f8123a14d859be0c84363fec6b1feb6b688d6435801230b56e0b8", size = 442648 }, ] [[package]] name = "pydantic-core" -version = "2.27.2" +version = "2.33.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 } +sdist = { url = "https://files.pythonhosted.org/packages/b9/05/91ce14dfd5a3a99555fce436318cc0fd1f08c4daa32b3248ad63669ea8b4/pydantic_core-2.33.0.tar.gz", hash = "sha256:40eb8af662ba409c3cbf4a8150ad32ae73514cd7cb1f1a2113af39763dd616b3", size = 434080 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/89/f3450af9d09d44eea1f2c369f49e8f181d742f28220f88cc4dfaae91ea6e/pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc", size = 1893421 }, - { url = "https://files.pythonhosted.org/packages/9e/e3/71fe85af2021f3f386da42d291412e5baf6ce7716bd7101ea49c810eda90/pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7", size = 1814998 }, - { url = "https://files.pythonhosted.org/packages/a6/3c/724039e0d848fd69dbf5806894e26479577316c6f0f112bacaf67aa889ac/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15", size = 1826167 }, - { url = "https://files.pythonhosted.org/packages/2b/5b/1b29e8c1fb5f3199a9a57c1452004ff39f494bbe9bdbe9a81e18172e40d3/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306", size = 1865071 }, - { url = "https://files.pythonhosted.org/packages/89/6c/3985203863d76bb7d7266e36970d7e3b6385148c18a68cc8915fd8c84d57/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99", size = 2036244 }, - { url = "https://files.pythonhosted.org/packages/0e/41/f15316858a246b5d723f7d7f599f79e37493b2e84bfc789e58d88c209f8a/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459", size = 2737470 }, - { url = "https://files.pythonhosted.org/packages/a8/7c/b860618c25678bbd6d1d99dbdfdf0510ccb50790099b963ff78a124b754f/pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048", size = 1992291 }, - { url = "https://files.pythonhosted.org/packages/bf/73/42c3742a391eccbeab39f15213ecda3104ae8682ba3c0c28069fbcb8c10d/pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d", size = 1994613 }, - { url = "https://files.pythonhosted.org/packages/94/7a/941e89096d1175d56f59340f3a8ebaf20762fef222c298ea96d36a6328c5/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b", size = 2002355 }, - { url = "https://files.pythonhosted.org/packages/6e/95/2359937a73d49e336a5a19848713555605d4d8d6940c3ec6c6c0ca4dcf25/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474", size = 2126661 }, - { url = "https://files.pythonhosted.org/packages/2b/4c/ca02b7bdb6012a1adef21a50625b14f43ed4d11f1fc237f9d7490aa5078c/pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6", size = 2153261 }, - { url = "https://files.pythonhosted.org/packages/72/9d/a241db83f973049a1092a079272ffe2e3e82e98561ef6214ab53fe53b1c7/pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c", size = 1812361 }, - { url = "https://files.pythonhosted.org/packages/e8/ef/013f07248041b74abd48a385e2110aa3a9bbfef0fbd97d4e6d07d2f5b89a/pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc", size = 1982484 }, - { url = "https://files.pythonhosted.org/packages/10/1c/16b3a3e3398fd29dca77cea0a1d998d6bde3902fa2706985191e2313cc76/pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4", size = 1867102 }, - { url = "https://files.pythonhosted.org/packages/d6/74/51c8a5482ca447871c93e142d9d4a92ead74de6c8dc5e66733e22c9bba89/pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0", size = 1893127 }, - { url = "https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef", size = 1811340 }, - { url = "https://files.pythonhosted.org/packages/9e/91/840ec1375e686dbae1bd80a9e46c26a1e0083e1186abc610efa3d9a36180/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7", size = 1822900 }, - { url = "https://files.pythonhosted.org/packages/f6/31/4240bc96025035500c18adc149aa6ffdf1a0062a4b525c932065ceb4d868/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934", size = 1869177 }, - { url = "https://files.pythonhosted.org/packages/fa/20/02fbaadb7808be578317015c462655c317a77a7c8f0ef274bc016a784c54/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6", size = 2038046 }, - { url = "https://files.pythonhosted.org/packages/06/86/7f306b904e6c9eccf0668248b3f272090e49c275bc488a7b88b0823444a4/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c", size = 2685386 }, - { url = "https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2", size = 1997060 }, - { url = "https://files.pythonhosted.org/packages/0d/0f/943b4af7cd416c477fd40b187036c4f89b416a33d3cc0ab7b82708a667aa/pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4", size = 2004870 }, - { url = "https://files.pythonhosted.org/packages/35/40/aea70b5b1a63911c53a4c8117c0a828d6790483f858041f47bab0b779f44/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3", size = 1999822 }, - { url = "https://files.pythonhosted.org/packages/f2/b3/807b94fd337d58effc5498fd1a7a4d9d59af4133e83e32ae39a96fddec9d/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4", size = 2130364 }, - { url = "https://files.pythonhosted.org/packages/fc/df/791c827cd4ee6efd59248dca9369fb35e80a9484462c33c6649a8d02b565/pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57", size = 2158303 }, - { url = "https://files.pythonhosted.org/packages/9b/67/4e197c300976af185b7cef4c02203e175fb127e414125916bf1128b639a9/pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc", size = 1834064 }, - { url = "https://files.pythonhosted.org/packages/1f/ea/cd7209a889163b8dcca139fe32b9687dd05249161a3edda62860430457a5/pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9", size = 1989046 }, - { url = "https://files.pythonhosted.org/packages/bc/49/c54baab2f4658c26ac633d798dab66b4c3a9bbf47cff5284e9c182f4137a/pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b", size = 1885092 }, - { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 }, - { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 }, - { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 }, - { url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888 }, - { url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738 }, - { url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138 }, - { url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025 }, - { url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633 }, - { url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404 }, - { url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130 }, - { url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946 }, - { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 }, - { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 }, - { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 }, + { url = "https://files.pythonhosted.org/packages/f0/93/9e97af2619b4026596487a79133e425c7d3c374f0a7f100f3d76bcdf9c83/pydantic_core-2.33.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a608a75846804271cf9c83e40bbb4dab2ac614d33c6fd5b0c6187f53f5c593ef", size = 2042784 }, + { url = "https://files.pythonhosted.org/packages/42/b4/0bba8412fd242729feeb80e7152e24f0e1a1c19f4121ca3d4a307f4e6222/pydantic_core-2.33.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e1c69aa459f5609dec2fa0652d495353accf3eda5bdb18782bc5a2ae45c9273a", size = 1858179 }, + { url = "https://files.pythonhosted.org/packages/69/1f/c1c40305d929bd08af863df64b0a26203b70b352a1962d86f3bcd52950fe/pydantic_core-2.33.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9ec80eb5a5f45a2211793f1c4aeddff0c3761d1c70d684965c1807e923a588b", size = 1909396 }, + { url = "https://files.pythonhosted.org/packages/0f/99/d2e727375c329c1e652b5d450fbb9d56e8c3933a397e4bd46e67c68c2cd5/pydantic_core-2.33.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e925819a98318d17251776bd3d6aa9f3ff77b965762155bdad15d1a9265c4cfd", size = 1998264 }, + { url = "https://files.pythonhosted.org/packages/9c/2e/3119a33931278d96ecc2e9e1b9d50c240636cfeb0c49951746ae34e4de74/pydantic_core-2.33.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bf68bb859799e9cec3d9dd8323c40c00a254aabb56fe08f907e437005932f2b", size = 2140588 }, + { url = "https://files.pythonhosted.org/packages/35/bd/9267bd1ba55f17c80ef6cb7e07b3890b4acbe8eb6014f3102092d53d9300/pydantic_core-2.33.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b2ea72dea0825949a045fa4071f6d5b3d7620d2a208335207793cf29c5a182d", size = 2746296 }, + { url = "https://files.pythonhosted.org/packages/6f/ed/ef37de6478a412ee627cbebd73e7b72a680f45bfacce9ff1199de6e17e88/pydantic_core-2.33.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1583539533160186ac546b49f5cde9ffc928062c96920f58bd95de32ffd7bffd", size = 2005555 }, + { url = "https://files.pythonhosted.org/packages/dd/84/72c8d1439585d8ee7bc35eb8f88a04a4d302ee4018871f1f85ae1b0c6625/pydantic_core-2.33.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:23c3e77bf8a7317612e5c26a3b084c7edeb9552d645742a54a5867635b4f2453", size = 2124452 }, + { url = "https://files.pythonhosted.org/packages/a7/8f/cb13de30c6a3e303423751a529a3d1271c2effee4b98cf3e397a66ae8498/pydantic_core-2.33.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a7a7f2a3f628d2f7ef11cb6188bcf0b9e1558151d511b974dfea10a49afe192b", size = 2087001 }, + { url = "https://files.pythonhosted.org/packages/83/d0/e93dc8884bf288a63fedeb8040ac8f29cb71ca52e755f48e5170bb63e55b/pydantic_core-2.33.0-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:f1fb026c575e16f673c61c7b86144517705865173f3d0907040ac30c4f9f5915", size = 2261663 }, + { url = "https://files.pythonhosted.org/packages/4c/ba/4b7739c95efa0b542ee45fd872c8f6b1884ab808cf04ce7ac6621b6df76e/pydantic_core-2.33.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:635702b2fed997e0ac256b2cfbdb4dd0bf7c56b5d8fba8ef03489c03b3eb40e2", size = 2257786 }, + { url = "https://files.pythonhosted.org/packages/cc/98/73cbca1d2360c27752cfa2fcdcf14d96230e92d7d48ecd50499865c56bf7/pydantic_core-2.33.0-cp311-cp311-win32.whl", hash = "sha256:07b4ced28fccae3f00626eaa0c4001aa9ec140a29501770a88dbbb0966019a86", size = 1925697 }, + { url = "https://files.pythonhosted.org/packages/9a/26/d85a40edeca5d8830ffc33667d6fef329fd0f4bc0c5181b8b0e206cfe488/pydantic_core-2.33.0-cp311-cp311-win_amd64.whl", hash = "sha256:4927564be53239a87770a5f86bdc272b8d1fbb87ab7783ad70255b4ab01aa25b", size = 1949859 }, + { url = "https://files.pythonhosted.org/packages/7e/0b/5a381605f0b9870465b805f2c86c06b0a7c191668ebe4117777306c2c1e5/pydantic_core-2.33.0-cp311-cp311-win_arm64.whl", hash = "sha256:69297418ad644d521ea3e1aa2e14a2a422726167e9ad22b89e8f1130d68e1e9a", size = 1907978 }, + { url = "https://files.pythonhosted.org/packages/a9/c4/c9381323cbdc1bb26d352bc184422ce77c4bc2f2312b782761093a59fafc/pydantic_core-2.33.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6c32a40712e3662bebe524abe8abb757f2fa2000028d64cc5a1006016c06af43", size = 2025127 }, + { url = "https://files.pythonhosted.org/packages/6f/bd/af35278080716ecab8f57e84515c7dc535ed95d1c7f52c1c6f7b313a9dab/pydantic_core-2.33.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ec86b5baa36f0a0bfb37db86c7d52652f8e8aa076ab745ef7725784183c3fdd", size = 1851687 }, + { url = "https://files.pythonhosted.org/packages/12/e4/a01461225809c3533c23bd1916b1e8c2e21727f0fea60ab1acbffc4e2fca/pydantic_core-2.33.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4deac83a8cc1d09e40683be0bc6d1fa4cde8df0a9bf0cda5693f9b0569ac01b6", size = 1892232 }, + { url = "https://files.pythonhosted.org/packages/51/17/3d53d62a328fb0a49911c2962036b9e7a4f781b7d15e9093c26299e5f76d/pydantic_core-2.33.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:175ab598fb457a9aee63206a1993874badf3ed9a456e0654273e56f00747bbd6", size = 1977896 }, + { url = "https://files.pythonhosted.org/packages/30/98/01f9d86e02ec4a38f4b02086acf067f2c776b845d43f901bd1ee1c21bc4b/pydantic_core-2.33.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f36afd0d56a6c42cf4e8465b6441cf546ed69d3a4ec92724cc9c8c61bd6ecf4", size = 2127717 }, + { url = "https://files.pythonhosted.org/packages/3c/43/6f381575c61b7c58b0fd0b92134c5a1897deea4cdfc3d47567b3ff460a4e/pydantic_core-2.33.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a98257451164666afafc7cbf5fb00d613e33f7e7ebb322fbcd99345695a9a61", size = 2680287 }, + { url = "https://files.pythonhosted.org/packages/01/42/c0d10d1451d161a9a0da9bbef023b8005aa26e9993a8cc24dc9e3aa96c93/pydantic_core-2.33.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecc6d02d69b54a2eb83ebcc6f29df04957f734bcf309d346b4f83354d8376862", size = 2008276 }, + { url = "https://files.pythonhosted.org/packages/20/ca/e08df9dba546905c70bae44ced9f3bea25432e34448d95618d41968f40b7/pydantic_core-2.33.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a69b7596c6603afd049ce7f3835bcf57dd3892fc7279f0ddf987bebed8caa5a", size = 2115305 }, + { url = "https://files.pythonhosted.org/packages/03/1f/9b01d990730a98833113581a78e595fd40ed4c20f9693f5a658fb5f91eff/pydantic_core-2.33.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea30239c148b6ef41364c6f51d103c2988965b643d62e10b233b5efdca8c0099", size = 2068999 }, + { url = "https://files.pythonhosted.org/packages/20/18/fe752476a709191148e8b1e1139147841ea5d2b22adcde6ee6abb6c8e7cf/pydantic_core-2.33.0-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:abfa44cf2f7f7d7a199be6c6ec141c9024063205545aa09304349781b9a125e6", size = 2241488 }, + { url = "https://files.pythonhosted.org/packages/81/22/14738ad0a0bf484b928c9e52004f5e0b81dd8dabbdf23b843717b37a71d1/pydantic_core-2.33.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20d4275f3c4659d92048c70797e5fdc396c6e4446caf517ba5cad2db60cd39d3", size = 2248430 }, + { url = "https://files.pythonhosted.org/packages/e8/27/be7571e215ac8d321712f2433c445b03dbcd645366a18f67b334df8912bc/pydantic_core-2.33.0-cp312-cp312-win32.whl", hash = "sha256:918f2013d7eadea1d88d1a35fd4a1e16aaf90343eb446f91cb091ce7f9b431a2", size = 1908353 }, + { url = "https://files.pythonhosted.org/packages/be/3a/be78f28732f93128bd0e3944bdd4b3970b389a1fbd44907c97291c8dcdec/pydantic_core-2.33.0-cp312-cp312-win_amd64.whl", hash = "sha256:aec79acc183865bad120b0190afac467c20b15289050648b876b07777e67ea48", size = 1955956 }, + { url = "https://files.pythonhosted.org/packages/21/26/b8911ac74faa994694b76ee6a22875cc7a4abea3c381fdba4edc6c6bef84/pydantic_core-2.33.0-cp312-cp312-win_arm64.whl", hash = "sha256:5461934e895968655225dfa8b3be79e7e927e95d4bd6c2d40edd2fa7052e71b6", size = 1903259 }, + { url = "https://files.pythonhosted.org/packages/79/20/de2ad03ce8f5b3accf2196ea9b44f31b0cd16ac6e8cfc6b21976ed45ec35/pydantic_core-2.33.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f00e8b59e1fc8f09d05594aa7d2b726f1b277ca6155fc84c0396db1b373c4555", size = 2032214 }, + { url = "https://files.pythonhosted.org/packages/f9/af/6817dfda9aac4958d8b516cbb94af507eb171c997ea66453d4d162ae8948/pydantic_core-2.33.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a73be93ecef45786d7d95b0c5e9b294faf35629d03d5b145b09b81258c7cd6d", size = 1852338 }, + { url = "https://files.pythonhosted.org/packages/44/f3/49193a312d9c49314f2b953fb55740b7c530710977cabe7183b8ef111b7f/pydantic_core-2.33.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ff48a55be9da6930254565ff5238d71d5e9cd8c5487a191cb85df3bdb8c77365", size = 1896913 }, + { url = "https://files.pythonhosted.org/packages/06/e0/c746677825b2e29a2fa02122a8991c83cdd5b4c5f638f0664d4e35edd4b2/pydantic_core-2.33.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26a4ea04195638dcd8c53dadb545d70badba51735b1594810e9768c2c0b4a5da", size = 1986046 }, + { url = "https://files.pythonhosted.org/packages/11/ec/44914e7ff78cef16afb5e5273d480c136725acd73d894affdbe2a1bbaad5/pydantic_core-2.33.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41d698dcbe12b60661f0632b543dbb119e6ba088103b364ff65e951610cb7ce0", size = 2128097 }, + { url = "https://files.pythonhosted.org/packages/fe/f5/c6247d424d01f605ed2e3802f338691cae17137cee6484dce9f1ac0b872b/pydantic_core-2.33.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae62032ef513fe6281ef0009e30838a01057b832dc265da32c10469622613885", size = 2681062 }, + { url = "https://files.pythonhosted.org/packages/f0/85/114a2113b126fdd7cf9a9443b1b1fe1b572e5bd259d50ba9d5d3e1927fa9/pydantic_core-2.33.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f225f3a3995dbbc26affc191d0443c6c4aa71b83358fd4c2b7d63e2f6f0336f9", size = 2007487 }, + { url = "https://files.pythonhosted.org/packages/e6/40/3c05ed28d225c7a9acd2b34c5c8010c279683a870219b97e9f164a5a8af0/pydantic_core-2.33.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5bdd36b362f419c78d09630cbaebc64913f66f62bda6d42d5fbb08da8cc4f181", size = 2121382 }, + { url = "https://files.pythonhosted.org/packages/8a/22/e70c086f41eebd323e6baa92cc906c3f38ddce7486007eb2bdb3b11c8f64/pydantic_core-2.33.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2a0147c0bef783fd9abc9f016d66edb6cac466dc54a17ec5f5ada08ff65caf5d", size = 2072473 }, + { url = "https://files.pythonhosted.org/packages/3e/84/d1614dedd8fe5114f6a0e348bcd1535f97d76c038d6102f271433cd1361d/pydantic_core-2.33.0-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:c860773a0f205926172c6644c394e02c25421dc9a456deff16f64c0e299487d3", size = 2249468 }, + { url = "https://files.pythonhosted.org/packages/b0/c0/787061eef44135e00fddb4b56b387a06c303bfd3884a6df9bea5cb730230/pydantic_core-2.33.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:138d31e3f90087f42aa6286fb640f3c7a8eb7bdae829418265e7e7474bd2574b", size = 2254716 }, + { url = "https://files.pythonhosted.org/packages/ae/e2/27262eb04963201e89f9c280f1e10c493a7a37bc877e023f31aa72d2f911/pydantic_core-2.33.0-cp313-cp313-win32.whl", hash = "sha256:d20cbb9d3e95114325780f3cfe990f3ecae24de7a2d75f978783878cce2ad585", size = 1916450 }, + { url = "https://files.pythonhosted.org/packages/13/8d/25ff96f1e89b19e0b70b3cd607c9ea7ca27e1dcb810a9cd4255ed6abf869/pydantic_core-2.33.0-cp313-cp313-win_amd64.whl", hash = "sha256:ca1103d70306489e3d006b0f79db8ca5dd3c977f6f13b2c59ff745249431a606", size = 1956092 }, + { url = "https://files.pythonhosted.org/packages/1b/64/66a2efeff657b04323ffcd7b898cb0354d36dae3a561049e092134a83e9c/pydantic_core-2.33.0-cp313-cp313-win_arm64.whl", hash = "sha256:6291797cad239285275558e0a27872da735b05c75d5237bbade8736f80e4c225", size = 1908367 }, + { url = "https://files.pythonhosted.org/packages/52/54/295e38769133363d7ec4a5863a4d579f331728c71a6644ff1024ee529315/pydantic_core-2.33.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7b79af799630af263eca9ec87db519426d8c9b3be35016eddad1832bac812d87", size = 1813331 }, + { url = "https://files.pythonhosted.org/packages/4c/9c/0c8ea02db8d682aa1ef48938abae833c1d69bdfa6e5ec13b21734b01ae70/pydantic_core-2.33.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eabf946a4739b5237f4f56d77fa6668263bc466d06a8036c055587c130a46f7b", size = 1986653 }, + { url = "https://files.pythonhosted.org/packages/8e/4f/3fb47d6cbc08c7e00f92300e64ba655428c05c56b8ab6723bd290bae6458/pydantic_core-2.33.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8a1d581e8cdbb857b0e0e81df98603376c1a5c34dc5e54039dcc00f043df81e7", size = 1931234 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/553e42762e7b08771fca41c0230c1ac276f9e79e78f57628e1b7d328551d/pydantic_core-2.33.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5d8dc9f63a26f7259b57f46a7aab5af86b2ad6fbe48487500bb1f4b27e051e4c", size = 2041207 }, + { url = "https://files.pythonhosted.org/packages/85/81/a91a57bbf3efe53525ab75f65944b8950e6ef84fe3b9a26c1ec173363263/pydantic_core-2.33.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:30369e54d6d0113d2aa5aee7a90d17f225c13d87902ace8fcd7bbf99b19124db", size = 1873736 }, + { url = "https://files.pythonhosted.org/packages/9c/d2/5ab52e9f551cdcbc1ee99a0b3ef595f56d031f66f88e5ca6726c49f9ce65/pydantic_core-2.33.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3eb479354c62067afa62f53bb387827bee2f75c9c79ef25eef6ab84d4b1ae3b", size = 1903794 }, + { url = "https://files.pythonhosted.org/packages/2f/5f/a81742d3f3821b16f1265f057d6e0b68a3ab13a814fe4bffac536a1f26fd/pydantic_core-2.33.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0310524c833d91403c960b8a3cf9f46c282eadd6afd276c8c5edc617bd705dc9", size = 2083457 }, + { url = "https://files.pythonhosted.org/packages/b5/2f/e872005bc0fc47f9c036b67b12349a8522d32e3bda928e82d676e2a594d1/pydantic_core-2.33.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eddb18a00bbb855325db27b4c2a89a4ba491cd6a0bd6d852b225172a1f54b36c", size = 2119537 }, + { url = "https://files.pythonhosted.org/packages/d3/13/183f13ce647202eaf3dada9e42cdfc59cbb95faedd44d25f22b931115c7f/pydantic_core-2.33.0-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ade5dbcf8d9ef8f4b28e682d0b29f3008df9842bb5ac48ac2c17bc55771cc976", size = 2080069 }, + { url = "https://files.pythonhosted.org/packages/23/8b/b6be91243da44a26558d9c3a9007043b3750334136c6550551e8092d6d96/pydantic_core-2.33.0-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:2c0afd34f928383e3fd25740f2050dbac9d077e7ba5adbaa2227f4d4f3c8da5c", size = 2251618 }, + { url = "https://files.pythonhosted.org/packages/aa/c5/fbcf1977035b834f63eb542e74cd6c807177f383386175b468f0865bcac4/pydantic_core-2.33.0-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7da333f21cd9df51d5731513a6d39319892947604924ddf2e24a4612975fb936", size = 2255374 }, + { url = "https://files.pythonhosted.org/packages/2f/f8/66f328e411f1c9574b13c2c28ab01f308b53688bbbe6ca8fb981e6cabc42/pydantic_core-2.33.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4b6d77c75a57f041c5ee915ff0b0bb58eabb78728b69ed967bc5b780e8f701b8", size = 2082099 }, ] [[package]] @@ -1705,7 +1718,7 @@ requires-dist = [ { name = "pillow", specifier = "==10.4.0" }, { name = "pip", specifier = "==25.0.1" }, { name = "py-dactyl", git = "https://github.com/iamkubi/pydactyl?tag=v2.0.5" }, - { name = "pydantic", specifier = "==2.10.6" }, + { name = "pydantic", specifier = "==2.11.1" }, { name = "red-discordbot", specifier = "==3.5.18" }, { name = "watchdog", specifier = "==6.0.0" }, { name = "websockets", specifier = "==15.0.1" }, @@ -1794,6 +1807,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/86/39b65d676ec5732de17b7e3c476e45bb80ec64eb50737a8dce1a4178aba1/typing_extensions-4.13.0-py3-none-any.whl", hash = "sha256:c8dd92cc0d6425a97c18fbb9d1954e5ff92c1ca881a309c45f06ebc0b79058e5", size = 45683 }, ] +[[package]] +name = "typing-inspection" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/5c/e6082df02e215b846b4b8c0b887a64d7d08ffaba30605502639d44c06b82/typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122", size = 76222 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/08/aa4fdfb71f7de5176385bd9e90852eaf6b5d622735020ad600f2bab54385/typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f", size = 14125 }, +] + [[package]] name = "urllib3" version = "2.3.0" From 050e66be7aff03dced52ff660a845c5b0a9e0f2c Mon Sep 17 00:00:00 2001 From: Renovate Date: Sat, 29 Mar 2025 13:31:15 +0000 Subject: [PATCH 45/51] chore(deps): update catthehacker/ubuntu:act-latest docker digest to 0199164 --- .forgejo/workflows/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 143ba1c..039a16d 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -9,7 +9,7 @@ jobs: lint: name: Lint Code (Ruff & Pylint) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:70d7485966a50a639ddab37445fd27c2f0b5086ad4959ec3bba228ed394c1928 + container: catthehacker/ubuntu:act-latest@sha256:01991645805fd6fff768097e03b3ab6dcc62ddddc9426206bad6068719dbb63f steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -35,7 +35,7 @@ jobs: docs: name: Build Documentation (MkDocs) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:70d7485966a50a639ddab37445fd27c2f0b5086ad4959ec3bba228ed394c1928 + container: catthehacker/ubuntu:act-latest@sha256:01991645805fd6fff768097e03b3ab6dcc62ddddc9426206bad6068719dbb63f steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 From f12f229b6edaa6252cca192a64e63579d6c5d10b Mon Sep 17 00:00:00 2001 From: Renovate Date: Sun, 30 Mar 2025 20:04:43 -0400 Subject: [PATCH 46/51] chore(deps): lock file maintenance (#86) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Update | Change | |---|---| | lockFileMaintenance | All locks refreshed | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/86 Co-authored-by: Renovate Co-committed-by: Renovate --- uv.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/uv.lock b/uv.lock index 3b7cf2e..052a564 100644 --- a/uv.lock +++ b/uv.lock @@ -648,7 +648,7 @@ name = "importlib-metadata" version = "8.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "zipp", marker = "python_full_version >= '3.12'" }, + { name = "zipp" }, ] sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 } wheels = [ @@ -657,11 +657,11 @@ wheels = [ [[package]] name = "isort" -version = "5.13.2" +version = "6.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303 } +sdist = { url = "https://files.pythonhosted.org/packages/b8/21/1e2a441f74a653a144224d7d21afe8f4169e6c7c20bb13aec3a2dc3815e0/isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450", size = 821955 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 }, + { url = "https://files.pythonhosted.org/packages/c1/11/114d0a5f4dabbdcedc1125dee0888514c3c3b16d3e9facad87ed96fad97c/isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615", size = 94186 }, ] [[package]] From c5c4c53d5da4f6923a58dd6fe7edc94bcc46c0d3 Mon Sep 17 00:00:00 2001 From: Renovate Date: Sun, 30 Mar 2025 20:06:49 -0400 Subject: [PATCH 47/51] chore(deps): update dependency mkdocs-material to v9.6.10 (#85) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) ([changelog](https://squidfunk.github.io/mkdocs-material/changelog/)) | dependency-groups | patch | `==9.6.9` -> `==9.6.10` | --- ### Release Notes
    squidfunk/mkdocs-material (mkdocs-material) ### [`v9.6.10`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.6.10): mkdocs-material-9.6.10 [Compare Source](https://github.com/squidfunk/mkdocs-material/compare/9.6.9...9.6.10) This version is a pure refactoring release, and does not contain new features or bug fixes. It strives to improve the compatibility of our templates with alternative Jinja-like template engines that we're currently exploring, including [minijinja]. Additionally, it replaces several instances of Python function invocations with idiomatic use of template filters. All instances where variables have been mutated inside templates have been replaced. Most changes have been made in partials, and only a few in blocks, and all of them are fully backward compatible, so no changes to overrides are necessary. Note that this release does not replace the Jinja template engine with minijinja. However, our templates are now 99% compatible with minijinja, which means we can explore alternative Jinja-compatible implementations. Additionally, immutability and removal of almost all Python function invocations means much more idiomatic templating. [minijinja]: https://github.com/mitsuhiko/minijinja
    --- ### 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Reviewed-on: https://c.csw.im/cswimr/SeaCogs/pulls/85 Co-authored-by: Renovate Co-committed-by: Renovate --- pyproject.toml | 2 +- uv.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9bff756..6f3ebd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ documentation = [ "mkdocs==1.6.1", "mkdocs-git-authors-plugin==0.9.4", "mkdocs-git-revision-date-localized-plugin==1.4.5", - "mkdocs-material[imaging]==9.6.9", + "mkdocs-material[imaging]==9.6.10", "mkdocs-redirects==1.2.2", "mkdocstrings[python]==0.29.0", ] diff --git a/uv.lock b/uv.lock index 052a564..14654e8 100644 --- a/uv.lock +++ b/uv.lock @@ -875,7 +875,7 @@ wheels = [ [[package]] name = "mkdocs-material" -version = "9.6.9" +version = "9.6.10" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, @@ -890,9 +890,9 @@ dependencies = [ { name = "pymdown-extensions" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/cb/6dd3b6a7925429c0229738098ee874dbf7fa02db55558adb2c5bf86077b2/mkdocs_material-9.6.9.tar.gz", hash = "sha256:a4872139715a1f27b2aa3f3dc31a9794b7bbf36333c0ba4607cf04786c94f89c", size = 3948083 } +sdist = { url = "https://files.pythonhosted.org/packages/e6/fc/f42c09e3fe13d48193edf22a63484186b0be67a73fc006eab389bf47d66f/mkdocs_material-9.6.10.tar.gz", hash = "sha256:25a453c1f24f34fcf1f53680c03d2c1421b52ce5247f4468153c87a70cd5f1fc", size = 3951725 } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/7c/ea5a671b2ff5d0e3f3108a7f7d75b541d683e4969aaead2a8f3e59e0fc27/mkdocs_material-9.6.9-py3-none-any.whl", hash = "sha256:6e61b7fb623ce2aa4622056592b155a9eea56ff3487d0835075360be45a4c8d1", size = 8697935 }, + { url = "https://files.pythonhosted.org/packages/e4/2f/e210215a3c2918739096ff7bf71a3cf32b7d8d1dfd5ceff8a82e2741dc16/mkdocs_material-9.6.10-py3-none-any.whl", hash = "sha256:36168548df4e2ddeb9a334ddae4ab9c388ccfea4dd50ffee657d22b93dcb1c3e", size = 8703722 }, ] [package.optional-dependencies] @@ -1734,7 +1734,7 @@ documentation = [ { name = "mkdocs", specifier = "==1.6.1" }, { name = "mkdocs-git-authors-plugin", specifier = "==0.9.4" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = "==1.4.5" }, - { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.6.9" }, + { name = "mkdocs-material", extras = ["imaging"], specifier = "==9.6.10" }, { name = "mkdocs-redirects", specifier = "==1.2.2" }, { name = "mkdocstrings", extras = ["python"], specifier = "==0.29.0" }, ] From 0972be185fc99eac6ac97090ecb5e8f09fd90178 Mon Sep 17 00:00:00 2001 From: Renovate Date: Mon, 31 Mar 2025 00:41:12 +0000 Subject: [PATCH 48/51] chore(deps): update actions/setup-uv digest to 0c5e2b8 --- .forgejo/workflows/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 039a16d..e045ad8 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: actions/setup-uv@22695119d769bdb6f7032ad67b9bca0ef8c4a174 # v5 + uses: actions/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5 with: version: "latest" enable-cache: true @@ -43,7 +43,7 @@ jobs: fetch-depth: 0 - name: "Setup uv" - uses: actions/setup-uv@22695119d769bdb6f7032ad67b9bca0ef8c4a174 # v5 + uses: actions/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5 with: version: "latest" enable-cache: true From d3f9131afc51905ee9f98559dae31bfdd35b743d Mon Sep 17 00:00:00 2001 From: Renovate Date: Tue, 1 Apr 2025 13:41:17 +0000 Subject: [PATCH 49/51] chore(deps): update catthehacker/ubuntu:act-latest docker digest to 0999d0b --- .forgejo/workflows/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index e045ad8..8e5a75b 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -9,7 +9,7 @@ jobs: lint: name: Lint Code (Ruff & Pylint) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:01991645805fd6fff768097e03b3ab6dcc62ddddc9426206bad6068719dbb63f + container: catthehacker/ubuntu:act-latest@sha256:0999d0b42deb467f6b24d3c2e3b8e9fdefdb680f9a09edde1401ac898c40bbad steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -35,7 +35,7 @@ jobs: docs: name: Build Documentation (MkDocs) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:01991645805fd6fff768097e03b3ab6dcc62ddddc9426206bad6068719dbb63f + container: catthehacker/ubuntu:act-latest@sha256:0999d0b42deb467f6b24d3c2e3b8e9fdefdb680f9a09edde1401ac898c40bbad steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 From 89c1495155a2027d8529714e1a877340f15e3689 Mon Sep 17 00:00:00 2001 From: Renovate Date: Tue, 8 Apr 2025 13:35:04 +0000 Subject: [PATCH 50/51] chore(deps): update catthehacker/ubuntu:act-latest docker digest to cd83756 --- .forgejo/workflows/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 8e5a75b..1c5aa47 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -9,7 +9,7 @@ jobs: lint: name: Lint Code (Ruff & Pylint) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:0999d0b42deb467f6b24d3c2e3b8e9fdefdb680f9a09edde1401ac898c40bbad + container: catthehacker/ubuntu:act-latest@sha256:cd837565ef74f3d0f94e89ff6723292caa415306bddabfe566932ae892ca9334 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 @@ -35,7 +35,7 @@ jobs: docs: name: Build Documentation (MkDocs) runs-on: docker - container: catthehacker/ubuntu:act-latest@sha256:0999d0b42deb467f6b24d3c2e3b8e9fdefdb680f9a09edde1401ac898c40bbad + container: catthehacker/ubuntu:act-latest@sha256:cd837565ef74f3d0f94e89ff6723292caa415306bddabfe566932ae892ca9334 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 From f30055189b1a4c25eda5107551505cb98cedae1a Mon Sep 17 00:00:00 2001 From: Renovate Date: Wed, 16 Apr 2025 22:02:27 +0000 Subject: [PATCH 51/51] chore(deps): update actions/setup-uv digest to d4b2f3b --- .forgejo/workflows/workflow.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/workflow.yaml b/.forgejo/workflows/workflow.yaml index 1c5aa47..1dedbb1 100644 --- a/.forgejo/workflows/workflow.yaml +++ b/.forgejo/workflows/workflow.yaml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: "Setup uv" - uses: actions/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5 + uses: actions/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 with: version: "latest" enable-cache: true @@ -43,7 +43,7 @@ jobs: fetch-depth: 0 - name: "Setup uv" - uses: actions/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5 + uses: actions/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 with: version: "latest" enable-cache: true