Skip to content

sorry, ignore this - #1089

Closed
JarredAllen wants to merge 2 commits into
getslash:developfrom
parallelsystems:update-python-3.14
Closed

JarredAllen wants to merge 2 commits into
getslash:developfrom
parallelsystems:update-python-3.14

Conversation

@JarredAllen

@JarredAllen JarredAllen commented Sep 21, 2026 •

Copy link
Copy Markdown

Sorry, ignore this, I meant to target a different repo.

JarredAllen and others added 2 commits September 16, 2026 14:22
dessert 1.4.x calls ast.Str, which was deprecated in Python 3.8 and
removed in Python 3.12, so any `slash run` on 3.12 or newer dies during
collection with:

    AttributeError: module 'ast' has no attribute 'Str'

dessert 1.6.3 drops that usage. Widen the constraint to >=1.6.3,<2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Replace the 3.7-3.11 matrix with 3.11 and 3.14, and fix everything that
broke on the way there. Requires-python, the classifiers and the tox
envlist move to 3.11+ accordingly, since several of these fixes rely on
stdlib APIs that predate 3.10.

Fix the pytest config table name. pytest only ever read
[tool.pytest.ini_options], so [tool.pytest] had been silently ignored:
testpaths, timeout_method and addopts were never in effect. pytest 9
reads [tool.pytest] natively with typed values and now fails outright on
the string addopts. Renaming the table re-enables
-W error::DeprecationWarning, which surfaced the next two items.

Drop pkg_resources. It is absent from a 3.12+ venv entirely and warns on
import under 3.11. slash.__version__, slash.site, the notifications
plugin, doc/conf.py and the site-customization test move to
importlib.metadata and importlib.resources.

Use the snake_case pyparsing API in pattern_matching; the camelCase
aliases warn.

Port ExtensionImporter to PEP 451. find_module/load_module were dropped
from the import system in 3.12, so slash.ext.X redirection had been
silently doing nothing there.

Stop borrowing CPython's `test` package as a scratch namespace in
test_interruptions; it is not shipped with many 3.14 installs. Register
a synthetic module instead.

Teach the matcher grammar about quoted strings. The
"not 'division by zero'" filtering case only passed by accident:
pyparsing <= 3.2 parsed it as the bare word `not`, which happened to
yield the expected False, and pyparsing 3.3 raises instead. It now
parses as intended, and quoted multi-word patterns work for real.

Relax the pylint and astroid pins to 4.x; 2.17/2.15 crash with an
AstroidError on 3.14. That surfaced a latent possibly-used-before-
assignment in slash.log, where an unrecognized compression algorithm
would have raised UnboundLocalError instead of InvalidConfiguraion, plus
two astroid inference false positives that are silenced locally.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@JarredAllen JarredAllen changed the title Update to python 3.14 sorry, ignore this Sep 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant