chore: upgrade to Python 3.13 and update deps

This commit is contained in:
sebthom
2024-11-15 13:31:29 +01:00
parent 4a3fb230f5
commit 1b326c1ce8
5 changed files with 36 additions and 30 deletions

View File

@@ -62,16 +62,16 @@ jobs:
PYTHON_VERSION: "3.10" PYTHON_VERSION: "3.10"
PUBLISH_RELEASE: false PUBLISH_RELEASE: false
- os: macos-13 # X86 - os: macos-13 # X86
PYTHON_VERSION: "3.12.6" PYTHON_VERSION: "3.13.0"
PUBLISH_RELEASE: true PUBLISH_RELEASE: true
- os: macos-latest # ARM - os: macos-latest # ARM
PYTHON_VERSION: "3.12.6" PYTHON_VERSION: "3.13.0"
PUBLISH_RELEASE: true PUBLISH_RELEASE: true
- os: ubuntu-latest - os: ubuntu-latest
PYTHON_VERSION: "3.12.6" PYTHON_VERSION: "3.13.0"
PUBLISH_RELEASE: true PUBLISH_RELEASE: true
- os: windows-latest - os: windows-latest
PYTHON_VERSION: "3.12.6" PYTHON_VERSION: "3.13.0"
PUBLISH_RELEASE: true PUBLISH_RELEASE: true
runs-on: ${{ matrix.os }} # https://github.com/actions/runner-images#available-images runs-on: ${{ matrix.os }} # https://github.com/actions/runner-images#available-images

View File

@@ -48,7 +48,7 @@ EOF
###################### ######################
# https://hub.docker.com/_/python/tags?name=3-slim # https://hub.docker.com/_/python/tags?name=3-slim
FROM python:3.12-slim AS build-image FROM python:3.13-slim AS build-image
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ARG LC_ALL=C ARG LC_ALL=C

51
pdm.lock generated
View File

@@ -5,10 +5,10 @@
groups = ["default", "dev"] groups = ["default", "dev"]
strategy = [] strategy = []
lock_version = "4.5.0" lock_version = "4.5.0"
content_hash = "sha256:bdc4323d402255e4b0dcd9402b99cd991ec46fc9af1101c9ea13e197ac1769a7" content_hash = "sha256:6aa6f02f71070c93d191e7242d0986a66d73173b39bfbc6568ffcbf3deb9f647"
[[metadata.targets]] [[metadata.targets]]
requires_python = ">=3.10,<3.13" requires_python = ">=3.10,<3.14"
[[package]] [[package]]
name = "altgraph" name = "altgraph"
@@ -327,6 +327,11 @@ files = [
{file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"},
{file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"},
{file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"},
{file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"},
{file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"},
{file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"},
{file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"},
{file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"},
{file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"},
{file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"},
] ]
@@ -357,7 +362,7 @@ version = "0.37"
requires_python = ">=3.9" requires_python = ">=3.9"
git = "https://github.com/ultrafunkamsterdam/nodriver.git" git = "https://github.com/ultrafunkamsterdam/nodriver.git"
revision = "1bb6003c7f0db4d3ec05fdf3fc8c8e0804260103" revision = "1bb6003c7f0db4d3ec05fdf3fc8c8e0804260103"
summary = "\n [Docs here](https://ultrafunkamsterdam.github.io/nodriver)\n\n * Official successor of Undetected Chromedriver\n * Can be made to work for for all chromium based browsers.\n * Dropped selenium and chromedriver binary requirements.\n * fully asynchronous == bizarre performance gains, and more granular control\n\n Part of undetected-chromedriver, or merely the successor of it, this library is a full rewrite, providing a\n fast framework for web automation, webscraping, bots and any other creative ideas which are normally\n hindered by annoying anti bot systems like Captcha / CloudFlare / Imperva / hCaptcha and other\n big corp \"ai\" money machines using your input to make even more $$ (http://tinyurl.com/bigcorp-ai-inputs)\n\n The webdriver/selenium requirement is dropped entirely, since this library communicates directly to the browser.\n Being fully asynchronous, this adds massive performance improvements and more detailed control possibilities.\n\n As usual ( like undetected chromedriver) all config details and best practices are built-in, which means\n up and running with just a line of code.\n\n This makes it simple to use for quick prototyping, and perfect for interactive interpreter use (eg: IPython).\n\n\n WARNING:\n - results may vary due to many factors. No guarantees are given whatsoever.\n - Running from bad IP or datacenter may still cause captcha's and/or other problems.\n - With great power comes ... etc etc etc\n no but SERIOUS: for your own benefit, make sure \"they\" have no reason for upscaling anti-bot measurements.\n there might be one day it would not be feasible anymore to work up against big corp, and provide upgrades\n and free libraries.\n\n" summary = "\r\n [Docs here](https://ultrafunkamsterdam.github.io/nodriver)\r\n\r\n * Official successor of Undetected Chromedriver\r\n * Can be made to work for for all chromium based browsers.\r\n * Dropped selenium and chromedriver binary requirements.\r\n * fully asynchronous == bizarre performance gains, and more granular control\r\n\r\n Part of undetected-chromedriver, or merely the successor of it, this library is a full rewrite, providing a\r\n fast framework for web automation, webscraping, bots and any other creative ideas which are normally\r\n hindered by annoying anti bot systems like Captcha / CloudFlare / Imperva / hCaptcha and other\r\n big corp \"ai\" money machines using your input to make even more $$ (http://tinyurl.com/bigcorp-ai-inputs)\r\n\r\n The webdriver/selenium requirement is dropped entirely, since this library communicates directly to the browser.\r\n Being fully asynchronous, this adds massive performance improvements and more detailed control possibilities.\r\n\r\n As usual ( like undetected chromedriver) all config details and best practices are built-in, which means\r\n up and running with just a line of code.\r\n\r\n This makes it simple to use for quick prototyping, and perfect for interactive interpreter use (eg: IPython).\r\n\r\n\r\n WARNING:\r\n - results may vary due to many factors. No guarantees are given whatsoever.\r\n - Running from bad IP or datacenter may still cause captcha's and/or other problems.\r\n - With great power comes ... etc etc etc\r\n no but SERIOUS: for your own benefit, make sure \"they\" have no reason for upscaling anti-bot measurements.\r\n there might be one day it would not be feasible anymore to work up against big corp, and provide upgrades\r\n and free libraries.\r\n\r\n"
dependencies = [ dependencies = [
"deprecated", "deprecated",
"mss", "mss",
@@ -452,7 +457,7 @@ files = [
[[package]] [[package]]
name = "pyinstaller" name = "pyinstaller"
version = "6.11.0" version = "6.11.1"
requires_python = "<3.14,>=3.8" requires_python = "<3.14,>=3.8"
summary = "PyInstaller bundles a Python application and all its dependencies into a single package." summary = "PyInstaller bundles a Python application and all its dependencies into a single package."
dependencies = [ dependencies = [
@@ -461,23 +466,23 @@ dependencies = [
"macholib>=1.8; sys_platform == \"darwin\"", "macholib>=1.8; sys_platform == \"darwin\"",
"packaging>=22.0", "packaging>=22.0",
"pefile!=2024.8.26,>=2022.5.30; sys_platform == \"win32\"", "pefile!=2024.8.26,>=2022.5.30; sys_platform == \"win32\"",
"pyinstaller-hooks-contrib>=2024.8", "pyinstaller-hooks-contrib>=2024.9",
"pywin32-ctypes>=0.2.1; sys_platform == \"win32\"", "pywin32-ctypes>=0.2.1; sys_platform == \"win32\"",
"setuptools>=42.0.0", "setuptools>=42.0.0",
] ]
files = [ files = [
{file = "pyinstaller-6.11.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:6fd68a3c1207635c49326c54881b89d5c3bd9ba061bbc9daa58c0902db1be39e"}, {file = "pyinstaller-6.11.1-py3-none-macosx_10_13_universal2.whl", hash = "sha256:44e36172de326af6d4e7663b12f71dbd34e2e3e02233e181e457394423daaf03"},
{file = "pyinstaller-6.11.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:eddd53f231e51adc65088eac4f40057ca803a990239828d4a9229407fb866239"}, {file = "pyinstaller-6.11.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:6d12c45a29add78039066a53fb05967afaa09a672426072b13816fe7676abfc4"},
{file = "pyinstaller-6.11.0-py3-none-manylinux2014_i686.whl", hash = "sha256:e6d229009e815542833fe00332b589aa6984a06f794dc16f2ce1acab1c567590"}, {file = "pyinstaller-6.11.1-py3-none-manylinux2014_i686.whl", hash = "sha256:ddc0fddd75f07f7e423da1f0822e389a42af011f9589e0269b87e0d89aa48c1f"},
{file = "pyinstaller-6.11.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:7d2cd2ebdcd6860f8a4abe2977264a7b6d260a7147047008971c7cfc66a656a4"}, {file = "pyinstaller-6.11.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:0d6475559c4939f0735122989611d7f739ed3bf02f666ce31022928f7a7e4fda"},
{file = "pyinstaller-6.11.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:d9ec6d4398b4eebc1d4c00437716264ba8406bc2746f594e253070a82378a584"}, {file = "pyinstaller-6.11.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:e21c7806e34f40181e7606926a14579f848bfb1dc52cbca7eea66eccccbfe977"},
{file = "pyinstaller-6.11.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:04f71828aa9531ab18c9656985c1f09b83d10332c73a1f4a113a48b491906955"}, {file = "pyinstaller-6.11.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:32c742a24fe65d0702958fadf4040f76de85859c26bec0008766e5dbabc5b68f"},
{file = "pyinstaller-6.11.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:a843d470768d68b05684ccf4860c45b2eb13727f41667c0b2cd8f57ae231bd18"}, {file = "pyinstaller-6.11.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:208c0ef6dab0837a0a273ea32d1a3619a208e3d1fe3fec3785eea71a77fd00ce"},
{file = "pyinstaller-6.11.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:963dedc1f37144a4385f58f7f65f1c69c004a67faae522a2085b5ddb230c908b"}, {file = "pyinstaller-6.11.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:ad84abf465bcda363c1d54eafa76745d77b6a8a713778348377dc98d12a452f7"},
{file = "pyinstaller-6.11.0-py3-none-win32.whl", hash = "sha256:c71024c8a19c7b221b9152b2baff4c3ba849cada68dcdd34382ba09f0107451f"}, {file = "pyinstaller-6.11.1-py3-none-win32.whl", hash = "sha256:2e8365276c5131c9bef98e358fbc305e4022db8bedc9df479629d6414021956a"},
{file = "pyinstaller-6.11.0-py3-none-win_amd64.whl", hash = "sha256:0e229610c22b96d741d905706f9496af472c1a9216a118988f393c98ecc3f51f"}, {file = "pyinstaller-6.11.1-py3-none-win_amd64.whl", hash = "sha256:7ac83c0dc0e04357dab98c487e74ad2adb30e7eb186b58157a8faf46f1fa796f"},
{file = "pyinstaller-6.11.0-py3-none-win_arm64.whl", hash = "sha256:a5f716bb507517912fda39d109dead91fc0dd2e7b2859562522b63c61aa21676"}, {file = "pyinstaller-6.11.1-py3-none-win_arm64.whl", hash = "sha256:35e6b8077d240600bb309ed68bb0b1453fd2b7ab740b66d000db7abae6244423"},
{file = "pyinstaller-6.11.0.tar.gz", hash = "sha256:cb4d433a3db30d9d17cf5f2cf7bb4df80a788d493c1d67dd822dc5791d9864af"}, {file = "pyinstaller-6.11.1.tar.gz", hash = "sha256:491dfb4d9d5d1d9650d9507daec1ff6829527a254d8e396badd60a0affcb72ef"},
] ]
[[package]] [[package]]
@@ -530,7 +535,7 @@ files = [
[[package]] [[package]]
name = "pyright" name = "pyright"
version = "1.1.386" version = "1.1.389"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Command line wrapper for pyright" summary = "Command line wrapper for pyright"
dependencies = [ dependencies = [
@@ -538,8 +543,8 @@ dependencies = [
"typing-extensions>=4.1", "typing-extensions>=4.1",
] ]
files = [ files = [
{file = "pyright-1.1.386-py3-none-any.whl", hash = "sha256:7071ac495593b2258ccdbbf495f1a5c0e5f27951f6b429bed4e8b296eb5cd21d"}, {file = "pyright-1.1.389-py3-none-any.whl", hash = "sha256:41e9620bba9254406dc1f621a88ceab5a88af4c826feb4f614d95691ed243a60"},
{file = "pyright-1.1.386.tar.gz", hash = "sha256:8e9975e34948ba5f8e07792a9c9d2bdceb2c6c0b61742b068d2229ca2bc4a9d9"}, {file = "pyright-1.1.389.tar.gz", hash = "sha256:716bf8cc174ab8b4dcf6828c3298cac05c5ed775dda9910106a5dcfe4c7fe220"},
] ]
[[package]] [[package]]
@@ -716,12 +721,12 @@ files = [
[[package]] [[package]]
name = "tomli" name = "tomli"
version = "2.0.2" version = "2.1.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A lil' TOML parser" summary = "A lil' TOML parser"
files = [ files = [
{file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"},
{file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"},
] ]
[[package]] [[package]]

View File

@@ -30,7 +30,7 @@ classifiers = [ # https://pypi.org/classifiers/
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
"Programming Language :: Python :: 3.10" "Programming Language :: Python :: 3.10"
] ]
requires-python = ">=3.10,<3.13" requires-python = ">=3.10,<3.14"
dependencies = [ dependencies = [
"colorama", "colorama",
"coloredlogs", "coloredlogs",

View File

@@ -3,7 +3,8 @@ SPDX-FileCopyrightText: © Sebastian Thomschke and contributors
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanzeigen-bot/ SPDX-ArtifactOfProjectHomePage: https://github.com/Second-Hand-Friends/kleinanzeigen-bot/
""" """
import asyncio, atexit, copy, getopt, importlib.metadata, json, logging, os, re, signal, shutil, sys, textwrap, time import asyncio, atexit, copy, importlib.metadata, json, logging, os, re, signal, shutil, sys, textwrap, time
import getopt # pylint: disable=deprecated-module
import urllib.parse as urllib_parse import urllib.parse as urllib_parse
import urllib.request as urllib_request import urllib.request as urllib_request
from collections.abc import Iterable from collections.abc import Iterable