>>> lastversion: Building community/lastversion 3.5.7-r0 (using abuild 3.14.1-r1) started Sun, 10 Nov 2024 03:53:51 +0000 >>> lastversion: Validating /home/buildozer/aports/community/lastversion/APKBUILD... >>> lastversion: Analyzing dependencies... >>> lastversion: Installing for build: build-base py3-appdirs py3-beautifulsoup4 py3-cachecontrol py3-dateutil py3-distro py3-feedparser py3-filelock py3-packaging py3-requests py3-tqdm py3-urllib3 py3-yaml py3-gpep517 py3-setuptools py3-wheel py3-pytest (1/69) Installing libbz2 (1.0.8-r6) (2/69) Installing libffi (3.4.6-r0) (3/69) Installing gdbm (1.24-r0) (4/69) Installing xz-libs (5.6.3-r0) (5/69) Installing mpdecimal (4.0.0-r0) (6/69) Installing libpanelw (6.5_p20241006-r2) (7/69) Installing sqlite-libs (3.47.0-r0) (8/69) Installing python3 (3.12.7-r1) (9/69) Installing python3-pycache-pyc0 (3.12.7-r1) (10/69) Installing pyc (3.12.7-r1) (11/69) Installing py3-appdirs-pyc (1.4.4-r8) (12/69) Installing python3-pyc (3.12.7-r1) (13/69) Installing py3-appdirs (1.4.4-r8) (14/69) Installing py3-soupsieve (2.6-r0) (15/69) Installing py3-soupsieve-pyc (2.6-r0) (16/69) Installing py3-beautifulsoup4 (4.12.3-r3) (17/69) Installing py3-beautifulsoup4-pyc (4.12.3-r3) (18/69) Installing py3-msgpack (1.0.8-r1) (19/69) Installing py3-msgpack-pyc (1.0.8-r1) (20/69) Installing py3-certifi (2024.8.30-r0) (21/69) Installing py3-certifi-pyc (2024.8.30-r0) (22/69) Installing py3-charset-normalizer (3.4.0-r0) (23/69) Installing py3-charset-normalizer-pyc (3.4.0-r0) (24/69) Installing py3-idna (3.10-r0) (25/69) Installing py3-idna-pyc (3.10-r0) (26/69) Installing py3-urllib3 (1.26.20-r0) (27/69) Installing py3-urllib3-pyc (1.26.20-r0) (28/69) Installing py3-requests (2.32.3-r0) (29/69) Installing py3-requests-pyc (2.32.3-r0) (30/69) Installing py3-cachecontrol (0.14.1-r0) (31/69) Installing py3-cachecontrol-pyc (0.14.1-r0) (32/69) Installing py3-six (1.16.0-r9) (33/69) Installing py3-six-pyc (1.16.0-r9) (34/69) Installing py3-dateutil (2.9.0-r1) (35/69) Installing py3-dateutil-pyc (2.9.0-r1) (36/69) Installing py3-distro (1.9.0-r2) (37/69) Installing py3-distro-pyc (1.9.0-r2) (38/69) Installing py3-sgmllib3k (1.0.0-r11) (39/69) Installing py3-sgmllib3k-pyc (1.0.0-r11) (40/69) Installing py3-feedparser (6.0.11-r2) (41/69) Installing py3-feedparser-pyc (6.0.11-r2) (42/69) Installing py3-filelock (3.13.1-r1) (43/69) Installing py3-filelock-pyc (3.13.1-r1) (44/69) Installing py3-parsing (3.1.4-r0) (45/69) Installing py3-parsing-pyc (3.1.4-r0) (46/69) Installing py3-packaging (24.1-r0) (47/69) Installing py3-packaging-pyc (24.1-r0) (48/69) Installing py3-tqdm (4.67.0-r0) (49/69) Installing py3-tqdm-pyc (4.67.0-r0) (50/69) Installing yaml (0.2.5-r2) (51/69) Installing py3-yaml (6.0.2-r0) (52/69) Installing py3-yaml-pyc (6.0.2-r0) (53/69) Installing py3-installer (0.7.0-r2) (54/69) Installing py3-installer-pyc (0.7.0-r2) (55/69) Installing py3-gpep517 (16-r0) (56/69) Installing py3-gpep517-pyc (16-r0) (57/69) Installing py3-setuptools (70.3.0-r0) (58/69) Installing py3-setuptools-pyc (70.3.0-r0) (59/69) Installing py3-wheel (0.43.0-r0) (60/69) Installing py3-wheel-pyc (0.43.0-r0) (61/69) Installing py3-iniconfig (2.0.0-r1) (62/69) Installing py3-iniconfig-pyc (2.0.0-r1) (63/69) Installing py3-pluggy (1.5.0-r0) (64/69) Installing py3-pluggy-pyc (1.5.0-r0) (65/69) Installing py3-py (1.11.0-r4) (66/69) Installing py3-py-pyc (1.11.0-r4) (67/69) Installing py3-pytest (8.3.3-r0) (68/69) Installing py3-pytest-pyc (8.3.3-r0) (69/69) Installing .makedepends-lastversion (20241110.035352) Executing busybox-1.37.0-r6.trigger OK: 306 MiB in 171 packages >>> lastversion: Cleaning up srcdir >>> lastversion: Cleaning up pkgdir >>> lastversion: Cleaning up tmpdir >>> lastversion: Fetching https://distfiles.alpinelinux.org/distfiles/edge/lastversion-3.5.7.tar.gz >>> lastversion: Fetching https://distfiles.alpinelinux.org/distfiles/edge/lastversion-3.5.7.tar.gz >>> lastversion: Checking sha512sums... lastversion-3.5.7.tar.gz: OK >>> lastversion: Unpacking /var/cache/distfiles/lastversion-3.5.7.tar.gz... 2024-11-10 03:53:53,884 gpep517 INFO Building wheel via backend setuptools.build_meta:__legacy__ 2024-11-10 03:53:53,916 root INFO running bdist_wheel 2024-11-10 03:53:53,949 root INFO running build 2024-11-10 03:53:53,949 root INFO running build_py 2024-11-10 03:53:53,955 root INFO creating build 2024-11-10 03:53:53,955 root INFO creating build/lib 2024-11-10 03:53:53,955 root INFO creating build/lib/lastversion 2024-11-10 03:53:53,955 root INFO copying src/lastversion/utils.py -> build/lib/lastversion 2024-11-10 03:53:53,956 root INFO copying src/lastversion/__about__.py -> build/lib/lastversion 2024-11-10 03:53:53,956 root INFO copying src/lastversion/exceptions.py -> build/lib/lastversion 2024-11-10 03:53:53,956 root INFO copying src/lastversion/__main__.py -> build/lib/lastversion 2024-11-10 03:53:53,956 root INFO copying src/lastversion/lastversion.py -> build/lib/lastversion 2024-11-10 03:53:53,957 root INFO copying src/lastversion/spdx_id_to_rpmspec.py -> build/lib/lastversion 2024-11-10 03:53:53,957 root INFO copying src/lastversion/__init__.py -> build/lib/lastversion 2024-11-10 03:53:53,957 root INFO copying src/lastversion/argparse_version.py -> build/lib/lastversion 2024-11-10 03:53:53,958 root INFO copying src/lastversion/version.py -> build/lib/lastversion 2024-11-10 03:53:53,958 root INFO copying src/lastversion/holder_factory.py -> build/lib/lastversion 2024-11-10 03:53:53,959 root INFO creating build/lib/lastversion/repo_holders 2024-11-10 03:53:53,959 root INFO copying src/lastversion/repo_holders/gitlab.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,959 root INFO copying src/lastversion/repo_holders/base.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,959 root INFO copying src/lastversion/repo_holders/wikipedia.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,960 root INFO copying src/lastversion/repo_holders/feed.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,960 root INFO copying src/lastversion/repo_holders/github.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,960 root INFO copying src/lastversion/repo_holders/bibucket.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,961 root INFO copying src/lastversion/repo_holders/sourceforge.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,961 root INFO copying src/lastversion/repo_holders/mercurial.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,961 root INFO copying src/lastversion/repo_holders/__init__.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,961 root INFO copying src/lastversion/repo_holders/system.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,962 root INFO copying src/lastversion/repo_holders/wordpress.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,962 root INFO copying src/lastversion/repo_holders/pypi.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,962 root INFO copying src/lastversion/repo_holders/helmchat.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,963 root INFO copying src/lastversion/repo_holders/local.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,963 root INFO copying src/lastversion/repo_holders/test.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,963 root INFO copying src/lastversion/repo_holders/gitea.py -> build/lib/lastversion/repo_holders 2024-11-10 03:53:53,963 root INFO running egg_info 2024-11-10 03:53:53,964 root INFO creating src/lastversion.egg-info 2024-11-10 03:53:53,968 root INFO writing src/lastversion.egg-info/PKG-INFO 2024-11-10 03:53:53,975 root INFO writing dependency_links to src/lastversion.egg-info/dependency_links.txt 2024-11-10 03:53:53,976 root INFO writing entry points to src/lastversion.egg-info/entry_points.txt 2024-11-10 03:53:53,979 root INFO writing requirements to src/lastversion.egg-info/requires.txt 2024-11-10 03:53:53,979 root INFO writing top-level names to src/lastversion.egg-info/top_level.txt 2024-11-10 03:53:53,980 root INFO writing manifest file 'src/lastversion.egg-info/SOURCES.txt' 2024-11-10 03:53:53,985 root INFO reading manifest file 'src/lastversion.egg-info/SOURCES.txt' 2024-11-10 03:53:53,986 root INFO reading manifest template 'MANIFEST.in' 2024-11-10 03:53:53,986 root INFO adding license file 'LICENSE' 2024-11-10 03:53:53,987 root INFO writing manifest file 'src/lastversion.egg-info/SOURCES.txt' 2024-11-10 03:53:53,999 root INFO installing to build/bdist.linux-loongarch64/wheel 2024-11-10 03:53:53,999 root INFO running install 2024-11-10 03:53:54,013 root INFO running install_lib 2024-11-10 03:53:54,018 root INFO creating build/bdist.linux-loongarch64 2024-11-10 03:53:54,018 root INFO creating build/bdist.linux-loongarch64/wheel 2024-11-10 03:53:54,018 root INFO creating build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,018 root INFO creating build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,019 root INFO copying build/lib/lastversion/repo_holders/gitlab.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,019 root INFO copying build/lib/lastversion/repo_holders/base.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,019 root INFO copying build/lib/lastversion/repo_holders/wikipedia.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,019 root INFO copying build/lib/lastversion/repo_holders/feed.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,020 root INFO copying build/lib/lastversion/repo_holders/github.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,020 root INFO copying build/lib/lastversion/repo_holders/bibucket.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,020 root INFO copying build/lib/lastversion/repo_holders/sourceforge.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,021 root INFO copying build/lib/lastversion/repo_holders/mercurial.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,021 root INFO copying build/lib/lastversion/repo_holders/__init__.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,021 root INFO copying build/lib/lastversion/repo_holders/system.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,021 root INFO copying build/lib/lastversion/repo_holders/wordpress.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,022 root INFO copying build/lib/lastversion/repo_holders/pypi.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,022 root INFO copying build/lib/lastversion/repo_holders/helmchat.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,022 root INFO copying build/lib/lastversion/repo_holders/local.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,022 root INFO copying build/lib/lastversion/repo_holders/test.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,023 root INFO copying build/lib/lastversion/repo_holders/gitea.py -> build/bdist.linux-loongarch64/wheel/lastversion/repo_holders 2024-11-10 03:53:54,023 root INFO copying build/lib/lastversion/utils.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,023 root INFO copying build/lib/lastversion/__about__.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,024 root INFO copying build/lib/lastversion/exceptions.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,024 root INFO copying build/lib/lastversion/__main__.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,024 root INFO copying build/lib/lastversion/lastversion.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,024 root INFO copying build/lib/lastversion/spdx_id_to_rpmspec.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,025 root INFO copying build/lib/lastversion/__init__.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,025 root INFO copying build/lib/lastversion/argparse_version.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,025 root INFO copying build/lib/lastversion/version.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,025 root INFO copying build/lib/lastversion/holder_factory.py -> build/bdist.linux-loongarch64/wheel/lastversion 2024-11-10 03:53:54,026 root INFO running install_egg_info 2024-11-10 03:53:54,031 root INFO Copying src/lastversion.egg-info to build/bdist.linux-loongarch64/wheel/lastversion-3.5.7-py3.12.egg-info 2024-11-10 03:53:54,033 root INFO running install_scripts 2024-11-10 03:53:54,043 root INFO creating build/bdist.linux-loongarch64/wheel/lastversion-3.5.7.dist-info/WHEEL 2024-11-10 03:53:54,044 wheel INFO creating '/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.dist/.tmp-nz1d0bvj/lastversion-3.5.7-py3-none-any.whl' and adding 'build/bdist.linux-loongarch64/wheel' to it 2024-11-10 03:53:54,045 wheel INFO adding 'lastversion/__about__.py' 2024-11-10 03:53:54,045 wheel INFO adding 'lastversion/__init__.py' 2024-11-10 03:53:54,045 wheel INFO adding 'lastversion/__main__.py' 2024-11-10 03:53:54,045 wheel INFO adding 'lastversion/argparse_version.py' 2024-11-10 03:53:54,046 wheel INFO adding 'lastversion/exceptions.py' 2024-11-10 03:53:54,046 wheel INFO adding 'lastversion/holder_factory.py' 2024-11-10 03:53:54,046 wheel INFO adding 'lastversion/lastversion.py' 2024-11-10 03:53:54,047 wheel INFO adding 'lastversion/spdx_id_to_rpmspec.py' 2024-11-10 03:53:54,047 wheel INFO adding 'lastversion/utils.py' 2024-11-10 03:53:54,048 wheel INFO adding 'lastversion/version.py' 2024-11-10 03:53:54,048 wheel INFO adding 'lastversion/repo_holders/__init__.py' 2024-11-10 03:53:54,048 wheel INFO adding 'lastversion/repo_holders/base.py' 2024-11-10 03:53:54,049 wheel INFO adding 'lastversion/repo_holders/bibucket.py' 2024-11-10 03:53:54,049 wheel INFO adding 'lastversion/repo_holders/feed.py' 2024-11-10 03:53:54,049 wheel INFO adding 'lastversion/repo_holders/gitea.py' 2024-11-10 03:53:54,050 wheel INFO adding 'lastversion/repo_holders/github.py' 2024-11-10 03:53:54,050 wheel INFO adding 'lastversion/repo_holders/gitlab.py' 2024-11-10 03:53:54,051 wheel INFO adding 'lastversion/repo_holders/helmchat.py' 2024-11-10 03:53:54,051 wheel INFO adding 'lastversion/repo_holders/local.py' 2024-11-10 03:53:54,051 wheel INFO adding 'lastversion/repo_holders/mercurial.py' 2024-11-10 03:53:54,052 wheel INFO adding 'lastversion/repo_holders/pypi.py' 2024-11-10 03:53:54,052 wheel INFO adding 'lastversion/repo_holders/sourceforge.py' 2024-11-10 03:53:54,052 wheel INFO adding 'lastversion/repo_holders/system.py' 2024-11-10 03:53:54,052 wheel INFO adding 'lastversion/repo_holders/test.py' 2024-11-10 03:53:54,053 wheel INFO adding 'lastversion/repo_holders/wikipedia.py' 2024-11-10 03:53:54,053 wheel INFO adding 'lastversion/repo_holders/wordpress.py' 2024-11-10 03:53:54,053 wheel INFO adding 'lastversion-3.5.7.dist-info/LICENSE' 2024-11-10 03:53:54,054 wheel INFO adding 'lastversion-3.5.7.dist-info/METADATA' 2024-11-10 03:53:54,054 wheel INFO adding 'lastversion-3.5.7.dist-info/WHEEL' 2024-11-10 03:53:54,054 wheel INFO adding 'lastversion-3.5.7.dist-info/entry_points.txt' 2024-11-10 03:53:54,055 wheel INFO adding 'lastversion-3.5.7.dist-info/top_level.txt' 2024-11-10 03:53:54,055 wheel INFO adding 'lastversion-3.5.7.dist-info/RECORD' 2024-11-10 03:53:54,055 root INFO removing build/bdist.linux-loongarch64/wheel 2024-11-10 03:53:54,057 gpep517 INFO The backend produced .dist/lastversion-3.5.7-py3-none-any.whl lastversion-3.5.7-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 rootdir: /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7 collected 21 items tests/test_cli.py ......FFFF [ 47%] tests/test_gitea.py . [ 52%] tests/test_gitlab.py .... [ 71%] tests/test_hg.py F [ 76%] tests/test_pypi.py .. [ 85%] tests/test_sf.py . [ 90%] tests/test_wiki.py .. [100%] =================================== FAILURES =================================== ________________________ test_cli_gt_first_arg_is_repo _________________________ capsys = <_pytest.capture.CaptureFixture object at 0x7fffef181790> def test_cli_gt_first_arg_is_repo(capsys): """First repo is arg having a number.""" with captured_exit_code() as get_exit_code: > main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py:102: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ argv = ['https://github.com/Pisex/cs2-bans', '-gt', '2.5.2'] def main(argv=None): """ The entrypoint to CLI app. Args: argv: List of arguments, helps test CLI without resorting to subprocess module. """ # ANSI escape code for starting bold text start_bold = "\033[1m" # ANSI escape code for ending the formatting (resets to normal text) end_bold = "\033[0m" epilog = "\n---\n" epilog += f"{start_bold}Sponsored Message: Check out the GetPageSpeed RPM " epilog += "repository at https://nginx-extras.getpagespeed.com/ for NGINX " epilog += "modules and performance tools. Enhance your server performance " epilog += f"today!{end_bold}" epilog += "\n---\n" if "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ: epilog += TOKEN_PRO_TIP parser = argparse.ArgumentParser( description="Find the latest software release.", epilog=epilog, prog="lastversion", ) parser.add_argument( "action", nargs="?", default="get", help="Action to run. Default: get", choices=[ "get", "download", "extract", "unzip", "test", "format", "install", "update-spec", ], ) parser.add_argument( "repo", metavar="<repo URL or string>", help="Repository in format owner/name or any URL that belongs to it, or a version string", ) # affects what is considered last release parser.add_argument( "--pre", dest="pre", action="store_true", help="Include pre-releases in potential versions", ) parser.add_argument( "--formal", dest="formal", action="store_true", help="Include only formally tagged versions", ) parser.add_argument( "--sem", dest="sem", choices=["major", "minor", "patch", "any"], help="Semantic versioning level base to print or compare against", ) parser.add_argument( "-v", "--verbose", action="count", default=0, help="Will give you an idea of what is happening under the hood, " "-vv to increase verbosity level", ) # no --download = False, --download filename.tar, --download = None parser.add_argument( "-d", "-o", "--download", "--output", dest="download", nargs="?", default=False, const=None, metavar="FILENAME", help="Download with custom filename", ) # how / which data of last release we want to present # assets will give download urls for assets if available and sources archive otherwise # sources will give download urls for sources always # json always includes "version", "tag_name" etc. + whichever json data was # used to satisfy lastversion parser.add_argument( "--format", choices=["version", "assets", "source", "json", "tag"], help="Output format", ) parser.add_argument( "--assets", dest="assets", action="store_true", help="Returns assets download URLs for last release", ) parser.add_argument( "--source", dest="source", action="store_true", help="Returns only source URL for last release", ) parser.add_argument( "-gt", "--newer-than", type=check_version, metavar="VER", help="Output only if last version is newer than given version", ) parser.add_argument( "-b", "--major", "--branch", metavar="MAJOR", help="Only consider releases of a specific major version, e.g. 2.1.x", ) parser.add_argument( "--only", metavar="REGEX", help="Only consider releases containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--exclude", metavar="REGEX", help="Only consider releases NOT containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--filter", metavar="REGEX", help="Filters --assets result by a regular " "expression", ) parser.add_argument( "--having-asset", metavar="ASSET", help="Only consider releases with this asset", nargs="?", const=True, ) parser.add_argument( "-su", "--shorter-urls", dest="shorter_urls", action="store_true", help="A tiny bit shorter URLs produced", ) parser.add_argument( "--even", dest="even", action="store_true", help="Only even versions like 1.[2].x, or 3.[6].x are considered as stable", ) parser.add_argument( "--at", dest="at", help="If the repo argument is one word, specifies where to look up the " "project. The default is via internal lookup or GitHub Search", choices=HolderFactory.HOLDERS.keys(), ) parser.add_argument( "-y", "--assumeyes", dest="assumeyes", action="store_true", help="Automatically answer yes for all questions", ) parser.add_argument( "--no-cache", dest="no_cache", action="store_true", help="Do not use cache for HTTP requests", ) parser.add_argument("--version", action=VersionAction) parser.set_defaults( validate=True, verbose=False, format="version", pre=False, formal=False, assets=False, newer_than=False, filter=False, shorter_urls=False, major=None, assumeyes=False, at=None, having_asset=None, even=False, ) args = parser.parse_args(argv) BaseProjectHolder.CACHE_DISABLED = args.no_cache if args.repo == "self": args.repo = __self__ # "expand" repo:1.2 as repo --branch 1.2 # noinspection HttpUrlsUsage if ":" in args.repo and not ( args.repo.startswith(("https://", "http://")) and args.repo.count(":") == 1 ): # right split ':' once only to preserve it in protocol of URLs # https://github.com/repo/owner:2.1 repo_args = args.repo.rsplit(":", 1) args.repo = repo_args[0] args.major = repo_args[1] # instead of using root logger, we use logger = logging.getLogger("lastversion") # create console handler and set level to debug ch = logging.StreamHandler() # create formatter fmt = ( "%(name)s - %(levelname)s - %(message)s" if args.verbose else "%(levelname)s: %(message)s" ) formatter = logging.Formatter(fmt) # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) if args.verbose: logger.setLevel(logging.DEBUG) log.info("Verbose %s level output.", args.verbose) if args.verbose >= 2: cachecontrol_logger = logging.getLogger("cachecontrol") cachecontrol_logger.removeHandler(logging.NullHandler()) cachecontrol_logger.addHandler(ch) cachecontrol_logger.setLevel(logging.DEBUG) if args.assets: args.format = "assets" if args.source: args.format = "source" if args.filter: args.filter = re.compile(args.filter) if args.action in ["test", "format"]: v = parse_version(args.repo) if not v: log.critical("Failed to parse as a valid version") sys.exit(1) else: # extract the desired print base v = v.sem_extract_base(args.sem) if args.action == "test": print(f"Parsed as: {v}") print(f"Stable: {not v.is_prerelease}") else: print(v) return sys.exit(0) if args.action == "install": # we can only install assets args.format = "json" if args.having_asset is None: args.having_asset = r"~\.(AppImage|rpm)$" try: import apt args.having_asset = r"~\.(AppImage|deb)$" except ImportError: pass if args.repo.endswith(".spec"): args.action = "update-spec" args.format = "dict" if not args.sem: if args.action == "update-spec": args.sem = "minor" else: args.sem = "any" # imply source download, unless --assets specified # --download is legacy flag to specify download action or name of desired download file # --download == None indicates download intent where filename is based on upstream if args.action == "download" and args.download is False: args.download = None if args.download is not False: args.action = "download" if args.format != "assets": args.format = "source" if args.action in ["extract", "unzip"] and args.format != "assets": args.format = "source" if args.newer_than: base_compare = parse_version(args.repo) if base_compare: print(max([args.newer_than, base_compare])) return sys.exit(2 if base_compare <= args.newer_than else 0) # other action are either getting release or doing something with release (extend get action) try: res = latest( args.repo, args.format, args.pre, args.filter, args.shorter_urls, args.major, args.only, args.at, having_asset=args.having_asset, exclude=args.exclude, even=args.even, formal=args.formal, ) except (ApiCredentialsError, BadProjectError) as error: log.critical(str(error)) if ( isinstance(error, ApiCredentialsError) and "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ ): log.critical(TOKEN_PRO_TIP) sys.exit(4) > if res: E UnboundLocalError: cannot access local variable 'res' where it is not associated with a value /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py:884: UnboundLocalError ----------------------------- Captured stderr call ----------------------------- --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () CRITICAL: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 102, in test_cli_gt_first_arg_is_repo main(["https://github.com/Pisex/cs2-bans", "-gt", "2.5.2"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () CRITICAL: ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ------------------------------ Captured log call ------------------------------- CRITICAL lastversion.lastversion:lastversion.py:875 Exceeded GitHub API rate limits. Giving up due to high expected wait 1079s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) CRITICAL lastversion.lastversion:lastversion.py:881 ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips _________________________ test_unzip_osx_bundle_strip __________________________ capsys = <_pytest.capture.CaptureFixture object at 0x7fffee60b440> def test_unzip_osx_bundle_strip(capsys): # pylint: disable=unused-argument """Test that ZIP files with single top level directory are stripped.""" with captured_exit_code() as get_exit_code: with tempfile.TemporaryDirectory() as tmp_dir_name: # Set the temp directory as the current working directory os.chdir(tmp_dir_name) > main( ["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer-strip"] ) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ argv = ['--assets', 'unzip', 'lastversion-test-repos/MinimalMIDIPlayer-strip'] def main(argv=None): """ The entrypoint to CLI app. Args: argv: List of arguments, helps test CLI without resorting to subprocess module. """ # ANSI escape code for starting bold text start_bold = "\033[1m" # ANSI escape code for ending the formatting (resets to normal text) end_bold = "\033[0m" epilog = "\n---\n" epilog += f"{start_bold}Sponsored Message: Check out the GetPageSpeed RPM " epilog += "repository at https://nginx-extras.getpagespeed.com/ for NGINX " epilog += "modules and performance tools. Enhance your server performance " epilog += f"today!{end_bold}" epilog += "\n---\n" if "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ: epilog += TOKEN_PRO_TIP parser = argparse.ArgumentParser( description="Find the latest software release.", epilog=epilog, prog="lastversion", ) parser.add_argument( "action", nargs="?", default="get", help="Action to run. Default: get", choices=[ "get", "download", "extract", "unzip", "test", "format", "install", "update-spec", ], ) parser.add_argument( "repo", metavar="<repo URL or string>", help="Repository in format owner/name or any URL that belongs to it, or a version string", ) # affects what is considered last release parser.add_argument( "--pre", dest="pre", action="store_true", help="Include pre-releases in potential versions", ) parser.add_argument( "--formal", dest="formal", action="store_true", help="Include only formally tagged versions", ) parser.add_argument( "--sem", dest="sem", choices=["major", "minor", "patch", "any"], help="Semantic versioning level base to print or compare against", ) parser.add_argument( "-v", "--verbose", action="count", default=0, help="Will give you an idea of what is happening under the hood, " "-vv to increase verbosity level", ) # no --download = False, --download filename.tar, --download = None parser.add_argument( "-d", "-o", "--download", "--output", dest="download", nargs="?", default=False, const=None, metavar="FILENAME", help="Download with custom filename", ) # how / which data of last release we want to present # assets will give download urls for assets if available and sources archive otherwise # sources will give download urls for sources always # json always includes "version", "tag_name" etc. + whichever json data was # used to satisfy lastversion parser.add_argument( "--format", choices=["version", "assets", "source", "json", "tag"], help="Output format", ) parser.add_argument( "--assets", dest="assets", action="store_true", help="Returns assets download URLs for last release", ) parser.add_argument( "--source", dest="source", action="store_true", help="Returns only source URL for last release", ) parser.add_argument( "-gt", "--newer-than", type=check_version, metavar="VER", help="Output only if last version is newer than given version", ) parser.add_argument( "-b", "--major", "--branch", metavar="MAJOR", help="Only consider releases of a specific major version, e.g. 2.1.x", ) parser.add_argument( "--only", metavar="REGEX", help="Only consider releases containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--exclude", metavar="REGEX", help="Only consider releases NOT containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--filter", metavar="REGEX", help="Filters --assets result by a regular " "expression", ) parser.add_argument( "--having-asset", metavar="ASSET", help="Only consider releases with this asset", nargs="?", const=True, ) parser.add_argument( "-su", "--shorter-urls", dest="shorter_urls", action="store_true", help="A tiny bit shorter URLs produced", ) parser.add_argument( "--even", dest="even", action="store_true", help="Only even versions like 1.[2].x, or 3.[6].x are considered as stable", ) parser.add_argument( "--at", dest="at", help="If the repo argument is one word, specifies where to look up the " "project. The default is via internal lookup or GitHub Search", choices=HolderFactory.HOLDERS.keys(), ) parser.add_argument( "-y", "--assumeyes", dest="assumeyes", action="store_true", help="Automatically answer yes for all questions", ) parser.add_argument( "--no-cache", dest="no_cache", action="store_true", help="Do not use cache for HTTP requests", ) parser.add_argument("--version", action=VersionAction) parser.set_defaults( validate=True, verbose=False, format="version", pre=False, formal=False, assets=False, newer_than=False, filter=False, shorter_urls=False, major=None, assumeyes=False, at=None, having_asset=None, even=False, ) args = parser.parse_args(argv) BaseProjectHolder.CACHE_DISABLED = args.no_cache if args.repo == "self": args.repo = __self__ # "expand" repo:1.2 as repo --branch 1.2 # noinspection HttpUrlsUsage if ":" in args.repo and not ( args.repo.startswith(("https://", "http://")) and args.repo.count(":") == 1 ): # right split ':' once only to preserve it in protocol of URLs # https://github.com/repo/owner:2.1 repo_args = args.repo.rsplit(":", 1) args.repo = repo_args[0] args.major = repo_args[1] # instead of using root logger, we use logger = logging.getLogger("lastversion") # create console handler and set level to debug ch = logging.StreamHandler() # create formatter fmt = ( "%(name)s - %(levelname)s - %(message)s" if args.verbose else "%(levelname)s: %(message)s" ) formatter = logging.Formatter(fmt) # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) if args.verbose: logger.setLevel(logging.DEBUG) log.info("Verbose %s level output.", args.verbose) if args.verbose >= 2: cachecontrol_logger = logging.getLogger("cachecontrol") cachecontrol_logger.removeHandler(logging.NullHandler()) cachecontrol_logger.addHandler(ch) cachecontrol_logger.setLevel(logging.DEBUG) if args.assets: args.format = "assets" if args.source: args.format = "source" if args.filter: args.filter = re.compile(args.filter) if args.action in ["test", "format"]: v = parse_version(args.repo) if not v: log.critical("Failed to parse as a valid version") sys.exit(1) else: # extract the desired print base v = v.sem_extract_base(args.sem) if args.action == "test": print(f"Parsed as: {v}") print(f"Stable: {not v.is_prerelease}") else: print(v) return sys.exit(0) if args.action == "install": # we can only install assets args.format = "json" if args.having_asset is None: args.having_asset = r"~\.(AppImage|rpm)$" try: import apt args.having_asset = r"~\.(AppImage|deb)$" except ImportError: pass if args.repo.endswith(".spec"): args.action = "update-spec" args.format = "dict" if not args.sem: if args.action == "update-spec": args.sem = "minor" else: args.sem = "any" # imply source download, unless --assets specified # --download is legacy flag to specify download action or name of desired download file # --download == None indicates download intent where filename is based on upstream if args.action == "download" and args.download is False: args.download = None if args.download is not False: args.action = "download" if args.format != "assets": args.format = "source" if args.action in ["extract", "unzip"] and args.format != "assets": args.format = "source" if args.newer_than: base_compare = parse_version(args.repo) if base_compare: print(max([args.newer_than, base_compare])) return sys.exit(2 if base_compare <= args.newer_than else 0) # other action are either getting release or doing something with release (extend get action) try: res = latest( args.repo, args.format, args.pre, args.filter, args.shorter_urls, args.major, args.only, args.at, having_asset=args.having_asset, exclude=args.exclude, even=args.even, formal=args.formal, ) except (ApiCredentialsError, BadProjectError) as error: log.critical(str(error)) if ( isinstance(error, ApiCredentialsError) and "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ ): log.critical(TOKEN_PRO_TIP) sys.exit(4) > if res: E UnboundLocalError: cannot access local variable 'res' where it is not associated with a value /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py:884: UnboundLocalError ----------------------------- Captured stderr call ----------------------------- --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () CRITICAL: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 116, in test_unzip_osx_bundle_strip main( File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () CRITICAL: ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ------------------------------ Captured log call ------------------------------- CRITICAL lastversion.lastversion:lastversion.py:875 Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) CRITICAL lastversion.lastversion:lastversion.py:881 ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ____________________________ test_unzip_osx_bundle _____________________________ capsys = <_pytest.capture.CaptureFixture object at 0x7fffedee20f0> def test_unzip_osx_bundle(capsys): # pylint: disable=unused-argument """Test that OSX bundles are unzipped and .app is not stripped.""" with captured_exit_code() as get_exit_code: with tempfile.TemporaryDirectory() as tmp_dir_name: # Set the temp directory as the current working directory os.chdir(tmp_dir_name) > main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ argv = ['--assets', 'unzip', 'lastversion-test-repos/MinimalMIDIPlayer'] def main(argv=None): """ The entrypoint to CLI app. Args: argv: List of arguments, helps test CLI without resorting to subprocess module. """ # ANSI escape code for starting bold text start_bold = "\033[1m" # ANSI escape code for ending the formatting (resets to normal text) end_bold = "\033[0m" epilog = "\n---\n" epilog += f"{start_bold}Sponsored Message: Check out the GetPageSpeed RPM " epilog += "repository at https://nginx-extras.getpagespeed.com/ for NGINX " epilog += "modules and performance tools. Enhance your server performance " epilog += f"today!{end_bold}" epilog += "\n---\n" if "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ: epilog += TOKEN_PRO_TIP parser = argparse.ArgumentParser( description="Find the latest software release.", epilog=epilog, prog="lastversion", ) parser.add_argument( "action", nargs="?", default="get", help="Action to run. Default: get", choices=[ "get", "download", "extract", "unzip", "test", "format", "install", "update-spec", ], ) parser.add_argument( "repo", metavar="<repo URL or string>", help="Repository in format owner/name or any URL that belongs to it, or a version string", ) # affects what is considered last release parser.add_argument( "--pre", dest="pre", action="store_true", help="Include pre-releases in potential versions", ) parser.add_argument( "--formal", dest="formal", action="store_true", help="Include only formally tagged versions", ) parser.add_argument( "--sem", dest="sem", choices=["major", "minor", "patch", "any"], help="Semantic versioning level base to print or compare against", ) parser.add_argument( "-v", "--verbose", action="count", default=0, help="Will give you an idea of what is happening under the hood, " "-vv to increase verbosity level", ) # no --download = False, --download filename.tar, --download = None parser.add_argument( "-d", "-o", "--download", "--output", dest="download", nargs="?", default=False, const=None, metavar="FILENAME", help="Download with custom filename", ) # how / which data of last release we want to present # assets will give download urls for assets if available and sources archive otherwise # sources will give download urls for sources always # json always includes "version", "tag_name" etc. + whichever json data was # used to satisfy lastversion parser.add_argument( "--format", choices=["version", "assets", "source", "json", "tag"], help="Output format", ) parser.add_argument( "--assets", dest="assets", action="store_true", help="Returns assets download URLs for last release", ) parser.add_argument( "--source", dest="source", action="store_true", help="Returns only source URL for last release", ) parser.add_argument( "-gt", "--newer-than", type=check_version, metavar="VER", help="Output only if last version is newer than given version", ) parser.add_argument( "-b", "--major", "--branch", metavar="MAJOR", help="Only consider releases of a specific major version, e.g. 2.1.x", ) parser.add_argument( "--only", metavar="REGEX", help="Only consider releases containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--exclude", metavar="REGEX", help="Only consider releases NOT containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--filter", metavar="REGEX", help="Filters --assets result by a regular " "expression", ) parser.add_argument( "--having-asset", metavar="ASSET", help="Only consider releases with this asset", nargs="?", const=True, ) parser.add_argument( "-su", "--shorter-urls", dest="shorter_urls", action="store_true", help="A tiny bit shorter URLs produced", ) parser.add_argument( "--even", dest="even", action="store_true", help="Only even versions like 1.[2].x, or 3.[6].x are considered as stable", ) parser.add_argument( "--at", dest="at", help="If the repo argument is one word, specifies where to look up the " "project. The default is via internal lookup or GitHub Search", choices=HolderFactory.HOLDERS.keys(), ) parser.add_argument( "-y", "--assumeyes", dest="assumeyes", action="store_true", help="Automatically answer yes for all questions", ) parser.add_argument( "--no-cache", dest="no_cache", action="store_true", help="Do not use cache for HTTP requests", ) parser.add_argument("--version", action=VersionAction) parser.set_defaults( validate=True, verbose=False, format="version", pre=False, formal=False, assets=False, newer_than=False, filter=False, shorter_urls=False, major=None, assumeyes=False, at=None, having_asset=None, even=False, ) args = parser.parse_args(argv) BaseProjectHolder.CACHE_DISABLED = args.no_cache if args.repo == "self": args.repo = __self__ # "expand" repo:1.2 as repo --branch 1.2 # noinspection HttpUrlsUsage if ":" in args.repo and not ( args.repo.startswith(("https://", "http://")) and args.repo.count(":") == 1 ): # right split ':' once only to preserve it in protocol of URLs # https://github.com/repo/owner:2.1 repo_args = args.repo.rsplit(":", 1) args.repo = repo_args[0] args.major = repo_args[1] # instead of using root logger, we use logger = logging.getLogger("lastversion") # create console handler and set level to debug ch = logging.StreamHandler() # create formatter fmt = ( "%(name)s - %(levelname)s - %(message)s" if args.verbose else "%(levelname)s: %(message)s" ) formatter = logging.Formatter(fmt) # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) if args.verbose: logger.setLevel(logging.DEBUG) log.info("Verbose %s level output.", args.verbose) if args.verbose >= 2: cachecontrol_logger = logging.getLogger("cachecontrol") cachecontrol_logger.removeHandler(logging.NullHandler()) cachecontrol_logger.addHandler(ch) cachecontrol_logger.setLevel(logging.DEBUG) if args.assets: args.format = "assets" if args.source: args.format = "source" if args.filter: args.filter = re.compile(args.filter) if args.action in ["test", "format"]: v = parse_version(args.repo) if not v: log.critical("Failed to parse as a valid version") sys.exit(1) else: # extract the desired print base v = v.sem_extract_base(args.sem) if args.action == "test": print(f"Parsed as: {v}") print(f"Stable: {not v.is_prerelease}") else: print(v) return sys.exit(0) if args.action == "install": # we can only install assets args.format = "json" if args.having_asset is None: args.having_asset = r"~\.(AppImage|rpm)$" try: import apt args.having_asset = r"~\.(AppImage|deb)$" except ImportError: pass if args.repo.endswith(".spec"): args.action = "update-spec" args.format = "dict" if not args.sem: if args.action == "update-spec": args.sem = "minor" else: args.sem = "any" # imply source download, unless --assets specified # --download is legacy flag to specify download action or name of desired download file # --download == None indicates download intent where filename is based on upstream if args.action == "download" and args.download is False: args.download = None if args.download is not False: args.action = "download" if args.format != "assets": args.format = "source" if args.action in ["extract", "unzip"] and args.format != "assets": args.format = "source" if args.newer_than: base_compare = parse_version(args.repo) if base_compare: print(max([args.newer_than, base_compare])) return sys.exit(2 if base_compare <= args.newer_than else 0) # other action are either getting release or doing something with release (extend get action) try: res = latest( args.repo, args.format, args.pre, args.filter, args.shorter_urls, args.major, args.only, args.at, having_asset=args.having_asset, exclude=args.exclude, even=args.even, formal=args.formal, ) except (ApiCredentialsError, BadProjectError) as error: log.critical(str(error)) if ( isinstance(error, ApiCredentialsError) and "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ ): log.critical(TOKEN_PRO_TIP) sys.exit(4) > if res: E UnboundLocalError: cannot access local variable 'res' where it is not associated with a value /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py:884: UnboundLocalError ----------------------------- Captured stderr call ----------------------------- --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () CRITICAL: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 134, in test_unzip_osx_bundle main(["--assets", "unzip", "lastversion-test-repos/MinimalMIDIPlayer"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () CRITICAL: ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ------------------------------ Captured log call ------------------------------- CRITICAL lastversion.lastversion:lastversion.py:875 Exceeded GitHub API rate limits. Giving up due to high expected wait 1078s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) CRITICAL lastversion.lastversion:lastversion.py:881 ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips _____________________________ test_cli_get_assets ______________________________ capsys = <_pytest.capture.CaptureFixture object at 0x7fffedf23c50> def test_cli_get_assets(capsys): """Test that the CLI --assets return AppImage on Linux.""" if sys.platform == "linux": with captured_exit_code() as get_exit_code: > main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py:148: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ argv = ['--assets', 'https://github.com/lastversion-test-repos/OneDriveGUI'] def main(argv=None): """ The entrypoint to CLI app. Args: argv: List of arguments, helps test CLI without resorting to subprocess module. """ # ANSI escape code for starting bold text start_bold = "\033[1m" # ANSI escape code for ending the formatting (resets to normal text) end_bold = "\033[0m" epilog = "\n---\n" epilog += f"{start_bold}Sponsored Message: Check out the GetPageSpeed RPM " epilog += "repository at https://nginx-extras.getpagespeed.com/ for NGINX " epilog += "modules and performance tools. Enhance your server performance " epilog += f"today!{end_bold}" epilog += "\n---\n" if "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ: epilog += TOKEN_PRO_TIP parser = argparse.ArgumentParser( description="Find the latest software release.", epilog=epilog, prog="lastversion", ) parser.add_argument( "action", nargs="?", default="get", help="Action to run. Default: get", choices=[ "get", "download", "extract", "unzip", "test", "format", "install", "update-spec", ], ) parser.add_argument( "repo", metavar="<repo URL or string>", help="Repository in format owner/name or any URL that belongs to it, or a version string", ) # affects what is considered last release parser.add_argument( "--pre", dest="pre", action="store_true", help="Include pre-releases in potential versions", ) parser.add_argument( "--formal", dest="formal", action="store_true", help="Include only formally tagged versions", ) parser.add_argument( "--sem", dest="sem", choices=["major", "minor", "patch", "any"], help="Semantic versioning level base to print or compare against", ) parser.add_argument( "-v", "--verbose", action="count", default=0, help="Will give you an idea of what is happening under the hood, " "-vv to increase verbosity level", ) # no --download = False, --download filename.tar, --download = None parser.add_argument( "-d", "-o", "--download", "--output", dest="download", nargs="?", default=False, const=None, metavar="FILENAME", help="Download with custom filename", ) # how / which data of last release we want to present # assets will give download urls for assets if available and sources archive otherwise # sources will give download urls for sources always # json always includes "version", "tag_name" etc. + whichever json data was # used to satisfy lastversion parser.add_argument( "--format", choices=["version", "assets", "source", "json", "tag"], help="Output format", ) parser.add_argument( "--assets", dest="assets", action="store_true", help="Returns assets download URLs for last release", ) parser.add_argument( "--source", dest="source", action="store_true", help="Returns only source URL for last release", ) parser.add_argument( "-gt", "--newer-than", type=check_version, metavar="VER", help="Output only if last version is newer than given version", ) parser.add_argument( "-b", "--major", "--branch", metavar="MAJOR", help="Only consider releases of a specific major version, e.g. 2.1.x", ) parser.add_argument( "--only", metavar="REGEX", help="Only consider releases containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--exclude", metavar="REGEX", help="Only consider releases NOT containing this text. " "Useful for repos with multiple projects inside", ) parser.add_argument( "--filter", metavar="REGEX", help="Filters --assets result by a regular " "expression", ) parser.add_argument( "--having-asset", metavar="ASSET", help="Only consider releases with this asset", nargs="?", const=True, ) parser.add_argument( "-su", "--shorter-urls", dest="shorter_urls", action="store_true", help="A tiny bit shorter URLs produced", ) parser.add_argument( "--even", dest="even", action="store_true", help="Only even versions like 1.[2].x, or 3.[6].x are considered as stable", ) parser.add_argument( "--at", dest="at", help="If the repo argument is one word, specifies where to look up the " "project. The default is via internal lookup or GitHub Search", choices=HolderFactory.HOLDERS.keys(), ) parser.add_argument( "-y", "--assumeyes", dest="assumeyes", action="store_true", help="Automatically answer yes for all questions", ) parser.add_argument( "--no-cache", dest="no_cache", action="store_true", help="Do not use cache for HTTP requests", ) parser.add_argument("--version", action=VersionAction) parser.set_defaults( validate=True, verbose=False, format="version", pre=False, formal=False, assets=False, newer_than=False, filter=False, shorter_urls=False, major=None, assumeyes=False, at=None, having_asset=None, even=False, ) args = parser.parse_args(argv) BaseProjectHolder.CACHE_DISABLED = args.no_cache if args.repo == "self": args.repo = __self__ # "expand" repo:1.2 as repo --branch 1.2 # noinspection HttpUrlsUsage if ":" in args.repo and not ( args.repo.startswith(("https://", "http://")) and args.repo.count(":") == 1 ): # right split ':' once only to preserve it in protocol of URLs # https://github.com/repo/owner:2.1 repo_args = args.repo.rsplit(":", 1) args.repo = repo_args[0] args.major = repo_args[1] # instead of using root logger, we use logger = logging.getLogger("lastversion") # create console handler and set level to debug ch = logging.StreamHandler() # create formatter fmt = ( "%(name)s - %(levelname)s - %(message)s" if args.verbose else "%(levelname)s: %(message)s" ) formatter = logging.Formatter(fmt) # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.addHandler(ch) if args.verbose: logger.setLevel(logging.DEBUG) log.info("Verbose %s level output.", args.verbose) if args.verbose >= 2: cachecontrol_logger = logging.getLogger("cachecontrol") cachecontrol_logger.removeHandler(logging.NullHandler()) cachecontrol_logger.addHandler(ch) cachecontrol_logger.setLevel(logging.DEBUG) if args.assets: args.format = "assets" if args.source: args.format = "source" if args.filter: args.filter = re.compile(args.filter) if args.action in ["test", "format"]: v = parse_version(args.repo) if not v: log.critical("Failed to parse as a valid version") sys.exit(1) else: # extract the desired print base v = v.sem_extract_base(args.sem) if args.action == "test": print(f"Parsed as: {v}") print(f"Stable: {not v.is_prerelease}") else: print(v) return sys.exit(0) if args.action == "install": # we can only install assets args.format = "json" if args.having_asset is None: args.having_asset = r"~\.(AppImage|rpm)$" try: import apt args.having_asset = r"~\.(AppImage|deb)$" except ImportError: pass if args.repo.endswith(".spec"): args.action = "update-spec" args.format = "dict" if not args.sem: if args.action == "update-spec": args.sem = "minor" else: args.sem = "any" # imply source download, unless --assets specified # --download is legacy flag to specify download action or name of desired download file # --download == None indicates download intent where filename is based on upstream if args.action == "download" and args.download is False: args.download = None if args.download is not False: args.action = "download" if args.format != "assets": args.format = "source" if args.action in ["extract", "unzip"] and args.format != "assets": args.format = "source" if args.newer_than: base_compare = parse_version(args.repo) if base_compare: print(max([args.newer_than, base_compare])) return sys.exit(2 if base_compare <= args.newer_than else 0) # other action are either getting release or doing something with release (extend get action) try: res = latest( args.repo, args.format, args.pre, args.filter, args.shorter_urls, args.major, args.only, args.at, having_asset=args.having_asset, exclude=args.exclude, even=args.even, formal=args.formal, ) except (ApiCredentialsError, BadProjectError) as error: log.critical(str(error)) if ( isinstance(error, ApiCredentialsError) and "GITHUB_API_TOKEN" not in os.environ and "GITHUB_TOKEN" not in os.environ ): log.critical(TOKEN_PRO_TIP) sys.exit(4) > if res: E UnboundLocalError: cannot access local variable 'res' where it is not associated with a value /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py:884: UnboundLocalError ----------------------------- Captured stderr call ----------------------------- --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 875, in main log.critical(str(error)) Message: "Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)" Arguments: () CRITICAL: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () --- Logging error --- Traceback (most recent call last): File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 860, in main res = latest( ^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 232, in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 643, in get_latest ret = self.get_release_from_feed(pre_ok, major) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 604, in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 431, in get_formal_release_for_tag self.ensure_formal_releases_fetched() File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 424, in ensure_formal_releases_fetched r = self.repo_query("/releases") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 258, in repo_query return self.get(url) ^^^^^^^^^^^^^ File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py", line 239, in get raise ApiCredentialsError( lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.12/logging/__init__.py", line 1163, in emit stream.write(msg + self.terminator) ValueError: I/O operation on closed file. Call stack: File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/lib/python3.12/site-packages/pytest/__main__.py", line 9, in <module> raise SystemExit(pytest.console_main()) File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 201, in console_main code = main() File "/usr/lib/python3.12/site-packages/_pytest/config/__init__.py", line 175, in main ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 330, in pytest_cmdline_main return wrap_session(config, _main) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 283, in wrap_session session.exitstatus = doit(config, session) or 0 File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 337, in _main config.hook.pytest_runtestloop(session=session) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 362, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 113, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 132, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 241, in call_and_report call = CallInfo.from_call( File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call result: TResult | None = func() File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 242, in <lambda> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call item.runtest() File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 1627, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall res = hook_impl.function(*args) File "/usr/lib/python3.12/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call result = testfunction(**testargs) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_cli.py", line 148, in test_cli_get_assets main(["--assets", "https://github.com/lastversion-test-repos/OneDriveGUI"]) File "/home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py", line 881, in main log.critical(TOKEN_PRO_TIP) Message: 'ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips' Arguments: () CRITICAL: ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ------------------------------ Captured log call ------------------------------- CRITICAL lastversion.lastversion:lastversion.py:875 Exceeded GitHub API rate limits. Giving up due to high expected wait 1077s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) CRITICAL lastversion.lastversion:lastversion.py:881 ProTip: set GITHUB_API_TOKEN env var as per https://github.com/dvershinin/lastversion#tips ________________________________ test_hg_nginx _________________________________ def test_hg_nginx(): """Test NGINX.""" repo = "https://nginx.org/" > output = latest(repo, "version") /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/tests/test_hg.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/lastversion.py:232: in latest release = project.get_latest(pre_ok=pre_ok, major=repo_data.get("major", major)) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:643: in get_latest ret = self.get_release_from_feed(pre_ok, major) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:604: in get_release_from_feed formal_release = self.get_formal_release_for_tag(tag_name) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:431: in get_formal_release_for_tag self.ensure_formal_releases_fetched() /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:424: in ensure_formal_releases_fetched r = self.repo_query("/releases") /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:258: in repo_query return self.get(url) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <lastversion.repo_holders.github.GitHubRepoSession object at 0x7fffedf23920> url = 'https://api.github.com/repos/nginx/nginx/releases', kwargs = {} r = <Response [403]>, remaining = 0, wait_for = 1071 def get(self, url, **kwargs): """Send GET request and account for GitHub rate limits and such.""" r = super().get(url, **kwargs) log.info("Got HTTP status code %s from %s", r.status_code, url) if r.status_code == 401: if self.api_token: raise ApiCredentialsError( "API request was denied despite using an API token. " "Missing scopes? Expired token? Invalid token?" ) raise ApiCredentialsError( "Denied API access. Please set GITHUB_API_TOKEN env var " "as per https://github.com/dvershinin/lastversion#tips" ) if ( r.status_code == 403 and "X-RateLimit-Reset" in r.headers and "X-RateLimit-Remaining" in r.headers ): if self.rate_limited_count > 2: raise ApiCredentialsError( f"API requests were denied after retrying {self.rate_limited_count} times" ) remaining = int(r.headers["X-RateLimit-Remaining"]) # One sec to account for skewed clock between GitHub and client wait_for = float(r.headers["X-RateLimit-Reset"]) - time.time() + 1.0 wait_for = math.ceil(wait_for) if not remaining: # got 403, likely due to used quota if wait_for < 300: if wait_for < 0: log.warning( "Exceeded API quota. Repeating request because " "quota is about to be reinstated" ) else: w = ( f"Waiting {wait_for} seconds for API quota " f"reinstatement." ) if not self.api_token: w = f"{w} {TOKEN_PRO_TIP}" log.warning(w) time.sleep(wait_for) self.rate_limited_count = self.rate_limited_count + 1 return self.get(url) > raise ApiCredentialsError( f"Exceeded GitHub API rate limits. Giving up due to high " f"expected wait {wait_for}s. API says: " f'{r.json()["message"]}' ) E lastversion.exceptions.ApiCredentialsError: Exceeded GitHub API rate limits. Giving up due to high expected wait 1071s. API says: API rate limit exceeded for 157.143.104.190. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.) /home/buildozer/aports/community/lastversion/src/lastversion-3.5.7/.testenv/lib/python3.12/site-packages/lastversion/repo_holders/github.py:239: ApiCredentialsError =========================== short test summary info ============================ FAILED tests/test_cli.py::test_cli_gt_first_arg_is_repo - UnboundLocalError: ... FAILED tests/test_cli.py::test_unzip_osx_bundle_strip - UnboundLocalError: ca... FAILED tests/test_cli.py::test_unzip_osx_bundle - UnboundLocalError: cannot a... FAILED tests/test_cli.py::test_cli_get_assets - UnboundLocalError: cannot acc... FAILED tests/test_hg.py::test_hg_nginx - lastversion.exceptions.ApiCredential... ======================== 5 failed, 16 passed in 13.87s ========================= >>> lastversion: Entering fakeroot... >>> lastversion-pyc*: Running split function pyc... 'usr/lib/python3.12/site-packages/lastversion/__pycache__' -> '/home/buildozer/aports/community/lastversion/pkg/lastversion-pyc/usr/lib/python3.12/site-packages/lastversion/__pycache__' 'usr/lib/python3.12/site-packages/lastversion/repo_holders/__pycache__' -> '/home/buildozer/aports/community/lastversion/pkg/lastversion-pyc/usr/lib/python3.12/site-packages/lastversion/repo_holders/__pycache__' >>> lastversion-pyc*: Preparing subpackage lastversion-pyc... >>> lastversion-pyc*: Running postcheck for lastversion-pyc >>> lastversion*: Running postcheck for lastversion >>> lastversion*: Preparing package lastversion... >>> lastversion-pyc*: Tracing dependencies... py3-appdirs py3-beautifulsoup4 py3-cachecontrol py3-dateutil py3-distro py3-feedparser py3-filelock py3-packaging py3-requests py3-tqdm py3-urllib3 py3-yaml python3~3.12 >>> lastversion-pyc*: Package size: 181.6 KB >>> lastversion-pyc*: Compressing data... >>> lastversion-pyc*: Create checksum... >>> lastversion-pyc*: Create lastversion-pyc-3.5.7-r0.apk >>> lastversion*: Tracing dependencies... py3-appdirs py3-beautifulsoup4 py3-cachecontrol py3-dateutil py3-distro py3-feedparser py3-filelock py3-packaging py3-requests py3-tqdm py3-urllib3 py3-yaml python3~3.12 >>> lastversion*: Package size: 196.0 KB >>> lastversion*: Compressing data... >>> lastversion*: Create checksum... >>> lastversion*: Create lastversion-3.5.7-r0.apk >>> lastversion: Build complete at Sun, 10 Nov 2024 03:54:09 +0000 elapsed time 0h 0m 18s >>> lastversion: Cleaning up srcdir >>> lastversion: Cleaning up pkgdir >>> lastversion: Uninstalling dependencies... (1/69) Purging .makedepends-lastversion (20241110.035352) (2/69) Purging py3-appdirs-pyc (1.4.4-r8) (3/69) Purging py3-appdirs (1.4.4-r8) (4/69) Purging py3-beautifulsoup4-pyc (4.12.3-r3) (5/69) Purging py3-beautifulsoup4 (4.12.3-r3) (6/69) Purging py3-soupsieve-pyc (2.6-r0) (7/69) Purging py3-soupsieve (2.6-r0) (8/69) Purging py3-cachecontrol-pyc (0.14.1-r0) (9/69) Purging py3-cachecontrol (0.14.1-r0) (10/69) Purging py3-msgpack-pyc (1.0.8-r1) (11/69) Purging py3-msgpack (1.0.8-r1) (12/69) Purging py3-dateutil-pyc (2.9.0-r1) (13/69) Purging py3-dateutil (2.9.0-r1) (14/69) Purging py3-six-pyc (1.16.0-r9) (15/69) Purging py3-six (1.16.0-r9) (16/69) Purging py3-distro-pyc (1.9.0-r2) (17/69) Purging py3-distro (1.9.0-r2) (18/69) Purging py3-feedparser-pyc (6.0.11-r2) (19/69) Purging py3-feedparser (6.0.11-r2) (20/69) Purging py3-sgmllib3k-pyc (1.0.0-r11) (21/69) Purging py3-sgmllib3k (1.0.0-r11) (22/69) Purging py3-filelock-pyc (3.13.1-r1) (23/69) Purging py3-filelock (3.13.1-r1) (24/69) Purging py3-requests-pyc (2.32.3-r0) (25/69) Purging py3-requests (2.32.3-r0) (26/69) Purging py3-certifi-pyc (2024.8.30-r0) (27/69) Purging py3-certifi (2024.8.30-r0) (28/69) Purging py3-charset-normalizer-pyc (3.4.0-r0) (29/69) Purging py3-charset-normalizer (3.4.0-r0) (30/69) Purging py3-idna-pyc (3.10-r0) (31/69) Purging py3-idna (3.10-r0) (32/69) Purging py3-tqdm-pyc (4.67.0-r0) (33/69) Purging py3-tqdm (4.67.0-r0) (34/69) Purging py3-urllib3-pyc (1.26.20-r0) (35/69) Purging py3-urllib3 (1.26.20-r0) (36/69) Purging py3-yaml-pyc (6.0.2-r0) (37/69) Purging py3-yaml (6.0.2-r0) (38/69) Purging py3-gpep517-pyc (16-r0) (39/69) Purging py3-gpep517 (16-r0) (40/69) Purging py3-installer-pyc (0.7.0-r2) (41/69) Purging py3-installer (0.7.0-r2) (42/69) Purging py3-setuptools-pyc (70.3.0-r0) (43/69) Purging py3-setuptools (70.3.0-r0) (44/69) Purging py3-wheel-pyc (0.43.0-r0) (45/69) Purging py3-wheel (0.43.0-r0) (46/69) Purging py3-pytest-pyc (8.3.3-r0) (47/69) Purging py3-pytest (8.3.3-r0) (48/69) Purging py3-iniconfig-pyc (2.0.0-r1) (49/69) Purging py3-iniconfig (2.0.0-r1) (50/69) Purging py3-packaging-pyc (24.1-r0) (51/69) Purging py3-packaging (24.1-r0) (52/69) Purging py3-parsing-pyc (3.1.4-r0) (53/69) Purging py3-parsing (3.1.4-r0) (54/69) Purging py3-pluggy-pyc (1.5.0-r0) (55/69) Purging py3-pluggy (1.5.0-r0) (56/69) Purging py3-py-pyc (1.11.0-r4) (57/69) Purging py3-py (1.11.0-r4) (58/69) Purging python3-pyc (3.12.7-r1) (59/69) Purging python3-pycache-pyc0 (3.12.7-r1) (60/69) Purging pyc (3.12.7-r1) (61/69) Purging python3 (3.12.7-r1) (62/69) Purging gdbm (1.24-r0) (63/69) Purging libbz2 (1.0.8-r6) (64/69) Purging libffi (3.4.6-r0) (65/69) Purging libpanelw (6.5_p20241006-r2) (66/69) Purging mpdecimal (4.0.0-r0) (67/69) Purging sqlite-libs (3.47.0-r0) (68/69) Purging xz-libs (5.6.3-r0) (69/69) Purging yaml (0.2.5-r2) Executing busybox-1.37.0-r6.trigger OK: 247 MiB in 102 packages >>> lastversion: Updating the community/loongarch64 repository index... >>> lastversion: Signing the index...