setting "bufhidden" to "wipe" in a terminal buffer used in a popup window can cause a crash

Describe the bug
Setting "bufhidden" to "wipe" in a terminal buffer used in a popup window can cause a crash.
To Reproduce
Write this in /tmp/vimrc:
let g:loaded_netrwPlugin = 1
set rtp-=~/.vim rtp-=~/.vim/after hidden vif=NONE
au VimEnter * call popup_create(term_start(&shell, #{hidden: 1}), #{border: [], line: 6, col: 5, minheight: 12, minwidth: 68})

nno cd :call Func()<cr>
nno cf :call popup_close(win_getid())<cr>

fu Func() abort
    let buf = term_start(&shell, #{hidden: 1})
    call popup_create(buf, #{line: 7, col: 7, minwidth: 68, minheight: 12})
    exe 'au BufWipeout * ++once bw! '..buf
    call term_start(['sh', '-c', ':'], {'curwin': 1, 'exit_cb': function('Exit')})
endfu
fu Exit(...)
    try
        close
    catch
        call setbufvar(4, '&bufhidden', 'wipe')
    endtry
endfu

Start Vim with this shell command:
vim -Nu /tmp/vimrc

Press C-\ C-n to enter Terminal-Normal mode.
Press cd to invoke Func().
Press cf to close the popup window.
Press j to move the cursor one line down.
Vim crashes.
Expected behavior
Vim doesn't crash.
Environment

Vim version: 8.2 Included patches: 1-367
OS: Ubuntu 16.04.6 LTS
Terminal: XTerm(322)

Additional context
I know that :h popup-buffer warns the user against manipulating the 'bufhidden' option of a popup buffer:

It is possible to change the specifically mentioned options, but anything
might break then, so better leave them alone.

But since it causes a crash, I thought it was still worth being reported.

Here are:

a backtrace
a valgrind log
an asan log

Describe the bug
Setting "bufhidden" to "wipe" in a terminal buffer used in a popup window can cause a crash.
To Reproduce
Write this in /tmp/vimrc:
let g:loaded_netrwPlugin = 1
set rtp-=~/.vim rtp-=~/.vim/after hidden vif=NONE
au VimEnter * call popup_create(term_start(&shell, #{hidden: 1}), #{border: [], line: 6, col: 5, minheight: 12, minwidth: 68})

nno cd :call Func()<cr>
nno cf :call popup_close(win_getid())<cr>

fu Func() abort
    let buf = term_start(&shell, #{hidden: 1})
    call popup_create(buf, #{line: 7, col: 7, minwidth: 68, minheight: 12})
    exe 'au BufWipeout * ++once bw! '..buf
    call term_start(['sh', '-c', ':'], {'curwin': 1, 'exit_cb': function('Exit')})
endfu
fu Exit(...)
    try
        close
    catch
        call setbufvar(4, '&bufhidden', 'wipe')
    endtry
endfu

Start Vim with this shell command:
vim -Nu /tmp/vimrc

Press C-\ C-n to enter Terminal-Normal mode.
Press cd to invoke Func().
Press cf to close the popup window.
Press j to move the cursor one line down.
Vim crashes.
Expected behavior
Vim doesn't crash.
Environment

Vim version: 8.2 Included patches: 1-367
OS: Ubuntu 16.04.6 LTS
Terminal: XTerm(322)

Additional context
I know that :h popup-buffer warns the user against manipulating the 'bufhidden' option of a popup buffer:

It is possible to change the specifically mentioned options, but anything
might break then, so better leave them alone.

But since it causes a crash, I thought it was still worth being reported.

True.  Your reproduction is very complicated.  Is there a simpler way?
At least tell us what is buffer number 4, use a variable instead.
It should be possible to turn this into a regression test.
--
hundred-and-one symptoms of being an internet addict:
200. You really believe in the concept of a "paperless" office.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Sorry for the example; here is a simpler one:
set hidden
au VimEnter * call Func()
fu Func()
    call popup_create(term_start(&shell, #{hidden: 1}), {})
    let buf = term_start(&shell, #{hidden: 1})
    call popup_create(buf, {})
    exe 'au BufWipeout * ++once bw! '..buf
    let d = {}
    fu d.Exit(...)
        try | close | catch | call setbufvar(self.buf, '&bh', 'wipe') | endtry
    endfu
    let d.buf = term_start(['sh', '-c', ':'], #{curwin: 1, exit_cb: function(d.Exit)})
    call popup_close(win_getid())
    call feedkeys("\<c-\>\<c-n>", 'int')
    call timer_start(0, {-> popup_close(win_getid()) + feedkeys('j', 'int')})
endfu

There is no magic number anymore, and it doesn't need to press anything; just write the code in /tmp/vimrc and start Vim with vim -Nu /tmp/vimrc; Vim should crash.
Here is a new backtrace.

I'll try to simplify it further later, if it's not simple enough.

I can reproduce the crash after sourcing the script provided by @lacygoill
and doing :call Func().  Valgrind detects use after free with vim-8.2.367:
==4164== Memcheck, a memory error detector
==4164== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4164== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==4164== Command: ./vim --clean foo.vim
==4164==
==4164== Invalid read of size 8
==4164==    at 0x18D51F: eval_func (eval.c:1718)
==4164==    by 0x194166: eval7 (eval.c:2678)
==4164==    by 0x1941D3: eval6 (eval.c:2371)
==4164==    by 0x1948C3: eval5 (eval.c:2228)
==4164==    by 0x190C13: eval4 (eval.c:2035)
==4164==    by 0x190C13: eval3 (eval.c:1956)
==4164==    by 0x190DB3: eval2 (eval.c:1888)
==4164==    by 0x190DB3: eval1 (eval.c:1816)
==4164==    by 0x1916FC: eval0 (eval.c:1774)
==4164==    by 0x30E588: ex_return (userfunc.c:3408)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30B0AD: call_callback (userfunc.c:1671)
==4164==    by 0x2FAC42: timer_callback (time.c:433)
==4164==    by 0x2FAC42: check_due_timer (time.c:497)
==4164==    by 0x2FC8E4: ui_wait_for_chars_or_timer (ui.c:454)
==4164==    by 0x256974: WaitForChar (os_unix.c:5918)
==4164==    by 0x2FF061: inchar_loop (ui.c:383)
==4164==    by 0x2FEAD9: ui_inchar (ui.c:231)
==4164==    by 0x1E5811: inchar (getchar.c:3360)
==4164==    by 0x1E6184: vgetorpeek (getchar.c:3139)
==4164==    by 0x1E78CB: vgetc (getchar.c:1616)
==4164==    by 0x1E7D18: safe_vgetc (getchar.c:1842)
==4164==    by 0x23B42D: normal_cmd (normal.c:569)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==  Address 0x12cc3198 is 56 bytes inside a block of size 8,912 free'd
==4164==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4164==    by 0x322E77: win_free (window.c:5022)
==4164==    by 0x2630F3: popup_free (popupwin.c:2487)
==4164==    by 0x265A59: popup_close (popupwin.c:2518)
==4164==    by 0x265B5A: popup_close_and_callback (popupwin.c:2154)
==4164==    by 0x19FEC7: call_internal_func (evalfunc.c:1101)
==4164==    by 0x30ABD6: call_func (userfunc.c:1861)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x18D540: eval_func (eval.c:1723)
==4164==    by 0x194166: eval7 (eval.c:2678)
==4164==    by 0x1941D3: eval6 (eval.c:2371)
==4164==    by 0x1944B3: eval5 (eval.c:2186)
==4164==    by 0x190C13: eval4 (eval.c:2035)
==4164==    by 0x190C13: eval3 (eval.c:1956)
==4164==    by 0x190DB3: eval2 (eval.c:1888)
==4164==    by 0x190DB3: eval1 (eval.c:1816)
==4164==    by 0x1916FC: eval0 (eval.c:1774)
==4164==    by 0x30E588: ex_return (userfunc.c:3408)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30B0AD: call_callback (userfunc.c:1671)
==4164==    by 0x2FAC42: timer_callback (time.c:433)
==4164==    by 0x2FAC42: check_due_timer (time.c:497)
==4164==    by 0x2FC8E4: ui_wait_for_chars_or_timer (ui.c:454)
==4164==    by 0x256974: WaitForChar (os_unix.c:5918)
==4164==    by 0x2FF061: inchar_loop (ui.c:383)
==4164==    by 0x2FEAD9: ui_inchar (ui.c:231)
==4164==    by 0x1E5811: inchar (getchar.c:3360)
==4164==    by 0x1E6184: vgetorpeek (getchar.c:3139)
==4164==    by 0x1E78CB: vgetc (getchar.c:1616)
==4164==    by 0x1E7D18: safe_vgetc (getchar.c:1842)
==4164==    by 0x23B42D: normal_cmd (normal.c:569)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==  Block was alloc'd at
==4164==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4164==    by 0x225A80: lalloc (misc2.c:925)
==4164==    by 0x2263ED: alloc_clear (misc2.c:852)
==4164==    by 0x321913: win_alloc (window.c:4816)
==4164==    by 0x32255C: win_alloc_popup_win (window.c:3641)
==4164==    by 0x264EF4: popup_create (popupwin.c:1815)
==4164==    by 0x19FEC7: call_internal_func (evalfunc.c:1101)
==4164==    by 0x30ABD6: call_func (userfunc.c:1861)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x30E1CF: ex_call (userfunc.c:3543)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x30E1CF: ex_call (userfunc.c:3543)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x2A50CB: do_source (scriptfile.c:1365)
==4164==    by 0x2A5EE2: cmd_source (scriptfile.c:933)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x236026: nv_colon (normal.c:3318)
==4164==    by 0x23BA2E: normal_cmd (normal.c:1071)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==
(snip more errors after that)

I've been able to reduce the code to 6 lines:
set hidden
call term_start(&shell, #{hidden: 1})->popup_create({})
call term_start(&shell, #{hidden: 1})->popup_create({})
let s:buf = term_start(['sh', '-c'], #{curwin: 1, exit_cb: {-> setbufvar(s:buf, '&bh', 'wipe')}})
call win_getid()->popup_close()
call timer_start(0, {-> win_getid()->popup_close()})

Write the code in /tmp/vim.vim, then start Vim like this:
vim -Nu NONE -i NONE -S /tmp/vim.vim

I don't think I can make it simpler; every line seems necessary.

I've been able to reduce the code to 6 lines:
set hidden
call term_start(&shell, #{hidden: 1})->popup_create({})
call term_start(&shell, #{hidden: 1})->popup_create({})
let s:buf = term_start(['sh', '-c'], #{curwin: 1, exit_cb: {-> setbufvar(s:buf, '&bh', 'wipe')}})
call win_getid()->popup_close()
call timer_start(0, {-> win_getid()->popup_close()})

Write the code in /tmp/vim.vim, then start Vim like this:
vim -Nu NONE -i NONE -S /tmp/vim.vim

I don't think I can make it simpler; every line seems necessary.

This doesn't crash for me.  The previous one does, but I haven't been
able to pinpoint the reason.  Somehow the current buffer becomes
invalid.
--
hundred-and-one symptoms of being an internet addict:
218. Your spouse hands you a gift wrapped magnet with your PC's name
on it and you accuse him or her of genocide.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Dominique wrote:

I can reproduce the crash after sourcing the script provided by @lacygoill
and doing :call Func().  Valgrind detects use after free with vim-8.2.367:
==4164== Memcheck, a memory error detector
==4164== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4164== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==4164== Command: ./vim --clean foo.vim
==4164==
==4164== Invalid read of size 8
==4164==    at 0x18D51F: eval_func (eval.c:1718)
==4164==    by 0x194166: eval7 (eval.c:2678)
==4164==    by 0x1941D3: eval6 (eval.c:2371)
==4164==    by 0x1948C3: eval5 (eval.c:2228)
==4164==    by 0x190C13: eval4 (eval.c:2035)
==4164==    by 0x190C13: eval3 (eval.c:1956)
==4164==    by 0x190DB3: eval2 (eval.c:1888)
==4164==    by 0x190DB3: eval1 (eval.c:1816)
==4164==    by 0x1916FC: eval0 (eval.c:1774)
==4164==    by 0x30E588: ex_return (userfunc.c:3408)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30B0AD: call_callback (userfunc.c:1671)
==4164==    by 0x2FAC42: timer_callback (time.c:433)
==4164==    by 0x2FAC42: check_due_timer (time.c:497)
==4164==    by 0x2FC8E4: ui_wait_for_chars_or_timer (ui.c:454)
==4164==    by 0x256974: WaitForChar (os_unix.c:5918)
==4164==    by 0x2FF061: inchar_loop (ui.c:383)
==4164==    by 0x2FEAD9: ui_inchar (ui.c:231)
==4164==    by 0x1E5811: inchar (getchar.c:3360)
==4164==    by 0x1E6184: vgetorpeek (getchar.c:3139)
==4164==    by 0x1E78CB: vgetc (getchar.c:1616)
==4164==    by 0x1E7D18: safe_vgetc (getchar.c:1842)
==4164==    by 0x23B42D: normal_cmd (normal.c:569)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==  Address 0x12cc3198 is 56 bytes inside a block of size 8,912 free'd
==4164==    at 0x4C30D3B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4164==    by 0x322E77: win_free (window.c:5022)
==4164==    by 0x2630F3: popup_free (popupwin.c:2487)
==4164==    by 0x265A59: popup_close (popupwin.c:2518)

I can fix the crash by refusing to close the popup if it is the current
window.  The Vim hangs though, thus there is more to fix.

==4164==    by 0x265B5A: popup_close_and_callback (popupwin.c:2154)
==4164==    by 0x19FEC7: call_internal_func (evalfunc.c:1101)
==4164==    by 0x30ABD6: call_func (userfunc.c:1861)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x18D540: eval_func (eval.c:1723)
==4164==    by 0x194166: eval7 (eval.c:2678)
==4164==    by 0x1941D3: eval6 (eval.c:2371)
==4164==    by 0x1944B3: eval5 (eval.c:2186)
==4164==    by 0x190C13: eval4 (eval.c:2035)
==4164==    by 0x190C13: eval3 (eval.c:1956)
==4164==    by 0x190DB3: eval2 (eval.c:1888)
==4164==    by 0x190DB3: eval1 (eval.c:1816)
==4164==    by 0x1916FC: eval0 (eval.c:1774)
==4164==    by 0x30E588: ex_return (userfunc.c:3408)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30B0AD: call_callback (userfunc.c:1671)
==4164==    by 0x2FAC42: timer_callback (time.c:433)
==4164==    by 0x2FAC42: check_due_timer (time.c:497)
==4164==    by 0x2FC8E4: ui_wait_for_chars_or_timer (ui.c:454)
==4164==    by 0x256974: WaitForChar (os_unix.c:5918)
==4164==    by 0x2FF061: inchar_loop (ui.c:383)
==4164==    by 0x2FEAD9: ui_inchar (ui.c:231)
==4164==    by 0x1E5811: inchar (getchar.c:3360)
==4164==    by 0x1E6184: vgetorpeek (getchar.c:3139)
==4164==    by 0x1E78CB: vgetc (getchar.c:1616)
==4164==    by 0x1E7D18: safe_vgetc (getchar.c:1842)
==4164==    by 0x23B42D: normal_cmd (normal.c:569)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==  Block was alloc'd at
==4164==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4164==    by 0x225A80: lalloc (misc2.c:925)
==4164==    by 0x2263ED: alloc_clear (misc2.c:852)
==4164==    by 0x321913: win_alloc (window.c:4816)
==4164==    by 0x32255C: win_alloc_popup_win (window.c:3641)
==4164==    by 0x264EF4: popup_create (popupwin.c:1815)
==4164==    by 0x19FEC7: call_internal_func (evalfunc.c:1101)
==4164==    by 0x30ABD6: call_func (userfunc.c:1861)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x30E1CF: ex_call (userfunc.c:3543)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x308FB6: call_user_func (userfunc.c:1298)
==4164==    by 0x30A0CD: call_user_func_check (userfunc.c:1439)
==4164==    by 0x30AAD2: call_func (userfunc.c:1843)
==4164==    by 0x30AE72: get_func_tv (userfunc.c:557)
==4164==    by 0x30E1CF: ex_call (userfunc.c:3543)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x2A50CB: do_source (scriptfile.c:1365)
==4164==    by 0x2A5EE2: cmd_source (scriptfile.c:933)
==4164==    by 0x1C15D4: do_one_cmd (ex_docmd.c:2497)
==4164==    by 0x1C15D4: do_cmdline (ex_docmd.c:978)
==4164==    by 0x236026: nv_colon (normal.c:3318)
==4164==    by 0x23BA2E: normal_cmd (normal.c:1071)
==4164==    by 0x3803DE: main_loop (main.c:1515)
==4164==    by 0x381B50: vim_main2 (main.c:905)
==4164==    by 0x14B4B4: main (main.c:444)
==4164==
(snip more errors after that)

--
hundred-and-one symptoms of being an internet addict:
219. Your spouse has his or her lawyer deliver the divorce papers...
via e-mail.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

This one crashes systematically on my machine:
" in /tmp/vim.vim
fu Func()
    set hidden
    call term_start('sh', #{hidden: 1})->popup_create({})
    let buf = term_start('sh', #{hidden: 1, term_finish: 'close'})
    call popup_create(buf, {})
    call term_start(['sh', '-c'], #{curwin: 1, exit_cb: function('Exit')})
    sleep 100m
    call popup_close(win_getid())
endfu
fu Exit(...)
    call term_sendkeys(bufnr('#'), "exit\<CR>")
    call popup_close(win_getid())
endfu
au VimEnter * call Func()

" start Vim with:  vim -Nu NONE -i NONE -S /tmp/vimrc

Contrary to the other ones, it does not alter the 'bufhidden' option.
Instead, it relies on the term_finish key passed to term_start():
let buf = term_start('sh', #{hidden: 1, term_finish: 'close'})
                                        ^^^^^^^^^^^^^^^^^^^^

And on term_sendkeys() to type exit.


Add zip_subtrees for paired iteration over DataTrees

This should be used for implementing DataTree arithmetic inside map_over_datasets, so the result does not depend on the order in which child nodes are defined.
I have also added a minimal implementation of breadth-first-search with an explicit queue the current recursion based solution in xarray.core.iterators (which has been removed). The new implementation is also slightly faster in my microbenchmark:
In [1]: import xarray as xr

In [2]: tree = xr.DataTree.from_dict({f"/x{i}": None for i in range(100)})

In [3]: %timeit _ = list(tree.subtree)
# on main
87.2 μs ± 394 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

# with this branch
55.1 μs ± 294 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

[x] Tests added

I made a pass at re-implementing map_over_datasets using zip_subtree in https://github.com/shoyer/xarray/pull/2

so the result does not depend on the order in which child nodes are defined.

I'm not sure I understand this. Surely zip_subtrees is zipping nodes according to the order they appear in .children, which is the order they are defined?

Let me restate this: zip_subtrees allows for zipping together multiple DataTree objects even if child nodes on different trees are defined in different orders, as long as the sets of each node's children match.

And when you say "match" you mean the set of names of the children on tree A match the set of names of the children on tree B?

And when you say "match" you mean the set of names of the children on tree A match the set of names of the children on tree B?

Exactly, matching is based on relative path from each root.

matching is based on relative path from each root.

So I think this will basically create a breaking change relative to how map_over_subtree (and hence all arithmetic) used to work in xarray-contrib/datatree. In the old model the definition of isomorphic was such that you could actually multiply two trees with the same structure but differently-named nodes, e.g.
dt1 = DataTree.from_dict({'a': ..., 'a/b': ..., 'a/c': ...})
dt2 = DataTree.from_dict({'e': ..., 'e/f': ..., 'e/g': ...})

dt1 * dt2  # would return a tree with names following dt1

I was never really sure if that generality was actually necessary though.
Your new definition of isomorphic is sort of like having strict_names=True always, except that the as long as the set of names match then their names will be used to determine their corresponding nodes in the other tree, regardless of order.
Therefore if we're relaxing this then I think there is no longer any need to think of the data model of datatree as being an ordered set of children, as no mapping behaviour will depend on that order any longer.
I think it's okay to change this behaviour, including getting rid of the strict_names kwarg. After all I have never once needed the generality above! I just wanted to really spell out the implications to make sure I and anyone reading is following.
The last sentence of this section of the docs will need changing, and the change would merit an entry in the migration guide.

The last sentence of this section of the docs will need changing, and the change would merit an entry in the migration guide.

I'll do this in the next PR when I migrate over the map_over_datasets stuff.


Fix: Issue #97

Please merge this, fixing schemes for sqlite on centos 7/8

I am getting teh following error during ci, however I have no clue why this is failing. Any idears what I do wrong ?:
2021-03-29T14:56:28.8126004Z Code coverage
2021-03-29T14:56:28.8205729Z   must cover at least 0% of resources
2021-03-29T14:56:28.8206387Z Total resources:   106
2021-03-29T14:56:28.8206808Z Touched resources: 105
2021-03-29T14:56:28.8207245Z Resource coverage: 99.06%
2021-03-29T14:56:28.8207528Z
2021-03-29T14:56:28.8207881Z Untouched resources:
2021-03-29T14:56:28.8208329Z   Yumrepo[powertools]
2021-03-29T14:56:28.8832135Z /opt/hostedtoolcache/Ruby/2.5.8/x64/bin/ruby -I/home/runner/work/puppet-powerdns/puppet-powerdns/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.10.1/lib:/home/runner/work/puppet-powerdns/puppet-powerdns/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.10.2/lib /home/runner/work/puppet-powerdns/puppet-powerdns/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.10.1/exe/rspec --pattern spec/\{aliases,classes,defines,functions,hosts,integration,plans,tasks,type_aliases,types,unit\}/\*\*/\*_spec.rb failed
2021-03-29T14:56:28.9015278Z ##[error]Process completed with exit code 1.

I think the tests in Github didn't run because of a few reasons:

You set the PR target to main instead of develop.
You made your changes in main of your own fork instead of a branch.

Neither would trigger a CI run in our configuration, as far as I know.
The output you've shared doesn't explain much to me. I don't know where it's coming from?
Some feedback on your PR:

Can you reword or squash the initial commits so they all follow semantic commits?
Can you add a check to see if the schema sql file exists?

I know in an earlier issue you posted the output of what the RPM is supposed to do and the schema file is part of this. But as mentioned there too, the schema isn't actually copied, at least, not when you use any of the official, stable, repositories. You used an alpha build there, but as I hope you can understand, we're not aiming for any alpha support. Only stable releases are supported.

One more remark, would you be able to pick a short but descriptive title instead of fix: issue #97? Right now there aren't many PR's, but if you have a list of them it helps if the title has a little bit more to it.

Hi Thx for your Help,
I will close that request, as I just started from scratch working on branch develop. I will make another PR from there.
Thank you regarding the "alpha version" of pdns. By mistake I configured the master-repo rather then the stable version 4.4.
However in Version 4.4 the Schema file is in both version centos 7/8 for pdns 4.4 existing:
[root@puppet-centos7-testvm1 ~]# cat /etc/redhat-release; rpm -ql pdns-backend-sqlite|grep \/schema
CentOS Linux release 7.8.2003 (Core)
/usr/share/doc/pdns-backend-sqlite-4.4.1/schema.sqlite3.sql

@LooOOooM I noticed the output of the rpm file too, but when you install the package, it doesn't seem to get copied to that location (tested on both CentOS 8 and CentOS 7 in Docker containers. Please test that too.
That would be a bug in the pdns-backend-sqlite package, but it does mean that this Puppet module will fail until you get that file and copy it yourself.

@ju5t
Nop, I cannot confirm that, as for me the Packages are there at least for version 4.4.1
[root@puppet-centos8-testvm1 ~]# cat /etc/redhat-release; rpm -ql pdns-backend-sqlite|grep \/schema; rpm -ql pdns-backend-sqlite|grep \/schema|xargs ls -l
CentOS Linux release 7.8.2003 (Core)
/usr/share/doc/pdns-backend-sqlite-4.4.1/schema.sqlite3.sql
-rw-r--r-- 1 root root 3043 Jan 12 21:56 /usr/share/doc/pdns-backend-sqlite-4.4.1/schema.sqlite3.sql

[root@puppet-centos8-testvm1 ~]# cat /etc/redhat-release; rpm -ql pdns-backend-sqlite|grep \/schema; rpm -ql pdns-backend-sqlite|grep \/schema|xargs ls -l
CentOS Linux release 8.2.2004 (Core)
/usr/share/doc/pdns-backend-sqlite/schema.sqlite3.sql
-rw-r--r-- 1 root root 3043 Jan 12 21:56 /usr/share/doc/pdns-backend-sqlite/schema.sqlite3.sql

Sorry, not sure what happened the last few times I tested this (the files were definitely not there..) but in my latest try the files seem to be there.


v3.7.1 Multi-Type Charts (line,bar) ,props:lineDataSymbolLineSize cause exception

in this case the props:lineDataSymbolLineSize will auto become a big number..it makes ppt file can't open.
I make sure it's a new problem after version 3.6.0 ,my program running correct before v3.7.0

move to #1013


3 New Features ? (options)

Hey I just wanna say that I love this engine and I hope it gets more updates and gets better over time, same with The Mind Games Mod (It's a good mod) OKAY ENOUGH OF ME BEING A FAN GIRL let's get down to Business. So I was wondering if u can add Controller support, Moving arrows, and Middle scroll (if yk what I'm sayin) now let me explain why.
One Controller support, Controller support was added in week 7 on Newgrounds and I loved it because of how comfortable it is and it was a lil challenging. There's some people that play on Controller AND it would be comfortable for people who plays on controller on FNF (just like me). It would be fantastic if there was controller support in this engine.
Number 2 moving arrows, Now uh what do I say. It makes the gameplay more cool. That's all I gotta say CASE CLOSED lol.
Number 3 Middle scroll, now I believe a lot of rhythm gamers have middle scroll while playing whatever song they are playing plus it feels comfortable and it's a great option to have. (I would use middle scroll a lot if it was added)
(Side note: Now I know coding is hard because I code too but I'm a newbie at it lol so if u don't know how to add these then it's okay and it's understandable also do you mind making a tutorial on how to add songs in freeplay and How to add Bg's in stages in the folder.)

oooooooo LETS GET IT

Middlescroll is out, i won't close this until i finish Number 1

bet


Incorrect css insertion path on Windows

Incorrect css insertion path on Windows

Perhaps the solution is to replace the backslash

same problem i met too

Okay, I'll fix it later, cross-platform path handling does make me crazy, anyone who knows some tool libraries?

Okay, I'll fix it later, cross-platform path handling does make me crazy, anyone who knows some tool libraries? I can't always deal one by one, that is inefficient.

normalizePath


Compatibility issues

addon 2.5.3 is incompatible changed:Minecraft mod 0.13

Incompatible reason I know some, because the snow fox eyes are not custom, that is, three colors may not be Settings, changed the author of the 0.13.1 pateron version of the Settings custom color, can make the left eye and right eye color different, Iris may change, and Snow Fox did not, hope to add

Already fix
The issue is the Model That was trying to use a "non-existing" animation
And the snow fox (male and female) now have the custom eyes render and a model more similar to the main mod

Well, is the incompatibility problem resolved to 2.5.4, and is 2.5.4 under review?

Well, is the incompatibility problem resolved to 2.5.4, and is 2.5.4 under review?
version 2.5.4 is having slight adjustments before being released but it will probably be divided into two parts, one part will be released before and the second part will be an update to version 2.54


Callback for Image Compression

I'm compressing multiple images in for loop and I want to show progress dialog until compression for all images are done.
How do I get any callback so I can Dismiss my dialog once the compression is done.
Looking for help

you can use an IntentService and  do all your operations from there. When you are done, you can notify your component listening for the event


Cherry-pick updated TensorRT instructions.

git cherry-pick  786668c

updated installation instructions for Tensowflow-TensorRT integration

Minor format changes to clean it up.

Adding the python symlink command for devel packages too.

Forcing the symlink creation.

Updating the sed command for docker parameterized build.

The cherry-pick kept the original author. The bot wants a response from @jjsjann123.

Looks like there's an issue with CLA here.
@cliffwooley Do we want the same doc update to go into r1.8?

It should be the same for 1.8, yes.  Thanks!

My comment does not seem to work :(
I do have CLA under my<EMAIL_ADDRESS>(associated with this account). Feel free to instruct on how to proceed.

Looks like I can fix it manually.
@tfboyd can you review?

I will hit it up tonight just to be sure.  Need to run but wanted let let everyone know we are still moving forward :-)

Hey Amit, Can you help us get this cherry-pick merged?

cmake build is unrelated to .md changes.


Add security headers (copy of #163)

Changes
Pins all pypi dependencies to SHA256 hashes to stop downstream tampering
How to test
Run a clean install using pip install -U -I -r requirements.txt
Edit one of the hashes in requirements.txt
Re-run the command pip install -U -I -r requirements.txt
It should fail, warning of a tampering with one of the packages.
Who can test
Anyone but @dhilton

Creating new PR

https://github.com/ONSdigital/eq-survey-runner/pull/174


ClientException('ffmpeg/avconv was not found in your PATH environment variable',)

the bot can connect to discord and join the correct channel. it even starts the download on the music. but when it goes to play the music, i get errors (listed below):
pi@raspberrypi:~/Musicbot $ sudo python3.6 run.py
Connected!  Musicbot v1.9.5_2

Bot:<PHONE_NUMBER>76975360/MusicBOT#3449
Owner:<PHONE_NUMBER>07903744/arcturus125#1892

Server List:
 - ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ ð•¯ð–šð–“ð–Œð–Šð–”ð–“
 - ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ Music

Bound to text channels:
 - ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ ð•¯ð–šð–“ð–Œð–Šð–”ð–“/music_bot
 - ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ Music/music_requests

Autojoining voice chanels:
 - ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ ð•¯ð–šð–“ð–Œð–Šð–”ð–“/Music Room

Options:
  Command prefix: !
  Default volume: 15%
  Skip threshold: 2 votes or 100%
  Now Playing @mentions: Enabled
  Auto-Summon: Enabled
  Auto-Playlist: Enabled
  Auto-Pause: Enabled
  Delete Messages: Disabled
  Debug Mode: Disabled
  Downloaded songs will be deleted

Deleting old audio cache
Attempting to autojoin Music Room in ð‘¨ð“»ð“¬ð“´ð“±ð“ªð“¶'ð“¼ ð•¯ð–šð–“ð–Œð–Šð–”ð–“
Attempting connection...
Connection established.

[Download] Started: https://www.youtube.com/watch?v=bpOSxM0rNPM
[Download] Complete: https://www.youtube.com/watch?v=bpOSxM0rNPM
Task exception was never retrieved
future: <Task finished coro=<MusicPlayer._play() done, defined at /home/pi/Musicbot/musicbot/player.py:221> exception=ClientException('ffmpeg/avconv was not found in your PATH environment variable',)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/discord/voice_client.py", line 427, in create_ffmpeg_player
    p = subprocess.Popen(args, stdin=stdin, stdout=subprocess.PIPE, stderr=stderr)
  File "/usr/local/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pi/Musicbot/musicbot/player.py", line 256, in _play
    after=lambda: self.loop.call_soon_threadsafe(self._playback_finished)
  File "/usr/local/lib/python3.6/site-packages/discord/voice_client.py", line 430, in create_ffmpeg_player
    raise ClientException('ffmpeg/avconv was not found in your PATH environment variable') from e
discord.errors.ClientException: ffmpeg/avconv was not found in your PATH environment variable

on the guide to raspbian, i followed the instructions perfectly on how to install FFmpeg, i even went back and reinstalled it just in case i did something wrong. but i still got errors.

Look into https://wiki.debian.org/ffmpeg#Installation for install steps for your system as it seems that ffmpeg isn't installed properly. As this isn't really an issue we can solve, I'm going to close this.


Rework Texture*dData traits

New design proposal:
pub trait Texture2dData {
    /// Represents raw pixel data.
    type Data: Copy + Send = u8;

    fn as_raw<'a>(&'a self) -> RawTexture2dData<'a, Self::Data>;

    /// Returns the list of format preferred for `from_raw`.
    fn get_preferred_formats() -> Vec<ClientFormat>;

    fn from_raw(RawTexture2dData<Self::Data>) -> Self;
}

pub struct RawTexture2dData<'a, T> {
    /// The length of `data` must be equal to width * height * format.get_size() / mem::size_of::<T>().
    pub data: Cow<'a, Vec<T>, [T]>,
    pub width: u32,
    pub height: u32,
    pub format: ClientFormat,
}

Same for Texture1dData and Texture3dData.

Why is from_raw required?

@andrewrk I guess I could move from_raw to its own trait

After some attempts, I'm finally going for this:

/// Trait that describes data for a two-dimensional texture.
pub trait Texture2dDataSource {
    type Data: Send + Copy;

    /// Returns the raw representation of the data.
    fn into_raw(self) -> RawImage2d<Self::Data>;
}

/// Trait that describes data for a two-dimensional texture.
pub trait Texture2dDataSink {
    type Data: Send + Copy;

    /// Returns the list of accepted formats.
    fn get_preferred_formats() -> &'static [ClientFormat];

    /// Builds a new object from raw data.
    fn from_raw(RawImage2d<Self::Data>) -> Self;
}

/// Represents raw data for a two-dimensional image.
pub struct RawImage2d<T> {
    /// A contiguous array of pixel data.
    ///
    /// The data must start by the bottom-left hand corner pixel and progress left-to-right and
    /// bottom-to-top.
    ///
    /// `data.len()` must be equal to `width * height * format.get_size() / mem::size_of::<T>()`.
    pub data: Vec<T>,

    /// Number of pixels per column.
    pub width: u32,

    /// Number of pixels per row.
    pub height: u32,

    /// Formats of the pixels.
    pub format: ClientFormat,
}


--dry-run argument should be added.

We should add a --dry-run argument to the task runner. Sometimes it is needed to check the real commands being put in.

main@762fcab added this feature.


The problem
Can the state be changed to a timestamp , which one can template easily, instead of this predefined long String
Specific device(s)?
None
Firmware type
None

Hello. I will check this possibility and get back to you

If this helps:
What the integration supplies: 2024-03-01T09:33:27+00:00
What a "last updated" attribute looks like, which is supposed to be the right format: 2024-03-01 23:00:00.141389+00:00
I get there is no "tzdata" in the string.
Thank you.
Michael

Actually this is the string i see in my UI " February  29, 2024 at 01:49 "
And i would prefer a much shorter.
I understand Vaskivskyi argument in regards to to the "uptime status" which many previous(and still use) i.e ( 5 days, 11 hours, 37min "ago")( and counting ) has a bad/not desired impact on the system/hardware.
I.E I could/would "interpret" a "string" without the Year at all or in 2 digits ... I mean if it i.e says October ( I know it was 2023 ) , i would know that even it it just said " Oct " or Even if it said "Mar" ( As there are a few days until Marsh 29 )
And how many, peoples Router does actually Not need a "reboot" once or twice a year ? , So the risk that people ends up in a confused state is quite small
So maybe the sensor could provide 2 strings, or 2 sensors ( i know ! i can make my 0wn template-sensor )
But maybe a short and the long version could be an alternative
October 29, 2024 at 01:49
Oct. 29 at 01.49
I would prefer the latest/shortest

For me, this also puts the issue into a "non-hurry" state. :)

I ended up with this
      {% set date = states('sensor.asusr_boot_time')[:10] | as_timestamp |
      timestamp_custom('%b-%d') %} {% set (h,m,s) =
      states('sensor.asusr_boot_time')[10:19].split(':') | map('int', 0) %}  {%
      set time = utcnow().replace(hour=h, minute=m, second=s) | as_timestamp |
      timestamp_custom('%H:%M') %} {{date}} at {{time}}

But as i needed it in an custom:multi-entity-row , inside the "header" of custom:fold-entity-row ( Which is filled with "device_trackers" in custom:mushroom-entity-cards, provided by custom:auto-entities ) btw. LOL
For this, i had to create a template-sensor ( anyways ) ... only haven't figured out howto remove " "
Before:

After:

So for me, i'll close this FR, as i obviously always need "something else" hmmmm :)


chore(mocha.opts) update buba to v2

closes https://github.com/mostjs/package-starter/pull/128

:+1:


added kshitij's detail to the script

Hi @mauryakshitij,
Unable to merge your PR due to the deletion of the head repository.


Feature request: Change of dist dir for build (subdirectory of dist)

Describe the feature
Hi,
I'm currently writing a nuxt module that contains some components
The end result is a bunch of files under dist
I'm also using panda css to generate a css file into the same dist directory.
If I try to put any files into dist before nuxt has done it's build then they will be cleaned away before the build.
So instead I have to put the files there after the nuxt build.
But if I add an exports for those files added afterwards into package.json
then nuxt will give a warning / error about missing files in the exports section.
One thought was to set an option to prevent nuxt cleaning the dist dir during build, but I've not managed to find it
A better option would be to just specify a subdir within dist for nuxt to build to, but that doesn't seem possible at the moment
https://github.com/nuxt/nuxt/discussions/18465
A different workaround I'm currently using is to build the non nuxt files into src/runtime/
add them to .gitignore, then let nuxt copy them into dist/runtime during the build
but I think the ability to specify a subdir of dist would be better.
Additional information

[ ] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

I've just realised with nuxt-module-build you can specify --outDir as it's using unbuild.
My mistake on this one, I'll close it down for now


Options and firebug inspector box

Related to Issue #2

hi bro
can you help me to convert it from jquery to vanilla javascript


Make CSV column headers case insensitive

Summary
Column headers of CSV files read as input for the MEF can now have any casing and will still be treated the same by the program
New behavior
The program should still run the same as before, but now CSV headers can have any casing (e.g. enrollmentStatus, ENROLLMENTSTATUS, and EnRoLlMeNtStAtUs are all valid and refer to the same thing).
Code changes

csvModule.js now converts all headers to lowercase upon reading the CSV and will convert any keys provided to a get function to lowercase to properly find values
Every single CSV extractor has had its version of a formatting function changed to accommodate lowercase csv headers
Every CSV extractor test file has had its fixtures and tests changed to expect lowercase headers from the csvModule
csvValidoator.js has been updated to convert the CSV schema and actual CSV headers to lowercase before comparing them

Testing guidance

Ensure that all previous functionality still works as expected
Mess up a few column headers with different casing and see that the extractor still works
Check that any change to some part of the program to accommodate case insensitivity hasn't messed up something else in some unforeseen way

I think this just needs a rebase to get back in line with develop, and then it should be good to merge!


Match exception if connection just connected #15764

Fixes #15764
see https://github.com/netty/netty/pull/10523
Documentation

[X] doc-not-needed

@WJL3333
Please follow the rules below:

Doc label instructions: https://docs.google.com/document/d/1Qw7LHQdXWBW9t2-r-A7QdFDBwmZh6ytB4guwMoXHqc0/edit#

Pulsar Pull Request Naming Convention Guide: https://docs.google.com/document/d/1d8Pw6ZbWk-_pCKdOmdvx9rnhPiyuxwq60_TrD68d7BA/edit#heading=h.wu6ygjne8e35

The problem with the original test is that it assumes that IP <IP_ADDRESS> is a "black hole". This is an assumption which doesn't hold when a firewall blocks such connections.

@lhotari so we need add more connection timeout condition in the origin test ?


IDE / lint highlighting of await Future.delayed(const Duration(seconds: X)); inside flutter tests because its not working

Use case
"await Future.delayed(const Duration(seconds: 5));" inside the /integration_test folder works as expected (but also causes problems with nested tests).
In the /test directory, the same test loads forever.
This is unexpected behaviour, I know there is some documentation where its written down, but it would be nice to highlight it within the IDE/linter and warn devs not to use Future.delayed() or replace it with load indicators within ui tests.
I know that await Future.delayed(const Duration(seconds: X)); should not be used in production tests, but for debugging it can be useful.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:debugging_flutter/main.dart';

void main() {
  testWidgets('test', (WidgetTester tester) async {
    await tester.pumpWidget(const MyApp());

    await Future.delayed(const Duration(seconds: 5));

    await tester.tap(find.byIcon(Icons.add));

  });
}

@lewinpauli
Check https://api.flutter.dev/flutter/flutter_test/TestWidgetsFlutterBinding/delayed.html and https://github.com/flutter/flutter/issues/57754 for reference.
Also, if you are suggesting for IDE / linter, then it would fall under respective github repos.


How to setup my own server?

I have a machine attached to our network, that run a full node Bitcoin Core (both main and testnet3).
Is it possible to install the QBitNinja server on that machine without the need of an extra Azure VM?
Although there are some documentations regarding the issue, I feel lost at how to exactly configure my own server for both main and testnet.
The public QBitNinja server works great, but it is somewhat slow and is mentioned that it is not suitable for production. Can you please help me (and others) ?
I'm not familiar with Azure at all, but willing to learn. (BTW, too bad we can't use QBitNinja server with a local SQL-Server db and should depend on a service we can't control such Azure)

@bazooka70 you can't depends on a sql server for QBitNinja, it need Azure services.
If you really want a block explorer not coupled with azure and don't mind it is not indexing everything (only specific HDPubKey), you can take a look at https://github.com/dgarage/NBXplorer
Sadly I can't spend time explaining you how to setup.
I mention the component in the readme.
I regret it is not easier to install. I was looking to migrate QBitNinja to .NET Core so I can make a one click install easily, but some component were missing.
I advise you to hire an .NET developer familiar with Azure for a day in order to setup this for you, it should be rather obvious for them. (I sadly don't have time on my side though :( )

@NicolasDorier , Believe me I trying very hard to learn your code, and learn about azure. I actually managed to go feather with QBitNinja. I opened azure storage, a bus, and run QBitNinja.Listener.Console.exe -- init on my network machine with a local synced node of Bitcoin Coer on it,  in the hope that I would not need a VM on azure.
I configured QBitNinja.Listener.Console.exe.config : Azure.AccountName, Azure.Key, ServiceBus (i.e. Endpoint=sb://...
All the other parameters are default.
When I run it, I can see the tables created on my azure storage (i.e  balances, callbacks, chain, etc...) but then it throws an exception:
D:\QBitNinja.Listener.Console>QBitNinja.Listener.Console.exe --init
QBitNinja.Listener Information: 0 : Start initial indexing

Unhandled Exception: System.Net.Sockets.SocketException: No such host is known
   at System.Net.Dns.GetAddrInfo(String name)
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
   at NBitcoin.Utils.ParseIpEndpoint(String endpoint, Int32 defaultPort)
   at NBitcoin.Indexer.IndexerConfiguration.ConnectToNode(Boolean isRelay)
   at QBitNinja.InitialIndexer.Run(ChainBase chain) in D:\Projects\QBitNinja-master\QBitNinja\InitialIndexer.cs:line 125
   at QBitNinja.Listener.Console.Program.Main(String[] args) in D:\Projects\QBitNinja-master\QBitNinja.Listener.Console\Program.cs:line 101

So what am I doing wrong?

OK, this seem to work now - i.e. something is happening ...
QBitNinja.Listener Information: 0 : Enqueing from<PHONE_NUMBER> blocks...
I missed the <add key="Node" value="unused" /> key, and changed it to localhost.

so you are good at this point.
It just takes LOTS of time to index everything, and lot's of bandwidth, which is why I advice running the indexer in the same data center than the storage.
Your client will work once it is synched up, but believe me, if your VM is not in azure it will take forever. (Might take 5 days even inside azure)

So QBitNinja is divided into two projects

The listener that you just set up correctly
The front end

The front end project (QBitNinja project in the solution) is a ASP.NET WEB API which you can easily host as an Azure Web App for example. You can also use your own server of course, this is less critical than the Listener.

Our basic strategy is to host everything on our servers which can control, this is why I think a local index database (not azure) such as sql-server, mysql, sqlite could be a good idea. But I might consider staying with azure if everything works fine and fast. in any case while indexing the QBitNinja.Listener.Console.exe it trowed an exception while processing these lines:
...
QBitNinja.Listener Information: 0 : Enqueing from<PHONE_NUMBER> blocks
QBitNinja.Listener Information: 0 : Enqueing from 510800 546 blocks
QBitNinja.Listener Information: 0 : Dequeuing index jobs
Work remaining in the queue : 1400
QBitNinja.Listener Information: 0 : Processing default/blocks- 0-135300
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed

The exception:
Unhandled Exception: Microsoft.ServiceBus.Messaging.MessagingCommunicationException: The request was aborted: The request was canceled. ---> System.ServiceModel.CommunicationException: The request was aborted: The request was canceled. ---> System.IO.IOException: The request was aborted: The request
 was canceled. ---> System.Net.WebException: The request was aborted: The request was canceled.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceBus.ServiceBusClientWebSocket.<ConnectAsync>d__45.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.ServiceBus.ServiceBusClientWebSocket.<ConnectAsync>d__45.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceBus.Common.TaskHelpers.EndAsyncResult(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.WebSocketConnectAsyncResult.<GetAsyncSteps>b__14_1(WebSocketConnectAsyncResult thisPtr, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
   --- End of inner exception stack trace ---
   at Microsoft.ServiceBus.Messaging.Channels.SharedChannel`1.CreateChannelAsyncResult.<GetAsyncSteps>d__6.MoveNext()
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.Start()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.Channels.SharedChannel`1.OnEndCreateInstance(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.SingletonManager`1.EndGetInstance(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<>c.<GetAsyncSteps>b__9_1(RequestAsyncResult thisPtr, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.RequestAsyncResult.<>c__DisplayClass8_1.<GetAsyncSteps>b__4(RequestAsyncResult thisPtr, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.EndRequest(IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<>c.<GetAsyncSteps>b__9_3(RequestAsyncResult thisPtr, IAsyncResult r)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.RenewLockAsyncResult.<>c.<GetAsyncSteps>b__10_1(RenewLockAsyncResult thisPtr, IAsyncResult a)
   at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.EnumerateSteps(CurrentThreadType state)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.OnEndRenewMessageLocks(IAsyncResult result)
   --- End of inner exception stack trace ---
   at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.ReceiveContext.EndRenewLock(IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.BrokeredMessage.EndRenewLock(IAsyncResult result)
   at Microsoft.ServiceBus.Messaging.BrokeredMessage.RenewLock()
   at QBitNinja.InitialIndexer.Run(ChainBase chain) in D:\Projects\QBitNinja-master\QBitNinja\InitialIndexer.cs:line 199
   at QBitNinja.Listener.Console.Program.Main(String[] args) in D:\Projects\QBitNinja-master\QBitNinja.Listener.Console\Program.cs:line 101

What could cause this and how to proceed?
BTW,

I advise you to hire an .NET developer familiar with Azure
Can we hire you? :)

@bazooka70 QBitNinja is too heavily coupled to Azure (many optimization trick only possible on azure), it is impossible to change the backend.
Concerning the exception, it is the first time I see this one. It might come from disconnection with Azure.
You can run on your server, but really, the initial indexing is VERY long. At least use a server in azure for the initial indexing, then once it is over migrate on premise.

@NicolasDorier Now this exception is constant every time I run it:
Work remaining in the queue : 1400
QBitNinja.Listener Information: 0 : Processing default/blocks- 0-135300
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed
QBitNinja.Listener Information: 0 : Lock renewed

Only god knows what "Lock renewed" means.
This is exactly the reason I was against azure in the first place. Azure reports no problems and I'm lost at what could be causing this...

That said, you are trying NBXplorer, I think that for your case it might be enough and way easier.

I want a plan B. it has become a bit of a challenge for me to beat azure and install QbitNinja on my server! :)

Lock renewed is normal.
Basically the init process has been done so one can use multiple listener to index at the same time.
The idea is (only for initial indexing):
A server split the blockchain by work unit and push each work unit in a queue.
Once done, if you have like 5 indexers, each indexer will dequeue a unit of work and process it.
However, it might happen that an indexer get disconnected, in which case the unit of work should go back in the queue after a timeout.
The periodic lock renewal is a way for the indexer to keep the unit of work longer.

Just a guess, maybe the free trail account on Azure I have now, is limiting requests... dunno :/
I will deferentially try to focus on NBXplorer now, and leave this battle to another day, maybe.

I don't think this is rate limiting issue. But really you can easily take a look by running the indexer from a VM hosted in Azure.


InlineAdmin gives 422 Unprocessable Entity error

Hello,
I'm using your application with fastapi + sqlalchemy
I have 2 tables:
Reservation
   id
Transaction
  id
  reservation_id (foreignkey to reservation.id)

I declare a InlineAdmin like that for my transaction:
class InlineTransactionAdmin(SqlAlchemyInlineModelAdmin):
    model = Transaction
    fk_name = "reservation_id"
    ...

And for ReservationAdmin:
@register(Reservation, sqlalchemy_sessionmaker=sqlalchemy_sessionmaker)
class ReservationAdmin(SqlAlchemyModelAdmin):
    inlines = (InlineTransactionAdmin,)

when a click on a reservation detail's: Transactions>change the transactions aren't loaded and i see errors in the api call:
`
GET /admin/api/list/Transaction?limit=10&offset=0&reservation_id=34 HTTP/1.1" 422 Unprocessable Entity
`
The query seems ok: reservation_id=34 but i don't have details about the reason i have the error 422 Unprocessable Entity
Thanks for your help.
The error returned is : {"detail":"Filter by reservation_id is not allowed"}

My bas, i was missing a coma in my list_display :(
`
list_display = (
"id",
"charge_point_id"
"identifier",
)
==> fix:
list_display = (
    "id",
    "charge_point_id",
    "identifier",
)

`


Eats esc

Consequently I cannot close any other panel using the esc key.
OS X 10.10.5
Atom 1.2.0

#32


Allow objects in keys in kafka messages

When publishing a message in a topic, it is only possible to send a string in the key. :

Although, it could be useful the send objects. As the key sometimes is represented as a JSON object.
For instance, this could be done like this :

Do you think this could be implemented ?
Thank you

Hello ! I think it could be an enhancement for this PR : https://github.com/Decathlon/tzatziki/pull/157
@nkhalis were you able to test if this PR is valid ?

I'll check it the next week 😀


Consolidate a mixture of mutating and functional style in AtomCollection::post_process

The function currently does this:
        self.put_before(Atom::IndentEnd, Atom::Space, &[]);
        self.put_before(Atom::Hardline, Atom::Blankline, &[Atom::Space]);
        self.put_before(Atom::IndentStart, Atom::Space, &[]);
        self.put_before(Atom::IndentStart, Atom::Hardline, &[Atom::Space]);
        self.put_before(Atom::IndentEnd, Atom::Hardline, &[Atom::Space]);
        self.atoms = self.clean_up_consecutive(Atom::Space, &[]);
        self.atoms = self.clean_up_consecutive(Atom::Hardline, &[Atom::Space]);
        self.atoms = self.trim_following(Atom::Hardline, Atom::Space);
        self.atoms = self.trim_following(Atom::Blankline, Atom::Space);
        self.remove_before(Atom::Hardline, Atom::Blankline, &[Atom::Space]);
        self.ensure_final_hardline();

While this works, and doesn't seem to matter much in terms of performance, the mixing of a mutating and a functional style is inconsistent and should be consolidated. The most straightforward way to do so is probably to make clean_up_consecutive and trim_following mutating.

It's possible that you will see a performance gain on a big input file. In any case, I like how you've simplified the various post-processing steps into one reordering pattern. The old code felt hacky to me.

Closed by #102, I believe.


Can't Access Preferences on BigSur and M1

While it launches quickly and loads on an M1, the only menu items are Refresh and Quit. If there are any logs I can provide let me know. I'll also happily compile new builds for testing on the M1.
Hardware: M1 MacBook Air, 2020
MacOS: 11.2.3 (20D91)

Sigh. That's because preferences moved out of the right-click menu to the menu bar. Closing...


User Class methods calls  and variables aren't colored in python

What bothers me is that child.value is not colored and same for source.get_name() and target.get_name()
On left VS Code, on right Atom. The yellow and blue difference of BattleCommand doesnt bother me, same with "=".
Something like  "meta.member.access meta.function-call" in scope of "Malibu" could help, but it breaks other stuff.

Thanks for the report.  I've added meta.function-call.generic to Malibu which fixes the function calls,   I'm not sure about changing member access as I think that might have a larger impact that I would like.  Do you have the Python extension installed and semantic highlighting enabled?  That will help out tremendously and this theme is built with semantic highlighting at the top of mind.

Hi thank you for fast reply. I have semantic highlighting enabled

This is list of my extensions:

Could you share a repo with a reproducible example of your code?

Hi, there si short non working snipper, that could give you an idea. It is not ideal for me to share this code, I'm sorry.
class AI:
	def __init__(self, player_name, board, players_order, max_transfers):
		self.player_name = player_name

	class Node:
		def __init__(self, value, player):
			self.value = value

		def child_best_get(self):
			for child in self.childs:
				if (child.best == self.best).all():
					return child

	def gen_attacks(self, node, depth):
		return node

	def ai_turn(self, board, nb_moves_this_turn, nb_transfers_this_turn, nb_turns_this_game, time_left):
		root = self.gen_attacks(self.Node(board, self.player_name), 3) #root is node

		child = root.child_best_get() # child is also class Node
		(b, source, target) = child.value #<-- here is problem!!!!!
	```

Seems a bit of an edge case so I'm going to leave it as is for now to prevent accidentally breaking other languages.

Yeah, that seems reasonable. Thank you for your help.


Add expect testing using runt

While recovering from the back injury and wanting to learn some rust, I wrote runt,
a lightweight and parallel snapshot testing tool.
This PR add snapshot testing for futil using runt.

Looks nice!! Before we merge this can we make it pass CI? Is it possible to add an empty/trivial runt.toml file?

Bleh, I broke it by moving runt.toml to the repo root. Will fix.

CI passing now. Squash and merge whenever.


Makefile: Update bots target for moved GitHub project

Cockpit bots are in their own project now.
Make the target phony so that make bots updates an existing checkout.

Codecov Report

Merging #788 into master will decrease coverage by 1.77%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #788      +/-   ##
==========================================
- Coverage   78.54%   76.76%   -1.78%
==========================================
  Files          67       67
  Lines        3379     3379
  Branches      707      707
==========================================
- Hits         2654     2594      -60
- Misses        725      785      +60

Impacted Files
Coverage Δ

core/sagas/modals.js
40% <0%> (-44%)
:arrow_down:

components/ListView/SourcesListItem.js
70% <0%> (-30%)
:arrow_down:

components/Modal/ManageSources.js
73.59% <0%> (-18.41%)
:arrow_down:

core/reducers/modals.js
59.67% <0%> (-12.91%)
:arrow_down:

core/actions/modals.js
71.42% <0%> (-9.53%)
:arrow_down:

core/composer.js
86.3% <0%> (-5.48%)
:arrow_down:

components/Notifications/Notification.js
66.66% <0%> (-4.77%)
:arrow_down:

core/selectors.js
92.96% <0%> (-0.79%)
:arrow_down:

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 e0416ea...a51867a. Read the comment docs.


fcitx5*: update

Motivation for this change
Update.
Brise is deprecated in fcitx5-rime and replaced by plum which can be used out of nix store. Furthermore, the old fcitx5-rime packing copied a file into brise causing an error, "premission denied".
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/678

Result of nixpkgs-review pr 153149 run on x86_64-linux 1

2 packages marked as broken and skipped:

libsForQt512.fcitx5-qt
libsForQt514.fcitx5-qt

13 packages built:

fcitx5
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk
fcitx5-lua
fcitx5-m17n
fcitx5-mozc
fcitx5-rime
fcitx5-table-extra
fcitx5-table-other
fcitx5-with-addons
libime
libsForQt5.fcitx5-qt (libsForQt515.fcitx5-qt ,plasma5Packages.fcitx5-qt)


[BUG]: Test Issue 15

Bug Description
N/A
Logs
N/A
Screenshots
No response
Additional Environment Information
No response
Steps to Reproduce
N/A
Expected Behavior
N/A
CSM Driver(s)
N/A
Installation Type
No response
Container Storage Modules Enabled
No response
Container Orchestrator
N/A
Operating System
N/A

/sync


found crate bevy compiled by an incompatible version of rust

Bevy version
0.8.3
[Optional] Relevant system information
macOS Big Sur
rust version 1.64.0

Could you add more details to your issue?
Also, there isn't a version 0.8.3 of Bevy, where did you find it?

Hey 0.8.3 is a a mistake I meant 0.8.1

Reviewing this, Bevy's official MSRV is "latest stable" Rust, which is currently 1.65. If the latest release we have, v0.9.0 cannot compile on 1.65 alongside the prerequisite build dependencies external to Rust/cargo, we can probably keep this issue open. Otherwise this issue is wholly unactionable. As this has been almost a month without further information, I'm closing this issue until @paspielka provides more information.


Bootstrap + Custom Stylesheet

Is it possible to use bootstrap with node-email-templates as well as a custom stylesheet?
I have tried putting the bootstrap file in the same directory as my template along with my stylus file, but that only inlines the bootstrap and not my custom styles.
I also tried using juice options trying to pass in the bootstrap css through the extraCss options
var bootstrap_css = String(fs.readFileSync(path.join(__dirname, './path_to/bootstrap.css')));
var testEmail = new EmailTemplater(testTemplateDir,
    {
      juiceOptions: {
        preserveMediaQueries: true,
        removeStyleTags: true,
        extraCss: bootstrap_css
      }
    });

I can log the file contents and see all the css, but it isn't getting inlined with my custom styles when I call the render method.
I am going about this wrong here?
I can't figure it out.  Anybody with a bootstrap example that would like to share would help a lot.

I found a workaround by using gulp to concat bootstrap css file into a custom stylus file. However I pictured the right way to do it being a lot cleaner.
Here was my solution:
var gulp = require('gulp')
  , path = require('path')
  , gulp_stylus = require('gulp-stylus')
  , gulp_concat = require('gulp-concat')
  , gulp_filter = require('gulp-filter');

var concatStylus = function (styl_arr, css_arr, out_dest){
  var styles =  (css_arr && css_arr.length > 0) ? styl_arr.concat(css_arr) : styl_arr;
  var filter = gulp_filter('**/*.styl', {restore: true});
  gulp.src(styles)
          .pipe(filter)
          .pipe(gulp_stylus())
          .pipe(filter.restore)
          .pipe(gulp_concat('style.css'))
          .pipe(gulp.dest(out_dest));
};

var mergeBootstrap = function (src_stylus, out_dir){
  concatStylus( [path.join(__dirname, '../path-to-styles/', src_stylus)]
            , [path.join(__dirname, '../path-to-styles/bootstrap.css')]
            , path.join(__dirname, '../path-to-email-templates/', out_dir));
};

mergeBootstrap('test.styl', 'test');

Hope this helps anybody in the same boat.
Would love to see a cleaner solution.

Thank you!


OpenCV: Capture Video from Camera

# import the opencv library
import cv2

# define a video capture object
vid = cv2.VideoCapture(0)

while(True):

	# Capture the video frame
	# by frame
	ret, frame = vid.read()

	# Display the resulting frame
	cv2.imshow('frame', frame)

	# the 'q' button is set as the
	# quitting button you may use any
	# desired button of your choice
	if cv2.waitKey(1) & 0xFF == ord('q'):
		break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

# import the opencv library
import cv2

# define a video capture object
vid = cv2.VideoCapture(0)

while(True):

	# Capture the video frame
	# by frame
	ret, frame = vid.read()

	# Display the resulting frame
	cv2.imshow('frame', frame)

	# the 'q' button is set as the
	# quitting button you may use any
	# desired button of your choice
	if cv2.waitKey(1) & 0xFF == ord('q'):
		break

# After the loop release the cap object
vid.release()
# Destroy all the windows
cv2.destroyAllWindows()

Solution: -

To access the camera, you need to set the path where the images taken from the camera are to be stored.
Make sure you have opencv installed
Command : - !pip install opencv-python
Now use the below code : -
import cv2
import uuid
import os
import time
labels = ['pistol','knife','rifle','shotgun']
number_imgs = 5
	By using above code lables are created so that pictures will be saved in respective folders and number_imgs is number of images to be taken.
IMAGES_PATH = os.path.join('Tensorflow', 'workspace', 'images', 'collectedimages')
	By using the above code we are defining the path.

if not os.path.exists(IMAGES_PATH):
if os.name == 'posix':
!mkdir -p {IMAGES_PATH}
if os.name == 'nt':
!mkdir {IMAGES_PATH}
for label in labels:
path = os.path.join(IMAGES_PATH, label)
if not os.path.exists(path):
!mkdir {path}
	The Images path will be created inside virtual environment by using the above code.
for label in labels:
cap = cv2.VideoCapture(0)
print('Collecting images for {}'.format(label))
time.sleep(5)
for imgnum in range(number_imgs):
print('Collecting image {}'.format(imgnum))
ret, frame = cap.read()
imgname = os.path.join(IMAGES_PATH,label,label+'.'+'{}.jpg'.format(str(uuid.uuid1())))
cv2.imwrite(imgname, frame)
cv2.imshow('frame', frame)
time.sleep(2)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
	By using the above code the camera will open and take pictures and saved them automatically in the specified folders inside the virtual environment.


TINY-11426: Combined dependabot pr branch to update dependencies

Related Ticket: TINY-11426
Description of Changes:

get-func-name: Version updated from "2.0.0" to "2.0.2"
<EMAIL_ADDRESS>Version updated from "5.7.1" to "5.7.2"
<EMAIL_ADDRESS>Version updated from "6.3.0" to "6.3.1"
<EMAIL_ADDRESS>Version updated from "7.3.0" to "7.3.4"
word-wrap: Version updated from "1.2.3" to "1.2.4"

Pre-checks:

[x] ~Changelog entry added~
[x] ~package.json version bumped (if first change of new major/minor)~
[x] ~Tests have been added (if applicable)~
[ ] Validate that tests are passing by devs.

Before merging:

[ ] Ensure internal dependencies are on appropriate versions

For stable releases, all dependencies must be stable
For release candidates, all dependencies must be release candidates or stable

NOTE: Below warnings worth mentioning when running yarn buildLintTest
(node:71308) Warning: deprecate: multiple logger configuration is deprecated, please check the migration guide.
(node:71308) [DEP0106] DeprecationWarning: crypto.createDecipher is deprecated.


Replace .input-group-btn with .input-group-append

.input-group-btn has been replaced by .input-group-append which means that the file buttons look slightly off with the latest version of bootstrap.
https://getbootstrap.com/docs/4.0/migration/#input-groups

Just saw that there are already a few pull requests addressing the issue. Closing.


⚠ Bofrost.gr has degraded performance

In e894ce7, Bofrost.gr (https://www.bofrost.gr) experienced degraded performance:

HTTP code: 200
Response time: 3620 ms

Resolved: Bofrost.gr performance has improved in 06273bd after 22 minutes.


column.editorRenderer: OnStartEdit not called

Describe the bug
When you click on a cell to edit it and it has a custom editor (column.editorRenderer), the onStartEdit-method is not called.
Although it is not described explititit in the documentation, I thought it would behave like a normal editor and the onStartEdit method would be called.
The onSaveCell method is called btw.
To Reproduce
Steps to reproduce the behavior:

Add a custom component via editorRenderer to a column
Add a onStartEdit method to the cellEditFactory
Click a cell within the column => the onStartEdit method is not called

codesandbox
Sandbox

@Devkutt it's expected behavior for me, but it could be discussed when there're another developer have same concerns.  So far onStartEdit is being called in the "Editor" itself component, so if you custom the editor component via column.editorRenderer, react-bootstrap-table2 can not call this event.
As I said, if there're many people have same concern, then I will consider to improve this behavior. thanks

I'm facing the same problem, I'm using the onStartEdit to calculate the next cell for my custom tabbing behaviour (btw is there any update from this issue: 207 because if this would be fixed I would need to use the onStartEdit).
But is there a way to trigger the onStartEdit in a custom editorRenderer? (with the same params so I still have my indexes for row and columns)

This is also an issue for me.
Because I  build a component around react-bootstrap-table2,  which save the current row when moving to another one.  I check that was moved to another row in onStartEdit.  When using a custom editor onStartEdit is not activated.
This is this part of the code:
function onStartEdit(rec: TRec, col: BsColumn, rowI: number, colI: number) {
// Save previous records if moved to another row.
if (rec !== curRecRef.current) {
if (curRecNeedSave()) saveCurRec();
curRecRef.current = rec;
}
}


Migrated from Z-Stick 7 to Z-stick 5 (non +) - Issues with checking firmware

I finally had enough with dealing with all the dead nodes and performance issues related to my z-stick 7 and performed an NVM backup and restore to a Z-stick 5. All is working much better now, but I've noted in the logs that i'm getting an error on most of my devices at boot and if I manually try to check for firmware updates.  When I manually check for an update, I see this error  in the UI and log:
2023-02-01 10:06:51.505 INFO Z-WAVE: Cannot check for firmware updates for node 58: Cannot read properties of undefined (reading 'includes') (ZW0261) getAvailableFirmwareUpdates undefined
when I reboot, I see the following error for every node:
2023-02-01 10:09:06.359 ERROR Z-WAVE-SERVER: Cannot check for firmware updates for node 24: Cannot read properties of undefined (reading 'includes') (ZW0261)
ZWaveError: Cannot check for firmware updates for node 24: Cannot read properties of undefined (reading 'includes') (ZW0261)
at ZWaveController.getAvailableFirmwareUpdates (/usr/src/app/node_modules/zwave-js/src/lib/controller/Controller.ts:5234:10)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at Function.handle (/usr/src/app/node_modules/@zwave-js/server/dist/lib/controller/message_handler.js:205:30)
at Client.receiveMessage (/usr/src/app/node_modules/@zwave-js/server/dist/lib/server.js:106:62)
I've attempted to re-interview the nodes, refresh values, heal them, update topics, but none of these appear to resolve this issue. Is this expected behavior on a 500 series device (maybe unhandled due to my swap) or is there an issue going on here? I can only find one reference to this error online, so trying to get some more information on what else may be wrong.
Also, for clarity, running the latest release:
zwave-js-ui: <IP_ADDRESS>9eb88
zwave-js: 10.5.5
Z-stick Gen 5 is running FW 1.2 with SDK 6.81.6
Thanks!

I'm also seeing these errors in my setup (zwave-js-ui 1.6.2, Home Assistant 2023.1.4).
I see this error message in the UI when checking for firmware updates: Error while calling api getAvailableFirmwareUpdates: Cannot check for firmware updates for node 6: Cannot read properties of undefined (reading 'includes') (ZW0261).
And this is what I see in the debug window (@Hooverjc how did you get stack traces in your logs?) :
2023-01-31 08:50:43.266 INFO Z-WAVE: Calling api getAvailableFirmwareUpdates with args: [ 23, { includePrereleases: false }, [length]: 2 ]
2023-01-31 08:50:43.758 INFO Z-WAVE: Cannot check for firmware updates for node 23: Cannot read properties of undefined (reading 'includes') (ZW0261) getAvailableFirmwareUpdates undefined
2023-01-31 08:50:53.331 INFO Z-WAVE: Calling api getAvailableFirmwareUpdates with args: [ 23, { includePrereleases: true }, [length]: 2 ]
2023-01-31 08:50:53.821 INFO Z-WAVE: Cannot check for firmware updates for node 23: Cannot read properties of undefined (reading 'includes') (ZW0261) getAvailableFirmwareUpdates undefined
2023-01-31 08:51:02.553 INFO Z-WAVE: Calling api getAvailableFirmwareUpdates with args: [ 23, { includePrereleases: false }, [length]: 2 ]
2023-01-31 08:51:03.063 INFO Z-WAVE: Cannot check for firmware updates for node 23: Cannot read properties of undefined (reading 'includes') (ZW0261) getAvailableFirmwareUpdates undefined

And this is what I see in the debug window (@Hooverjc how did you get stack traces in your logs?) :

I have logging enabled at the log level of "error" and this is just how it reports for me in the docker logs. Again, the more verbose message is only present at boot, the manual check looks similar to yours, I just had a hard time getting both lines together due to activity at home causing lots of traffic on the network.

Ditto - my logs look identical.

2023-01-31 08:50:43.758 INFO Z-WAVE: Cannot check for firmware updates for node 23: Cannot read properties of undefined (reading 'includes') (ZW0261) getAvailableFirmwareUpdates undefined

I think this is an issue on your side @AlCalzone


Difficult identify feature class from the legend

It is difficult to recognise which colour the lines representing polution levels are on the map with reference to the legend. Solution could be to change the colour scheme or make the features clickable which would bring up an information box

Agreed. Related to #368 and notes from #378. We're using a raster layer from DEFRA and have no control over the styling, and haven't attempted the API for looking up info at a point. It'd be better for us to find the raw data somewhere and process it into our own layer, so we can control the colour scheme, make the thresholds match inspections requirements, etc.

Just to add that this has been raised by someone else:

Another ATIP suggestion for your list 1  - this time for Roadside NOx key  - could the colours key be more distinct - I can't tell if the road by Harrogate station is 41-60 or 61-80 as the colours very similar on key .


fix: Add OP_RENEW to SyncDictionary

When all SyncDictionary values are set simultaneously, this treats the serialization/deserialization as "all" instead of "delta" which means Callback will not be invoked, so you will miss data changes from the host.

interesting. @Moddingdudes any way we can reproduce the bug?
then we can add a unit test if you let us know the initial issue

Yes. Create a SyncDictionary with 2 keys and values. Add a callback to the SyncDictionary and have it log something. Iterate over all of the SyncDictionary keys and set their values to something new to trigger the Set overload of the SyncDictionary. The SyncDictionary seems to treat this as a new snapshot instead of a delta and calls OnDeserializeAll instead of OnDeserializeDelta, which means Callback is not fired. That's why I added an AddOperation function call in OnDeserializeAll with a new OP_RENEW addition to the Enum. In my testing, this worked well.

thx will take a look soon ish!

looks like I can't reproduce this one.
on server:
        readonly SyncDictionary<int, string> dict = new SyncDictionary<int, string>();

        public override void OnStartServer()
        {
            dict[42] = "answer";
            dict[1337] = "leet";
        }

on client:

        public override void OnStartClient()
        {
            dict.OnChange += (op, key, old) => Debug.Log($"[Client] dict changed [{op}] {key} from {old} to {dict[key]}");
        }

then in a [Command] on server to change all values at the same time:

            foreach (int key in dict.Keys.ToArray())
            {
                dict[key] = dict[key] + "!";
            }

press play, change on server, callback runs on client just fine:

both callbacks fire on client


Making mnemonic-based wallet adding in CX more usable

MyEtherWallet CX 3.8.9
Chromium portable 60.0.3112.10
When I try to add a wallet via a mnemonic phrase, no button ever appears, but if I press enter while within the textbox, it displays the derived addresses. Most importantly, it's ambiguous because it's visible that a line-break is added before showing the addresses, and it's not clear whether the line-break is part of the seed or not. Also, it's unclear what derivation method is used to generate the addresses.
I'd suggest doing it with a button and adding similar derivation path choices as in the dist release would make it more reliable.

The codebase for v3 is locked for features like these but I'll make a note of it for v4 👍

Thank you very much!

1 eth bounty for fixing bugs.
2 eth if you make it work really well

Hey! Fixed some of the issues mentioned above plus some more.
Couldn't reproduce the problem with disappearing button though, the bug might still be there.

ok, can I take the job?

@Zwilla DM me on slack. There are like 60 issues on github. Which one's interest you most?

@domalak Thank you -- I'll review in Am.


⚠ Bofrost.nl has degraded performance

In 0dc4d30, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 2396 ms

Resolved: Bofrost.nl performance has improved in 79dfcd7 after 6 minutes.


Add support for KHR_materials_volume

Adds support for KHR_materials_volume to gltfio. It is important to note that we don't currently handle the special
case of thickness set to 0 which requires to change the refraction model to a thin model. We do however — thanks to a
fairly gross hack — handle thickness scaling.

This PR also addresses rendering issues with transmission, most notably by using alpha-as-coverage instead of the fade blending mode.

Will there be a support for MaterialProvider in Android?

@alexey-pelykh How so? This extension is handled by gltfio so it will work on Android.

@romainguy but it's not exposed in MaterialProvider.MaterialKey?

Ah you're right, that's an oversight. I'll fix it.


Lambdas issue 31 query timer delay

Will rebase from develop and resolve conflict soon.

@hhlee445 let me know when you're merging. I can tell you how to resolve conflicts. I'm running into issues rebasing from develop - would be much easier to just resolve conflict at merging.


Updated colors

Moved colors to private variables (also easier to set since the variables are RGB) at the top of the file; veyn said he will be moving these to the config at some point so it makes it easier for him
Changed the role-based colors to job-based colors
Updated colors to be more "muted" so it's still easy to tell which triangle is the boss and which is the player

Examples:

Looks like we were kinda working on similar things at the same time.
I already moved the colors to the config, though yours look more consistent than mine (I just eyeballed it haha).
If you want to port the job-based colors and colors to my current commit, I'll merge!

Preview of changes.


HADOOP-17997. RBF: Namespace usage of mount table with multi subclust…

…ers can exceed quota

Description of PR
How was this patch tested?
For code changes:

[x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
[ ] Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 46s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
13m 13s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
21m 24s

trunk passed

+1 :green_heart:
compile
5m 15s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
4m 53s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m 13s

trunk passed

+1 :green_heart:
mvnsite
2m  9s

trunk passed

+1 :green_heart:
javadoc
1m 41s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
2m 25s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m 28s

trunk passed

+1 :green_heart:
shadedclient
19m 52s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 27s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 45s

the patch passed

+1 :green_heart:
compile
5m  6s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
5m  6s

the patch passed

+1 :green_heart:
compile
4m 43s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
4m 43s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m  5s

the patch passed

+1 :green_heart:
mvnsite
1m 51s

the patch passed

+1 :green_heart:
javadoc
1m 18s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
2m 13s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
4m 27s

the patch passed

+1 :green_heart:
shadedclient
19m 40s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
235m 53s

hadoop-hdfs in the patch passed.

+1 :green_heart:
unit
22m 14s

hadoop-hdfs-rbf in the patch passed.

+1 :green_heart:
asflicense
0m 44s

The patch does not generate ASF License warnings.

380m 59s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3634/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3634

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux c647fa91fbe1 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 54b64c2ce0b8c0478d16e5ede0aa6c002f79dc1c

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3634/1/testReport/

Max. process+thread count
3342 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs hadoop-hdfs-project/hadoop-hdfs-rbf U: hadoop-hdfs-project

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3634/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.


[Question]:  how to use analyze_paper?

how to use analyze_paper?
How do i use the analyze_paper
I've tried the --context command and add a txt file there but i get this error
C:\Users\abuba>fabric --context C:\Users\abuba.config\fabric\contexts\Here is the PDF content converted t.txt
could not find context C:\Users\abuba.config\fabric\contexts\Here: could not load C:\Users\abuba.config\fabric\contexts\Here: open C:\Users\abuba.config\fabric\contexts\C:\Users\abuba.config\fabric\contexts\Here: The filename, directory name, or volume label syntax is incorrect.
bit of a newbie sorry if this has been asked before

so far, i haven't used --context for any workflows.  the basics for me are yt, echo, and cat i think TYPE is the command is windows pipe text to fabric.
An example would be: type C:\path\to\text.txt | fabric -p analyze_paper
good luck.

@charlie-romeo thanks for that will be sure to use the type  function
also figured out using get-clipboard as an alternative to pbpaste shown in the readme section, maybe that should be mentioned there


Improvement: notification for low battery

Hello,
I don't know if it's really possible as I have no real overview of the numerous supported protocols, but it would be really handy to have a (email) notification when the battery reaches a certain threshold.

Some protocols already support it:
https://github.com/tananaev/traccar/search?q=ALARM_LOW_BATTERY

But doesn't that mean I need to enable the notification for all "alarms"? I might not wish to receive the alarm for "movement" for example.

Yes, you would have to enable all alarms. There is no way to filter those out at the moment.

I'm also searching  for this answer. I'm using mini finder Pico protocol on port 5062. I'm using traccar version 3.9  . Does this low battery alarm is available  on this version?
Best regards

It should be.

Closing because I am posting in a more useful issue thread
https://github.com/tananaev/traccar/issues/2920


Edit button not shown when permission is derived from layer role

When a document is added to a layer that a user has access to modify by role (role layer), the edit button is not shown in the document display.

The origin of this bug is in the file: nunaliit2/nunaliit2-js/src/main/js/nunaliit2/n2.couchMap.js
In the routine "canEditDoc(data)", the only role which is verified is administrator. Layer roles should be verified, as well.


Fix kvp test case failures

See details in commits.

Also, as we know some distros don't have kvp by default in azure platform, if it is expected, then we need mark case as skipped in step 1?

Also, as we know some distros don't have kvp by default in azure platform, if it is expected, then we need mark case as skipped in step 1?

will mark them in next round failure analysis.


Fix "inline-options" class for checkbox list field

In checkboxlist fields, .inline-options in not working. When applied it search for:
.field-checkboxlist:not(.is-scrollable)

that is the first container, not acting on checkbox items.
Others .field-checkboxlist classes are specifically named to:
.field-checkboxlist-scrollable

.field-checkboxlist-inner

So, i changed .less definitions to reflect this naming.
In addition, i added a little margin to single item for a better UI/UX.

replaced :not(.is-scrollable) selector with direct classes .field-checkboxlist-scrollable and .field-checkboxlist-inner
added margins to single checkbox for improved mobile UI/UX

@ArchimedeSolutions can you provide a before / after screenshot?

Before

After


bazel: 5.2.0 -> 5.3.2

Description of changes
https://blog.bazel.build/2022/08/23/bazel-5.3.html
to supersede https://github.com/NixOS/nixpkgs/pull/187943 and https://github.com/NixOS/nixpkgs/pull/198016
re-reverts https://github.com/NixOS/nixpkgs/pull/199458 with more hash updates: bazel-watcher, jaxlib, tensorflow, envoy. That should be all using buildBazelPackage with bazel_5. On darwin tensorflow still fails, so replacing hash with explicitly invalid one.
Things done

Built on platform(s)

[X] x86_64-linux
[X] aarch64-linux
[X] x86_64-darwin
[X] aarch64-darwin

[X] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

https://github.com/ofborg build envoy

@ofborg build tensorflow

@ofborg build python3Packages.jaxlib

@ofborg build envoy
@ofborg build python3Packages.jaxlib
@ofborg build python3Packages.tensorflow

@ofborg build envoy
@ofborg build bazel-watcher
@ofborg build python3Packages.jaxlib
@ofborg build python3Packages.tensorflow
@ofborg build python3Packages.jaxlibWithCuda
@ofborg build python3Packages.tensorflowWithCuda

@ofborg build envoy
@ofborg build bazel-watcher
@ofborg build verible
@ofborg build python3Packages.jaxlib
@ofborg build python3Packages.ray
@ofborg build python3Packages.tensorflow
@ofborg build python3Packages.jaxlibWithCuda
@ofborg build python3Packages.tensorflowWithCuda

@ofborg build envoy
@ofborg build bazel-watcher
@ofborg build verible
@ofborg build python3Packages.jaxlib
@ofborg build python3Packages.ray
@ofborg build python3Packages.tensorflow
@ofborg build python3Packages.jaxlibWithCuda
@ofborg build python3Packages.tensorflowWithCuda

python3Packages.jaxlib and python3Packages.tensorflow on x86_64-darwin failures seem to be unrelated
https://github.com/bazelbuild/bazel/issues/5127
https://github.com/bazelbuild/bazel/issues/15359
bazel, bazel.passthru.tests on aarch64-darwin is bazel_3 failing on installCheckPhase, should also be unrelated

envoy fails for me on aarch64-linux
error: hash mismatch in fixed-output derivation '/nix/store/4x5zgyw71nbph204nzxj2fab1c7j53g4-envoy-1.23.1-deps.tar.gz.drv':
         specified: sha256-/L/QC1nOLqLUGoXfNSXYqA+QHJ8euLLXPvfNEpTGBBc=
            got:    sha256-AkNQ5+HVliSQAB5hmrW1eADKfW/GQhxZZPo3S+eISdo=

@ofborg build envoy

Builds for me now, aarch64-linux (possible I just got lucky though)

nixpkgs-review reveals no new failures, aarch64-linux

Looks like the build on aarch64-darwin is broken.

https://github.com/ofborg build bazel_5

bazel aka bazel_3 is failing on ofborg on aarc64-darwin, bazel_5 should be fine (works locally at least)
maybe because PR title had bazel:  prefix it decided to build bazel_3, requested explicit bazel_5 build now and changed the title

yep, bazel_5 builds on ofborg, bazel_3 failure on aarch64-darwin should be unrelated

Sorry for the delay. Please rebase and then we can merge this.

Rebasing, will need to update some hashes.
Meanwhile 5.4.0 got released, should we skip 5.3.2 or better make it a separate PR?

rebased now :+1:

If straight to 5.4.0 should be better, here's a draft https://github.com/NixOS/nixpkgs/pull/207870


Homebrew Bolstered Spell +2 not customizable

Cant turn off the homebrew change to bolstered spell (+1 to +2 spell level)
Kinda force up in the mod for a homebrew change.

O.o The bolstered changes don't exist in this mod.

Well the setting in 1.11.2 should work, I know it worked in all testing I did in that version which was fairly extensive. Other than that not much I can do about it.


predict scores for specific user on specific products

Hi,
In the intro_post.md
There's an example to predict scores for specific user.
# Predict scores for user 75 on items 100, 101, and 102 predictions = model.predict(user_ids=[75, 75, 75],                             item_ids=[100, 101, 102],                             user_features=user_features,                             item_features=item_features)
However, I got an error on running the code:
TypeError: predict() got an unexpected keyword argument 'user_ids'
And I look at the predict() in tensorrec.py, there's no params for user_ids or item_ids.
Could you please advice how I can use the function to call recommendation for specific user?
Thank you so much,
Kara

Hey @Kara035 ! That example is from an old blog post, and the API has changed since then. Now, you can the predictions for specific users and items by only passing the features for those users and items to predict().
Something like:
model.predict(user_features=user_features[75], item_features=item_features[100:103])