Selected changesmerged Nov 2, 2026
stream: keep async context of fromWeb writesJavaScript · 86 + / 1 −
Introduces 5 new declarations in lib/internal/webstreams/adapters.js.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
lib/internal/webstreams/adapters.js ↗ · 3 files
@@ -224,7 +250,37 @@ function createWriteTracker(getDestination) { }; } +// A write issued before the destination has started would be queued and+// processed from the start step, in the async context of the code that+// created the WritableStream. Dispatch it from a writer.ready reaction+// instead, as the promise-based adapter did, so the sink runs in the+// context of the Node.js write. The stream may have been closed or+// errored (e.g. by destroy()) by then.+function deferDispatch(writer, tracker, dispatchNow) {+ const dispatch = () => {+ const failure = writableStreamDefaultWriterWriteFailure(writer);+ if (failure !== undefined) {+ tracker.failed = true;+ tracker.failure = failure;+ tracker.settle();+ return;+ }+ dispatchNow();+ };+ PromisePrototypeThen(writer.ready, dispatch, dispatch);+}+ function dispatchWrite(writer, chunk, tracker) {+ tracker.contextFrame = currentContextFrame();+ if (!writableStreamDefaultWriterIsStarted(writer)) {+ deferDispatch(writer, tracker,+ () => dispatchWriteNow(writer, chunk, tracker));+ return;+ }+ dispatchWriteNow(writer, chunk, tracker);+}+
[no-unsafe-inline] Add an experimental flag for React's external browser runtimeJavaScript · 723 + / 6 −
Introduces 8 new declarations in packages/next/src/compiled/react-dom-experimental/unstable_server-external-runtime.js.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
packages/next/src/compiled/react-dom-experimental/unstable_server-external-runtime.js ↗ · 29 files
@@ -0,0 +1,504 @@+(function () {+ function handleExistingNodes(target) {+ target = target.querySelectorAll("template");+ for (var i = 0; i < target.length; i++) handleNode(target[i]);+ }+ function installFizzInstrObserver(target) {+ function handleMutations(mutations) {+ for (var i = 0; i < mutations.length; i++)+ for (+ var addedNodes = mutations[i].addedNodes, j = 0;+ j < addedNodes.length;+ j+++ )+ addedNodes[j].parentNode && handleNode(addedNodes[j]);+ }+ var fizzInstrObserver = new MutationObserver(handleMutations);+ fizzInstrObserver.observe(target, { childList: !0 });+ window.addEventListener("DOMContentLoaded", function () {+ handleMutations(fizzInstrObserver.takeRecords());+ fizzInstrObserver.disconnect();+ });+ }+ function handleNode(node_) {+ if (1 === node_.nodeType && node_.dataset) {+ var dataset = node_.dataset;+ null != dataset.rxi+ ? ($RX(+ dataset.bid,+ dataset.dgst,+ dataset.msg,+ dataset.stck,+ dataset.cstck+ ),
ENH: add an HTML repr for Series (GH#5563)Python · 60 + / 2 −
Introduces 5 new declarations in pandas/core/series.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
pandas/core/series.py ↗ · 5 files
@@ -1618,6 +1620,39 @@ def __repr__(self) -> str: repr_params = fmt.get_series_repr_params() return self.to_string(**repr_params) + def _repr_html_(self) -> str | None:+ """+ Return a html representation for a particular Series.++ Mainly for IPython notebook.+ """+ # circular import+ from pandas.io.formats.html import SeriesNotebookFormatter++ if not get_option("display.notebook_repr_html"):+ return None++ formatter = fmt.DataFrameFormatter(+ self.to_frame(),+ header=False,+ index_names=True,+ bold_rows=True,+ escape=True,+ float_format=get_option("display.float_format"),+ max_rows=get_option("display.max_rows"),+ min_rows=get_option("display.min_rows"),+ show_dimensions=False,+ )+ # truncate as the table does, so the footer agrees with it+ footer = fmt.SeriesFormatter(+ self,+ name=True,+ dtype=True,+ length=get_option("display.show_dimensions"),+ max_rows=formatter.max_rows_fitted,
fix: Only treat the document lock as held by the context that acquired itPython · 55 + / 3 −
Introduces 4 new declarations in panel/io/server.py.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
panel/io/server.py ↗ · 4 files
@@ -734,6 +736,30 @@ def validate_static_dirs(static_dirs: Mapping[str, str]) -> dict[str, str]: return static +def _track_document_lock(func):+ if inspect.iscoroutinefunction(func):+ @wraps(func)+ async def wrapper(self, *args, **kwargs):+ with state._own_document_lock(self):+ return await func(self, *args, **kwargs)+ else:+ @wraps(func)+ def wrapper(self, *args, **kwargs):+ with state._own_document_lock(self):+ return func(self, *args, **kwargs)+ return wrapper++# Record which context holds the document lock so state._unblocked can+# tell the holder apart from other threads while the lock is taken.+ServerSession.with_document_locked = _needs_document_lock( # type: ignore[method-assign]+ _track_document_lock(ServerSession.with_document_locked.__wrapped__) # type: ignore[attr-defined]+)+for _method in ('_handle_push', '_handle_patch'):+ setattr(ServerSession, _method, _needs_document_lock_on_loop(+ _track_document_lock(getattr(ServerSession, _method).__wrapped__)+ ))++ # Patch Server to attach task factory to asyncio loop and handle Admin server context class Server(BokehServer):
Audio from video in jinja Python · 843 + / 225 −
Introduces 34 new declarations in src/transformers/processing_utils.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
src/transformers/processing_utils.py ↗ · 17 files
@@ -2386,6 +2426,279 @@ def _check_special_mm_tokens(self, text: list[str], text_inputs: "BatchFeature", ) +class OmniModalProcessorMixin(ProcessorMixin):+ """+ This is a mixin used to provide additional functionality for omni-modal processor classes,+ including an API to load video and the corresponding audio track. New functions shared by omni+ models should be added here rather than in `ProcessorMixin` to keep simple processors apart from+ more involved models.+ Omni modal models are recommended to use this mixin from now on to get more functionality supported+ for cross-modal interactions.+ """++ @auto_docstring+ def __call__(+ self,+ images: ImageInput | None = None,+ text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = None,+ videos: VideoInput | None = None,+ audio: AudioInput | None = None,+ audio_from_video_indices: list[int] | None = None,+ **kwargs: Unpack[ProcessingKwargs],+ ):+ r"""+ audio_from_video_indices (`list[int]`, *optional*):+ A list that describes the source of each audio slot where+ - `None` -> standalone audio associated with no video track+ - `i` -> audio extracted from videos[i]+ """+ images, text, videos, audio = self.prepare_inputs_layout(+ images=images, text=text, videos=videos, audio=audio, **kwargs+ )+ self.validate_inputs(images=images, text=text, videos=videos, audio=audio, **kwargs)