skills/nevaberry/nevaberry-plugins/python-knowledge-patch

python-knowledge-patch

SKILL.md

Python 3.13+ Knowledge Patch

Claude's baseline knowledge covers Python through 3.12. This skill provides features from 3.13 (Oct 2024) onwards.

Source: Python "What's New" documentation at https://docs.python.org/3/whatsnew/

3.13 Breaking Changes

Change Impact
19 "dead battery" modules removed (PEP 594) ImportError for cgi, crypt, imghdr, telnetlib, etc. See removals
locals() returns snapshots in functions (PEP 667) exec()/eval() in functions need explicit namespace. See new-modules
TypedDict("T", x=int) keyword syntax removed Use class syntax or TypedDict("T", {"x": int})
pathlib.Path.glob("**") returns files AND dirs Add trailing / for dirs only: glob("**/")
Docstring leading whitespace stripped May affect doctest tests

3.13 New Features

Feature Quick reference
Free-threaded CPython (PEP 703) python3.13t, sys._is_gil_enabled(), PYTHON_GIL=0. See concurrency
copy.replace() protocol copy.replace(obj, field=val), implement __replace__(). See new-modules
warnings.deprecated() (PEP 702) @deprecated("msg") — runtime warning + type checker signal. See new-modules

3.14 New Syntax

Feature Quick reference
T-strings (PEP 750) t"Hello {name}"Template object. from string.templatelib import Template, Interpolation. See new-syntax
Deferred annotations (PEP 649/749) Forward refs no longer need quotes. from annotationlib import get_annotations, Format. See new-syntax
except without brackets (PEP 758) except A, B: (no parens, no as). Parens still needed with as.

3.14 New Modules

Module Quick reference
compression.zstd (PEP 784) from compression import zstd; zstd.compress(data). See new-modules
concurrent.interpreters (PEP 734) Subinterpreters + InterpreterPoolExecutor. See concurrency
annotationlib get_annotations(obj, format=Format.FORWARDREF)
functools.Placeholder partial(func, Placeholder, fixed_arg) — reserve positional slots

3.14 Breaking Changes

Change Impact
asyncio.get_event_loop() raises RuntimeError Must use asyncio.run() or asyncio.Runner
multiprocessing default → 'forkserver' on Linux May cause pickling errors; use get_context('fork')
int() no longer uses __trunc__() Must implement __int__() or __index__()
functools.partial is method descriptor Wrap in staticmethod() for classes
from __future__ import annotations deprecated Unchanged behavior; removal after 2029
ast.Num/Str/Bytes removed Use ast.Constant
asyncio child watcher classes removed Use asyncio.run()
SyntaxWarning in finally (PEP 765) return/break/continue in finally now warns

3.14 New APIs

API Quick reference
sys.remote_exec(pid, script) (PEP 768) Attach debugger to running process; python -m pdb -p PID. See new-modules
io.Reader / io.Writer Simpler protocol alternatives to typing.IO
uuid.uuid7() Time-ordered UUID (RFC 9562); also uuid6(), uuid8()
heapq.*_max() heapify_max(), heappush_max(), heappop_max(), etc.
Free-threading (PEP 779) Now officially supported; 5-10% overhead

Reference Files

For detailed patterns, code examples, and migration guidance, consult:

  • references/new-syntax.md — T-strings (template processors, API), deferred annotations (annotationlib), except without brackets
  • references/new-modules.mdcompression.zstd, functools.Placeholder, copy.replace(), warnings.deprecated(), locals() semantics, remote debugging, io.Reader/Writer, uuid.uuid7(), heapq max-heap
  • references/concurrency.md — Free-threaded CPython (GIL-free mode), subinterpreters, InterpreterPoolExecutor
  • references/removals.md — Dead batteries (19 modules), 3.13/3.14 removals, breaking behavior changes
Weekly Installs
7
GitHub Stars
7
First Seen
14 days ago
Installed on
opencode7
gemini-cli7
github-copilot7
codex7
amp7
cline7