HmIP-SRH has a lot of attributes, that are bot handled by RotaryHandleSensor

I've got the HmIP-SRH running by now and recognize, that it has a lot of attributes, that are not handled by RotaryHandleSensor (which was created to handles the non-IP devices):

SABOTAGE
DUTY_CYCLE
UNREACH
OPERATING_VOLTAGE

and handles attributes different (instead of signaling sabotage as ERROR attribute, there is a SABOTAGE attribute and the error-attribute has a different name ERROR_CODE).
I want to implement the additional attributes.
Now my question: Should i create an additional Sensortype (like RotaryHandleSensorIP) or should the existing sensortype handle the variants?

Yes, an additional class for the IP variant would make sense. In that case we would also need a reference to it in Home Assistant: https://github.com/home-assistant/home-assistant/blob/ea5c336ab4bb7e8479481525ca4180093ae273e7/homeassistant/components/homematic/init.py#L66

I am now quite sure if I can help you with Home Assistant, since I don't know that software.
I am one of the developers of https://www.smarthomeNG.de and I am writing a plugin with an almost complete support for HomeMatic in SmartHomeNG. There has been a rudimentary HomeMatic support since smarthome.py (the (now dead) project we forked from). For a complete solution I decided to to base the plugin on pyhomematic.

Oh, ok, I wasn't aware of that. From a quick look at your project Home Assistant is pretty similar.
In the practical use some of the internal parameters of devices aren't really needed. If you look at ioBroker you see tons of parameters that technically are important, but irrelevant to base automations on. That's why we tend to only implement what is really useful. Pretty much nobody looks at the RSSI for example (which is included, but sometimes incorrect because of how the RSSI works). SABOTAGE is important though. The old RF sensor just didn't have that.

On the other hand, it could be useful for me to get some of the attributes that can be defined in CCU. I would be interested in getting the room, the "Gewerk" (whatever it is called in english) or the friendly name.
Have you an idea how I could get a hold of them?

I agree that not all parameters are needed. But parameters like SABOTAGE, LOW_BAT and maybe OPERATING_VOLTAGE, ERROR_CODE, DUTY_CYCLE and UNREACH are of interest for home automation.
I am still undecided, if I should implement all parameters or only the useful (omitting RSSI_DEVICE, RSSI_PEER, etc.)

The way pyhomematic is supposed to be used those less important values don't need to be implemented. When initializing the connection you should pass a systemcallback and ideally also an eventcallback. The CCU (and Homegear too) pushes state-changes of the devices to the the clients that have subscribed to the XML-RPC API. Those callbacks can be used to handle the messages and set the state of the corresponding objects your software uses. The state should NOT be polled, because that actually causes the CCU to ask the device for the current state, which raises the usage of the allowed duty cycle. Anyways, all those additional less important parameters will be sent via those messages. So if your implementation is flexible you can for example just use an empty dictionary initially, and add the parameters gradually after the CCU sends the current values. The hardcoded values are there because some values need to be known directly after initalization because it may take some time until the CCU sends the states for all devices. And knowing if a switch is on or off needs to be known right from the start. Hence some important values (the one pyhomematic implements) should be queried on startup.

On the other hand, it could be useful for me to get some of the attributes that can be defined in CCU. I would be interested in getting the room, the "Gewerk" (whatever it is called in english) or the friendly name.
Have you an idea how I could get a hold of them?

Have a look at the resolvenames parameter when initializing. It's explained here: https://www.home-assistant.io/components/homematic/#the-resolvenames-option
So pyhomematic is able to get the names of the devices already. We don't get the "Gewerke" though. These don't exist in Homegear, and essentially they are just groups. There is no point in getting the groups if the software that uses pyhomematic has it's own grouping mechanism. It might be easier at first for people who just want to test your software, but in the end people will tend to just group devices in a single place. Grouping on the CCU and in your software would be twice the work.
If you still really want to get the Gewerke you should have a look at the JSON-RPC API of the CCU. It don't known from the top of my head, but I think you can get them there. The downside would be, that this won't be compatible to Homegear. And Homegear users shouldn't be ignored. I have no actual numbers. But from the threads in the Home Assistant community it feels like at least 1/6 of the users are using Homegear. Far less than the CCU, but still quite a few.

Hi,
I have just created a pull request (https://github.com/danielperna84/pyhomematic/pull/135) to fix the HmIP-SRH device. It could not report LOWBAT and ERROR because they are now called LOW_BAT and SABOTAGE in Homematic IP.
Kind regards
hanzoh

Closing this issue because:

UNREACH should be covered by #161
SABOTAGE is fixed by #135
DUTY_CYCLE and OPERATING_VOLTAGE are not really needed in Home Assistant.


fix for .sh file of Blake Stone Aliens of Gold

hi there,
this is not a real PR (ready to be merged). i just wanted to get in contact with you, about the Blake Stone ports for PortMaster :-)
i had to adapt the .sh file a little, in order to get it running on my RG351MP with latest Amberelec
changes in particular are:

the directory variable was missing. i set it, so that it is fitting for me. any other possible location?
i replaced the multiple seds for vid_width and vid_height with 1, using regex (-E)
i added sed for vid_is_widescreen (it was stretched for me by default)

(also the .sh of Blake Stone Planet Strike would need this adaption)
one thing i also wanted to ask: it seems, that the control-sensitivity is very high. even with setting in_mouse_sensitivity to 0, it is too fast. any idea, how to make it slower?
waiting for your feedback :-) thx for the work!

I've updated Blake Stone ports to include the control folder for JELOS/AmberELEC, resolved the loading issue and adjusted the mouse-look sensitivity

hey, thx very much for taking care. the mouse sensitivity now works for me, and also the startup issue is solved (the missing /).but still the screen is stretched and has wrong width on my RG351MP (857 instead of 640). the issue here is, that on my device there exists the /dev/input/by-path/platform-odroidgo3-joypad-event-joystick and so the wrong else branch is used. maybe you could take another look here. thx! :-)

I’m able to adjust the widescreen and stretch UI settings in the game options. That seems like a personal preference. What are you asking me to do?

351mp and OGS use the same joystick control schema. Let me see if there’s a better way to set screen resolution. Probably won’t adjust the widescreen setting though as that’s personal preference.

See if these work for you. The thing that prevents me from releasing this as is is devices that can be plugged into external monitors. The assumption that people use a single sd card across devices breaks if one can't recover from a previous resolution setting. Maybe the assumption needs to change, but that's not my decision.
#!/bin/bash

if [ -d "/opt/system/Tools/PortMaster/" ]; then
  controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
  controlfolder="/opt/tools/PortMaster"
elif [ -d "/roms/ports" ]; then
  controlfolder="/roms/ports/PortMaster"
else
  controlfolder="/storage/roms/ports/PortMaster"
fi

source $controlfolder/control.txt

GAMEDIR="/$directory/ports/bstone-aog"

GPTOKEYB_CONFIG="$GAMEDIR/bstone.gptk"

if [[ $LOWRES == 'Y' ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"1"/"0"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ "$(cat /sys/firmware/devicetree/base/model)" == "Anbernic RG552" ]] && [[ -e "/dev/input/by-path/platform-singleadc-joypad-event-joystick" ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"480"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ "$(cat /sys/firmware/devicetree/base/model)" == "Rockchip RK3566 EVB2 LP4X V10 Board" ]] || [[ "$(cat /sys/firmware/devicetree/base/model)" == "Anbernic RG503" ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"480"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ -e "/dev/input/by-path/platform-odroidgo3-joypad-event-joystick" ]]; then
	xres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f1)"
	yres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f2)"
    $ESUDO sed -i '/vid_width / s/"$yres"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"640"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
else
    $ESUDO sed -i '/vid_width / s/"480"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"1"/"0"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
fi

if [[ $ANALOGSTICKS == '1' ]]; then
    GPTOKEYB_CONFIG="$GAMEDIR/bstone.gptk.leftanalog"
fi

cd $GAMEDIR

$ESUDO rm -rf ~/.local/share/bibendovsky
ln -sfv $GAMEDIR/conf/bibendovsky ~/.local/share/

$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
$GPTOKEYB "bstone" -c "$GPTOKEYB_CONFIG" &
LD_LIBRARY_PATH="$GAMEDIR/libs" SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" ./bstone --data_dir $GAMEDIR/gamedata/aliens_of_gold  2>&1 | tee $GAMEDIR/log.txt
$ESUDO kill -9 $(pidof gptokeyb)
$ESUDO systemctl restart oga_events &
printf "\033c" >> /dev/tty1

#!/bin/bash

if [ -d "/opt/system/Tools/PortMaster/" ]; then
  controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
  controlfolder="/opt/tools/PortMaster"
elif [ -d "/roms/ports" ]; then
  controlfolder="/roms/ports/PortMaster"
else
  controlfolder="/storage/roms/ports/PortMaster"
fi

source $controlfolder/control.txt

GAMEDIR="/$directory/ports/bstone-ps"

GPTOKEYB_CONFIG="$GAMEDIR/bstone.gptk"

if [[ $LOWRES == 'Y' ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"320"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"1"/"0"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ "$(cat /sys/firmware/devicetree/base/model)" == "Anbernic RG552" ]] && [[ -e "/dev/input/by-path/platform-singleadc-joypad-event-joystick" ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"480"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"1920"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"1152"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ "$(cat /sys/firmware/devicetree/base/model)" == "Rockchip RK3566 EVB2 LP4X V10 Board" ]] || [[ "$(cat /sys/firmware/devicetree/base/model)" == "Anbernic RG503" ]]; then
    $ESUDO sed -i '/vid_width / s/"640"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"480"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"480"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"960"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"544"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
elif [[ -e "/dev/input/by-path/platform-odroidgo3-joypad-event-joystick" ]]; then
	xres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f1)"
	yres="$(cat /sys/class/graphics/fb0/modes | grep -o -P '(?<=:).*(?=p-)' | cut -dx -f2)"
    $ESUDO sed -i '/vid_width / s/"$yres"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"640"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"$xres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"$yres"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"0"/"1"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
else
    $ESUDO sed -i '/vid_width / s/"480"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"320"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"857"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"1920"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"1152"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_width / s/"960"/"640"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_height / s/"544"/"480"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
    $ESUDO sed -i '/vid_is_ui_stretched / s/"1"/"0"/' $GAMEDIR/conf/bibendovsky/bstone/bstone_config.txt
fi

if [[ $ANALOGSTICKS == '1' ]]; then
    GPTOKEYB_CONFIG="$GAMEDIR/bstone.gptk.leftanalog"
fi

cd $GAMEDIR

$ESUDO rm -rf ~/.local/share/bibendovsky
ln -sfv $GAMEDIR/conf/bibendovsky ~/.local/share/

$ESUDO chmod 666 /dev/tty1
$ESUDO chmod 666 /dev/uinput
$GPTOKEYB "bstone" -c "$GPTOKEYB_CONFIG" &
LD_LIBRARY_PATH="$GAMEDIR/libs" SDL_GAMECONTROLLERCONFIG="$sdl_controllerconfig" ./bstone --data_dir $GAMEDIR/gamedata/planet_strike  2>&1 | tee $GAMEDIR/log.txt
$ESUDO kill -9 $(pidof gptokeyb)
$ESUDO systemctl restart oga_events &
printf "\033c" >> /dev/tty1

hi there, thx for all your feedback!
just to be on the same page: the widescreen variables are not the problem here, i think (yeah you can adjust in the menu of the game). for me, the problem is really the screen width. it is set to 857, and you cannot change it from within the game. you have to change it by modifying the config file or the .sh file. and so my screen basically just shows the left 2/3 of the game.
fixing this would really help other people, who don't know/understand those config files and cannot modify them manually.
thx again! :-)


chore: Remove ball and bex from lemma names

ball for "bounded forall" and bex for "bounded exists" are from experience very confusing abbreviations. This PR renames them to forall_mem and exists_mem in the few Set lemma names that mention them.
Also deprecate ball_image_of_ball, mem_image_elim, mem_image_elim_on since those lemmas are duplicates of the renamed lemmas (apart from argument order and implicitness, which I am also fixing by making the binder in the RHS of forall_mem_image semi-implicit), have obscure names and are completely unused.

Let's get this in
bors r+
Thanks!

bors r+


Support for streaming video with extension on Kiwi Browser on Android

Currently when I install the extension on Kiwi Browser on Android and open the extension, it just opens a settings popup in a new tab but doesn't give me the option to select subtitles.

Opening the extension from the webpage itself (menu -> extensions -> asbplayer) should open up the subtitle track selector.

Yeah that's what I mean. I think I understand the issue now, though. Basically asbplayer isn't good at detecting tablets. I have a speculative fix for this.

I have this issue with Kiwi Browser on both my phone and my tablet. I don't have this issue with Firefox on Android on both my phone and my tablet. I believe the issue is with Kiwi Browser.

Interesting
Our of curiosity are you using the desktop version of the website?

I tried on YouTube with both mobile and desktop version and both didn't work

Can you try this build?
asbplayer-extension-1.3.0-chromium.zip

The subtitle selector pops up now but I am unable to open the settings and unable to open the dialog to mine a card. The buttons in the overlay don't do anything

You can open settings from the extensions manager. I am surprised that the buttons in the overlay do nothing, need more info to debug.

For some reason the overlay buttons work on a different instance of Kiwi Browser. What is still not working is capturing screenshots. On YouTube I can at least capture the sentence audio. On Emby nothing is captured. Also the Anki dialog is not opened when selecting that option. These are the errors I'm getting:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'substring')
Context
background.js
Stack Trace
background.js:2 (anonymous function)
Uncaught (in promise) Error: Failed to start recording
Context
background.js
Stack Trace
background.js:2 (anonymous function)
Error starting tab capture
Context
offscreen-audio-recorder.html
Stack Trace
offscreen-audio-recorder.js:1 (anonymous function)
Unchecked runtime.lastError: No active web contents to capture
Context
Unknown
Stack Trace
:0 (anonymous function)

Unfortunately screenshots do not work on Kiwi due to lack of screenshot API support. So you will have to live without screenshots until that is fixed on Kiwi.


ToolTip/Popup opens on top of all windows

Describe the bug
ToolTip/Popup opens on top of all windows.

To Reproduce
Run the "ControlCatalog.NetCore" project from the "Samples" folder.
Open the "ToolTip" section, turn on ToggleSwitch.
Move any window to the tooltip area.
Expected behavior
ToolTip should be visible at the level of its window, and not appear on other windows
Avalonia version
11.0.10
OS
Windows
Additional context
As a solution, you need to move this code above

It's not a bug. That's by design and that's how tooltips/popups normally work in any GUI framework.
If you want to disable it for you app, you can update BuildAvaloniaApp configuration like so:
    .UsePlatformDetect()
+    .With(new Win32PlatformOptions { OverlayPopups = true })
+    .With(new X11PlatformOptions { OverlayPopups = true })
+    .With(new AvaloniaNativePlatformOptions { OverlayPopups = true })

per each desktop platform


Documented superfluid state machine

Includes tabs, diagrams, images. All set to go on the frontend (unless any error is to be spotted)

Should this go in the code inside the spec folder, and then get automatically duplicated into here?

I agree. I think that would make more sense. @xBalbinus let's setup a call to explain this idea and demo how it would work.

@daniel-farina did this call with @xBalbinus occur yet? If not I would like to sit in on it if possible.

Hey @czarcas7ic ! The call did happen, sorry I was slow to move on this; I'll be sure to handle the rest with @daniel-farina.

@xBalbinus @czarcas7ic
Invite sent to both for today.

@xBalbinus I think the only thing missing now is adding a place holder file for the superfluid staking doc on this repo. We can probably abandon this PR.

Hmm... I think the placeholder was already added in?

ahh I missed that! and also we need the actual section with custom html from this PR as well.

Thanks @daniel-farina for moving the diagram! I had missed that.


panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x0 pc=0x7855fb]

Hi... When I try to compile the example code "DHT_Unified_Sensor", and this error code occurs. Is that the issue happens in the library?

you'd have to be more specific about what line of code is causing the error, we havent seen it before

Arduino: 1.8.10 (Windows 10), Board: "Arduino Uno"
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x7855fb]
goroutine 1 [running]:
github.com/arduino/arduino-cli/legacy/builder.ResolveLibrary(0x11ce25a0, 0x1209015b, 0x5, 0x1209015b)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/resolve_library.go:64 +0x14b
github.com/arduino/arduino-cli/legacy/builder.findIncludesUntilDone(0x11ce25a0, 0x11d51a40, 0x88ed00, 0x11c92e40, 0x11eed018, 0x11d8b600, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:358 +0x3b6
github.com/arduino/arduino-cli/legacy/builder.(*ContainerFindIncludes).Run(0xdebc68, 0x11ce25a0, 0xdebc68, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:152 +0x3e5
github.com/arduino/arduino-cli/legacy/builder.runCommands(0x11ce25a0, 0x11c3be1c, 0x20, 0x20, 0x409a01, 0x3f, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd
github.com/arduino/arduino-cli/legacy/builder.(*Builder).Run(0x11c79f40, 0x11ce25a0, 0xdebbb4, 0x11c4ac90)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:117 +0xb9c
github.com/arduino/arduino-cli/legacy/builder.RunBuilder(...)
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:226
main.main()
/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:398 +0x6d2
C:\Program Files (x86)\Arduino\arduino-builder returned 2
Error compiling for board ESP32 Dev Module.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I just open the example code without change anything and run, then this error occured


Remove plyr player

Purpose
Plyr player is not used anymore. we decided to remove it to not have to
maintain it anymore.
Proposal

[x] remove plyr player

@jbpenrath the translations keys will be removed next time we will update the translation. I removed frontend/Player/i18n/plyrTransaltion.ts file


open-LLM-server Build

Hi, if i want to build your open-llm-server without any change on my, then i have this error:
error: failed to run custom build command for llm-chain-llama-sys v0.9.3
Windows 11 or macosx
cargo.toml your original
[dependencies]
llm-chain = "0.9.1"
llm-chain-llama = "0.9.1"
tokio = { version = "1.27.0", features = ["macros", "rt","rt-multi-thread"] }
futures = "0.3.20"
hyper = { version = "0.14", features = ["full"] }
serde = "1.0.160"
serde_json = "1.0.96"
clap = "3.2.6"
[dev-dependencies]
tokio = { version = "1.27.0", features = ["macros", "rt","rt-multi-thread"] }
Cargo.toml on my test:
[dependencies]
llm-chain = "0.12.3"
llm-chain-llama-sys = "0.12.3"
llm-chain-llama = "0.12.3"
tokio = { version = "1.29.0", features = ["macros", "rt","rt-multi-thread"] }
futures = "0.3.20"
hyper = { version = "0.14.27", features = ["full"] }
serde = "1.0.160"
serde_json = "1.0.96"
clap = "4.3.9"
[dev-dependencies]
tokio = { version = "1.27.0", features = ["macros", "rt","rt-multi-thread"] }
same error:

Your have to install LLVM-16.0.0-win64from on windows or Mac
see the Instruktion page: https://rustdesk.com/docs/en/dev/build/faq/
after then you have a cuple of other error


warning: empty doc comment on latest nightly clippy

Describe the bug
Running cargo clippy --no-deps shows this warning wherever I am using the #[component] macro
This issue is reproducible on the start template
Leptos Dependencies
leptos = { version = "0.6", features = ["nightly"] }
leptos_meta = { version = "0.6", features = ["nightly"] }
leptos_actix = { version = "0.6", optional = true }
leptos_router = { version = "0.6", features = ["nightly"] }

To Reproduce
Steps to reproduce the behavior:

cargo leptos new --git "https://github.com/leptos-rs/start"
navigate to the newly created project
cargo clippy --no-deps --all-features
See error

Expected behavior
clippy warnings should not originate from the #[component] macro

Any interest in exploring it and making a PR?

Turns out it was a clippy bug: https://github.com/rust-lang/rust-clippy/issues/12377
Should be fixed whenever next clippy version is released with nightly

As I mentioned in https://github.com/rust-lang/rust-clippy/issues/12377, I'm getting this bug in the latest beta even though it claims to be fixed.

As I mentioned in rust-lang/rust-clippy#12377, I'm getting this bug in the latest beta even though it claims to be fixed. update: See that thread for an explanation of what's going on.

its not released in the latest nightly yet afaik

not reproducible on clippy 0.1.79 (5f2c7d2 2024-03-25)


CNCF TOC: State of the Ecosystem

Intent
The intent of this assessment is to ascertain where the ecosystem is nearing comprehensiveness, where there are opportunities of innovation, and to redirect focus of community members to active areas of interest and need by projects and adopters.
Our Request
We ask each TAG:

Prepare a 1 page document that addresses the prompt questions below.
Engage your WGs to provide no more than 3-5 sentences that address the prompt questions.
a. WG responses are in addition to the 1 page document covering the breadth of the TAG
Please provide the information no later than November 1st 2024.

The TOC will review these reports prior to KubeCon North America and develop a plan of action for public review before the end of the calendar year.
Why?
The resulting State of the ecosystem will become a public report to the community and will serve to guide the TOC in restructuring our advisory groups and their working groups to address the problems of today and tomorrow against the realities of current contributions and participation in our groups and projects.
Prompt Questions

How do you see the completeness of the ecosystem in your specific domain? Are there any specific areas not properly covered by the projects in our ecosystem?
How do you see the alignment between different projects in the specific domain of your TAG (with examples)? And do you see close alignments with projects in other domains?
Are there particular challenges in the TAG’s area, both current and foreseen for the upcoming years?
Do you see areas of overlap with other TAGs or individual WGs? If so, which ones?
How do you see the overall status of project health?
How do you see the overall trend of innovation and new projects or capabilities in your domain?
For each WG in your TAG,
a. Has their initial purpose been completed?
b. Are the WG’s artifacts and deliverables a service provided to projects or the TOC? I.e. security reviews, governance reviews, etc.
c. Has the WG reassessed its progress towards its initial goals?
d. Is there an updated timeline for the WG to accomplish its goals?
e. Does the WG feel additional effort and focus needs to be conducted to close gaps of their sub-domain within the ecosystem?

@rochaporto Ack your TOC request. We will submit this report to the TOC by the due date.
 We will submit this report to the TOC by the due date.
Do you have guidance on whether you want a PR or a Google Doc for this report?

Thanks @alolita . I don't think we have a preference, whatever works best for you. Thanks again.


Ensure all URLs end with trailing slashes

Ensure all URLs end with trailing slashes
Fixes common 404 problem, and standardises our URL policy.

Needs test updates...

😸


How to Plot F0 Trajectory

Hi Kawahara-sensei,
I would like to reproduce Figure 1 in the gettingstartedV40_006b.pdf. Using quickstart, I only obtained f0raw with a length of 792, while the original  x (vaiueo2d.wav) vector has a length of 17500.
So, how to obtain f0raw with length of sample same as the sound vector?

I have a mistake reading the x-axis of f0raw, it is in a millisecond, not in samples. So, the length of f0raw is almost same with original x vector (792 ms=17464 samples, length x=17500 samples).
Thanks.


Assignments don't always change variable types

Here, a is initially a list of strings, but after line 4, it should be known to be a list of ints.
Found in #334.

This is not currently possible as analysis is static. Code does not track type by location. Thus, at best, variable will have two types. In order to make this work the engine either has to eval code to the completion point (JavaScript editor used to do this) or types attached to variable need to have 'applicable spans' associated with them.

It would be a fundamental and pretty expensive change.

New analysis uses the last assignment. Location tracking folding into #682


Is there a way to run mcpdft on top of an existing pyscf casscf calculation?

In the old version of your code, you could do:
from mrh.my_pyscf.mcpdft import mcpdft, otfnal
def run_MCPDFT_old(cas, xc, ft=False, grid=5):
    ks = UKS(cas.mol)
    ks.xc = xc
    ks.grids.level = grid
    if ft:
        ot = otfnal.ftransfnal(ks)
    else:
        ot = otfnal.transfnal(ks)
    E = mcpdft.kernel(cas, ot, root=0)
    return cas, E[0]

with cas being a pyscf casscf object. Is there any way to do this in the new version, without redoing the casscf calculation as a calculation including the mcpdft calculation like this:
mc1 = mcpdft.CASSCF (mf, 'tPBE', 6, 8).run ()
I know that you can take that line and then do
mc1.compute_pdft_energy_(otxc='ftPBE')
but i guess I would just need a line of code to transform mc1 into an mcpdft cas object:
mc1 = mcscf.CASSCF(mf, nel, norb, ...)

# Line missing here:

mc2.compute_pdft_energy_(otxc='ftPBE')`

Does
mc2 = mcpdft.CASSCF (mc1, nel, norb, ...)
do what you want? It's supposed to copy the MO coefficients and CI vectors when you pass an mcscf object to the constructor. This is used extensively in certain unit tests.

Oh wow I am very sorry, that was actually quite obvious. I just wanted to avoid redoing the casscf calculation, but of course you dont actually have to call the kernel function... Thank you for your help!


ARROW-11174: [C++][Dataset] Make expressions available to projection

ScanOptions is more explicit about scan time schemas: dataset (aka reader) and projected schemas are independent
RecordBatchProjector is replaced with a projection expression
Field metadata and nullability is preserved by projection exprs if the expression is a plain field reference; it's clear that field_ref("alpha") should inherit the attributes of "alpha" in the original dataset whereas equal(field_ref("alpha"), field_ref("beta")) doesn't necessarily inherit attributes from either field

No significant changes have been made to the Python/R bindings as the C++ API remains backward compatible with subset-of-columns projection. Adding these featutes will be handled in follow up.

R: https://issues.apache.org/jira/browse/ARROW-11704
Python: https://issues.apache.org/jira/browse/ARROW-11750

Deferred to https://issues.apache.org/jira/browse/ARROW-11749 :

Ensure that stacked projection exprs are simplifiable to a single project expr
Refactor UnionDataset to support reconciling its children with projections

I've started testing in R with a branch (added commit here) on top of this and my mutate() branch, and I've got a simple test working, but I'm running into a problem trying to apply this to our canonical taxi dataset query from the docs. If I add a column that is derived from other columns, it only yields valid data if I also include those columns in my result. So this works:
>         ds %>%
+           filter(total_amount > 100, year == 2015) %>%
+           mutate(
+             tip_pct = 100 * tip_amount / total_amount
+           ) %>%
+           select(tip_pct, tip_amount, total_amount, passenger_count) %>%
+           group_by(passenger_count) %>%
+           collect() %>% head()
# A tibble: 6 x 4
# Groups:   passenger_count [2]
  tip_pct tip_amount total_amount passenger_count
    <dbl>      <dbl>        <dbl>           <int>
1    0           0           149.               1
2   16.6        22           132.               1
3    0           0           205.               1
4    7.27       10           138.               1
5   23.0        24.5         107.               1
6   11.2        12           107.               2

But what I want to do is this, so that I don't have to keep around the columns that I've already used to create my derived one:
>         ds %>%
+           filter(total_amount > 100, year == 2015) %>%
+           mutate(
+             tip_pct = 100 * tip_amount / total_amount
+           ) %>%
+           select(tip_pct, passenger_count) %>%
+           group_by(passenger_count) %>%
+           collect() %>% head()
# A tibble: 6 x 2
# Groups:   passenger_count [2]
  tip_pct passenger_count
    <dbl>           <int>
1      NA               1
2      NA               1
3      NA               1
4      NA               1
5      NA               1
6      NA               2

To be clear, this latter example sends to ScannerBuilder::Project a vector of 2 Expressions, one for tip_pct that is derived from other fields in the data (but not included in the projection) and one for passenger_count that is just a FieldRef.

@nealrichardson thanks for testing! I'll add an analogous c++ test and get it passing


Management of dependency specs

Currently we specify dependencies in duplicate across setup.py and environment.yml.

Find out whether it is possible to maintain only a single list of dependencies.
.yml files can also be split to identify runtime vs. test time vs. development dependencies. We should also have a look at that.

Addressed in https://github.com/mackelab/sbi/pull/260


“Mummy” issues

As Larian wrote the game in British English, we have “mum” and “mummy” (akin to “mom” and “mommy”).
I debated whether I wanted to change this, as “mum” and “mom” are usually pronounced differently. But it’s similar enough, so I opted to make the substitution.
However, the trouble is the game also has mummies — those zombie-like walking monsters. Without having spent hundreds of hours and knowing the dialogue, I did my best to determine which are most likely moms and which are most likely mummies, but I may have gotten a few wrong.
I haven’t dived into the dialogue system. I’m guessing there’s a PAK that references the contentid UUID in the English.pak, so maybe searching for the contentid in other PAKs would return the character who is saying the line of dialogue?
I welcome any help verifying the mummy issue.

Well, American "mumm(y|y's|ies)" corresponds to "муми(я|и|й|ям|ях)" regex to find equivalents in Russian localization files. Also "mom('s)?" is "мамк?(а|е|и|ы|ин(а|ы)?)", "momm(y|y's|ies)" is "мамочк.+|мамул(ечк)?.+|матушк.+". Maybe it can help you to find out right UUIDs to replace "mummies" to "mommies" etc.


Correction for raw affiliation Univ Rennes, CNRS, CREM – UMR6211, Rennes, France

Correction needed for raw affiliation Univ Rennes, CNRS, CREM – UMR6211, Rennes, France
raw_affiliation_name: Univ Rennes, CNRS, CREM – UMR6211, Rennes, France
new_rors: 015m7wh34;02feahw73;0047rmf80
previous_rors: 015m7wh34;02feahw73
works_examples: W4382048794
contact: f166fbadf5ed2ca5a77fd677a52c285b:f1a2c67ff71f1ae09783995b368f9576 @ univ-rennes.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


investigate license issue with /actor-tests/src/test/bind/etc/ files

See https://lists.apache.org/thread/dv11y9f3sn388dw7tfdw22pkg3bq7tzs
The bind.keys file seems to be based on https://github.com/isc-projects/bind9/blob/main/bind.keys
There may be more files that have copies of code from https://github.com/isc-projects/bind9 (I haven't find other matches in a quick search)
We can't include Mozilla Public License code because it has copyleft implications.
Added in https://github.com/akka/akka/pull/25690

@raboof you worked on the Akka PR. This was a few years ago but I'm wondering if you are aware of the key in the bind.keys file and if it is something that we can change or remove?

I'm not 100% sure but so far, when I run actor-tests locally, it doesn't seem to need any of these files.

The keys in the bind.keys file seem to be documented on public web sites, including:

https://www.icann.org/dns-resolvers-updating-latest-trust-anchor
<EMAIL_ADDRESS>https://archive.nanog.org/sites/default/files/2_Punky_Duero_Root_Zone_DNSSEC_KSK_Rollover.pdf

This doesn't mean that the keys are not MPL but we can check around to see if keys are public domain or licensed more permissively.

The remaining files are likely to be copied from debian packaging - see https://wiki.debian.org/Bind9
https://lists.isc.org/pipermail/bind-users/2023-November/108133.html


Scan to provide simulator device logs

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

Issue Description
Currently, it is very difficult to get the log files of the simulator device when running UI tests against iOS apps on the Simulator. It would be great if there was a easy way to get the logs when the scan action is run.

I have a PR support this functionality.

The functionality was merged and released as part of fastlane 2.9.0


Display photo before completely examined folder

To make the load process a little better, as soon as a photo has been found that classifies as a memory, display it.

Not implemented.


Potential concurrency bugs in FunctionsView

FunctionsView appears to be trying to be thread-safe, as its SemanticFunctions and NativeFunctions are both ConcurrentDictionary.  However, in that case there are a couple of concurrency bugs lurking.
First, while the dictionaries are ConcurrentDictionary, the values stored for each key are List<T>.  The code for AddFunction looks like this:
            if (!this.SemanticFunctions.ContainsKey(view.SkillName))
            {
                this.SemanticFunctions[view.SkillName] = new();
            }

            this.SemanticFunctions[view.SkillName].Add(view);

If multiple threads concurrently try to add a FunctionView for the same skill, they could end up both mutating a List<T> concurrently, which is not safe.
Second, with that same code, if multiple threads both try to add a FunctionView for the same skill, and if both see that the SemanticFunctions doesn't yet contain that skill name, they will race to create the list to store for that skill.  While the dictionary itself won't be corrupted from a data structure perspective, one thread might add its list and then proceed to add to the list, and the other thread might then (having already checked ContainsKey and found it to return false) overwrite the original list with a new one, there by losing the data the other thread wrote.  Such initialization should be done using either TryAdd or GetOrAdd so that the dictionary provides the synchronization to ensure nothing is overwritten.
These issues can easily be fixed by using GetOrAdd and locking on the List<>... except the collections are exposed publicly from the FunctionsView, which means anyone else accessing these would also need to employ the same synchronization scheme.  That suggests the API should be designed differently.
(And related to these being exposed publicly, the properties also have public setters... if someone were to set these concurrently with other operations being performed, that could lead to other failure modes, e.g. because lookups are being done first by calling ContainsKey and then separately by using the indexer, the collection could actually be changed to a completely different instance between those calls.)
cc: @dluc, @shawncal

I think we should change FunctionsView to protect the internal data, allowing only to add and list, not remove, and potentially handle conflicts. Plus needs testing and clear specs about multithreaded access and expectations


[6.11.z] Revert "Revert "testing the label in child PR's""

Cherrypick of PR: https://github.com/omkarkhatavkar/github-action-test-repo/pull/118
Reverts omkarkhatavkar/github-action-test-repo#115

trigger: test-robottelo


Create sphinx autodoc extension for param

We are already doing things to make param work well with sphinx, but I think if possible we should capture that into a sphinx autodoc extension.
Would make it easier for others to use (e.g. see https://github.com/ioam/ioam-builder/issues/3).

I agree the extension should be supported at the param level instead of wherever it lives right now...

This would be great to have! Who knows how to do it? Smells like this would entail making a param/sphinx extension.

@jlstevens is there a way to generate docs from params right now? In whatever form?

nbsite does have a paramdoc Sphinx extension. I've improved it a fair bit but it's still not great. This would be of huge value if someone were to pick it up and improve it. I also agree it should move into the param repo.

I've made a mock project where I use an adaptation of the paramdoc extension in case anyone finds that useful: https://github.com/Jhsmit/param_docs
Basically the idea is to make the output as readable as possible for non-experts who just want to use the GUI.
Output is here: https://param-doc.readthedocs.io/en/latest/modules.html#module-param_docs.controller

@Jhsmit That output looks pretty good!
I think the param sphinx extension would ideally be in its own repo. I don't know how @jbednar or @philippjfr feel about this, but if @Jhsmit is willing to be a maintainer, this could be moved to pyviz-dev...

I would be happy to be a maintainer, however I find myself wanting to contribute several parts of panel but I never find the time to do so. The mock project I made above is mostly driven by needing it for my own applications. So I can't guarantee any time investment.

Wow, that looks great! Minor nitpick -- would be nice to have some whitespace/newlines between class definitions:

It was really helpful to show what happens to both Parameterized and non-Parameterized classes.  Could you show examples for ParameterizedFunctions and for a Parameterized whose constructor accepts a non-Parameter arg and kwarg?  E.g. what happens for code like:
class FruitStallController(param.Parameterized):
    def __init__(self, posarg=False, kwarg=5, **params):
        super(FruitStallController, self).__init__(**params)

class fn(param.ParameterizedFunction):
      a = param.Integer(3)
      def __call__(self, b, **kw):
          return self.a*b

I think the param sphinx extension would ideally be in its own repo.

Is there some reason not to have that in the Param repo?

Is there some reason not to have that in the Param repo?

Sure. That does at least make more sense than shipping it with nbsite!

@jbednar Good point this indeed needs some whitespace in between.
At the moment I assume the numpydoc extension is used as well (havent tested without it yet) and if the class is a subclass of ParameterizedMetaclass (both Parameterized and ParameterizedFunction) they get treated the same way, and normal numpydoc style formatting is supressed in favour of documenting only Parameters.
This might not be wanted behavior for the general use-case so maybe it should be configurable. What I was aiming for is to document only what users see in the GUI, so internally used args kwargs are ignored.
I suspect that a separate repo might make configuration for users easier when its a full sphinx extension rather then a module within Param. When its a sphinx extension, the configuration would be the more general:
extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.intersphinx',
    'sphinx.ext.mathjax',
    'sphinx.ext.viewcode',
    'numpydoc',
    'paramdoc'
]

compared to
def setup(app):
    app.connect("autodoc-process-docstring", param_format_basic, priority=-100)

Although I dont know how sphinx extensions work exactly.

normal numpydoc style formatting is supressed in favour of documenting only Parameters.

Makes sense. In my own work I rarely use anything but Parameters on a Parameterized, but that seems like an issue for a tool like HoloViews, where there is always a positional argument "data" followed by parameters. In that case the data argument would never get documented, so it's definitely important to make that behavior be configurable.
I don't know much about how sphinx extensions work either, but I would assume that it's not the repo that would matter, it's the packaging. I.e. surely the sphinx extension can live in the same param github repo in a subdirectory, even if it's shipped to the user as a sphinx extension installed separately.


fixes yale YRD220/240 only displaying half the battery

This quirk aims to fix the problem of Yale Real Living YRD 220/240 TSDB only displaying half of the battery percentage.
{   "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=43690, maximum_buffer_size=82, maximum_incoming_transfer_size=255, server_mask=0, maximum_outgoing_transfer_size=255, descriptor_capability_field=0)",   "endpoints": {     "1": {       "profile_id": 260,       "device_type": "0x000a",       "in_clusters": [         "0x0000",         "0x0001",         "0x0009",         "0x000a",         "0x0020",         "0x0101"       ],       "out_clusters": [         "0x000a",         "0x0019"       ]     }   },   "manufacturer": "Yale",   "model": "YRD220/240 TSDB",   "class": "zigpy.device.Device" }
Currently, without a quirk, the battery percentage displayed only starts from 50%, as shown in the attached screenshot.

Pull Request Test Coverage Report for Build 503876756

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 82.998%

Totals

Change from base Build 498377701:
0.04%

Covered Lines:
3261

Relevant Lines:
3929

💛  - Coveralls

Pull Request Test Coverage Report for Build 503876756

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 82.998%

Totals

Change from base Build 498377701:
0.04%

Covered Lines:
3261

Relevant Lines:
3929

💛  - Coveralls

Codecov Report

Merging #737 (f9d73f9) into dev (612506c) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev     #737      +/-   ##
==========================================
+ Coverage   82.95%   82.99%   +0.03%
==========================================
  Files         175      176       +1
  Lines        3920     3929       +9
==========================================
+ Hits         3252     3261       +9
  Misses        668      668

Impacted Files
Coverage Δ

zhaquirks/yale/yrd220240.py
100.00% <100.00%> (ø)

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 612506c...f9d73f9. Read the comment docs.

Codecov Report

Merging #737 (f9d73f9) into dev (612506c) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              dev     #737      +/-   ##
==========================================
+ Coverage   82.95%   82.99%   +0.03%
==========================================
  Files         175      176       +1
  Lines        3920     3929       +9
==========================================
+ Hits         3252     3261       +9
  Misses        668      668

Impacted Files
Coverage Δ

zhaquirks/yale/yrd220240.py
100.00% <100.00%> (ø)

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 612506c...f9d73f9. Read the comment docs.

LGTM

should I open another pr and replace the file names in this folder so it looks cleaner?
cheers.

LGTM

should I open another pr and replace the file names in this folder so it looks cleaner?
cheers.


Make the default changes easily disabled

The user shouldn't have to go and uncheck random boxes under CSS Sections just to get their friends and download button back to the normal location.
Edit 2: Okay I managed to finally fix it by deleting my entire OldGlory install, opening a fresh install, Unchecking Install CSS Tweaks, made sure custom_modules1/2 were unchecked, and then pressed Reload Config.
Edit 3: Rewrote this after cooling down.

That is my bad, the CSS for the bottom top bar should be disabled by default now


Issue with Video NFT's minting to IPFS

Most recent Issue:

https://discord.com/channels/892481940953915433/1161358770316775434
we are facing a bug with the NFT video data of our collection on Soonaverse:
https://soonaverse.com/collection/0x2242ec79d144382687a778ab83f25daf6a74319c
The video-data of our NFT is not available as preview and the  IPFS link under the "System Info" does also not work:
https://soonaverse.com/nft/0x27f6edcdf25505dbda12de09ff125a147c43191d
https://ipfs.io/ipfs/bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku
This bug seems to be already known but not fixed: https://github.com/soonaverse/app/issues/67
Could you please look into this and fix the bug? This seems to be a general problem for all new collections!
Thank you!  (edited)

Previous issue:

https://discord.com/channels/892481940953915433/1152355784655650836/1152357287210524742

Duplicate of #67

It seems that this nft has an empty video.
See here
https://soonaverse.com/nft/0x27f6edcdf25505dbda12de09ff125a147c43191d


Access an engine controller from a global function

If my router.js looks like this
//router.js
this.route('parent', function() {
  this.route('child');
});

And if I want to access the controller of the route 'child' inside a global function. I would use this.
App.__container__.lookup("controller:parent/child")
If I want to achieve the same for the controller in an engine, how would I use it, if my routes.js of my engine looks like this?
//routes.js
this.route('parent', function() {
  this.route('child');
});

I tried App.__container__.lookup("engine:myengine").container.lookup("controller:parent/child")
I cannot access the controller with the above line of code. Also I get a warning saying

DEPRECATION: Using the injected container is deprecated. Please use the getOwner helper instead to access the owner of this object.

It's not a bug

It's not related with ember-engines, but Ember API

Due to no response I think we can close this one?


Suggestion: parse string like, "last monday"

suggestion support parsing strings like "last monday", "next monday"

Yes, I really need a feature like this.

If I go back to what I was using it for, I'll look at implementing it.

Now I use ChatGPT's API to implement a memo feature that helps me extract both the time and event from the input text. Its accuracy is very high. Of course, if it can be implemented using a local library, it is certainly more efficient.

https://github.com/facebook/duckling

Hi. Are there any updates for this suggestion?

I was just looking for this feature myself: "next tuesday 9am", etc.
Strangely, "next week 9am" works great for 7 days.
I'll take a look at implementing and adding some tests.


[CosmosDB] Convert CosmosDB to Knack

Implements #4930.
WARNING: There is 0 test coverage of the data plane commands and only the most limited testing of the management plane. You will need to validate these manually.

View a preview at https://prompt.ws/r/Azure/azure-cli/5118
This is an experimental preview for @microsoft.com users.
(It may take a minute or two for your instance to be ready)
Email feedback to 'azfeedback' with subject 'Prompt Feedback'.


Setup continuous integration

To automatically check the code (and PRs) will compile and pass tests, these services could be used:

[ ] Travis CI for Linux
[ ] AppVeyor for Windows

@petebachant do you know of any resources for compiling fortran on Travis CI?

If you're running the tests on an Ubuntu machine (default I believe), installing gfortran should be as easy as adding this to .travis.yml:
before_install:
    - sudo apt-get update -qq
    - sudo apt-get install -qq gfortran

At the moment, running the regression test suite in a continuous integration environment is impractical due to the time required to run all tests. Some options for reducing the length of the regression test:

Shorten the simulation times
Start from a restart file
Run a subset of the tests

TravisCI now supports Windows in beta, so I've set up a preliminary Windows build. There are also hacks for getting an intel compiler on the TravisCI container. There is an existing bug which prevents the Windows container from properly launching when a secret is included in the TravisCI configuration and a secret is required to pass the Intel Fortran license serial number.
The long regression test issue still persists.

Conditions to test

[ ] Mac - gfortran - single precision
[ ] Mac - gfortran - double precision
[ ] Linux - gfortran - single precision
[ ] Linux - gfortran - double precision
[ ] Linux - ifort - single precision
[ ] Linux - ifort - double precision
[ ] Windows - ifort - single precision
[ ] Windows - ifort - double precision

Hi @rafmudaf
I would recommend to put the task element all in the first comments so they get recognized by Github


Not able to connect after allowing permissions (but have confirmation of permission granted

Traceback (most recent call last):
File "/python-sample-console-app/sample.py", line 81, in
GRAPH_SESSION = device_flow_session(config.CLIENT_ID)
File "/python-sample-console-app/helpers.py", line 54, in device_flow_session
client_id)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/adal/authentication_context.py", line 299, in acquire_token_with_device_code
return self._acquire_token(token_func, user_code_info.get('correlation_id', None))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/adal/authentication_context.py", line 128, in _acquire_token
return token_func(self)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/adal/authentication_context.py", line 292, in token_func
token = token_request.get_token_with_device_code(user_code_info)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/adal/token_request.py", line 392, in get_token_with_device_code
token = client.get_token_with_polling(oauth_parameters, interval, expires_in)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/adal/oauth2_client.py", line 362, in get_token_with_polling
wire_response)
adal.adal_error.AdalError: Unexpected polling state invalid_client

Closing this issue as we are archiving this repository. Please see https://github.com/microsoftgraph/msgraph-training-pythondjangoapp for a Python sample.


enter responder macro

hubot has enter and leave methods that can be very helpful.
well, at least the enter one is.
any plans on adding enter responder macro?

I've thought about these, but I've never really had a practical use-case for them. If you could outline what you'd expect from such macros and how they would be used, I could see if I can work that into the plans for 2.0.

one example would be, when someone enters, the bot could greet them. there are some use-cases where we'd want to greet and give some instruction, or rules, or links to resources, etc

@ryanwinchester is this usually a one-off action? Would you actually want to define more than one of these type of responders?
I'm curious if this would make more sense for a callback in the robot module instead?
def handle_join(%Hedwig.Join{room: room, user: user}, state) do
  # ...
end

def handle_leave(%Hedwig.Leave{room: room, user: user}, state) do
  # ...
end

And what about catchAll listener in Hubot?
module.exports = (robot) ->
   robot.catchAll (msg) ->
   msg.send "I don't know how to react to: #{msg.message.text}."


Thorium 109 special Windows SSE4.2 build for Windows 7

I have a Windows 7 system with a CPU that supports SSE4.2 and AVX. However, when I try to launch Thorium 109 AVX builds, it immediately crashes.
Therefore, I am requesting a special Windows SSE4.2 build (this build works for me)of Thorium 109 that will work for Windows 7 users, including myself.
I understand that this may be an edge case, but I believe this is the only more version needed for Windows 7 users.
I apologize for any inconvenience caused, and I would not have made this request if I had the necessary resources to build it myself.
Thank you.

 I have a Windows 7 system with a CPU that supports SSE4.2 and AVX. However, when I try to launch Thorium 109 AVX builds, it immediately crashes. Therefore, I am requesting a special Windows SSE4.2 build (this build works for me)of Thorium 109 that will work for Windows 7 users, including myself. I understand that this may be an edge case, but I believe this is the only more version needed for Windows 7 users. I apologize for any inconvenience caused, and I would not have made this request if I had the necessary resources to build it myself. Thank you.

@pritkr
Please use the following version:
https://github.com/Alex313031/Thorium-Special/releases/tag/M109.0.5414.120-1

 I have a Windows 7 system with a CPU that supports SSE4.2 and AVX. However, when I try to launch Thorium 109 AVX builds, it immediately crashes. Therefore, I am requesting a special Windows SSE4.2 build (this build works for me)of Thorium 109 that will work for Windows 7 users, including myself. I understand that this may be an edge case, but I believe this is the only more version needed for Windows 7 users. I apologize for any inconvenience caused, and I would not have made this request if I had the necessary resources to build it myself. Thank you.

@pritkr
Please use the following version: https://github.com/Alex313031/Thorium-Special/releases/tag/M109.0.5414.120-1

I already use the SSE3 version can a SSE4.2 version be made for windows 7 users?

The SSE3 version is also fine for now. Regarding the problem you are experiencing, please try running the browser with clean user data and see if it crashes again.


Check password save

It is not working when PUT  http://sp.int3.sonata-nfv.eu:32001/api/v2/users?username=<username> is used

Hi @jbonnet
If you are trying to update the user's password, the PUT method to /api/v2/users? won't do it. It was only intended to update users private and public key. However if this functionality is needed, I can implement it (it requires adding a new case in the code).

Ha! Right, @dang03, we need that...
Thanks,

Ok, there I go!

@jbonnet How is the body of the message you send to the endpoint?
Is the full user registration message (including a new password) or it only has the new password key: value?
Thanks

@dang03 the current API is to update all fields...

Solved.
The 'username' and its 'id' number can't be modified/updated.

+1, @dang03
@pkarkazis @mzacharioudakis can you please retest this?


Support Popups without buttons

Is your feature request related to a problem? Please describe.
PopupDialogs currently always add two layouts. One for the text and one for buttons. This does not look very nice when not using any buttons.
Describe the solution you'd like
Please omit the second layout when not providing buttons.
Describe alternatives you've considered
Passing an empty list of buttons works but add two empty lines to the end of the message.

I'm not quite sure about this request...  Can you explain how you would use such a Dialog?  In particular, why allow a dialog that can't be dismissed (because there are no buttons to close it)?

Our example is "Waiting for client to connect" or "Waiting to load assets". This are status messages mostly but the UI cannot be used until this is finished.

Oh...  I see.  You deliberately don't want the user to be able to enter anything and will dismiss it yourself when the program is ready.  OK.  That makes sense.


Relative path in appsettings.json

There's never a clear way where to put sqlite database file securely, should we put it under wwwroot or application file path? How to specifies it on appsettings.json?
appsettings.json
{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Data Source=data.db3;"
    }
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Verbose",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

Run these 2 commands via command prompt
dnx ef migrations add initial
dnx ef database update

This will produce data.db3 inside application path (This one contains asp.net identity table)

BUT, when we call
 var result=await _userManager.CreateAsync(new ApplicationUser()
            {
                UserName = username,
                Email = email
            }, password);

It is somehow expect the file under wwwroot and creating empty data.db3

which makes creating user fails due its empty
If we have something like
{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Data Source=|DataDirectory|\\data.db3;"
    }
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Verbose",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

there should be no confusion for the runtime on where to look for the file

This looks like it belong in https://github.com/aspnet/EntityFramework/


[3436] Validation on missing data seems slightly broken

Context
https://trello.com/c/YPJgSwuj/3436-validation-on-missing-data-seems-slightly-broken
Changes proposed in this pull request

Fix error summary when attempting to mark Trainee Data from Apply applications with no degrees
Fix the example data so trainee's with an Apply application always have a nationality and degree

Before

After

 Validation on missing data seems slightly broken

@jhenderson approved! tests are failing, but i think it just needs a rebase 👍


List Items generated programmatically

Hi @makotot ,
first of all thanks for the beautiful component! I took a look at the issues unsuccessfully. I'd like to make react-scrollspy work together with programmatically generated list items. Could you plese provide me some info about the feasability. Thanks in advance. Here you'll find a reference code sample to give you a rough idea of what I'm talking:
const Parent = ({options}) => (
  <Scrollspy
    items={ ['news', 'mission', 'whatwedo', 'competences'] }
    currentClassName="active">
      {options.map((x, idx) => <Child item={x} key={idx}/>)}
  </Scrollspy>
);

const Child = ({item}) => (

    {item.label}

);

What I came up with as a work-around is to intercept Scrollspy onUpdate method. I hook into the onUpdate method in order to update a newly created active attribute in the hash array of Scrollspy
 option list items.
I'll welcome a better approach.
Best,
Luca

@lanceschi Sorry, I have no time at this weekday, so I'll check the issue at this weekend.

I think using onUpdate is only way to accomplish your needs. Unfortunately, this lib is not thought about generated list items at least now.

With generated list items, currentClassName does not pass to target list element.

With static list items, currentClassName definitely passes to target.

@makotot thanks! Got it. I guess you can close this issue now.
If you're planning on extending this lib in order to support programmatically generated option items, then let me know. I'd like to help and contribute.
Kind regards,
Luca

@lanceschi I am also trying to use this library with generated list items. Would you mind sharing how you implemented the work-around you mentioned above?  I am trying to console.log the output of any variables in the onUpdate event, but I don't see anything...

Hi @gtwilliams03 onUpdate is to deliver a parameter (object). Here you'll find some code in order to give you an idea of how I implemented the workaround:
Partial JSX markup within the component render function
<Scrollspy
  items={this.optionIdList}
  offset={-160}
  onUpdate={this.setActiveOption}
  currentClassName="active">
    {this
      .state
      .options
      .map((x, idx) => <MenuOption item={x} key={idx}/>)}
</Scrollspy>

OnUpdate event handler function
I read and map the list of the menu options (array of objects) from this.props.options and eventually set the active flag and set as a state of the component. this.state.options is used to programmatically render the menu options as you can see in the above jsx snippet.
setActiveOption(e) {
  if (!e) return;
  const optHash = this
    .props
    .options
    .map(x => (x.anchor === `#${e.id}`)
      ? {
        ...x,
        active: true
      }
      : x);
  this.setState({opts: optHash});
}

I hope it'll help you!
Best,
Luca

@lanceschi Thank you for the note!  I get undefined in the onUpdate handler when I write out e to the console:
    handleScrollSpyChange(e) {
        console.log(e)
    }

    render() {
        const { items } = this.props
        return (

                <Scrollspy items={items.map(i => i.abbreviation)} offset={-100}
                    currentClassName='active' onUpdate={this.handleScrollSpyChange}>
                    {items.map(i => <li key={`${i.abbreviation}`}><a href={`#section-${i.abbreviation}`}>{i.abbreviation}
)}
                </Scrollspy>

        )
    }

@makotot can you:

further explicit what's inside items attribute of Scrollspy;
define your component constructor function? Do you bind that handleScrollSpyChange  function?

Best,
L

Was so stumped that my generated markup wasn't working. This would be good to put in the docs on how to use with programmatically created list objects.

Related to https://github.com/makotot/react-scrollspy/issues/96


how to install abseil locally instead of clone it

when I compile cartographer for new project, it always clone abseil from github and get stocked because of my poor network situation. Can I install abseil locally, so that I will not clone it over and over again?

Sure. You can just change the repository source URL in FindAbseil.cmake to a local directory. It will then “clone” from your local directory.


Fix default FCM_MAX_RECIPIENTS

Deployed the new release with FCM v1 API support and immediately discovered the default value is too high, triggering a messages must not contain more than 500 elements error from the Firebase SDK.
FCM v1 API seems to have changed this limit, so django-push-notifications should adhere to that.

Doc reference: https://firebase.google.com/docs/cloud-messaging/send-message#send-messages-to-multiple-devices


[typed-request-client] avoid stringify comma from query string

Currently queries like { prop: ['1,2', '3,4'] } is being stringify'ed as
'?prop=1%2C2&prop=3%2C4'. The resulting string cannot be parsed by
services like OSRM
(https://github.com/Project-OSRM/osrm-backend/wiki/Server-api). This
change allows callsites to pass a callback function as part of the
request options, and revert the stringify for commas.
Also added a unit test to cover the change.

Looking at the way sirvice uses TypedRequestClient, https://github.com/uber/sirvice/blob/b860dda0319b74bdfa4a6850205d34d722f86633/client/rest-client.js#L35, I think we need to expose the callback to adapt() https://github.com/uber/typed-request-client/blob/2bf14ae8e417a76b441d3099de2f2e8356f5c857/index.js#L11. Correct?

I did some research and could possibly answer my own question: after TypedRequestClient returns a variable V, we could pass the transformUrlFn callback as a property of the object in the 2nd parameter in V(treq, obj, cb). So obj will look like { transformUrlFn: function(url) {} }.
I added one more unit test to show how to use it at the callsite.

lgtm.


Added task orchestration chains

This PR essentially implements the chains outlined in the LangChain Wiki, some slight modifications and re-factoring was done to get it to work with the standard VectorStore class and to have all the relevant functions in the same class as BabyAGI so that the chain could run effectively independently
I think it is worth having these chains as a standalone on the LangChain repo, as orchestration is becoming huge, and there are a lot of other chains being built off of these as a base
make lint and make format have been run locally and are succeeding

Thanks for the PR, @rbehal ! We agree that task orchestration is becoming increasingly important. We are going to take a number of factors into consideration to make a better default agent, so it may take a bit to consider whether this is the ideal place to put this

Sure sounds good! Let me know if I can help in any way or any modifications to be made that I can do

@rbehal we'll likely put this in a langchain.experimental folder - will get into wednesdays release

I took a look at the code in langchain.experimental, but I don't understand how to run langchain/babyagi from the command line, the way I would babyagi.  Can you add an illustration?

Hi @fredzannarbor the class itself is not intended to be directly used from cli as BabyAGI is, it is still meant to be instantiated and run from within a Python script. I will add an example to the README.md, but here is a quick example of a Python file that when run will act like the babyagi you expect:
from typing import Optional
import os
import faiss
from langchain import OpenAI
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.docstore import InMemoryDocstore

from baby_agi import BabyAGI

def get_vector_store():
    # Define your embedding model
    embeddings_model = OpenAIEmbeddings()
    # Initialize the vectorstore as empty
    embedding_size = 1536
    index = faiss.IndexFlatL2(embedding_size)
    return FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})

def main():
    OBJECTIVE = '''
    Develop a marketing plan for a software application
    '''

    llm = OpenAI(temperature=0)
    vectorstore = get_vector_store()
    # Logging of LLMChains
    verbose=False
    # If None, will keep on going forever
    max_iterations: Optional[int] = 8
    baby_agi = BabyAGI.from_llm(
        llm=llm,
        vectorstore=vectorstore,
        verbose=verbose,
        max_iterations=max_iterations
    )

    baby_agi({"objective": OBJECTIVE})

if __name__ == "__main__":
    main()


Fix formatting and links in DAC flow diagram

API change check
API changes are not detected in this pull request.


Read only restriction on work item details page and list action added.

Reviewed changes. This PR looks good to me.


feat: add niri to "Tiling compositor" section

Description
Short description of the changes: add niri to "Tiling compositor" section
Checklist
I have:

[x] 🤳 made sure that what I am adding is an app for end users, not a developer tool / library (no "wl-clipboard-rs")
[x] 🔗 checked that the link I am using refers to the root of the project (example, https://mpv.io) or GitHub repo if the first is not available
[x] 🤓 checked BOTH the name and the casing of the project(s) I am adding ("GNOME Terminal" and not "gnome-terminal", "bemenu" and not "Bemenu", etc.)
[x] 💣 checked that I am using spaces for indentation and that my levels are correct (no tabs!)
[x] ✋ checked that my section has the correct casing ("My section", and not "My Section")
[x] 📝 checked that the projects and / or the section are alphabetically sorted ("Clipboard manager" then "Color picker", "bemenu" then "Fuzzel")

LGTM


TTNN Matmul op doesn't support matrix-vector product

Describe the bug
TTNN matmul op does not support the matrix-vector product. According to the public documentation, the matrix-vector product is supported. However, when I attempt to run the matrix-vector product, I am encountering an error.
To Reproduce
Steps to reproduce the behavior:
import ttnn
import torch

device = ttnn.open_device(0)

tensor_a = torch.rand(2048)
tensor_b = torch.rand(2048, 256)

tensor_c = torch.matmul(tensor_a, tensor_b)

print(tensor_c.shape)

a_tt = ttnn.from_torch(tensor_a, layout=ttnn.TILE_LAYOUT, device=device)
b_tt = ttnn.from_torch(tensor_b, layout=ttnn.TILE_LAYOUT, device=device)

c_tt = ttnn.matmul(a_tt, b_tt)

ttnn.close_device(device)

Error once the above code is executed:
                 Always | FATAL    | ttnn.matmul: The width of the first tensor must be equal to the height of the second tensor
Traceback (most recent call last):
  File "/localdev/sdjordjevic/src/tt-metal/simple_test.py", line 17, in <module>
    c_tt = ttnn.matmul(a_tt, b_tt)
  File "/localdev/sdjordjevic/src/tt-metal/ttnn/ttnn/decorators.py", line 326, in __call__
    return self.function(*function_args, **function_kwargs)
RuntimeError: TT_THROW @ ../ttnn/cpp/ttnn/operations/matmul/matmul.cpp:61: tt::exception
info:
ttnn.matmul: The width of the first tensor must be equal to the height of the second tensor
backtrace:
 --- /localdev/sdjordjevic/src/tt-metal/ttnn/ttnn/_ttnn.so(+0x36f8a8) [0x7fa3732b78a8]
 --- ttnn::operations::matmul::bound_matmul(tt::tt_metal::Tensor const&, tt::tt_metal::Tensor const&, std::__1::optional<tt::tt_metal::Tensor const> const&, ttnn::operations::matmul::Matmul const&, unsigned char const&)
 --- /localdev/sdjordjevic/src/tt-metal/ttnn/ttnn/_ttnn.so(_ZN4ttnn10operations6matmul15MatmulOperation6invokeERKN2tt8tt_metal6TensorES7_bbNSt3__18optionalIKNS4_12MemoryConfigEEENS9_IKNS4_8DataTypeEEENS9_IKNS8_7variantIJNS1_28MatmulMultiCoreProgramConfigENS1_45MatmulMultiCoreNonOptimizedReuseProgramConfigENS1_33MatmulMultiCoreReuseProgramConfigENS1_42MatmulMultiCoreReuseMultiCastProgramConfigENS1_44MatmulMultiCoreReuseMultiCast1DProgramConfigENS1_53MatmulMultiCoreReuseMultiCastDRAMShardedProgramConfigEEEEEERKNS9_IKNS8_12basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEENS9_IKNSG_IJNS_28GrayskullComputeKernelConfigENS_27WormholeComputeKernelConfigEEEEEENS9_IKNS_5types8CoreGridEEE+0x28a) [0x7fa373c4674a]

Expected behavior
The expected behavior of the matrix-vector product should return the vector as stated in the public documentation.
Screenshots
N/A
Please complete the following environment information:

OS: Ubuntu 20.04
Version of software: commit https://github.com/tenstorrent/tt-metal/commit/23b968f8cb5ae13b95d876d615599733903ce375

Additional context
N/A

Could you please try on the most recent main?
I ran the code in the reproduction steps and everything worked:
python
Python 3.8.10 (default, Jul 29 2024, 17:02:10)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ttnn
2024-09-18 18:05:17.484 | DEBUG    | ttnn:<module>:82 - Initial ttnn.CONFIG:
Config{cache_path=/home/bbradel/.cache/ttnn,model_cache_path=/home/bbradel/.cache/ttnn/models,tmp_dir=/tmp/ttnn,enable_model_cache=false,enable_fast_runtime_mode=true,throw_exception_on_fallback=false,enable_logging=false,enable_graph_report=false,enable_detailed_buffer_report=false,enable_detailed_tensor_report=false,enable_comparison_mode=false,comparison_mode_pcc=0.9999,root_report_path=generated/ttnn/reports,report_name=std::nullopt,std::nullopt}
2024-09-18 18:05:19.042 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.pearson_correlation_coefficient be migrated to C++?
2024-09-18 18:05:19.045 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.Conv1d be migrated to C++?
2024-09-18 18:05:19.052 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.conv2d be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.reshape be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.unsqueeze_to_4D be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.squeeze be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.from_torch be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.to_torch be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.to_device be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.from_device be migrated to C++?
2024-09-18 18:05:19.053 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.allocate_tensor_on_device be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.copy_host_to_device_tensor be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.deallocate be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.reallocate be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.load_tensor be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.dump_tensor be migrated to C++?
2024-09-18 18:05:19.054 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.as_tensor be migrated to C++?
2024-09-18 18:05:19.059 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.avg_pool2d be migrated to C++?
2024-09-18 18:05:19.066 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.conv2d be migrated to C++?
2024-09-18 18:05:19.067 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.avg_pool2d be migrated to C++?
2024-09-18 18:05:19.068 | WARNING  | ttnn.decorators:operation_decorator:768 - Should ttnn.Conv1d be migrated to C++?
>>> import torch
>>>
>>> device = ttnn.open_device(0)
                 Device | INFO     | Opening user mode device driver
2024-09-18 18:05:19.108 | INFO     | SiliconDriver   - Detected 1 PCI device : [1]
                  Metal | INFO     | Initializing device 0. Program cache is NOT enabled
                  Metal | INFO     | AI CLK for device 0 is:   1202 MHz
                  Metal | WARNING  | Unable to bind worker thread to CPU Core. May see performance degradation. Error Code: 22
>>>
>>> tensor_a = torch.rand(2048)
>>> tensor_b = torch.rand(2048, 256)
>>>
>>> tensor_c = torch.matmul(tensor_a, tensor_b)
>>>
>>> print(tensor_c.shape)
torch.Size([256])
>>>
>>>
>>> a_tt = ttnn.from_torch(tensor_a, layout=ttnn.TILE_LAYOUT, device=device)
>>> b_tt = ttnn.from_torch(tensor_b, layout=ttnn.TILE_LAYOUT, device=device)
>>>
>>> c_tt = ttnn.matmul(a_tt, b_tt)
>>>
>>> print(c_tt)
ttnn.Tensor([[486.00000, 494.25000,  ...,  0.00000,  0.00000],
             [502.00000, 503.00000,  ...,  0.00000,  0.00000],
             ...,
             [ 0.00000,  0.00000,  ...,  0.00000,  0.00000],
             [ 0.00000,  0.00000,  ...,  0.00000,  0.00000]], shape=Shape([1[32], 256]), dtype=DataType::FLOAT32, layout=Layout::TILE)
>>> ttnn.close_device(device)
                  Metal | INFO     | Closing device 0
                  Metal | INFO     | Disabling and clearing program cache on device 0

Also, given what I found in https://github.com/tenstorrent/tt-metal/issues/12816 I don't think this is a vector-matrix matmul.  I tried the following, which resulted in an exception that I will need to investigate.
a=ttnn.ones([256], device=device)
b=ttnn.from_torch(125*torch.ones([256,256], dtype=torch.bfloat16), layout=ttnn.TILE_LAYOUT, device=device)
c=matmul(a,b)
...
Traceback (most recent call last):
  File "/home/bbradel/m.py", line 48, in <module>
    c = ttnn.matmul(a,b)
  File "/proj_sw/user_dev/bbradel/tt-metal/ttnn/ttnn/decorators.py", line 326, in __call__
    return self.function(*function_args, **function_kwargs)
RuntimeError: TT_FATAL @ ../ttnn/cpp/ttnn/operations/matmul/device/matmul_op.cpp:1273: input_shape_b[index] == 1
info:
When in1 rank greater than in0 rank front dimensions need to be 1
backtrace:
 --- /proj_sw/user_dev/bbradel/tt-metal/ttnn/ttnn/_ttnn.so(+0x4a7527) [0x7fc52c391527]
 --- ttnn::operations::matmul::Matmul::compute_output_shapes(std::__1::vector<tt::tt_metal::Tensor, std::__1::allocator<tt::tt_metal::Tensor>> const&) const
 --- /proj_sw/user_dev/bbradel/tt-metal/ttnn/ttnn/_ttnn.so(_ZN2tt8tt_metal9operation29generic_create_output_tensorsIN4ttnn10operations6matmul6MatmulEEENS1_21program_output_helperIT_Xsr18has_create_programIS8_EE5valueEE4typeERKS8_RKNSt3__16vectorINS0_6TensorENSD_9allocatorISF_EEEENSD_8optionalINS0_8DataTypeEEENS0_6LayoutERKNSL_INS0_12MemoryConfigEEE+0x5d) [0x7fc52d368ecd]
 --- ttnn::operations::matmul::Matmul::create_output_tensors(std::__1::vector<tt::tt_metal::Tensor, std::__1::allocator<tt::tt_metal::Tensor>> const&) const
 --- /proj_sw/user_dev/bbradel/tt-metal/ttnn/ttnn/_ttnn.so(+0x1481e28) [0x7fc52d36be28]

I looked at the old code. We never supported this.
I also tried to implement a workaround by calling other ops to get the right shape. There are currently too many issues with the other ops for that to work.
I will just update the documentation.

Updated doc string to indicate inputs need to have at least 2 dimensions.
Doc string updated via PR https://github.com/tenstorrent/tt-metal/pull/13071


Support fp16 model to weight-only quantization for PyTorch framework

Type of Change
feature
No API changed
Description
Support fp16 model to weight-only quantization for PyTorch framework.
Expected Behavior & Potential Risk
Quantization fp16 model successfully.
How has this PR been tested?
local tested

I think It's better to move the model.float() into the for loopfor name, m in model.named_modules():

yes, changed


Default Permissions

I installed the plugin into my server (wonderful plugin), but I was testing and using the plugin as an OP.
Since we aren't running a permissions plugin we noticed the oddity in which default players are able to use the command /mcmmoextras to toggle the expbar, however they are unable to view the bar unless they are OP'd
Would there we be a way to switch those permissions such that default players cannot toggle the expbar (I assume it's a global setting?) but are able to view the expbar when it is active without an explicit permission to do so?

I noticed that the command has no permission at all. I'm currently not at home, but later I'm going to add a permission for that and a default true value for both.

Sweet, thanks!


Create better '.update' file name for allowing multiple subscribers to download to the same directory.

if a user uses the same directory (-d) for multiple collections, then there is no ability for it to know which collection the ".update" file belongs to. We should probably update this to use the collection name instead of the ".update" file name to ensure the same directory specified doesn't break functionality.
.update_collectionshortname file
Originally posted by @mike-gangl in https://github.com/podaac/data-subscriber/issues/38#issuecomment-1023631008

I think this is a good idea

Path forward:

Subscriber  will look for .update__collection
if found, use that and run as normal

after run, write an update ,update__collection

if no .update__collection exists,

look for .update file
if .update file exists, use that and run as normal

print warning that .update file is being used
after run, write an update ,update__collection

if no .update file is used, run as normal (new run)

after run, write an update ,update__collection

Closed. Will be available with release of 1.8.0


Adarshswaminath

CSS Loader & spinner and feathericon

Hi @adarshswaminath! 😊 Please add the issue that this PR solves. Refer to the Contributing file to help you. Once that’s done, your PR will be opened! 😊


it also MemoryError when i subdivisions=64

when the problem running here
Traceback (most recent call last):
File "D:/Desktop/PyProgram/keras-yolo3/train.py", line 158, in
_main()
File "D:/Desktop/PyProgram/keras-yolo3/train.py", line 38, in _main
train(model, image_data / 255., y_true, log_dir=log_dir)
MemoryError
but my subdivisions=64 how can i do.
my gpu is gtx1070

Hi,I met the same problem，did you found any solutions?

I do think this project don't use the parameter of 'subdivisions' like most yolo project which using tf backend.
so, i recommand you to reduce the batch_size.
If anything wrong about my view, please tell me

t

I do think this project don't use the parameter of 'subdivisions' like most yolo project which using tf backend.
so, i recommand you to reduce the batch_size.
If anything wrong about my view, please tell me

oh yeah,i agree with you opinion ,i tune the batch from 32 to 10 then my machine can run it .


[BEAM-8525] Support Const base in binary_subscr

Fixes edge case in trivial_inference when a subscript operation (e.g. test_list[:]) is performed on a concrete value (instead of a type hint). Before this change, if test_list was ['a', 'b'], the result type of test_list[:] would be str (line 167) instead of List[str] (lint 165).

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Run Python PreCommit

Run Python2_PVR_Flink PreCommit

R: @kennknowles


Madgraph Matrix Elements in MELA

With help from the rest of the JHU group (with a special mention to both Jeff and Michalis) I have interfaced with the madgraph matrix element reweighting tool for the onshell Z/Gamma* process.
My plan is to store the MADGRAPH subprocess areas within a repository inside this JHUGen organization. For now, however, you can access the requisite materials here. There is one edit to the default FORTRAN code that I had to do - and that is evident here (I have changed the name masses to mad_masses so that the MCFM and MADGRAPH common blocks do not interfere).
Currently the only difference from the user-side is that you must change the matrix element to be TVAR::MADGRAPH and in Mela::setInputEvent you must set madMela=true. The couplings also work slightly differently, and are raw values (see the code here.
You are able to edit Yukawa coupling masses with resetYukawaMass in Mela.cc here.
I have opted to not make madMELA an object, as I think that would complicate a lot, seeing as how it would need to initialize many things that could not be shared between ZZMatrixElement and TUtils, etc. Instead, it is simply a namespace that can be accessed.
This is obviously something that is in beta. I am sure that many of you will have feedback and opinions on the manner in which I implemented these changes, so please let me know what you think.

For full transparency, I am copying Andrei's email here to developers here:

Dear colleagues,
Mohit, with assistance from Jeff and initial contributions from Michalis, along with encouragement from several others,
has been working on the implementation of MadGraph matrix elements in MELA. The aim is to enhance the capability
of MELA to handle not only processes implemented in JHUGen and MCFM, or analytically, but potentially in other generators
as well. At present, this is merely a pilot project aimed at exploring the technical aspects, but progress appears promising.
Plots provided by Mohit demonstrate that both JHUGen and MadGraph yield essentially the same ratio of matrix elements
in the H->4l process, which can be utilized for either re-weighting or kinematic discriminants:
https://msrivast.web.cern.ch/.totally_not_a_secret_folder/JHUGenMELA_testing/
Mohit has been invited to present the same MELA tutorial that he prepared for the LPC off-shell workshop at the LPC EFT
workshop in a few days. Consequently, he intends to introduce the proposal to incorporate additional matrix elements in MELA,
which could generate the interest of our EFT colleagues within CMS.
I expect that Mohit is ready to make a PR to show how the infrastructure works. The intent would be not to start using it officially,
but rather have a beta version to make sure that pieces are in the right places.
Regards,
Andrei

We're not yet prepared to request people to use the code, but it's a good idea to showcase the concept and gather user interest. This is what the workshops are for.

This will take some time to review the changes, so I am putting a preliminary review hold. I would not call these features as ready to be shown in a workshop, but I would certainly support the idea to access MG MEs using JHUGen.

Hello @usarica, the MG MEs were simply teased at the EFT workshop. Mentioned it as being in development with a current beta for the Z/Gamma to 4l state to get some interest.
What is the status of your review hold?

This will take some time to review the changes, so I am putting a preliminary review hold. I would not call these features as ready to be shown in a workshop, but I would certainly support the idea to access MG MEs using JHUGen.

Hello @usarica, the MG MEs were simply teased at the EFT workshop. Mentioned it as being in development with a current beta for the Z/Gamma to 4l state to get some interest.
What is the status of your review hold?

Good.
I will probably be able to take a shot at it over the weekend.

Any thoughts @usarica?

@usarica Is there a function that generates mother gluons for you if they are not provided? The Madgraph MEs require gluons, and I was wondering if such functionality already existed.

@usarica Is there a function that generates mother gluons for you if they are not provided? The Madgraph MEs require gluons, and I was wondering if such functionality already existed.

Indeed, there is a function TUtil::GetBoostedParticleVectors that extracts the plain particle ids and momenta from a given MELACandidate based on the specified requirements of the ME calculation: https://github.com/JHUGen/JHUGenMELA/blob/master/MELA/src/TUtil.cc#L7947. There is no function that just extracts momenta for mothers as the extraction in the general setting depends on the number of requested outgoing particles associated with Higgs production, so we perform the interpretation of the candidate object in one go.
The note on how mothers are treated are in these comment blocks: https://github.com/JHUGen/JHUGenMELA/blob/master/MELA/src/TUtil.cc#L8343-L8347.
Here is an example use case that you might find helpful for a LO ggH calculation: https://github.com/JHUGen/JHUGenMELA/blob/master/MELA/src/TUtil.cc#L4808-L4815.
Here is also an analogous example from MCFM calls: https://github.com/JHUGen/JHUGenMELA/blob/master/MELA/src/TUtil.cc#L4112-L4162

I've either made the changes or explained my reasoning for why I did what I did above.

Okay, I think everything should be done here.

I think all that's left is the matter of the helicities - we can discuss what to do there.

I've added a line and another URL to retrieve.csh to allow for the user to wget the file. Once this PR is done (and the structure of libSMEFTsim.so finalized), we can upload the file PR.

A PR shouldn't be needed for this as we will simple add a file to the relevant architecture folder.

@usarica I'm pretty sure everything is done now


Rival 300 CS:GO edition 1038:1394

Hi,
my mouse is not being detected by rivalcfg
$ lsusb
Bus 003 Device 006: ID 1038:1394 SteelSeries ApS

$ rivalcfg
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.

$ DEBUG_DRY=true DEBUG_MOUSE=1038:1394 rivalcfg
[DEBUG] Debugging rivalcfg 2.4.3...
[DEBUG] Python 2.7.13
[DEBUG] Dry run enabled
[DEBUG] Debugging mouse profile 1038:1394
[DEBUG] No mouse profile found
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.

$ DEBUG_DRY=true DEBUG_MOUSE=1038:1394 rivalcfg -c red
[DEBUG] Debugging rivalcfg 2.4.3...
[DEBUG] Python 2.7.13
[DEBUG] Dry run enabled
[DEBUG] No mouse profile found
Usage: rivalcfg [options]

rivalcfg: error: no such option: -c

Any ideas/suggestions?

Hello,
Can you install rivalcfg 2.4.4 (I released it just now) and then try the following command:
DEBUG_PROFILE=1038:1710 DEBUG_DEVICE=1038:1394 rivalcfg -c red

Does it work?

I have this model of mouse, and about 2 months ago I made my own changes to the source code which allowed me to control the mouse. This is my first time contributing to any software project, so please forgive me because I have not used github or made a commit before. I followed the protocol flozz described in a blog post about how he used wireshark and virtualbox to reverse engineer the driver. I have a working tarball which I have compiled and installed on my system which allows me to use the CSGO Fade edition of the mouse.

Hello,
If you can share your work (at least the instruction set of the mouse), I will be able to add its support in rivalcfg :)

I have the complete tarball, but I am rather lost on how I am supposed to upload it. Again, I'm sorry this is my first time on here. Github won't allow me to attach a tar.gz file to this post. How would you like me to upload it?

Github allows to upload .zip files in issues, so you can compress your tarball as zip and then drag&drop it on the "comment" text field, it should be uploaded automatically :)

rivalcfg-<IP_ADDRESS>.zip

Thank you, I will look at your work to integrate it in rivalcfg! :D

The support of this mouse was added to rivalcfg 2.5.0, thank you @Percinnamon for your help!


npm run test  => error

after npm install, npm run build, npm run test, I  got some eslint errors:

Did I forget something?

@Aladdin-ADD good point, I believe the issue is that we're using our same eslint configuration for the markdown javascript samples as we are for the actual code running the site. There's definitely value in this but if we want to continue this process it's probably worth defining some separate, more lax, rules for the javascript within .md files.
@webpack/documentation-team any thoughts? I forget who set this up initially...

Yeah, most likely we want separate linting setups per site/content to fix this.

Tackling this now.


Daniel descriptor form

Added form for adding a descriptor and editting a descriptor
Added views for managing existing descriptors, removing descriptors, adding new descriptors

Note: Currently the buttons aren't spaced nicely, and the icons for some of them are incorrect

Could you post a screenshot of your UI changes?

(incorrect icons)

r @weronica