- UTF-8 default encoding: https://docs.python.org/3.15/whatsnew/3.15.html#other-language-changes
t'hello {name}'(template strings): https://docs.python.org/3.14/whatsnew/3.14.html#pep-750-template-strings- deferred evaluation of annotations: https://docs.python.org/3.14/whatsnew/3.14.html#pep-649-and-749-deferred-evaluation-of-annotations
except ..., ...:: https://docs.python.org/3.14/whatsnew/3.14.html#pep-758-allow-except-and-except-expressions-without-parenthesesmap(..., ..., strict=True): https://docs.python.org/3.14/library/functions.html#mapfunctools.partial(..., functools.Placeholder): https://docs.python.org/3.14/library/functools.html#functools.partialpathlib.Path().copy(): https://docs.python.org/3.14/library/pathlib.html#copying-moving-and-deletingpathlib.Path().info: https://docs.python.org/3.14/library/pathlib.html#pathlib.Path.infodatetime.time.strptime()anddatetime.date.strptime(): https://docs.python.org/3.14/library/datetime.html#datetime.date.strptimeuuid.uuid7(): https://docs.python.org/3.14/library/uuid.html#uuid.uuid7from compresion import zstd: https://docs.python.org/3.14/whatsnew/3.14.html#whatsnew314-pep784io.Reader[...]andio.Writer[...]: https://docs.python.org/3.14/library/io.html#static-typing
@warnings.deprecated(): https://docs.python.org/3/library/warnings.html#warnings.deprecatedcopy.replace(): https://docs.python.org/3/library/copy.html#copy.replaceitertools.batched(..., strict=True): https://docs.python.org/3/library/itertools.html#itertools.batchedtypes.SimpleNamespace(mapping_or_iterable): https://docs.python.org/3/library/types.html#types.SimpleNamespacetyping.ReadOnly: https://docs.python.org/3/library/typing.html#typing.ReadOnlytyping.TypeIs: https://docs.python.org/3/library/typing.html#typing.TypeIs
f'This is the playlist: {', '.join(songs)}': https://docs.python.org/3/whatsnew/3.12.html#whatsnew312-pep701itertools.batched(...): https://docs.python.org/3/library/itertools.html#itertools.batchedpathlib.Path().walk(): https://docs.python.org/3/library/pathlib.html#pathlib.Path.walktype Alias = ...: https://docs.python.org/3/library/typing.html#type-aliasesclass list[T]:: https://docs.python.org/3/whatsnew/3.12.html#pep-695-type-parameter-syntax@typing.override: https://docs.python.org/3/whatsnew/3.12.html#pep-698-override-decorator-for-static-typing
datetime.UTC: https://docs.python.org/3/library/datetime.html#datetime.UTCoperator.call(): https://docs.python.org/3/library/operator.html#operator.callwith contextlib.chdir():: https://docs.python.org/3/library/contextlib.html#contextlib.chdirpathlib.Path().glob('.../')(for directories only) https://docs.python.org/3/whatsnew/3.11.html#pathlib(?>...)and*+(reatomic grouping and posessive quantifiers): https://docs.python.org/3/library/re.html#regular-expression-syntaximport tomllib: https://docs.python.org/3/library/tomllib.html#module-tomllibhashlib.file_digest((): https://docs.python.org/3/library/hashlib.html#hashlib.file_digesttyping.Self: https://docs.python.org/3/library/typing.html#typing.Selftyping.LiteralString: https://docs.python.org/3/library/typing.html#typing.LiteralString
match ... case(structural pattern matching): https://docs.python.org/3/whatsnew/3.10.html#pep-634-structural-pattern-matchingstr | None: https://docs.python.org/3/whatsnew/3.10.html#pep-604-new-type-union-operatorwith ():: https://docs.python.org/3/whatsnew/3.10.html#parenthesized-context-managerszip(strict=True): https://peps.python.org/pep-0618int.bit_count()https://docs.python.org/3/library/typing.html#typing.ParamSpec@dataclasses.dataclass(slots=..., kw_only=...): https://docs.python.org/3/whatsnew/3.10.html#dataclassesitertools.pairwise(): https://docs.python.org/3/library/itertools.html#itertools.pairwisepprint.pprint(underscore_number=True): https://docs.python.org/3/library/pprint.html#pprint.pptyping.TypeAlias: https://docs.python.org/3/library/typing.html#typing.TypeAliastyping.TypeGuard[...]: https://docs.python.org/3/library/typing.html#typing.TypeGuardtyping.ParamSpec: https://docs.python.org/3/library/typing.html#typing.ParamSpecsetup.py->pyproject.tomlandbuildhttps://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
{} | {}(dict merge/update operators): https://docs.python.org/3/whatsnew/3.9.html#dictionary-merge-update-operatorsstr.removeprefix()andstr.removeuffix(): https://docs.python.org/3/whatsnew/3.9.html#new-string-methods-to-remove-prefixes-and-suffixes@functools.cache: https://docs.python.org/3/library/functools.html#functools.cachepathlib.Path().with_stem(): https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.with_stempathlib.Path().readlink(): https://docs.python.org/3/library/pathlib.html#pathlib.Path.readlinkimport zoneinfo: https://docs.python.org/3/whatsnew/3.9.html#zoneinfographlib.TopologicalSorter: https://docs.python.org/3/library/graphlib.html#graphlib.TopologicalSortercollections.abcandlist[str]for typing: https://docs.python.org/3/whatsnew/3.9.html#type-hinting-generics-in-standard-collections{distribution}-{version}.tar.gz: https://peps.python.org/pep-0625
f'{spam=}'(self-documenting f-strings): https://docs.python.org/3/whatsnew/3.8.html#f-strings-support-for-self-documenting-expressions-and-debugging(ma := re.match()) is None(assignment expressions): https://docs.python.org/3/whatsnew/3.8.html#assignment-expressionsdef spam(eggs, /):(positional-only parameters): https://docs.python.org/3/whatsnew/3.8.html#positional-only-parametersreversed(dict()): https://docs.python.org/3/whatsnew/3.8.html#other-language-changes@functools.cached_property: https://docs.python.org/3/library/functools.html#functools.cached_propertypprint.pp(sort_dicts=False): https://docs.python.org/3/library/pprint.html#pprint.ppre.compile(r'\N{...}')(name escapes): https://docs.python.org/3/whatsnew/3.8.html#other-language-changesunittest.mock.Mock.call_args.argsand.kwargs: https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.call_argstyping.Protocol: https://docs.python.org/3/library/typing.html#typing.Protocoltyping.SupportsIndex: https://docs.python.org/3/library/typing.html#typing.SupportsIndextyping.TypedDict: https://docs.python.org/3/library/typing.html#typing.TypedDicttyping.Final[...]: https://docs.python.org/3/library/typing.html#typing.Finaltyping.Literal[...]: https://docs.python.org/3/library/typing.html#typing.Literal
- order-preserving
dictofficial: https://docs.python.org/3/whatsnew/3.7.html breakpoint(): https://docs.python.org/3/whatsnew/3.7.html#pep-553-built-in-breakpoint@dataclasses.dataclass: https://docs.python.org/3/whatsnew/3.7.html#dataclassestime.time_ns()andtime.monotonic_ns(): https://docs.python.org/3/whatsnew/3.7.html#pep-564-new-time-functions-with-nanosecond-resolutionfrom __future__ import annotations: https://docs.python.org/3/whatsnew/3.7.html#pep-563-postponed-evaluation-of-annotationscollections.namedtuple(defaults=...): https://docs.python.org/3/library/collections.html#collections.namedtuplecontextlib.nullcontext(): https://docs.python.org/3/library/contextlib.html#contextlib.nullcontextdatetime.datetime.fromisoformat(): https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformatsubprocess.run(capture_output=True): https://docs.python.org/3/library/subprocess.html#subprocess.run
f'{spam}'(f-strings): https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals- order-preserving
dict: https://docs.python.org/3/whatsnew/3.6.html#new-dict-implementation 1_000_000underscore in numeric literals: https://docs.python.org/3/whatsnew/3.6.html#pep-515-underscores-in-numeric-literalstype.__init_subclass__(): https://docs.python.org/3/whatsnew/3.6.html#pep-487-simpler-customization-of-class-creationos.PathLike[...] andos.fspath()`: https://docs.python.org/3/whatsnew/3.6.html#pep-519-adding-a-file-system-path-protocolre.Match[...]: https://docs.python.org/3/library/re.html#re.Match.__getitem__collections.namedtuple(module=...): https://docs.python.org/3/library/collections.html#collections.namedtupledatetime.datetime.isoformat(timespec='seconds'): https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformatimport secrets: https://docs.python.org/3/library/secrets.htmltyping.NoReturn: https://docs.python.org/3/library/typing.html#typing.NoReturn
x @ mhttps://docs.python.org/3/whatsnew/3.5.html#pep-465-a-dedicated-infix-operator-for-matrix-multiplication- extended unpacking: https://docs.python.org/3/whatsnew/3.5.html#pep-448-additional-unpacking-generalizations
collections.OrderedDictimplemented in C: https://docs.python.org/3/whatsnew/3.5.html#whatsnew-ordereddictsubprocess.run(): https://docs.python.org/3/library/subprocess.html#subprocess.runos.scandir(): https://docs.python.org/3/library/os.html#os.scandirpathlib.Path().expanduser: https://docs.python.org/3/library/pathlib.html#pathlib.Path.expanduserpathlib.Path().read_text()andpathlib.Path().write_text(): https://docs.python.org/3/library/pathlib.html#pathlib.Path.read_textimport typing: https://docs.python.org/3/library/typing.html and https://peps.python.org/pep-0484@typing.overload: https://docs.python.org/3/library/typing.html#typing.overloadtyping.TypeVar: https://docs.python.org/3/library/typing.html#typing.TypeVartyping.ClassVar: https://docs.python.org/3/library/typing.html#typing.ClassVartyping.NewType: https://docs.python.org/3/library/typing.html#typing.NewTypetyping.NamedTuple: https://docs.python.org/3/library/typing.html#typing.NamedTuple
import enum: https://docs.python.org/3/library/enum.htmlimport pathlib: https://docs.python.org/3/library/pathlib.html@singledispatch: https://docs.python.org/3/library/functools.html#functools.singledispatchfunctools.partialmethod(): https://docs.python.org/3/library/functools.html#functools.partialmethodabc.ABC: https://docs.python.org/3/library/abc.html#abc.ABCwith contextlib.redirect_stdout(...):: https://docs.python.org/3/library/contextlib.html#contextlib.redirect_stdoutre.fullmatch(): https://docs.python.org/3/library/re.html#re.fullmatchimport statistics: https://docs.python.org/3/library/statistics.html#module-statistics
yield from(delegation): https://docs.python.org/3/whatsnew/3.3.html#pep-380-syntax-for-delegating-to-a-subgeneratorraise ... from None: https://docs.python.org/3/whatsnew/3.3.html#pep-409-suppressing-exception-contextlist.copy()andlist.clear(): https://docs.python.org/3/whatsnew/3.3.html#other-language-changesopen(..., mode='x')(create only): https://docs.python.org/3/library/functions.html#opentypes.new_class(): https://docs.python.org/3/library/types.html#types.new_classcollections.ChainMap: https://docs.python.org/3/library/collections.html#collections.ChainMapsubprocess.DEVNULL: https://docs.python.org/3/library/subprocess.html#subprocess.DEVNULLfrom unittest import mock: https://docs.python.org/3/library/unittest.mock.html
@functools.lru_cache: https://docs.python.org/3/library/functools.html#functools.lru_cache@functools.wraps(...): https://docs.python.org/3/library/functools.html#functools.wrapswith tempfile.TemporaryDirectory():https://docs.python.org/3/whatsnew/3.2.html#tempfilewith mmap.mmap(...):and others: https://docs.python.org/3/whatsnew/3.2.html#new-improved-and-deprecated-modules
format(1000, ',d'): https://docs.python.org/3/whatsnew/3.1.html#pep-378-format-specifier-for-thousands-separatorcollections.OrderedDict: https://docs.python.org/3/whatsnew/3.1.html#pep-372-ordered-dictionariescollections.Counter: https://docs.python.org/3/library/collections.html#collections.Counter
print()-function: https://docs.python.org/3/whatsnew/3.0.html#print-is-a-functiondef spam(*, ...):(keyword-only parameters): https://peps.python.org/pep-3102*rest, a = stuff(extended iterable unpacking): https://peps.python.org/pep-31321 / 2 == 0.5and1 // 2 == 0: (true and floor division): https://peps.python.org/pep-0238/- bare
super(): https://docs.python.org/3/whatsnew/3.0.html#builtins import abc: https://docs.python.org/3/library/abc.html#module-abc- removed
filealias foropen(): https://docs.python.org/3/whatsnew/3.0.html#builtins