Streamz plots fill up with whitespace

Using hvplot master or any other recent version plus holoviews 1.13.3 or 1.13.4, along with the fix from #511 to make Streaming.ipynb runnable, some of the streamz hvplots inexorably fill up with whitespace, such as two screenshots from Streaming.ipynb taken a few minutes apart:

I haven't noticed the problem when the same plot is displayed with no other plots in the layout:

Nor have I noticed the problem when there is no backlog:

I also haven't noticed the plot with holoviews 1.13.2:

So I would assume the problem arose in HoloViews between 1.13.2 and 1.13.3, but I've filed the issue here because I don't have a HoloViews-only reproducer.

This appears to happen when the streaming plot is in a layout, doesn't matter what's in that layout though. Still looking into it, suspect something about the range calculation logic is off.

I can't reproduce this error. Instead I get other errors, both on the server and client sides. Streaming support in hvPlot/HoloViews seems pretty limited at the moment. I have no clue how much effort is required to get it to work correctly again. For sure there should be a way for us to avoid future regressions when support is re-established.

Code:
import hvplot.streamz

from streamz.dataframe import Random
df = Random(interval='200ms', freq='50ms')

layout = (df.hvplot.line(width=400, backlog=100) * df.hvplot.scatter(width=400, backlog=100) +
 df.groupby('y').sum().hvplot.bar('y', 'x', width=400) +
 df.hvplot.box(width=400) + df.x.hvplot.kde(width=400, shared_axes=False)).cols(2)
layout

Python error:
2022-10-23 18:56:39,940 - tornado.application - ERROR - Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOLoop object at 0x7fb6d8c6cc40>>, <Task finished name='Task-4' coro=<PeriodicDataFrame._cb() done, defined at /Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/dataframe/core.py:1046> exception=KeyError('factors')>)
Traceback (most recent call last):
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/tornado/ioloop.py", line 741, in _run_callback
    ret = callback()
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/tornado/ioloop.py", line 765, in _discard_future_result
    future.result()
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/dataframe/core.py", line 1052, in _cb
    await asyncio.gather(*source._emit(dict(last=last, now=now)))
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 449, in _emit
    r = downstream.update(x, who=self, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 715, in update
    return self._emit(result, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 449, in _emit
    r = downstream.update(x, who=self, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/sinks.py", line 69, in update
    result = self.func(x, *self.args, **self.kwargs)
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 490, in send
    self.event(data=data)
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 428, in event
    self.trigger([self])
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 184, in trigger
    subscriber(**dict(union))
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 243, in refresh
    raise e
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 239, in refresh
    self._trigger_refresh(stream_key)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 256, in _trigger_refresh
    self.update(key)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 949, in update
    item = self.__getitem__(key)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 435, in __getitem__
    self.update_frame(frame)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/bokeh/element.py", line 1516, in update_frame
    ranges = self.compute_ranges(self.hmap, key, ranges)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 607, in compute_ranges
    self._compute_group_range(group, elements, ranges, framewise,
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 855, in _compute_group_range
    filtered = [r for i, r in zip(ids, values[g]) if i not in prev_ids]
KeyError: 'factors'

JS errors
Uncaught (in promise) Error: invalid bbox {left: NaN, top:<PHONE_NUMBER>0566406, right: NaN, bottom:<PHONE_NUMBER>2441406}
    o http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:389
    bbox http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:444
    z http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:452
    _draw_oriented_labels http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:452
    _draw_major_labels http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:452
    _render http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:452
    render http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:365
    _paint_levels http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:678
    _actual_paint http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:678
    paint http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:678
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:678
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    compute_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    build http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    renderTo http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    f http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:743
    add_document_standalone http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:743
    embed_items_notebook http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:750
    embed_document http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:5
    <anonymous> http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:17
    <anonymous> http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:33
    attachWidget http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    insertWidget http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _insertOutput http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    onModelChanged http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    m http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    l http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    emit http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _onListChanged http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    m http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    l http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    emit http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    push http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _add http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    add http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _onIOPub http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _handleIOPub http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    handleMsg http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _handleMessage http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _msgChain http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    promise callback*19883/b/this._onWSMessage http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _createSocket http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    setTimeout handler*_reconnect http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    reconnect http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restart http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restartKernel http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restart http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restartKernel http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    r http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    execute http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _executeKeyBinding http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    processKeydownEvent http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    evtKeydown http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    handleEvent http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2

Uncaught Error: event model wasn't known
    apply_json_patch http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:324
    process_events http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:1477
    _document_changed http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:1477
    setTimeout handler*_document_changed http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:1477
    _document_listener http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:1477
    _trigger_on_change http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:324
    _push_changes http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:338
    setv http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:338
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:678
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    after_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    compute_layout http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    build http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    renderTo http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:655
    f http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:743
    add_document_standalone http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:743
    embed_items_notebook http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:750
    embed_document http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:5
    <anonymous> http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:17
    <anonymous> http://localhost:8888/lab/workspaces/auto-x/tree/Untitled50.ipynb line 2 > injectedScript:33
    attachWidget http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    insertWidget http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _insertOutput http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    onModelChanged http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    m http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    l http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    emit http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _onListChanged http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    m http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    l http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    emit http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    push http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _add http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    add http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _onIOPub http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _handleIOPub http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    handleMsg http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _handleMessage http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _msgChain http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    promise callback*19883/b/this._onWSMessage http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _createSocket http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    setTimeout handler*_reconnect http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    reconnect http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restart http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restartKernel http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restart http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    restartKernel http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    r http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    execute http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    _executeKeyBinding http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    processKeydownEvent http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    evtKeydown http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2
    handleEvent http://localhost:8888/static/lab/jlab_core.1d4a092221669bba35bb.js?v=1d4a092221669bba35bb:2

I also got this Python error instead of the one reported above:
2022-10-23 18:58:55,145 - tornado.application - ERROR - Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOLoop object at 0x7fb6d8c6cc40>>, <Task finished name='Task-5' coro=<PeriodicDataFrame._cb() done, defined at /Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/dataframe/core.py:1046> exception=KeyError('y_range')>)
Traceback (most recent call last):
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/tornado/ioloop.py", line 741, in _run_callback
    ret = callback()
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/tornado/ioloop.py", line 765, in _discard_future_result
    future.result()
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/dataframe/core.py", line 1052, in _cb
    await asyncio.gather(*source._emit(dict(last=last, now=now)))
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 449, in _emit
    r = downstream.update(x, who=self, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 715, in update
    return self._emit(result, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/core.py", line 449, in _emit
    r = downstream.update(x, who=self, metadata=metadata)
  File "/Users/mliquet/miniconda3/envs/hv-dev38/lib/python3.8/site-packages/streamz/sinks.py", line 69, in update
    result = self.func(x, *self.args, **self.kwargs)
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 490, in send
    self.event(data=data)
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 428, in event
    self.trigger([self])
  File "/Users/mliquet/work/dev/holoviews/holoviews/streams.py", line 184, in trigger
    subscriber(**dict(union))
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 243, in refresh
    raise e
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 239, in refresh
    self._trigger_refresh(stream_key)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 256, in _trigger_refresh
    self.update(key)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/plot.py", line 948, in update
    return self.initialize_plot()
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/bokeh/element.py", line 1390, in initialize_plot
    plot = self._init_plot(key, style_element, ranges=ranges, plots=plots)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/bokeh/element.py", line 487, in _init_plot
    axis_types, labels, plot_ranges = self._axes_props(plots, subplots, element, ranges)
  File "/Users/mliquet/work/dev/holoviews/holoviews/plotting/bokeh/element.py", line 470, in _axes_props
    x_range, y_range = plot_ranges['x_range'], plot_ranges['y_range']
KeyError: 'y_range'


Ability to maximize a pane

[x] I am on the latest Hyper.app version

[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: Linux Mint 19

Hyper.app version: Last .deb

Link of a Gist with the contents of your .hyper.js: https://gist.github.com/burgesQ/9c9afa9d2474e32fa26356055d4e31e1

Relevant information from devtools (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere): none

The issue is reproducible in vanilla Hyper.app: is vanilla

Issue

feature request
I could be great to have the ability to "maximize" a panel like in terminator. Let me explain :

you have 3 pane in the same tab; from one pane you click a specific keymap (let's say ctrl+shift+x) and the current pane take the size of the full tab (so you maximize your pane to the size of the window)
you do your stuffs
from the maximized pane,  you reclick the specific keymap (ctrl+shift+x in this example) and the pane go back to his original size ; the 2 other pane are still their w/ their output & running process

:heart: :tada: :nerd_face:

oops, close cause copy of #3225


Installing on Unix

Hello,
Trying to install on mac OS X Yosemite (10.10.1), using anaconda. Have installed packages in ./PACKAGES manually (curl python-scipy python-matplotlib python-tables firefox imagemagick python-opencv python-bs4) mostly using brew. Following commands threw no warnings:
$ wget -nd http://www.tmbdev.net/en-default.pyrnn.gz
$ mv en-default.pyrnn.gz models/
$ sudo python setup.py install
Test throws following error:
kungfujams-mbp:ocropy-master kungfujam$ ./run-test
clang: warning: -O4 is equivalent to -O3
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Traceback (most recent call last):
File "/Users/kungfujam/anaconda/bin/ocropus-nlbin", line 9, in
import ocrolib
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/init.py", line 12, in
from common import *
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/common.py", line 18, in
import lstm
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/lstm.py", line 32, in
import nutils
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/nutils.py", line 25, in
lstm_native = compile_and_load(lstm_utils)
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/native.py", line 67, in compile_and_load
path = compile_and_find(c_string,**keys)
File "/Users/kungfujam/anaconda/lib/python2.7/site-packages/ocrolib/native.py", line 63, in compile_and_find
raise CompileError()
ocrolib.native.CompileError
This may be a gcc/clang issue as seen here: http://stackoverflow.com/questions/20321988/error-enabling-openmp-ld-library-not-found-for-lgomp-and-clang-errors
Any advice gratefully received.
James

Can you please give me clear guide? I am trying to do so, but I don't understand what does this mean
How should I disable it or get around with this? I am trying to install ocropy on my mac to test some OCR with this.
Thanks

@bbiglari You can search for native.py file and remove openmp argument from compile_and_find


Feature/add document parser

@bennsen can you add The Config and Logistic Classes too from my PR?
https://github.com/Naugrimm/bmecat/pull/1

Hi there. Thank you for collaborating. I will have a look until tomorrow. Cheers BenAm 10.06.2022 17:27 schrieb Hans Mackowiak @.***>:
@bennsen can you add The Config and Logistic Classes too from my PR?
Naugrimm#1
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>


property name & description added

Profile.md updated with Name & Description properties

Validating the pull request

Chenges merged

Branch deleted after pull request merge


Fix security bug

Session might be reused by third party client since $_data persists between requests when cache enabled (by default)
(See Protocols/Http.php:174, $properties have been cleared, $_data have been not)

Thanks. 👍


Update hyperscript "Avoid statements in view methods" docs for clarity

From example Avoid statements in view methods

Constructing an virtual DOM tree procedurally can also potentially trigger expensive deoptimizations

The AVOID example proceeds to generate a list using
    var list = []
    for (var i = 0; i < vnode.attrs.items.length; i++) {
	list.push(m("li", vnode.attrs.items[i]))
    }

while the PREFER example also generates a list but uses the nicer-looking
    vnode.attrs.items.map(function(item) {
	return m("li", item)
    })

Unless I am missing something, both examples are functionally identical and have nothing to do with the quoted text. Is there any example that might relate better to the quoted text?

This was fixed years ago.


Recording Functionality on ImageWidget

I'm finding some compression artifacts with the recording functionality in ImageWidget. Wondering if there is a way we can toggle compression levels, essentially allowing users to move between the default compression level and lossless video generation. This could make the recording feature more broadly useful.

Right now you could manually call fig.recorder.start() with your own kwargs:
https://github.com/fastplotlib/fastplotlib/blob/9a309ef1359244eb3791ddcfebc8b08b2697ae9f/fastplotlib/layouts/_figure.py#L670-L710
Long term I wonder if there's a better way to record video with pygfx, posted https://github.com/pygfx/pygfx/issues/754


Item Qualities can't be added to Armor

What it says in the title. There is no Qualities field on Armor item either:

Implemented


Support elastic search for code search

This PR adds new code search type: elastic search. For highlighter, it uses the default Highlighter because most code files are small files. We get the keyword location on the text by an index function. That maybe not very fast.
~And this PR also missed to store index version to some place. It should not be stored to a file because we assume that there are more than one gitea instances here. Maybe we should store it to database but we need another PR to do that.~

It's ready to review.

has conflicts

Please also add new fields (language, indexed at, commit id)

@6543 resolved @lafriks added.
But I'm still finding a method to store the indexer version to some place. So I block this PR until I find it.
And I will send another PRs related to code search.

Codecov Report

Merging #10273 into master will decrease coverage by 0.11%.
The diff coverage is 15.85%.

@@            Coverage Diff             @@
##           master   #10273      +/-   ##
==========================================
- Coverage   43.71%    43.6%   -0.12%
==========================================
  Files         586      587       +1
  Lines       81351    81612     +261
==========================================
+ Hits        35563    35586      +23
- Misses      41393    41633     +240
+ Partials     4395     4393       -2

Impacted Files
Coverage Δ

modules/indexer/code/elastic_search.go
0% <0%> (ø)

modules/setting/indexer.go
92.68% <100%> (+0.79%)
:arrow_up:

modules/indexer/code/wrapped.go
40.74% <100%> (ø)
:arrow_up:

modules/indexer/code/queue.go
40.42% <25%> (-1.89%)
:arrow_down:

modules/indexer/code/indexer.go
36.17% <28.26%> (-6.46%)
:arrow_down:

modules/indexer/code/bleve.go
67.8% <73.8%> (+3.09%)
:arrow_up:

modules/indexer/stats/db.go
59.37% <0%> (-9.38%)
:arrow_down:

modules/process/manager.go
74.69% <0%> (-3.62%)
:arrow_down:

modules/queue/unique_queue_disk_channel.go
53.84% <0%> (-1.93%)
:arrow_down:

modules/log/event.go
64.61% <0%> (-1.03%)
:arrow_down:

... and 8 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9ed4aee...511cc14. Read the comment docs.

Merge seems to be broken

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@46ef562). Click here to learn what that means.
The diff coverage is 17.58%.

@@            Coverage Diff            @@
##             master   #10273   +/-   ##
=========================================
  Coverage          ?   43.60%
=========================================
  Files             ?      586
  Lines             ?    81209
  Branches          ?        0
=========================================
  Hits              ?    35409
  Misses            ?    41412
  Partials          ?     4388

Impacted Files
Coverage Δ

modules/indexer/code/elastic_search.go
0.00% <0.00%> (ø)

modules/indexer/code/queue.go
40.42% <25.00%> (ø)

modules/indexer/code/indexer.go
36.17% <28.26%> (ø)

modules/indexer/code/bleve.go
68.81% <68.57%> (ø)

modules/indexer/code/wrapped.go
40.74% <100.00%> (ø)

modules/setting/indexer.go
92.50% <100.00%> (ø)

modules/lfs/content_store.go
53.12% <0.00%> (ø)

modules/git/commit_reader.go
0.00% <0.00%> (ø)

models/convert.go
0.00% <0.00%> (ø)

routers/repo/attachment.go
47.57% <0.00%> (ø)

... and 582 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 46ef562...1989d28. Read the comment docs.

We can use version number at the end of index name, for example gitea_codes.v1 and for next version create index named gitea_codes.v2 and use alias gitea_codes for indexing and searching index. Migrating data can also be easily done copying data over from previous index version.

@lafriks done.

@6543 Done.

@6543 Done.

@zeripath Done.

🚀

🎉

Fix #6648


WIP: Update zthin makefile to remove flag

Removed the ifeq ($(OS_IS_RHEL8),1) flag in the zthin-parts makefile to avoid encountering error

Some context: all modern distros (including Ubuntu) seem to need OS_IS_RHEL8=1 make instead of make, otherwise you get libzthin.so: undefined reference to get_myaddress'`
This PR makes it the "normal" behaviour to link libtirpc.


SSH access to Azure Arc-enabled servers

New scenario highlighting how to connect to an Azure Arc-enabled server via SSH

applied the changes and updated screenshot


Create Camel BLE component for Kura

Closed on behalf of - https://github.com/eclipse/kura/issues/132 .


Emails

I realized that maybe before we do #125 (emailing beta testers), we may want to actually have an email server in place.
Also, I'm not sure how to make individual emails work again. I might just attach this to the CoursesPlus Internal stuff.
paging @medensqui @nywillb @willweinstein

@thatoddmailbox That works, also should we promote it to C+ users?

@medensqui maybe not now, but as things stabilize maybe. Or maybe we should do it if/when CoursesPlus gets a PlanHub service.

@thatoddmailbox courses plus internal stuff? pls explain, i dont really know anything about courses plus

@willweinstein it is an evil secret control panel for coursesplus people where they can sign in and do admin stuff and check their email.

@thatoddmailbox am I on it? pls dont be annoying because if you just put planhub stuff on the coursesplus internals, i wont be able to do anything

@willweinstein Now you are not, but if I put the planhub stuff on it, you would be.

@thatoddmailbox ok

@thatoddmailbox https://www.zoho.com/mail/

@nywillb but 10 users, storage limits, and can't easily connect scripts and programs to it. The nice thing about hosting a mail server (like for CoursesPlus) is that you can make programs connect to it and autorespond to emails and fun things.

@thatoddmailbox Found It!
PHP: http://www.afterlogic.com/webmail-client
ASP.NET: http://www.afterlogic.com/webmail-client-asp-net

@nywillb ummm. The PHP version of AfterLogic webmail lite is what's already used for CoursesPlus, and would be used for PlanHub email too.
We don't have Pro because that costs monies.

Yes

@nywillb ?

@thatoddmailbox http://www.afterlogic.com/wiki/Branding_(WebMail) for coursesPlus (it might be only pro)

@thatoddmailbox is this finished?

@nywillb plox look at slack for things

Channel?

This has been done; if you don't have an email, annoy me on Slack.


Hello react rails frontend

Pull Request: Adding Random Greeting Feature
This pull request adds the random greeting feature to the 'hello-react-front-end' and 'hello-rails-back-end' projects. It includes the following changes:
Rails API Changes:

Added a Greetings table to the Postgres database.
Created 5 different greetings in the Greetings table.
Implemented an API endpoint /greetings/random that selects a random greeting from the table.
Created a GreetingsController with the random action to handle the API request.
Updated the routes file to include the route for the /greetings/random endpoint.

Please review the changes in the Rails API branch: [link to branch or pull request]
React Front-End Changes:

Created the hello-react-front-end project with React.
Set up the App component with react-router for routing.
Created the Greeting component that displays a random greeting.
Implemented a Redux store, an action, and a reducer to connect to the API endpoint and fetch the random greeting.
Displayed the random greeting in the Greeting component.

Please review the changes in the React front-end branch: [link to branch or pull request]
Additional Updates:

Added links to the React app in the README file of the Rails API project.
Added links to the Rails API in the README file of the React app.

Please review and provide feedback on the changes. Thank you!

Please feel free to reach out to me via slack, i am always available


Websocket secure server control frames bug (IDFGH-7209)

Hi,
The ping sent by client application and received by server are bug.
Same problem than this bug open by me eight months ago.
I think the patch was not applied to any esp-idf.
https://github.com/espressif/esp-idf/issues/7493

Confirmed !!!!!!!
The patch was not applied to esp-idf !!!!!
Please update this !!!!!

@baldhead69 Yes, it was not applied to any idf version. I think userspace parse the payload in PING control frame is not very common. Our websocket server only need support common case. If you need this, you can apply patch manually.

@ESP-YJM ,
There is no payload.
The problem is another.
The patch need to be applied in esp-idf.
Test with client send ping without payload and you will see de problem.

@baldhead69 Do you mean this patch(https://github.com/espressif/esp-idf/files/7095983/1.zip)?

This patch:
https://github.com/espressif/esp-idf/issues/7493#issuecomment-911143105

@baldhead69 Yes, it was not applied to any idf version. I think userspace parse the payload in PING control frame is not very common. Our websocket server only need support common case. If you need this, you can apply patch manually.

@ESP-YJM By common use-case do you mean client not sending PINGS and only the server doing the same, or you mean server not parsing the payload that comes with the PING?
If it's the latter - I think the PING payload is an optional thing according to the standards. But the library here doesn't support an incoming zero payload PING. I get a warning first as "httpd_ws: httpd_ws_recv_frame: Failed to receive the second byte" and finally the error
"wss_echo_server: httpd_ws_recv_frame failed to get frame len with -1".
I don't think @baldhead69 here is asking for the ability of the user to parse the PING payload. If I am not mistaken, they want the zero payload PING to be allowed and that when there is such a PING request from the client a PONG response to be sent subsequently.
If it's the former, if you think it's not common for clients to send PINGS - well if might be true for browsers, but what about non-browser clients? I am using ESP-32 for my IoT project and want my android client, which is connected locally to the ESP device via a websocket connection, to be able to let the user know of any disconnections from the server side. And to achieve that I need to send PINGS to the server at certain intervals. I don't think this is an unusual use-case.

@ansuman87 ,
The patch that i commented above resolve this bug, but espressif team dont want to add this patch to esp idf.
Why ? I dont know.

@baldhead69 Thank for the reply. I tried the patch, even though the terminal said patch was unsuccessful, I think it was successful. And coming to my observations, I found that this time the PINGS are accepted by the server, but there are no PONG responses, so my client (OkHttp Websocket) closes the connection. Indeed, when I checked the change in the patch, in the "httpd_ws.c" file, a blob of code corresponding to sending of PONG response is absent in the patch. Are there any other changes in any other part of the file/repo that I missed? Please let me know.
On another note are you/ have you implemented the sending of PONG response yourself? I will try to find the actual problem in the part of the code prior to the patch.

I think that when the handle_ws_control_frames = true, the background websocket lib dont send pong, maybe if handle_ws_control_frames = false the background websocket lib respond with a pong.
In my case i used handle_ws_control_frames = true and i implemented a pong response when i receive a ping frame inside uri handler.

@ESP-YJM ,
The close frame received of client have some problems too.
Sometimes the close frame received from client are Ok.
// typedef void (*httpd_close_func_t)(httpd_handle_t hd, int sockfd);

static void closed_socket_handler(httpd_handle_t hd, int sockfd)
{
    ESP_LOGI(WSS_SERVER_TAG, LOG_USER("Closed socket handler:"));
    ESP_LOGI(WSS_SERVER_TAG, LOG_USER("hd = %p"), hd);
    ESP_LOGI(WSS_SERVER_TAG, LOG_USER("Closed socket = %d\n"), sockfd);

    closes_socket_instantly(hd, sockfd);
}

////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
// Closes the socket instantly, freeing up server resources.

static inline void closes_socket_instantly(httpd_handle_t hd, int sockfd)
{
    struct linger linger;
    linger.l_onoff = 1;
    linger.l_linger = 0;

    int ret = setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger) );
    if( ret == 0 )
    {
        ESP_LOGI(WSS_SERVER_TAG, "Set SO_LINGER success");
        close(sockfd); // Now call close will send RST to peer and free pcb immediately.
    }

    ESP_LOGI(WSS_SERVER_TAG, "Heap: %d", esp_get_free_heap_size());
    ESP_LOGI(WSS_SERVER_TAG, "MALLOC_CAP_SPIRAM: %d", heap_caps_get_free_size(MALLOC_CAP_SPIRAM) );
    ESP_LOGI(WSS_SERVER_TAG, "MALLOC_CAP_INTERNAL: %d\n", heap_caps_get_free_size(MALLOC_CAP_INTERNAL) );
}

Error:
W (16266) httpd_ws: httpd_ws_get_frame_type: Failed to read header byte (socket FD invalid), closing socket now
I (16266) WSS_SERVER: URI HANDLER:
I (16271) WSS_SERVER: req->method = 0

E (16276) esp-tls-mbedtls: read error :-0x004C:
W (16282) httpd_ws: httpd_ws_recv_frame: Failed to receive the second byte
I (16289) WSS_SERVER: httpd_ws_recv_frame failed with: ESP_FAIL

I think I found the issue. In the "httpd_ws.c" file, if I remove/comment the following lines, I am able to send the PONG responses.
if(httpd_ws_recv_frame(req, &frame, 126) != ESP_OK) {
ESP_LOGD(TAG, LOG_FMT("Cannot receive the full PING frame"));
return ESP_ERR_INVALID_STATE;
}
Of course in my ws_handler I had to bypass this check(for calculating frame length) - httpd_ws_recv_frame() just for the HTTPD_WS_TYPE_PING type.
I am wondering what is the significance of the above lines in the code? @ESP-YJM Is it for security reasons?

So sorry for replying so late. @baldhead69 @ansuman87 I think the root reason that show wss_echo_server: httpd_ws_recv_frame failed to get frame len with -1 is that the esp_http_server(websocket) has read the PING frame internal by httpd_ws_get_frame_type, and when you enable handle_ws_control_frames = true, the userspace code will call httpd_ws_recv_frame to read PING frame again. So error occur.  I will raise a MR to fix it.


how to use vue-router with vite-plugin-vue2

how to use vue-router and vue 2.7 with this plugin?

You install it and use it as a regular npm dependency.
Please use https://github.com/vitejs/vite/discussions moving forward, or join https://chat.vuejs.org or https://chat.vitejs.dev for questions.


Game not saving

My steps to produce this issue:

Played SMB Deluxe on your hosted fork (version before 3.0.4). Created a save file via game (not a state save). Exited app.
Started the app. Received notice saying 3.0.4 was available and I needed to restart app. Did so.
Restarted app. Logged out of Google Drive. Logged into Google Drive again.
Opened SMB Deluxe. Previous save loaded successfully.
Advanced one stage. Re-saved. Exited app.
Restarted app. Opened SMB Deluxe. Save from prior to 3.0.4 upgrade is loaded.

Basically a save file created prior to 3.0.4 and Google Drive log in/out can’t be overwritten in 3.0.4. BTW, deleting the app from home screen and re-adding via Safari allowed new saves to be created in SMB Deluxe using 3.0.4 but at the cost of my previous save files.

The problem was caused by a merge conflict related to indexeddb primary keys that I resolved incorrectly. It caused two copies of the save to be added to the db and one was being read from and the other one was being written to. The only way to fix it was to clean out the db so I added a "Clear save data" button in the settings so that anyone having issues can clear the db without having to reinstall and sign in again.


run-tedge-postinsts service doesnt fail when one of the scripts fail

While preparing 0.9.0 release, found the following behaviour:
root@qemux86-64:~# systemctl status run-tedge-postinsts
* run-tedge-postinsts.service - Run pending thin-edge postinsts
     Loaded: loaded (/lib/systemd/system/run-tedge-postinsts.service; disabled; vendor preset: enabled)
     Active: active (exited) since Fri 2023-02-03 15:06:08 UTC; 7min ago
    Process: 258 ExecStart=/bin/sh /usr/sbin/run-tedge-postinsts (code=exited, status=0/SUCCESS)
    Process: 266 ExecStartPost=/bin/systemctl --no-reload disable run-tedge-postinsts.service (code=exited, status=0/SUCCESS)
   Main PID: 258 (code=exited, status=0/SUCCESS)

Feb 03 15:06:07 qemux86-64 sh[258]: Running tedge postinst /etc/tedge-postinsts//etc/tedge-postinsts/4-tedge-agent...
Feb 03 15:06:07 qemux86-64 sh[258]: ERROR: postinst /etc/tedge-postinsts//etc/tedge-postinsts/4-tedge-agent failed.
Feb 03 15:06:07 qemux86-64 sh[258]: Running tedge postinst /etc/tedge-postinsts//etc/tedge-postinsts/5-tedge-watchdog...
Feb 03 15:06:07 qemux86-64 sh[258]: ERROR: postinst /etc/tedge-postinsts//etc/tedge-postinsts/5-tedge-watchdog failed.
Feb 03 15:06:07 qemux86-64 sh[258]: Running tedge postinst /etc/tedge-postinsts//etc/tedge-postinsts/6-c8y-log-plugin...
Feb 03 15:06:07 qemux86-64 sh[258]: ERROR: postinst /etc/tedge-postinsts//etc/tedge-postinsts/6-c8y-log-plugin failed.
Feb 03 15:06:07 qemux86-64 sh[258]: Running tedge postinst /etc/tedge-postinsts//etc/tedge-postinsts/7-c8y-configuration-plugin...
Feb 03 15:06:07 qemux86-64 sh[258]: ERROR: postinst /etc/tedge-postinsts//etc/tedge-postinsts/7-c8y-configuration-plugin failed.
Feb 03 15:06:08 qemux86-64 systemctl[266]: Removed /etc/systemd/system/multi-user.target.wants/run-tedge-postinsts.service.
Feb 03 15:06:08 qemux86-64 systemd[1]: Finished Run pending thin-edge postinsts.

Instead the unit should exit on the first script failure. Moreover, there is no log describing what went wrong, only that the script failed. Error reporting could also be improved there.

Fixed in #63 as we dont rely on tedge-postinst.service anymore


Run type-annotation linters in CI environment

The goal si to verify the code and its annotations are compatible with Python packages shipped as system packages.
Pull Request Checklist

[ ] implement the feature
[ ] write the documentation
[ ] extend the test coverage
[ ] update the specification
[ ] adjust plugin docstring
[ ] modify the json schema
[ ] mention the version
[ ] include a release note

How about bumping some of the minimum requirements?

jinja2 >= 3.0: can get rid of types-jinja2
types-jsonschema might not be necessary anymore? Seems like the simple typing are merged (primary issue), and it's mainly quite advanced typing that we most likely will not use that is still open.
types-urllib3 can be removed once urllib3 >= 2.0 is landed. Epel9 might be tricky though.
types-babel can be removed from 2.12.1. Didn't find what the version is on Epel9, F39 can remove already
types-setuptools :shrug: what is this one used at?
types-docutils, types-Markdown, types-requests still needed for the foreseeable future.

But does mypy not have a more to automatically download the missing typings from typeshed?

How about bumping some of the minimum requirements?

As long as they can be satisfied with RPMs available to us, I don't see a problem in general. I'm not sure what would happen if we bump a package version too much, rpmbuild would fail?

jinja2 >= 3.0: can get rid of types-jinja2
types-jsonschema might not be necessary anymore? Seems like the simple typing are merged (primary issue), and it's mainly quite advanced typing that we most likely will not use that is still open.
types-urllib3 can be removed once urllib3 >= 2.0 is landed. Epel9 might be tricky though.
types-babel can be removed from 2.12.1. Didn't find what the version is on Epel9, F39 can remove already
types-setuptools 🤷 what is this one used at?

Maybe something related to reousrce_files, importlib? I don't recall we'd use packaging-related functionality in tmt code for anything beyond that.

types-docutils, types-Markdown, types-requests still needed for the foreseeable future.

But does mypy not have a more to automatically download the missing typings from typeshed?

It does download missing types, with --install-types, on the other hand it seemed better to list them explicitly and make sure they are present in mypy and pyright environments rather than leave it on linter guessing.

types-setuptools 🤷 what is this one used at?

Maybe something related to reousrce_files, importlib? I don't recall we'd use packaging-related functionality in tmt code for anything beyond that.

types-setuptools seems to only cover pkg_resources and distutils, both of which tmt seems to have already upgraded. That's why I was asking.

But does mypy not have a more to automatically download the missing typings from typeshed?

It does download missing types, with --install-types, on the other hand it seemed better to list them explicitly and make sure they are present in mypy and pyright environments rather than leave it on linter guessing.

Good to keep this option in mind. If we end up decommissioning the pre-commit in favor of this workflow, that might be necessary to get the typeshed. At the very least it is worth making a temp commit running it with --install-types to see if it uses the restrictions as described in the previous comment


Incorrect evaluation

Challenge http://www.freecodecamp.com/challenges/bonfire-symmetric-difference has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
Hi! as you can see in both screenshots the result of the first evaluation check for sym([1, 2, 3], [5, 2, 1, 4]) is [3, 5, 4] but the check says it is incorrect.

Thanks


Performance improvements, and handling all architectures

Better compiler flags (more performant, by an order of magnitude) especially DNDEBUG for stripping debug statements. The other flag changes are basically using the same flags that are present in the iosbuild.sh file that webp team ships.

Let's have both x86_64 AND i386 architectures (for iPad2 and iPhone5/5s sims).

Thanks!


Reduce duplicated code that lead to incoherent resize on some web platform.

The fix works great - just a couple of random comments not needed anymore I think


Is it not possible anymore to specify labels along with the legend in a Pie Chart?

I saw this pull-request https://github.com/nnnick/Chart.js/pull/35
That allowed to do this:

But the code does not seems to work anymore (and I could not find it in the current master also) is there a better way to do this now?
PS: awesome work on chart.js :+1: !

@FGRibreau I've combined all these requests in #78 since they are all very similar. If you look through the comments there, there are some solutions that you could use.

This is awesome @etimberg, thanks a lot!  I'm sorry I was not able to find it myself!

@etimberg I don't find a way to setup a plugin method that get called once the animation ends
{
    beforeInit: function(chartInstance) { },
    afterInit: function(chartInstance) { },

    resize: function(chartInstance, newChartSize) { },

    beforeUpdate: function(chartInstance) { },
    afterScaleUpdate: function(chartInstance) { }
    beforeDatasetsUpdate: function(chartInstance) { }
    afterDatasetsUpdate: function(chartInstance) { }
    afterUpdate: function(chartInstance) { },

    // This is called at the start of a render. It is only called once, even if the animation will run for a number of frames.

@FGRibreau there is no plugin call for after rendering fully finished (ie only after the last frame of animation). afterDraw will do after each frame

@etimberg maybe it should be implemented don't you think? Would you accept a PR for it?

@FGRibreau I would accept a PR adding it (could call it at the same place the onComplete animation callback is called)


Broken Doctrine integration in 1.0

When using a recent version of doctrine/persistence the following exception is thrown:
The object "Doctrine\Persistence\ObjectManager" which was specified as a property in the object configuration of object "Neos\EventSourcing\ProcessManager\State\StateRepository" (automatically registered class) does not exist.

This is due to a breaking change in Doctrine that basically removed the Doctrine\Common\Persistence\ObjectManager

Fixed with 1.0.1


Local result dir

Fix #500

Codecov Report

Merging #523 into master will decrease coverage by 0.91%.
The diff coverage is 63.91%.

@@             Coverage Diff              @@
##             master     #523      +/-   ##
============================================
- Coverage     80.33%   79.42%   -0.92%
- Complexity      639      655      +16
============================================
  Files            74       75       +1
  Lines          2029     2075      +46
  Branches        259      275      +16
============================================
+ Hits           1630     1648      +18
- Misses          251      263      +12
- Partials        148      164      +16

This PR contains commits related to #456. But local result dir implementation looks good to me.

I updated to base branch to avoid the unrelated commits.


Add shortcode ParamsType function

It would be helpful to know whether a shortcode was called with positional or
named parameters.  This commit adds a ParamsType function that returns name
or position.
If this proposed change is acceptable, I can write tests for it.

I agree this is useful, but I would just make a bool IsNamedParams or bool IsPosParams -- I fail to see how we'll get a third option in there.

Reworked this PR to change to a boolean IsNamedParams property in ShortcodeWithPage.  Tests included.  Rebased commits to keep this clean.

Merged in fde47c5
Would be nice with 1 line in the documentation about this, see #1607


Request for the implementation and training code of the comparative resnet

Thank you very much for your wonderful work MedViT, if possible, could you please open source the implementation and training code of the comparative resnet? Your work is very much appreciated.

The implementation of the comparative ResNet can be easily applied to our code by making changes to the model line.
from MedViT import MedViT_small as tiny   >>>>>>>  model = timm.create_model('resnet50', num_classes=10)


Python 3.10 images

Just wondering if it would be possible to add the Python 3.10 experimental builds as an image like you did with Python 3.9 when it was first started.
Reason I ask is that python.org now list Python 3.10 under their documentation as a development release, so this would help the project I am working on to add experimental 3.10 support to our CI pipeline.
Many thanks :)

Unfortunately, 3.10 is now under development, but hasn't had an official pre-release yet (which is where our Python 3.9 builds come from).
See https://www.python.org/download/pre-releases/ -- once there's an official 3.10 pre-release, we'll (eagerly) update to consume it! :sweat_smile:


feat: Add AuthenticationFlowBindingOverrides to Keycloak Client

Pull Request Template
Description
I needed the ability to use a client specific setup for browser and direct grant flows. This allows overriding those two auth flows on a client basis.
Fixes #116
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Enhancement (non-breaking change which improves an existing feature or documentation)
[ ] Breaking change (fix or feature that would cause existing functionality not to work as expected)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
Checklist:

[X] I have performed a self-review of my code
[X] I have commented on my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] Pull Request contains one commit. I squash my commits.

/recheck

@SergK  We can merge this PR.


very unstable

I used cuda12.1 pytorch 2.1.2 and although it was successfully deployed, I have not yet successfully generated a model. I hope to receive help.
Contains the following errors:
CUDA kernel failed : no kernel image is available for execution on the device void group_points_kernel_wrapper(int, int, int, int, int, const float *, const int *, float *) at L:38 in D:\TriplaneGaussian\tgs\models\snowflake\pointnet2_ops_lib\pointnet2_ops_ext-src\src\group_points_gpu.cu
(It seems that my architecture does not support it) (Occasionally)
Traceback (most recent call last): File "", line 1, in File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main exitcode = _main(fd, parent_sentinel) File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 125, in _main prepare(preparation_data) File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 236, in prepare _fixup_main_from_path(data['init_main_from_path']) File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path main_content = runpy.run_path(main_path, File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 289, in run_path return _run_module_code(code, init_globals, run_name, File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 96, in _run_module_code _run_code(code, mod_globals, init_globals, File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "D:\TriplaneGaussian\gradio_app.py", line 39, in model = TGS(cfg=base_cfg.system).to(device) File "D:\TriplaneGaussian\infer.py", line 94, in init self.load_weights(self.cfg.weights, self.cfg.weights_ignore_modules) File "D:\TriplaneGaussian\infer.py", line 50, in load_weights state_dict = load_module_weights( File "D:\TriplaneGaussian\tgs\utils\misc.py", line 37, in load_module_weights ckpt = torch.load(path, map_location=map_location) File "D:\TriplaneGaussian\env\lib\site-packages\torch\serialization.py", line 993, in load with _open_zipfile_reader(opened_file) as opened_zipfile: File "D:\TriplaneGaussian\env\lib\site-packages\torch\serialization.py", line 447, in init super().init(torch._C.PyTorchFileReader(name_or_buffer)) RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory
(Abnormal model reading) (Occasional)
Traceback (most recent call last): File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1132, in _try_get_data data = self._data_queue.get(timeout=timeout) File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\queues.py", line 114, in get raise Empty _queue.Empty
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 456, in call_prediction output = await route_utils.call_process_api( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\route_utils.py", line 232, in call_process_api output = await app.get_blocks().process_api( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1522, in process_api result = await self.call_function( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1144, in call_function prediction = await anyio.to_thread.run_sync( File "D:\TriplaneGaussian\env\lib\site-packages\anyio\to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 2134, in run_sync_in_worker_thread return await future File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 851, in run result = context.run(func, *args) File "D:\TriplaneGaussian\env\lib\site-packages\gradio\utils.py", line 674, in wrapper response = f(*args, **kwargs) File "D:\TriplaneGaussian\gradio_app.py", line 111, in run infer(image_path, cam_dist, only_3dgs=True) File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "D:\TriplaneGaussian\gradio_app.py", line 96, in infer for batch in dataloader: File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 630, in next data = self._next_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1328, in _next_data idx, data = self._get_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1294, in _get_data success, data = self._try_get_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1145, in _try_get_data raise RuntimeError(f'DataLoader worker (pid(s) {pids_str}) exited unexpectedly') from e RuntimeError: DataLoader worker (pid(s) 33816) exited unexpectedly Traceback (most recent call last): File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1132, in _try_get_data data = self._data_queue.get(timeout=timeout) File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\queues.py", line 114, in get raise Empty _queue.Empty
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 456, in call_prediction output = await route_utils.call_process_api( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\route_utils.py", line 232, in call_process_api output = await app.get_blocks().process_api( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1522, in process_api result = await self.call_function( File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1144, in call_function prediction = await anyio.to_thread.run_sync( File "D:\TriplaneGaussian\env\lib\site-packages\anyio\to_thread.py", line 56, in run_sync return await get_async_backend().run_sync_in_worker_thread( File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 2134, in run_sync_in_worker_thread return await future File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 851, in run result = context.run(func, *args) File "D:\TriplaneGaussian\env\lib\site-packages\gradio\utils.py", line 674, in wrapper response = f(*args, **kwargs) File "D:\TriplaneGaussian\gradio_app.py", line 111, in run infer(image_path, cam_dist, only_3dgs=True) File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context return func(*args, **kwargs) File "D:\TriplaneGaussian\gradio_app.py", line 96, in infer for batch in dataloader: File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 630, in next data = self._next_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1328, in _next_data idx, data = self._get_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1294, in _get_data success, data = self._try_get_data() File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1145, in _try_get_data raise RuntimeError(f'DataLoader worker (pid(s) {pids_str}) exited unexpectedly') from e RuntimeError: DataLoader worker (pid(s) 33816) exited unexpectedly
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 501, in process_events response = await self.call_prediction(awake_events, batch) File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 465, in call_prediction raise Exception(str(error) if show_error else None) from error
Then accompanied by various error free crashes,
I have checked the online version using A10G, and I am using 4090 and 64G memory, which should not be insufficient. But the process often stops

We haven't tested it on Windows; the error seems to be from the pointnet2_ops_lib (https://github.com/erikwijmans/Pointnet2_PyTorch), we will find a Windows machine and test it later.

Thank you very much. Almost all errors occur during the model generation phase. Several Python processes start and either an error occurs or there is no error but no feedback for a long time (no unresponse)

I was running into a similar issue and was able to resolve it by editing setup.py before installing pointnet2_ops to include the cuda arch I am using. It appears it's not configured to include architectures from anything newer than 20xx cards.
My steps:

Clone repo/setup fresh env
Proceed with installation until before the step Install pointnet2_ops
Edit line 19 of \tgs\models\snowflake\pointnet2_ops_lib\setup.py by referencing the chart here
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;"
changed to
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;8.0;8.6;8.7"
since I am using a 3090.
Save and continue installation as normal

I have enabled the script with administrator privileges, but I still have this issue.
load model ckpt done.
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 126, in _main
self = reduction.pickle.load(from_parent)
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\connection.py", line 967, in rebuild_pipe_connection
handle = dh.detach()
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\reduction.py", line 131, in detach
return _winapi.DuplicateHandle(
PermissionError: [WinError 5] 拒绝访问。
Probability includes the following issues
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 456, in call_prediction
output = await route_utils.call_process_api(
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\route_utils.py", line 232, in call_process_api
output = await app.get_blocks().process_api(
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1522, in process_api
result = await self.call_function(
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\blocks.py", line 1144, in call_function
prediction = await anyio.to_thread.run_sync(
File "D:\TriplaneGaussian\env\lib\site-packages\anyio\to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 2134, in run_sync_in_worker_thread
return await future
File "D:\TriplaneGaussian\env\lib\site-packages\anyio_backends_asyncio.py", line 851, in run
result = context.run(func, *args)
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\utils.py", line 674, in wrapper
response = f(*args, **kwargs)
File "D:\TriplaneGaussian\gradio_app.py", line 111, in run
infer(image_path, cam_dist, only_3dgs=True)
File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "D:\TriplaneGaussian\gradio_app.py", line 96, in infer
for batch in dataloader:
File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 630, in next
data = self._next_data()
File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1328, in _next_data
idx, data = self._get_data()
File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1294, in _get_data
success, data = self._try_get_data()
File "D:\TriplaneGaussian\env\lib\site-packages\torch\utils\data\dataloader.py", line 1145, in _try_get_data
raise RuntimeError(f'DataLoader worker (pid(s) {pids_str}) exited unexpectedly') from e
RuntimeError: DataLoader worker (pid(s) 9944) exited unexpectedly
The above exception was the direct cause of the following exception:（It seems that it has not affected the operation）
Traceback (most recent call last):
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 501, in process_events
response = await self.call_prediction(awake_events, batch)
File "D:\TriplaneGaussian\env\lib\site-packages\gradio\queueing.py", line 465, in call_prediction
raise Exception(str(error) if show_error else None) from error
Exception: None
Exception ignored in: <function _ConnectionBase.del at 0x000001FE5DC18790>
Traceback (most recent call last):
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\connection.py", line 137, in del
self._close()
File "C:\Users\Sariel\AppData\Local\Programs\Python\Python310\lib\multiprocessing\connection.py", line 282, in _close
_CloseHandle(self._handle)
OSError: [WinError 6] 句柄无效。

I was running into a similar issue and was able to resolve it by editing setup.py before installing pointnet2_ops to include the cuda arch I am using. It appears it's not configured to include architectures from anything newer than 20xx cards.
My steps:

Clone repo/setup fresh env
Proceed with installation until before the step Install pointnet2_ops
Edit line 19 of \tgs\models\snowflake\pointnet2_ops_lib\setup.py by referencing the chart here
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;"
changed to
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;8.0;8.6;8.7"
since I am using a 3090.
Save and continue installation as normal

Hi @salier, maybe try this and see if it is a solution?

I was running into a similar issue and was able to resolve it by editing setup.py before installing pointnet2_ops to include the cuda arch I am using. It appears it's not configured to include architectures from anything newer than 20xx cards.
My steps:

Clone repo/setup fresh env
Proceed with installation until before the step Install pointnet2_ops
Edit line 19 of \tgs\models\snowflake\pointnet2_ops_lib\setup.py by referencing the chart here
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;"
changed to
os.environ["TORCH_CUDA_ARCH_LIST"] = "5.0;6.0;6.1;6.2;7.0;7.5;8.0;8.6;8.7"
since I am using a 3090.
Save and continue installation as normal

Hi @salier, maybe try this and see if it is a solution?

I followed this operation and there were still errors.

Dear author, I am very interested in your work.
But some problems occurred while reproducing your code. My hardware and software parameters are: 3090, cuda12.1, python=3.8, pytorch=2.1.2. The deployment of the environment has been completed, but an error occurred during inference: 段错误 (核心已转储)
Here's what I do:
Step 1: Enter the command in the terminal: python infer.py --config config.yaml data.image_list=[test.jpg,] --image_preprocess, but an error is reported: 段错误 (核心已转储), as shown in the figure:
img_v3_02b7_2cf2ed05-a379-479a-b8ca-984e9bd93c3g
Step 2: Print where there may be problems, trying to find which line of code has the problem. Finally, it is found that the error caused by this line of code : self.point_encoder = tgs.find(self.cfg.pointcloud_encoder_cls)(self.cfg.pointcloud_encoder) . Further exploration revealed that it was a problem with the module = importlib.import_module(module_string, package=None) code in tgs.find.
The code is located as follows:
img_v3_02b7_7704fe0f-bbc6-4a24-a680-99b260f77b7g
img_v3_02b7_3640c44e-d51e-4e85-948a-1735788f1f8g
Could you give me some advice on this issue?
I would be very grateful if I could receive any help from you! ! !
Thank you again for such a great job! ! !


Add Clang sanitizer documentation to readme and fix asan bug in emfcodec

@akoeplinger @filipnavara could it be a good idea to run this on the Mac OS CI? It would prevent future regressions/exploitable bugs

Sounds reasonable to me. The Travis macOS builds are currently the fastest ones, so it should not slow down the whole build process overall. The build tools there also seem reasonably up to date, unlike the Ubuntu ones.


Chain App Store

As a user
I want to have one source of information and interaction for all my blockchain relevant information
So that I take use of the full inter-blockchain communication capabilities cosmos provides.
Idea:

Have an "app store" for all lite-node clients of all chains connected to cosmos

Users can add those apps to their wallet by a click of a button
After adding the app, a user can view the chain related information and interact with the chain

Questions:

Where does the user get the "apps" from to know they are secure?

Idea: Setup list of trusted resources (calculating consensus between them)

Does every app provide a individual UI?

@gamarin2


Prompt SELECTEDCODE7662 leaked into Cody fix

Version v0.17.1701788840 in VS Code
Repro: Ask Cody to fix, and then I saw the following code get inserted:

I have not seen this happen more than once.

Marking as P2 as it seems to only happen rarely

closing for now, if it surfaces again please re-open!


[Ars Magica 5th] Quality of Life for chat menus

Changes / Comments

In the custom roll template, made roll button / inline roll colours ! important (sometimes there is a conflict with the grey coloring of rows), and changed the CSS to target only div, to protect <a> tags inside the template
Added keys (lalign and ralign) to control alignement of the columns. This allows for tailored chat menus formatting layout

Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[X] Does the pull request title have the sheet name(s)? Include each sheet name.
[X] Is this a bug fix?
[X] Does this add functional enhancements (new features or extending existing features) ?
[X] Does this add or change functional aesthetics (such as layout or color scheme) ?
[X] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[X] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Make leader election work transparently

Is your feature request related to a problem? Please describe.
The client-go leader election code typically defaults to the in-cluster namespace (from /var/run/secrets/kubernetes.io/serviceaccount/namespace mounted into the pod). For pods in synced namespaces, the namespace name in the workload cluster (kcp) is different from the namespace name in the control plane in kcp. If the kcp namespace doesn't exist in the control plane, the leader election code will fail to create the lock resource.
Describe the solution you'd like
Transparently support leader election in workload clusters, somehow.
Describe alternatives you've considered
Additional context

As of today, all Pods running in the physical cluster get direct access to kcp in their in-cluster configurations, so if this does not work, it's a bug, right? As noted, right now the namespace key in the secret we mount uses DownwardAPI, but this is the namespace in the physical cluster, so in what case is that actually what we want?
/cc @jmprusi

It should be the namespace name from kcp

@ncdc can we close this one? looks like the code is already merged into KCP https://github.com/kcp-dev/kcp/commit/4252b4fa48782930b189c54ecd1edd39a7a5ee53

Yes, thanks


Remove support for accessdev

This fork of mosrs-setup is not tested on accessdev and is no longer meant to run there. Remove all support for accessdev other than printing an error message if accidentally run on accessdev.

The associated branch also addresses issues #19 and #20.


docs: Moved 20px margin from child to the parent.

its a bug right there that i fixed ^

What page did you see this on? The menu should not be empty

What page did you see this on? The menu should not be empty

https://pinia.vuejs.org/api/interfaces/pinia.mapstorescustomization.html#interface-mapstorescustomization Its right here

Thank you but this creates too many pages on other pages which are more visited. Since we are moving to vue theme very soon, I don't think it's worth changing this as it does require a few changes to other paddings as well


exit always when read_bpf() fails

I think in read_bpf() we should return false on all errors and let open_socket_rx() handle the return value:
static bool read_bpf(char *bpfname)
{
...

if((fh_filter = fopen(bpfname, "r")) == NULL) return false;
if((len = fgetline(fh_filter, 128, linein)) < 0) return false;
sscanf(linein, "%"SCNu16, &bpf.len);
if(bpf.len == 0) return false;
bpf.filter = (struct sock_filter*)calloc(bpf.len, sizeof(struct sock_filter));
c = 0;
bpfptr = bpf.filter;
while(c < bpf.len)
	{
	if((len = fgetline(fh_filter, 128, linein)) == -1)
		{
		bpf.len = 0;
		break;
		}
	sscanf(linein, "%" SCNu16 "%" SCNu8 "%" SCNu8 "%" SCNu32, &bpfptr->code, &bpfptr->jt, &bpfptr->jf, &bpfptr->k);
	bpfptr++;
	c++;
	}
if(bpf.len != c) return false;
fclose(fh_filter);
return true;
}

static bool open_socket_rx(char *bpfname)
{
...
if(bpfname != NULL)
	{
	if(read_bpf(bpfname) == false)
		{
		errorcount++;
		fprintf(stderr, "failed to read BPF\n");
		return false;
		}
	}
...

Currently in case of some corrupt BPFs this can happen:
$ cat protect.bpf
10
10

$ sudo ./hcxdumptool -i wlp0s20f0u1 --bpf=protect.bpf

Requesting interface capabilities. This may take some time.
Please be patient...

interface information:
...
failed to read Berkeley Packet Filter

This is a highly experimental penetration testing tool!
It is made to detect vulnerabilities in your NETWORK mercilessly!

BPF is unset! Make sure hcxdumptool is running in a 100% controlled environment!

Initialize main scan loop...^C
bye-bye

After the modification:
$ sudo ./hcxdumptool -i wlp0s20f0u1 --bpf=protect.bpf

Requesting interface capabilities. This may take some time.
Please be patient...

interface information:

...
failed to read BPF
failed to open raw packet socket

2 errors during runtime

bye-bye

Another good idea to make things clear. Thanks. Merged.


feat: add support for Fig

Description
Only fill in the fields below if relevant.
Features
Indicates whether Fig autocomplete is enabled.
Issues
Closes #2076
TODO

This is great! I love fig

It works! Yay

Thank you for your contribution!
This PR is merged into hyfetch since this repo (dylanaraps/neofetch) seems no longer maintained.
HyFetch is a fork of neofetch with LGBTQ pride flags, but the repo also maintains an updated version of the original neofetch, addressing many pull requests that are not merged in the original repo.
Read the "Running Updated Original Neofetch" section for more info!


Add allowFontScaling & fontSize props for Skip, Next, and Done labels

I came across an issue with the Skip & Done labels for devices that have larger font sizes enabled.
Added 2 props:

allowFontScaling prop to disable font scaling as an option (it is true by default).
fontSize to allow setting of the size of the labels

Updated README
(Also fixed what I thought was a typo in AppIntro.js - defaultStyles instead of defaulStyles)

Merge pls

Up ! Merge please !!

Merge pls

@FuYaoDe Is there anything else I need to do to get this merged? Thanks!


Cannot use environment variables in config.toml

Describe the bug
After following this guide over a newly generated project and adjust twilio for authentication:
[auth.sms.twilio]
enabled = true
account_sid = "redacted"
message_service_sid = "redacted"
auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)"

I cannot get supabase start/stop running
To Reproduce
Steps to reproduce the behavior:

Following this guide
Create .env file into supabase folder
Add SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN
Run supabase start
See error

Expected behavior
The local development to be up and running
Screenshots
Error evaluating "env(env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN))": environment variable SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN is unset. Try rerunning the command with --debug to troubleshoot the error.

Desktop (please complete the following information):

OS: macOS
Browser (if applicable): not applicable
Version of CLI: 1.77.9
Version of supabase-js: not applicable
Version of Node.js: not applicable

Additional context
I'm using fish. source .env && supabase start does not work on the fish, trying to set the variable using set and run supabase start doest not fix the issue. Probably is parsing issue or something regarding reading the toml file

Hi @azlekov, perhaps it wasn't clearly mentioned in our guide but .env file should be saved under project's root directory instead of supabase/.env. For eg.
project/
├─ supabase/
│  ├─ migrations/
│  ├─ config.toml
├─ .env

The main reason for this location is that some of the env vars may be reused by your application code outside of supabase. I will update the docs to be clearer.
Hope it helps.

still facing this issue even with the .env in the root

@TikiCat7 could you share with me the config fields you are trying to substitute? We only support a few config fields at the moment but we can look into adding more.

[auth.external.github]
enabled = true
client_id = "env(SUPABASE_GITHUB_CLIENT_ID)"
secret = "env(SUPABASE_GITHUB_SECRET)"

Could you also check the output of the following command? If it prints the secrets correctly, then the problem might be somewhere else
$ docker inspect supabase_auth_<project> | grep APPLE
                "GOTRUE_EXTERNAL_APPLE_ENABLED=true",
                "GOTRUE_EXTERNAL_APPLE_CLIENT_ID=<redacted>",
                "GOTRUE_EXTERNAL_APPLE_SECRET=<redacted>",
                "GOTRUE_EXTERNAL_APPLE_REDIRECT_URI=http://localhost:54321/auth/v1/callback",

Otherwise, could you also share the host OS and CLI version you are running?

based on your comment I changed the key in config.toml to
client_id = "env(GOTRUE_EXTERNAL_GITHUB_CLIENT_ID)"
secret = "env(GOTRUE_EXTERNAL_GITHUB_SECRET)"

Added these to a .env file in the root folder and supabase is starting with the correct values. (.env.local doesn't seem to work though). So is the issue that config.toml shows different names from what supabase is expecting?

It would be nice to support .env.local - anyone using Vercel has environment variables here by default.

agree with @cameronmurphy ^
i currently have .env and .env.local in my project directory. is there a better way?


Adds endif to the control flow keywords

In the if-then-else control structure of MiniZinc uses endif, this keyword, however, seemed to be missing in the language file. This means that endif isn't highlighted correctly. This small fix will add it to the control flow keywords as defined in the language files.

Thank you, I'll merge that.  There are a few other details that also need to be fixed, then I'll register it with package control.

I discovered this as I was building my own package for the Atom editor, I added some other things like helper functions and global constraints. Feel free to have a look at what I came up with: https://github.com/jjdekker/language-mzn/blob/master/grammars/mzn.cson

Thanks, I like what you did and I've updated my package to match.  I also noticed that assert plus a few operators (+, -, in) were duplicated.  You may want to check that too.

Thanks for the tip, I'll have a look.


Adds optional settings for privacy policy and imprint links within the modal

Adds optional settings for privacy policy and imprint links

meets the requirement that the link to privacy policy and imprint can be reached with one click
if parameters are assigned, the elements are automatically generated in the modal
all layouts are supported and styled differently: 'bar', 'box', 'cloud'
mobile view is supported as well

languages: {
        en: {
            consent_modal: {
                imprint_link: {
                    text: 'imprint',
                    url: '/imprint.html',
                },
                privacy_policy_link: {
                    text: 'privacy policy',
                    url: '/privacy.html',
                },
            },
         },
};

'bar' - mobile view

'cloud'

'cloud' - mobile view

Sorry for the massiv code-shift ... the auto-formatter did this and i did not find any "style guide"

@orestbida I've only updated files in the src-folder as well as the demo-folder to reflect my changes there. The dist-folder is untouched.


[Newton] Backport override removal to newton

This is a combined backport of multiple patches from master that
remove unneeded overrides. This includes:
b064af3e Remove unneeded overrides (#2516)
94fe0728 RO-2435 Remove max_overflow overrides
d46140b0 RO-2436 Remove rpc_conn_pool_size overrides
6f094657 RO-2437 Remove CPU/RAM allocation ratio overrides

Issue: RO-2439
Issue: RO-2429

@major It appears that this commit is not included - is that intentional? Also, why not cherry-pick -x so that we have the commit refs?
c5bd64b0 RO-2439 Optimize AIO with one galera/rabbit node

I guess I could backport these individually...

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

@major I'm not supporting this removal and changing default behavior of a released product, without building a replacement. I will discuss that with you in person

@BjoernT Feel free to toss any comments in here so we can all be aware. I'm about to be OOO for a week.

I decided to accommodate this require outside of this project


Tab to autocomplete field names chooses the last option instead of first

Issue Type: Bug
I have two fields in my table JOB_NAME, and JOB_TIME. When I type 'job' and press TAB it autocompletes with JOB_TIME instead of JOB_NAME. It should select the first entry by default instead of the last.
Azure Data Studio version: azuredatastudio 1.20.1 (fe6312306647441b30102a64bb43abb06ebcf2be, 2020-07-17T02:39:41.016Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz (2 x 2300)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: disabled_offoop_rasterization: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_renderer: disabled_off_okvideo_decode: disabled_softwareviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
undefined

Memory (System)
8.00GB (3.69GB free)

Process Argv

Screen Reader
no

VM
100%

Extensions: none

Could you attach a video of this happening? It seems to work fine for me. Is the highlighted item in the list on JOB_NAME or on JOB_TIME when you start typing JOB?

Here you go.

I should mention this is in an INSERT INTO statement, not a select, that is a difference I noted here. Though I also see JOB_TIME coming up first in a SELECT (I just don't often query based on that column myself)

Do you have the Editor: Suggest Selection setting set to recentlyUsed?


Make it possible to resolve/unresolve a topic

At present, it's not possible to resolve/unresolve a topic from the mobile app. For parity with the webapp (https://github.com/zulip/zulip/issues/18751), we should make it possible to resolve/unresolve a topic from the long-press topic menu.
CC @gnprice for any comments on the implementation plan.

I think the main work that will be needed for this is actually to fix a couple of longstanding gaps in how the mobile app handles when messages have their topic (or stream) edited:

#2688, which is an outright bug
When you're looking right at a conversation and it gets moved, we should change your current narrow to follow along. We don't seem to have an existing issue for this; I'll go file one.

While those gaps are present, if we do have some UI for resolving/unresolving a topic the experience is going to feel pretty broken: before #2688 is fixed, you'll still be looking at the old version of the topic and the messages won't have gone anywhere (because even though they have on the server, the bug #2688 means we don't reflect that.) And then with that but before the other thing is fixed, you'll still be looking at the old version of the topic and will see the messages disappear from there.
These are also important on their own for the experience of just reading while other people are resolving/unresolving topics.
Then once those are fixed, I think it will be fairly straightforward to add an option in the UI to resolve/unresolve a topic. See src/action-sheets/index.js for where that UI goes; and for how the logic should work, see web's message_edit.toggle_resolve_topic.


config-sync command not found in CLI

Bug report
Describe the bug
spawn ENOENT
CLI does not seem to be installed when installed using Strapi3 (plugin version 0.1.6).
After installation, there is no config-sync in node_modules/.bin or anywhere in node_modules/strapi-plugin-config-sync
Steps to reproduce the behavior

npm install --save<EMAIL_ADDRESS>Make edits to config/admin.js according to README
npm run build
npm run develop
Stop strapi
Make edit to package.json (add 'cs' to scripts) according to README
npm run cs

Expected behavior
I would expect that 'config-sync' would work from the CLI; I presume a config-sync command in the NPM bin search path location (./node_modules/.bin/) would be found
Screenshots
If applicable, add screenshots to help explain your problem.
Code snippets
If applicable, add code samples to help explain your problem.
System

Node.js version: 14.17.6 (LTS)
NPM version: 6.14.15
Strapi version: 3.6.8
Plugin version: 0.1.6
Database: SQLite3
Operating system: Linux 5.11.0-43-generic #47~20.04.2-Ubuntu SMP Mon Dec 13 11:06:56 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Additional context
I can attach full verbose log file (2022-01-05T19_35_02_110Z-debug.log) if it would help

Hey @jkirkpatrick,
As you’ve experienced the config-sync CLI is not available in v0.1.6 of the plugin.
It was introduced in v1.0.0-alpha.1 for Strapi v4.
Please refer to the node_modules/strapi-plugin-config-sync/README.md file in your project for the documentation of the plugin version you’re using.

Ok, thanks! I'd suggest adding a note to the README indicating that feature is only available with Strapi4.


Issue with Updating Field Value Using MyBatis Dynamic SQL

I am trying to construct a dynamic SQL query to update the balance field in the user table. The goal is to increment the balance field by a certain value for a specific uid. However, I'm facing difficulties in getting the query to execute correctly.
I am looking to achieve an effect similar to the following code snippet:
   @Update("UPDATE user SET balance = balance + #{balance} WHERE uid = #{uid}")
    void addUserBalance(@Param("uid") Integer uid, @Param("balance") Integer balance);

Attempted Solutions:
I tried using .set(balance).equalToWhenPresent(...) but it didn't work as expected.
Could you please provide some guidance on how to correctly construct this query using MyBatis Dynamic SQL? Any help would be greatly appreciated.

I also have the same confusion

You can do something like this:
int addToBalance(Integer uid, Integer balance) {
  UpdateStatementProvider updateStatement = update(user)
                .set(user.balance).equalTo(add(user.balance, constant(balance.toString())))
                .where(user.uid, isEqualTo(uid))
                .build().render(RenderingStrategies.MYBATIS3);
  ...
}

This isn't exactly what you asked for because the balance is not rendered as a bind parameter - it will be rendered as a constant string.
I will add something to the library that supports rendering this with a bind parameter.

Starting in version 1.5.1, you can do this:
int addToBalance(Integer uid, Integer balance) {
  UpdateStatementProvider updateStatement = update(user)
                .set(user.balance).equalTo(add(user.balance, value(balance)))
                .where(user.uid, isEqualTo(uid))
                .build().render(RenderingStrategies.MYBATIS3);
  ...
}

The value() function will be released in version 1.5.1. It should be in a snapshot build now.

good job


Where to host binaries?

We have some files that are large (~100MB for each released tarball [1]), larger files if we want to keep the virtual machines [2].
I think we can give up on hosting the core files [3] - they can only compile with the other libraries provided with the 'all' data [1].
[1] http://nmag.soton.ac.uk/nmag/0.2/download/all/
[2] http://nmag.soton.ac.uk/nmag/0.2/download/vmware/
[3] http://nmag.soton.ac.uk/nmag/0.2/download/core/
Suggestions?
This links to https://github.com/fangohr/nmag/issues/2 but I thought it might be good to discuss the hosting question separately.

-Files that don't change anymore, we could in principle deposit in Zenodo (but access may not be ideal)

I could also offer to host files in a Public dropox folder (/link), but is not ideal either.

Are either things emerging that would be suitable to host a few gigabytes of data [consisting of tar-balls), so that we can easily update this over time (with new releases)?

If we manage to create containers for Nmag, these could be offered via dockerhub/singularityhub, and would be a neat solution for those willing to use containers.

* Are either things emerging that would be suitable to host a few gigabytes of data [consisting of tar-balls), so that we can easily update this over time (with new releases)?

This may be a bit off the wall, but have you considered hosting it on the IPFS network?
https://en.wikipedia.org/wiki/InterPlanetary_File_System
It's a decentralized system made to host large files, so it seems to fit our criteria in that aspect. However, each upload is immutable. This would mean that complete versioning would be maintained, but we would have to update the links on the download page whenever a new version is uploaded.

On Mon, Dec 16, 2019 at 1:54 PM mhanberry1<EMAIL_ADDRESS>wrote:

Are either things emerging that would be suitable to host a few gigabytes of data [consisting of tar-balls), so that we can easily update this over time (with new releases)?

This may be a bit off the wall, but have you considered hosting it on the
IPFS network?
https://en.wikipedia.org/wiki/InterPlanetary_File_System
It's a decentralized system made to host large files, so it seems to fit
our criteria in that aspect. However, each upload is immutable. This would
mean that complete versioning would be maintained, but we would have to
update the links on the download page whenever a new version is uploaded.

Or if you think, IISc hosting is not an issue, then, in our Physics server,
I can place those large files.
In fact, all the documentation can be easily put on here, as an immediate
alternate to decommission the Southampton server.
-Regards
Venkat
—

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fangohr/nmag/issues/8?email_source=notifications&email_token=AI3XNFUOIXHUBUE3MJECJELQY43K3A5CNFSM4J3F3NRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG54YUQ#issuecomment-565955666,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI3XNFTS7IJPDZJJ6PEEFT3QY43K3ANCNFSM4J3F3NRA
.

--

D.Venkat
Research Scholar
Dept of Physics
IISc, Bangalore
India-560 012

What's stopping us from simply hosting the files on the releases page for the nmag repository?

Hi all,
I like the simplicity of the idea to use a git repo. Let's consider this further. We could create a nmag-release repository.
GitHub has some maximum limit of repository size. For Bitbucket, this is 2GB; for GitHub it is less clear, but they like us to stay below 1GB, certainly below 75GB, and each file is meant to be smaller than 100MB (see https://help.github.com/en/github/managing-large-files/what-is-my-disk-quota).
With a tarball under 100MB for each release, we might be okay (see notes on repos with large files: https://help.github.com/en/github/managing-large-files/working-with-large-files which accepts that some projects need to distribute large binaries) if the limit is 75GB.
If the repo grows to quickly, we could delete some of the older releases: clone it locally, edit the history, delete on GitHub, re-create empty on GitHub, push modified repo with smaller history. Or we create a second repo, something like nmag-release2 and point to that from the webpages.
I would definitely create a dedicated repository just for the release files as it will be easier to modify that, or even point to a second one.
[
@Venkat004 - thanks for offering to put onto your department infrastructure. I hesitate, as this will probably become a problem in 5 or 10 years.
@mhanberry1 - I hadn't heard of the IPFS yet.
]

Instead of creating a dedicated repo, we should use the "releases" section on the man repo. Many projects do it this way:
https://help.github.com/en/github/administering-a-repository/creating-releases

On Tue, Dec 17, 2019 at 1:59 AM Hans Fangohr<EMAIL_ADDRESS>wrote:

Hi all,
I like the simplicity of the idea to use a git repo. Let's consider this
further. We could create a nmag-release repository.
GitHub has some maximum limit of repository size. For Bitbucket, this is
2GB; for GitHub it is less clear, but they like us to stay below 1GB,
certainly below 75GB, and each file is meant to be smaller than 100MB (see
https://help.github.com/en/github/managing-large-files/what-is-my-disk-quota
).
With a tarball under 100MB for each release, we might be okay (see notes
on repos with large files:
https://help.github.com/en/github/managing-large-files/working-with-large-files
which accepts that some projects need to distribute large binaries) if the
limit is 75GB.
If the repo grows to quickly, we could delete some of the older releases:
clone it locally, edit the history, delete on GitHub, re-create empty on
GitHub, push modified repo with smaller history. Or we create a second
repo, something like nmag-release2 and point to that from the webpages.
I would definitely create a dedicated repository just for the release
files as it will be easier to modify that, or even point to a second one.
[
@Venkat004 https://github.com/Venkat004 - thanks for offering to put
onto your department infrastructure. I hesitate, as this will probably
become a problem in 5 or 10 years.

Yes, I do agree.
When we look for longrun solution, personal web pages are not going to be
the right choice.
By the way, I am beginning the GitHub and soon will be able to handle the
edits/updates in couple of weeks as I am bit busy with my thesis finishing
works.
@mhanberry1 https://github.com/mhanberry1 - I hadn't heard of the IPFS

yet.
]
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fangohr/nmag/issues/8?email_source=notifications&email_token=AI3XNFSJYLPJZ5EXNJ2IOHDQY7QKRA5CNFSM4J3F3NRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEG77VSA#issuecomment-566229704,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI3XNFS6WOO4QWT4V7ZBTLLQY7QKRANCNFSM4J3F3NRA
.

--

D.Venkat
Research Scholar
Dept of Physics
IISc, Bangalore
India-560 012

On Tue, Dec 17, 2019 at 2:04 AM mhanberry1<EMAIL_ADDRESS>wrote:

Instead of creating a dedicated repo, we should use the "releases" section
on the man repo. Many projects do it this way:
https://help.github.com/en/github/administering-a-repository/creating-releases

Yes, we can try this option.
—

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/fangohr/nmag/issues/8?email_source=notifications&email_token=AI3XNFVR6WTQFOOHN4T2SIDQY7Q5NA5CNFSM4J3F3NRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHAAD2Q#issuecomment-566231530,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AI3XNFQ52RWNB3MLDVQYNTTQY7Q5NANCNFSM4J3F3NRA
.

--

D.Venkat
Research Scholar
Dept of Physics
IISc, Bangalore
India-560 012

@mhanberry1 - when you say "use the main repository" : which one do you mean?

@fangohr I was referring to https://github.com/fangohr/nmag

I am happy to try. The reason I suggested as mag-releases repo is that we have many different repos already, and that we wouldn't risk "filling up" our quota on the central 'nmag' repo. What do you think?

@fangohr I think that would work fine as long as the nmag-releases repo is easily located from the documentation.

Then I would suggest that this is what we'll attempt.

@fangohr Ok. Let me know when that is up so that I can update the links for the website. Then maybe we can merge my code and close that issue.

I have just created https://github.com/fangohr/nmag-releases and made @mhanberry1 a collaborator.
Can you take it from here and attempt to put the current release files (from nmag.soton.ac.uk) on there?

@fangohr Absolutely. Keep an eye on https://github.com/fangohr/nmag.github.io/pull/1 so that we can finish the site migration to github.io.

Binaries will be stored on keeper:
https://keeper.mpdl.mpg.de/library/f3999ca5-2e6e-4a30-a531-2a4f34655159/nmag/


Hi I tried to install the package through PIP and I am using the latest pip 21.3.1 and encountering the error

ERROR: Could not find a version that satisfies the requirement venny4py (from versions: none)
ERROR: No matching distribution found for venny4py

Hi!
Dif you run:
pip install venny4py
? Without spelling mistakes?
Could you also try specify the version?
pip install venny4py==1.0.1
Just tested it in environments with python 3.8 and 3.12 and it works.
I use pip 23.3.1

Closed with no response.