-
Notifications
You must be signed in to change notification settings - Fork 108
Open
Description
Hi, I think the latest commit f00ed96 might have broken compatibility for Python 3.13 (cc @Coben-3d). I haven't looked to much into it, but I get this output when trying to install:
$ sudo -u octoprint /opt/octoprint/bin/pip3 install git+https://github.com/FormerLurker/Octolapse
Collecting git+https://github.com/FormerLurker/Octolapse
Cloning https://github.com/FormerLurker/Octolapse to /tmp/pip-req-build-xl1nmkbl
Running command git clone --filter=blob:none --quiet https://github.com/FormerLurker/Octolapse /tmp/pip-req-build-xl1nmkbl
Resolved https://github.com/FormerLurker/Octolapse to commit f00ed96ae0494376fd8d81f571cc9083c5470955
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [5 lines of output]
/tmp/pip-req-build-xl1nmkbl/versioneer.py:564: SyntaxWarning: invalid escape sequence '\s'
mo = re.search(r'=\s*"(.*)"', line)
error in Octolapse setup command: 'install_requires' must be a string or iterable of strings containing valid project/version requirement specifiers; Expected package name at the start of dependency specifier
.
^
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
[notice] A new release of pip is available: 25.2 -> 25.3
[notice] To update, run: /opt/octoprint/bin/python -m pip install --upgrade pip
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
I am able to install the previous commit (e174a5c) without issue.
Log from successful install
sudo -u octoprint /opt/octoprint/bin/pip3 install git+https://github.com/FormerLurker/Octolapse@e174a5c08d72ea213f7e7052dfe2e9ca9089e424
Collecting git+https://github.com/FormerLurker/Octolapse@e174a5c08d72ea213f7e7052dfe2e9ca9089e424
Cloning https://github.com/FormerLurker/Octolapse (to revision e174a5c08d72ea213f7e7052dfe2e9ca9089e424) to /tmp/pip-req-build-qylc_swz
Running command git clone --filter=blob:none --quiet https://github.com/FormerLurker/Octolapse /tmp/pip-req-build-qylc_swz
Running command git rev-parse -q --verify 'sha^e174a5c08d72ea213f7e7052dfe2e9ca9089e424'
Running command git fetch -q https://github.com/FormerLurker/Octolapse e174a5c08d72ea213f7e7052dfe2e9ca9089e424
Running command git checkout -q e174a5c08d72ea213f7e7052dfe2e9ca9089e424
Resolved https://github.com/FormerLurker/Octolapse to commit e174a5c08d72ea213f7e7052dfe2e9ca9089e424
Preparing metadata (setup.py) ... done
Collecting pillow<11,>=9.3 (from Octolapse==0.4.5+1.ge174a5c)
Downloading pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl.metadata (9.2 kB)
Requirement already satisfied: sarge in /opt/octoprint/lib/python3.13/site-packages (from Octolapse==0.4.5+1.ge174a5c) (0.1.7.post1)
Collecting six (from Octolapse==0.4.5+1.ge174a5c)
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Requirement already satisfied: OctoPrint>=1.4.0 in /opt/octoprint/lib/python3.13/site-packages (from Octolapse==0.4.5+1.ge174a5c) (1.11.4)
Requirement already satisfied: psutil in /opt/octoprint/lib/python3.13/site-packages (from Octolapse==0.4.5+1.ge174a5c) (6.1.1)
Collecting file_read_backwards (from Octolapse==0.4.5+1.ge174a5c)
Downloading file_read_backwards-3.2.0-py2.py3-none-any.whl.metadata (4.3 kB)
Requirement already satisfied: setuptools>=6.0 in /opt/octoprint/lib/python3.13/site-packages (from Octolapse==0.4.5+1.ge174a5c) (80.9.0)
Collecting awesome-slugify<1.7,>=1.6.5 (from Octolapse==0.4.5+1.ge174a5c)
Downloading awesome-slugify-1.6.5.tar.gz (8.4 kB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: regex in /opt/octoprint/lib/python3.13/site-packages (from awesome-slugify<1.7,>=1.6.5->Octolapse==0.4.5+1.ge174a5c) (2025.11.3)
Collecting Unidecode<0.05,>=0.04.14 (from awesome-slugify<1.7,>=1.6.5->Octolapse==0.4.5+1.ge174a5c)
Downloading Unidecode-0.04.21-py2.py3-none-any.whl.metadata (7.0 kB)
Requirement already satisfied: OctoPrint-FileCheck>=2024.11.12 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2025.7.23)
Requirement already satisfied: OctoPrint-FirmwareCheck>=2025.5.14 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2025.7.23)
Requirement already satisfied: OctoPrint-PiSupport>=2023.10.10 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2025.7.23)
Requirement already satisfied: argon2-cffi>=23.1.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (25.1.0)
Requirement already satisfied: Babel<2.17,>=2.16 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.16.0)
Requirement already satisfied: cachelib<0.14,>=0.13.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.13.0)
Requirement already satisfied: Click!=8.2.0,<8.3,>=8.1.8 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (8.2.1)
Requirement already satisfied: colorlog<7,>=6.9.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (6.10.1)
Requirement already satisfied: emoji<3,>=2.14.1 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.15.0)
Requirement already satisfied: feedparser<7,>=6.0.11 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (6.0.12)
Requirement already satisfied: filetype<2,>=1.2.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.2.0)
Requirement already satisfied: Flask-Assets<3,>=2.1.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.1.0)
Requirement already satisfied: Flask-Babel<5,>=4.0.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.0.0)
Requirement already satisfied: Flask-Login<0.7,>=0.6.3 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.6.3)
Requirement already satisfied: Flask-Limiter<3.9,>=3.8 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.8.0)
Requirement already satisfied: flask<3.1,>=3.0.3 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.0.3)
Requirement already satisfied: frozendict<3,>=2.4.6 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.4.6)
Requirement already satisfied: limits<5 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.8.0)
Requirement already satisfied: markdown<3.8,>=3.7 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.7)
Requirement already satisfied: netaddr<1.4,>=1.3.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.3.0)
Requirement already satisfied: netifaces<0.12,>=0.11.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.11.0)
Requirement already satisfied: packaging in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (24.2)
Requirement already satisfied: libpass<2,>=1.8.1 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.9.3)
Requirement already satisfied: pathvalidate<4,>=3.2.1 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.3.1)
Requirement already satisfied: pydantic<3,>=2.10.6 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.12.4)
Requirement already satisfied: pylru<2,>=1.2.1 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.2.1)
Requirement already satisfied: pyserial<4,>=3.5 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.5)
Requirement already satisfied: pytz in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2025.2)
Requirement already satisfied: PyYAML<7,>=6.0.2 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (6.0.3)
Requirement already satisfied: requests<3,>=2.32.3 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.32.5)
Requirement already satisfied: semantic_version<3,>=2.10.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.10.0)
Requirement already satisfied: sentry-sdk<3,>=2.20.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.44.0)
Requirement already satisfied: tornado<6.6,>=6.5 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (6.5.2)
Requirement already satisfied: watchdog<5,>=4.0.2 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.0.2)
Requirement already satisfied: websocket-client<1.9,>=1.8.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.8.0)
Requirement already satisfied: werkzeug<3.1,>=3.0.6 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.0.6)
Requirement already satisfied: wrapt<1.18,>=1.17.2 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.17.3)
Requirement already satisfied: zeroconf<0.137,>=0.136.2 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.136.2)
Requirement already satisfied: zipstream-ng<2.0.0,>=1.8.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.9.0)
Requirement already satisfied: blinker<1.9.0,>=1.8.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.8.2)
Requirement already satisfied: more-itertools>=10.5.0 in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (10.8.0)
Requirement already satisfied: future in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.0.0)
Requirement already satisfied: wheel in /opt/octoprint/lib/python3.13/site-packages (from OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.45.1)
Requirement already satisfied: sgmllib3k in /opt/octoprint/lib/python3.13/site-packages (from feedparser<7,>=6.0.11->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.0.0)
Requirement already satisfied: Jinja2>=3.1.2 in /opt/octoprint/lib/python3.13/site-packages (from flask<3.1,>=3.0.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.1.6)
Requirement already satisfied: itsdangerous>=2.1.2 in /opt/octoprint/lib/python3.13/site-packages (from flask<3.1,>=3.0.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.2.0)
Requirement already satisfied: webassets>=2.0 in /opt/octoprint/lib/python3.13/site-packages (from Flask-Assets<3,>=2.1.0->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.0.0)
Requirement already satisfied: ordered-set<5,>4 in /opt/octoprint/lib/python3.13/site-packages (from Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.1.0)
Requirement already satisfied: rich<14,>=12 in /opt/octoprint/lib/python3.13/site-packages (from Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (13.9.4)
Requirement already satisfied: typing-extensions>=4 in /opt/octoprint/lib/python3.13/site-packages (from Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.15.0)
Requirement already satisfied: deprecated>=1.2 in /opt/octoprint/lib/python3.13/site-packages (from limits<5->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (1.3.1)
Requirement already satisfied: annotated-types>=0.6.0 in /opt/octoprint/lib/python3.13/site-packages (from pydantic<3,>=2.10.6->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.7.0)
Requirement already satisfied: pydantic-core==2.41.5 in /opt/octoprint/lib/python3.13/site-packages (from pydantic<3,>=2.10.6->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.41.5)
Requirement already satisfied: typing-inspection>=0.4.2 in /opt/octoprint/lib/python3.13/site-packages (from pydantic<3,>=2.10.6->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.4.2)
Requirement already satisfied: charset_normalizer<4,>=2 in /opt/octoprint/lib/python3.13/site-packages (from requests<3,>=2.32.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in /opt/octoprint/lib/python3.13/site-packages (from requests<3,>=2.32.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/octoprint/lib/python3.13/site-packages (from requests<3,>=2.32.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.5.0)
Requirement already satisfied: certifi>=2017.4.17 in /opt/octoprint/lib/python3.13/site-packages (from requests<3,>=2.32.3->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2025.10.5)
Requirement already satisfied: markdown-it-py>=2.2.0 in /opt/octoprint/lib/python3.13/site-packages (from rich<14,>=12->Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (4.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /opt/octoprint/lib/python3.13/site-packages (from rich<14,>=12->Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.19.2)
Requirement already satisfied: MarkupSafe>=2.1.1 in /opt/octoprint/lib/python3.13/site-packages (from werkzeug<3.1,>=3.0.6->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (3.0.3)
Requirement already satisfied: ifaddr>=0.1.7 in /opt/octoprint/lib/python3.13/site-packages (from zeroconf<0.137,>=0.136.2->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.2.0)
Requirement already satisfied: argon2-cffi-bindings in /opt/octoprint/lib/python3.13/site-packages (from argon2-cffi>=23.1.0->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (25.1.0)
Requirement already satisfied: mdurl~=0.1 in /opt/octoprint/lib/python3.13/site-packages (from markdown-it-py>=2.2.0->rich<14,>=12->Flask-Limiter<3.9,>=3.8->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (0.1.2)
Requirement already satisfied: zope-dottedname>=6.0 in /opt/octoprint/lib/python3.13/site-packages (from webassets>=2.0->Flask-Assets<3,>=2.1.0->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (7.0)
Requirement already satisfied: cffi>=1.0.1 in /opt/octoprint/lib/python3.13/site-packages (from argon2-cffi-bindings->argon2-cffi>=23.1.0->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.0.0)
Requirement already satisfied: pycparser in /opt/octoprint/lib/python3.13/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi>=23.1.0->OctoPrint>=1.4.0->Octolapse==0.4.5+1.ge174a5c) (2.23)
Downloading pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl (4.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 2.9 MB/s 0:00:01
Downloading Unidecode-0.04.21-py2.py3-none-any.whl (228 kB)
Downloading file_read_backwards-3.2.0-py2.py3-none-any.whl (7.9 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: Octolapse, awesome-slugify
DEPRECATION: Building 'Octolapse' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'Octolapse'. Discussion can be found at https://github.com/pypa/pip/issues/6334
Building wheel for Octolapse (setup.py) ... done
Created wheel for Octolapse: filename=octolapse-0.4.5+1.ge174a5c-cp313-cp313-linux_aarch64.whl size=3088450 sha256=df8bdc25d9486b66cc32b6f27b4ae2a0f7145a2fa4502fe90c3ab299ac7a113a
Stored in directory: /var/lib/octoprint/.cache/pip/wheels/82/23/da/89e8205ce5688eccda8cd654e4265e3e02e4e757a0658a8420
DEPRECATION: Building 'awesome-slugify' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'awesome-slugify'. Discussion can be found at https://github.com/pypa/pip/issues/6334
Building wheel for awesome-slugify (setup.py) ... done
Created wheel for awesome-slugify: filename=awesome_slugify-1.6.5-py3-none-any.whl size=8380 sha256=122feb9b6a53c3352fa5d88499e30f78540261ad43ec3ad5726e5b36087830f6
Stored in directory: /var/lib/octoprint/.cache/pip/wheels/f6/8d/90/0b26ee7a2a7b6e3bc44fc33dd6a9be2bf9ddc0530969e8460c
Successfully built Octolapse awesome-slugify
Installing collected packages: Unidecode, file_read_backwards, six, pillow, awesome-slugify, Octolapse
Attempting uninstall: Unidecode
Found existing installation: Unidecode 1.4.0
Uninstalling Unidecode-1.4.0:
Successfully uninstalled Unidecode-1.4.0
Successfully installed Octolapse-0.4.5+1.ge174a5c Unidecode-0.4.21 awesome-slugify-1.6.5 file_read_backwards-3.2.0 pillow-10.4.0 six-1.17.0
[notice] A new release of pip is available: 25.2 -> 25.3
[notice] To update, run: /opt/octoprint/bin/python -m pip install --upgrade pip
Python version: 3.13.7
OS: Arch Linux ARM (aarch64)
/opt/octoprint/bin/python --version
Python 3.13.7
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels