Custom singletons

Hi,
I recently starting using the plugin for formatting ColdFusion code and I love it so far. The only issue I've seen is the "custom_singletons" property. I could not find much documentation around it so I dug into the source code and it appears to allow any regex. I tried the following to cover all of my custom tags but had mixed results: "cf_.*|cf(?:module)". How is it intended to be used?
Thanks,
Micah

That is essentially the intended use (though a little more advanced of a use case than most users would use), though I have not actually tested it with full-on regex.
Out of curiosity, I just modified my personal settings and added some tags to my test file, and I was surprised by the results. Regex lookaheads don't cause an issue, but a non-matching group does. I'll have to look in to what may be causing this.
Settings (I apologize for the ordering, I just added them as I thought of them)
(1) "custom_singletons":"cfmodule|cf_.*"
(2) "custom_singletons":"cfmodule|cf(?=_.*)"
(3) "custom_singletons":"cfmodule|cf_(?:.*)"
(4) "custom_singletons":"cfmodule|cf_(?=.*)"
(5) "custom_singletons":"cfmodule|cf(?:_.*)"

Markup Used in Minimal Test

<cfmodule/>
<cf_module/>

Minimal Result (same in all cases)

<cfmodule/>
<cf_module/>

Markup used in Full Test
<ui-select-choices ng-show="$select.search.length> 1" repeat="person in teachersFiltered | filter:$select.search | limitTo: 7" position='down' ng-click="testing 'things' and stuff" attribute-without-value>

  <tag name="test" thing>

    <input attr="1"
           attr-two="2"/>

    <custom-tag></custom-tag>

    <angular-tag>
      {{ angular_template }}{{:: single_bind_template }}
    </angular-tag>

    <blade-tag>
      {{{ $categories->title }}}
    </blade-tag>

    <blade-tag>
      {{ $pattern->name }}
    </blade-tag>

    <textarea>blah this is a message</textarea>
  </tag>
  <cfmodule/>
  <cf_blah/>

</ui-select-choices>

Results 1, 3, 5
<ui-select-choices ng-show="$select.search.length> 1" repeat="person in teachersFiltered | filter:$select.search | limitTo: 7" position='down' ng-click="testing 'things' and stuff" attribute-without-value>

  <tag name="test" thing>

    <input attr="1" attr-two="2"/>

    <custom-tag></custom-tag>

    <angular-tag>
      {{ angular_template }}{{:: single_bind_template }}
    </angular-tag>

    <blade-tag>
      {{{ $categories->title }}}
    </blade-tag>

    <blade-tag>
      {{ $pattern->name }}
    </blade-tag>

    <textarea>blah this is a message</textarea>
  </tag>
  <cfmodule/>
  <cf_blah/> /* COMMENT */ /* COMMENT */ /* SCRIPT */ /* COMMENT */ /* SCRIPT */ /* COMMENT */ /* COMMENT */ /* COMMENT */

</ui-select-choices>

Results 2 & 4 (indentation error at end is a known bug)
<ui-select-choices ng-show="$select.search.length> 1" repeat="person in teachersFiltered | filter:$select.search | limitTo: 7" position='down' ng-click="testing 'things' and stuff" attribute-without-value>

  <tag name="test" thing>

    <input attr="1" attr-two="2"/>

    <custom-tag></custom-tag>

    <angular-tag>
      {{ angular_template }}{{:: single_bind_template }}
    </angular-tag>

    <blade-tag>
      {{{ $categories->title }}}
    </blade-tag>

    <blade-tag>
      {{ $pattern->name }}
    </blade-tag>

    <textarea>blah this is a message</textarea>
  </tag>
  <cfmodule/>
  <cf_blah/>

  </ui-select-choices>

I just had another thought (and figured that it deserved its own comment in this thread so I can find it later), but self.singletons in the formatter (and by extension, self.midle_tags [further note to self, fix spelling there]) should probably lead off with a regex lookahead instead of a capturing group to avoid problems with this in the future.
# Current code
self.singletons = r'<([singletons])([^>]*?)/?>(?:\s*?</\1>)?'
# Revised code(?)
self.singletons = r'<(?=[singletons])(\S*) ([^>]*?)/?>(?:\s*?</\1>)?'

This would probably also deal with the issue of using .* in the custom_singletons setting because .* may be swallowing the rest of the line before the second matching group. I'll run some tests.

Thanks for the response. I noticed the issue with the lookahead so I came up with a workaround that helped me get where I needed to go. I updated the source code to the following:
self.singletons = r'<(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr|cf(?:_[^\s>]|abort|admin|applet|argument|associate|authenticate|break|content|continue|cookie|directory|document|documentitem|documentsection|dump|error|execute|exit|file|flush|header|httpparam|import|include|index|invoke|invokeargument|ldap|location|log|mailparam|module|object|objectcache|param|processingdirective|property|queryparam|rethrow|return|retry|schedule|set|setting|thread|throw)<%= custom %>)([^>]?)/?>(?:\s*?</\1>)?'
Thanks,
Micah

On May 25, 2016, at 1:20 PM, RevanProdigalKnight<EMAIL_ADDRESS>wrote:
I just had another thought (and figured that it deserved its own comment in this thread so I can find it later), but self.singletons in the formatter (and by extension, self.midle_tags [further note to self, fix spelling there]) should probably lead off with a regex lookahead instead of a capturing group to avoid problems with this in the future.
Current code
self.singletons = r'<([singletons])([^>]?)/?>(?:\s?</\1>)?'
Revised code(?)
self.singletons = r'<(?=[singletons])(\S*) ([^>]?)/?>(?:\s?</\1>)?'
This would probably also deal with the issue of using .* in the custom_singletons setting because .* may be swallowing the rest of the line before the second matching group. I'll run some tests.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub https://github.com/akalongman/sublimetext-codeformatter/issues/232#issuecomment-221661608


run accessiblity audit on homepage

Open up the UI in your localhost:3000 (instructions in README).
We'll need to run an accessibility audit on the homepage. I recommend using the accessibility tab in Lighthouse, as a Chrome extension.
Once you've got a report generated, you can file issues to describe the areas that need improvement. Virtual Coffee has a great resource on how to write good issues.

Please assign this to me


Loot Tracker Changes

Loot Tracker shows all loot dropped even if it is not picked up.
Is there any way to be able to toggle loot tracker to only keep track of Picked up drops?
This feature could be turned off or on at the users discretion.

Duplicate of #10245


Immutable Joins

Howdy!
My project uses composition to build the query depending on the requested tables/columns.
Because of this, each "term" modifies the query solely based on what it needs to get that single column.  As expected, several columns may depend on the same "join", but, when they both compose the same builder, there's an error in the SQL because of a non-unique alias.
I would expect that joining on the same table with the same clause would effectively be a no-op (unless the join type differed, in which case I'd throw an exception).
Thoughts?

I would really like to see some way to make this possible. There are some code paths where it's just inconvenient and messy to keep track of whether a table has been joined already. gesundheit has the method .ensureJoin, which makes it less magical, since the method name makes it explicit that the table is not to be joined twice.
Maybe the new introspection API will make this easier. Still, it would be nice to have a wrapper method that takes care of the introspection for you, so you don't have to write the same code to check whether a table has already been joined, or factor it out into a method (both of which would break chaining).

Agreed, this would be neat. I've been working on something at the schema definition layer that might help make this possible in one way or another.


Tests

I believe that there is a need to cover the project with tests.
Not sure how to cover everything, but i can start.
@pawegio do you approve?

Of course, approved 👍


Add header as row 1 of SeriesNames tab in the gdoc

With #642 (id2 removal) completed, this is now twice as easy to do!

With #642 (id2 removal) completed, this is now twice as easy to do!

Turns out the code already supported this and this was just a task in the gdoc sheet, so, done!

Turns out the code already supported this and this was just a task in the gdoc sheet, so, done!


Add support for Geo commands

Currently, API client doesn't support Geo commands, while REST API does. It would be nice to have that. Cheers.

👍
I'm adding them as soon as I can, I hope I can get it done until the end of the month.

Hey @chronark any updates? Cheers

@patryk-smc We finally added GEOADD and rest will be added pretty soon. Sorry for the inconvenience.


zsh processes accumulating under WSL; not being killed on window closure

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

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

OS version and name: Windows 10 17763

Hyper.app version: 3.0.0

Link of a Gist with the contents of your .hyper.js: Gist

Relevant information from devtools: N/A

The issue is reproducible in vanilla Hyper.app: Yes

Issue
Using zsh under WSL, closing Hyper will not kill the zsh process.
If zsh is launched from a .bashrc, zsh processes will accumulate each time a terminal window is opened, leading to terminal slowdown after just a few windows have been opened and closed.
To reproduce, run zsh in Hyper using WSL shell, then close the terminal window. Repeat a few times, if desired. Then, open Task Manager (or run ps -ef; the output will be manageably short on WSL) and count the zsh instances.

Same here running:

OS version and name: Windows 10, Version 1803 (OS Build 17134.706)
Hyper.app version: 3.0.0

Same Here on 3.0.0 with Windows 10, Version 1809

Same here, Windows 10, Version 1803, Hyper version 3.0.2

Yep just found this. Accidentally ran ps aux and found a billionty processes, then looked in my Task Manager and the number of 'bash' entries was crazy. This does not appear to be only related to zsh, however, since the issue remains even if I close out of zsh prior to closing the window/pane/tab.
Step 1: Launch Hyper (which fires up bash.exe and launches zsh). I have two /init processes, one /bin/bash --login, and one zsh.
Step 2a: Close window. Launch a new Hyper and run ps aux.
Result: I now have all of the original processes, plus a new /init, /bin/bash --login, and zsh. Repeat for every time I close the window.
ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?         Now close the window and relaunch Hyper, run ps aux.
Result: The original bash is still running, and I now have the new init, bash, and zsh. Performing this over and over gives the below result:
$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:00 /init
   33 tty2     Ss     0:00 /init
   34 tty2     S      0:00 /bin/bash --login
   67 tty3     Ss     0:00 /init
   68 tty3     S      0:00 /bin/bash --login
  123 tty5     Ss     0:00 /init
  124 tty5     S      0:00 /bin/bash --login
  210 tty1     Ss     0:00 /init
  211 tty1     S      0:00 /bin/bash --login
  244 tty4     Ss     0:00 /init
  245 tty4     S      0:00 /bin/bash --login
  273 tty6     Ss     0:00 /init
  274 tty6     S      0:00 /bin/bash --login
  302 tty7     Ss     0:00 /init
  303 tty7     S      0:00 /bin/bash --login
  331 tty7     R      0:00 ps ax

Note: Closing the window has the same result as using the hotkey to close a tab or pane.
Exiting bash using exit or Ctrl-D is the only way to actually close the processes outside of killing them manually from task manager/CLI.

Yeah, my solution has just been to use Ctrl-D rather than closing out of the window. This seems to kill all of the processes as desired.

I've recently switched to Ubuntu 18 and started noticing this. Not sure if it happened before with 16..
I'm also noticing extremely slow starts after a few zsh processes accumulate, to the point that I need to clean them up to use hyper again.

This issue with improper process-killing seems to be specifically caused by launching zsh from .bashrc, which was once required to use any non-bash shell with WSL.
chsh didn't work due to the way WSL's /init daemon initially operated; details and rationale here.
I tried Windows Terminal today and had the same issue, meaning it's a problem with WSL, not hyper.
However, I discovered that since Windows 10 update 1803, chsh works in WSL.
Here's a medium article detailing the newer, proper way to use zsh with WSL, as well as the requisite hyper.js settings (and vscode settings, if you're into that sort of thing).
Thanks to @vinhphm for the article, and to @jsmestad for his blog post that led me to it.
If you want to read more about or contribute to the WSL issue:
microsoft/WSL#3503 (closed)
microsoft/WSL#3914 (open)
microsoft/WSL#4138 (open)

If I replicate this by running wsl.exe from the command prompt I get the zsh prompt. Closing the window kills the process started from the prompt.
I followed those instructions, I no longer have bash processes (only init and zsh), however if I simply close the Hyper window the processes remain.
As far as I can tell it's still a bug with Hyper.
➜  myauch echo $SHELL
/usr/bin/zsh
➜  myauch chsh
Password:
Changing the login shell for myauch
Enter the new value, or press ENTER for the default
        Login Shell [/usr/bin/zsh]:

Closing the Hyper window with a single zsh shell results in:

@mryauch I can't replicate; closing hyper window terminates zsh properly for me (though I do often wind up with a "hanging" init that closes within about 10 seconds of closing the hyper window).
Did you make sure to set shell: 'C:\\Windows\\System32\\wsl.exe' in your hyper.js, and would you mind posting it?
I was able to get some zombie bash and zsh processes by repeatedly changing shells in Windows Terminal (running bash, then zsh, then bash, etc); closing them left about 5 Console Window Host processes, as well.
However, I was unable to replicate this behaviour in hyper; closing hyper closed all bash, zsh, and Console Window Host processes (though not those that had been generated by Windows Terminal; launching and closing cmd killed them, though).
If you've got hyper configured properly and it's still not closing zsh, I'll reopen this, but from what I can see, it still looks like a problem related to launching shells from other shells on WSL, and, at least for me, hyper deals with it better than Windows Terminal (somehow).

Both in the initial test and just now I've commented out my plugins, and I still got the issue.
I also just uninstalled completely and removed the configuration directory to get a fresh install of Hyper, with the same results.
Processes with first window open:
➜  myauch ps ax
PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:00 /init
3 tty1     Ss     0:00 /init
4 tty1     S      0:01 -zsh
75 tty1     R      0:00 ps ax
Processes after closing the window and reopening:
➜  myauch ps ax
PID TTY      STAT   TIME COMMAND
1 ?        Ss     0:00 /init
3 tty1     Ss     0:00 /init
4 tty1     S      0:01 -zsh
80 tty2     Ss     0:00 /init
81 tty2     S      0:00 -zsh
102 tty2     R      0:00 ps ax
I also noticed that when Hyper is open in the foreground I get 8 processes under the Hyper heading, is this normal?

Then once I close the window it goes down to 3 processes, and those go into the background:

Below are both my initial configuration, and then at the very bottom is the configuration after I reinstalled and only changed the shell and shellArgs.
INITIAL CONFIG
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
  config: {
    // choose either `'stable'` for receiving highly polished,
    // or `'canary'` for less polished but more frequent updates
    updateChannel: 'stable',

    // default font size in pixels for all tabs
    fontSize: 16,

    // font family with optional fallbacks
    fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // default font weight: 'normal' or 'bold'
    fontWeight: 'normal',

    // font weight for bold characters: 'normal' or 'bold'
    fontWeightBold: 'bold',

    // line height as a relative unit
    lineHeight: 1,

    // letter spacing as a relative unit
    letterSpacing: 0,

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: 'rgba(248,28,229,0.8)',

    // terminal text color under BLOCK cursor
    cursorAccentColor: '#000',

    // `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
    cursorShape: 'BLOCK',

    // set to `true` (without backticks and without quotes) for blinking cursor
    cursorBlink: false,

    // color of the text
    foregroundColor: '#fff',

    // terminal background color
    // opacity is only supported on macOS
    backgroundColor: '#000',

    // terminal selection color
    selectionColor: 'rgba(248,28,229,0.3)',

    // border color (window, tabs)
    borderColor: '#333',

    // custom CSS to embed in the main window
    css: '',

    // custom CSS to embed in the terminal window
    termCSS: '',

    // if you're using a Linux setup which show native menus, set to false
    // default: `true` on Linux, `true` on Windows, ignored on macOS
    showHamburgerMenu: '',

    // set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
    showWindowControls: '',

    // custom padding (CSS format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#000000',
      red: '#C51E14',
      green: '#1DC121',
      yellow: '#C7C329',
      blue: '#0A2FC4',
      magenta: '#C839C5',
      cyan: '#20C5C6',
      white: '#C7C7C7',
      lightBlack: '#686868',
      lightRed: '#FD6F6B',
      lightGreen: '#67F86F',
      lightYellow: '#FFFA72',
      lightBlue: '#6A76FB',
      lightMagenta: '#FD7CFC',
      lightCyan: '#68FDFE',
      lightWhite: '#FFFFFF',
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    //
    // Windows
    // - Make sure to use a full path if the binary name doesn't work
    // - Remove `--login` in shellArgs
    //
    // Bash on Windows
    // - Example: `C:\\Windows\\System32\\bash.exe`
    //
    // PowerShell on Windows
    // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: 'C:\\Windows\\System32\\wsl.exe',

    // for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
    // by default `['--login']` will be used
    shellArgs: [],

    // for environment variables
    env: {},

    // set to `false` for no bell
    bell: 'SOUND',

    // if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
    copyOnSelect: true,

    // if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
    defaultSSHApp: true,

    // if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
    // selection is present (`true` by default on Windows and disables the context menu feature)
    quickEdit: false,

    // choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
    // or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
    // (inside tmux or vim with mouse mode enabled for example).
    macOptionSelectionMode: 'vertical',

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // Whether to use the WebGL renderer. Set it to false to use canvas-based
    // rendering (slower, but supports transparent backgrounds)
    webGLRenderer: true,

    // for advanced config flags please refer to https://hyper.is/#cfg

    // hyper-tabs-enhanced
    //hyperTabs: {
      //border: true,
      //tabIconsColored: true,
      //closeAlign: 'right',
    //},
    // hyper-search
    hyperSearchUI: {
      inputBorderRadius: 2,
      buttonBorderRadius: 2,
    },
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
//    "hyper-search",
//    "hyper-highlight-active-pane",
//    "hyper-broadcast",
    //"hyper-tabs-enhanced",
//    "hyper-pane",
//    "hyper-relaxed"
    //"hyper-electron-highlighter",
  ],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],

  keymaps: {
    // Example
    // 'window:devtools': 'cmd+alt+o',
    'tab:new': 'ctrl+t',
    'pane:close': 'ctrl+w',
    'pane:splitHorizontal': 'alt+shift+1',
    'pane:splitVertical': 'alt+shift+2',
    'editor:copy': 'alt+shift+c',
    'editor:paste': 'alt+v',
  },
};

FRESH CONFIG
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
  config: {
    // choose either `'stable'` for receiving highly polished,
    // or `'canary'` for less polished but more frequent updates
    updateChannel: 'stable',

    // default font size in pixels for all tabs
    fontSize: 12,

    // font family with optional fallbacks
    fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // default font weight: 'normal' or 'bold'
    fontWeight: 'normal',

    // font weight for bold characters: 'normal' or 'bold'
    fontWeightBold: 'bold',

    // line height as a relative unit
    lineHeight: 1,

    // letter spacing as a relative unit
    letterSpacing: 0,

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: 'rgba(248,28,229,0.8)',

    // terminal text color under BLOCK cursor
    cursorAccentColor: '#000',

    // `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
    cursorShape: 'BLOCK',

    // set to `true` (without backticks and without quotes) for blinking cursor
    cursorBlink: false,

    // color of the text
    foregroundColor: '#fff',

    // terminal background color
    // opacity is only supported on macOS
    backgroundColor: '#000',

    // terminal selection color
    selectionColor: 'rgba(248,28,229,0.3)',

    // border color (window, tabs)
    borderColor: '#333',

    // custom CSS to embed in the main window
    css: '',

    // custom CSS to embed in the terminal window
    termCSS: '',

    // if you're using a Linux setup which show native menus, set to false
    // default: `true` on Linux, `true` on Windows, ignored on macOS
    showHamburgerMenu: '',

    // set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
    showWindowControls: '',

    // custom padding (CSS format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#000000',
      red: '#C51E14',
      green: '#1DC121',
      yellow: '#C7C329',
      blue: '#0A2FC4',
      magenta: '#C839C5',
      cyan: '#20C5C6',
      white: '#C7C7C7',
      lightBlack: '#686868',
      lightRed: '#FD6F6B',
      lightGreen: '#67F86F',
      lightYellow: '#FFFA72',
      lightBlue: '#6A76FB',
      lightMagenta: '#FD7CFC',
      lightCyan: '#68FDFE',
      lightWhite: '#FFFFFF',
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    //
    // Windows
    // - Make sure to use a full path if the binary name doesn't work
    // - Remove `--login` in shellArgs
    //
    // Bash on Windows
    // - Example: `C:\\Windows\\System32\\bash.exe`
    //
    // PowerShell on Windows
    // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: 'C:\\Windows\\System32\\wsl.exe',

    // for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
    // by default `['--login']` will be used
    shellArgs: [],

    // for environment variables
    env: {},

    // set to `false` for no bell
    bell: 'SOUND',

    // if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
    copyOnSelect: false,

    // if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
    defaultSSHApp: true,

    // if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
    // selection is present (`true` by default on Windows and disables the context menu feature)
    quickEdit: false,

    // choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
    // or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
    // (inside tmux or vim with mouse mode enabled for example).
    macOptionSelectionMode: 'vertical',

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // Whether to use the WebGL renderer. Set it to false to use canvas-based
    // rendering (slower, but supports transparent backgrounds)
    webGLRenderer: true,

    // for advanced config flags please refer to https://hyper.is/#cfg
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],

  keymaps: {
    // Example
    // 'window:devtools': 'cmd+alt+o',
  },
};

Hi again, I just installed WSL, Debian, Hyper, and zsh on my laptop and do NOT have this issue there. On the laptop I show a process winpty-agent.exe, which does not run on my desktop that is experiencing the issue. Other than that I am at a loss what could be causing it since there are no other processes running within the WSL environ. Either way, thanks for your attention, but yes it does appear currently that Hyper is not the culprit.

One last update to this issue:
I resolved it by merely reinstalling Windows. I hadn't refreshed since last year so it was a good time to do a fresh install!

Reinstalled Windows 10
Updated to 1903 (pretty sure it was on 1809 prior, I think that might have been it tbh)
Installed Firefox, Lastpass
Windows Subsystem for Linux
Debian
Hyper
Configured Hyper to use wsl.exe, installed zsh, set it as the default shell.
Profit!


Added one loop limitation of resource and module

Added limitation of unique names/scope in the loop for resource and module. Please feel free to modify the changes according to the documentation standards.

Learn Build status updates of commit 2f948f5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-resource-manager/bicep/loops.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@mumian,
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@mumian - Can you check if this update make sense?

@mumian  - Any Updates?

@akhilthomas011 - thank you for your contribution.  The information you added to the article is not limitation, but usage information.  Do you want to revise the PR, or you want me to work on it?

Learn Build status updates of commit 4d1e556:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/azure-resource-manager/bicep/loops.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@akhilthomas011 - I have created another PR with the information.  See https://github.com/MicrosoftDocs/azure-docs-pr/pull/217758.
#please-close


Dynamic item fixes

The custom URL: The dataSource URL requires the user to type in full before proving suggestions releated to the characters. See how dataTab;eContext custom url search field works
DynamicItems variable is not undefined when using a custom url
Make label property mandatory
Add buttonType property

Related Item: #2284


AnimatedCrossFade size transition does not respect reverseDuration

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create an AnimatedCrossFade with different duration and reverseDuration attributes, and children with different dimensions
Switch its crossFadeState from CrossFadeState.showSecond to CrossFadeState.showFirst

Expected results
The size transition should be as long as the opacity transition (i.e. it should be the same as reverseDuration, since this is a transition from the second state to the first).
Actual results
The opacity transition correctly follows reverseDuration, but the size transition always follows duration instead.
Code sample
DartPad demo
Press "Animate forward", and then "Animate backwards". Notice that the fade transition respects reverseDuration and occurs slowly over 2 seconds, but the black border always changes size very quickly, because it always follows duration.
Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/6412/5b77cfd8-61ae-408d-9006-cdb2eab4343e
A screen capture from the provided demo. Notice that when going forward the size and content transitions have the same duration, but when going backwards the content transition is (correctly) slow, while the size transition is as fast as it was when going forward.

Logs
No response
Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.10.1, on macOS 13.4 22F66 darwin-arm64, locale en-BR)
    • Flutter version 3.10.1 on channel stable at /Users/daniel/Library/Flutter/fvm/versions/3.10.1
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d3d8effc68 (12 days ago), 2023-05-16 17:59:05 -0700
    • Engine revision b4fb11214d
    • Dart version 3.0.1
    • DevTools version 2.23.1

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /Users/daniel/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/daniel/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.10121639/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Users/daniel/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.4459.24.2221.9971841/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.78.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.4 22F66 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 112.0.5615.137

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

While investigating this issue, I found something odd:
The reverseDuration is passed on to AnimatedSize here:
https://github.com/flutter/flutter/blob/cab21c213c71943f57307f14a3f5535628d05855/packages/flutter/lib/src/widgets/animated_cross_fade.dart#L379-L385
But that doesn’t make much sense — AnimatedSize, being an implicitly animated widget, doesn’t have a concept of going forwards or backwards. Indeed, as far as I know, no other implicitly-animated widget (such as AnimatedOpacity or AnimatedScale has a reverseDuration property.
Going further, the reverseDuration manages to reach all the way into RenderAnimatedSize’s AnimationController:
https://github.com/flutter/flutter/blob/cab21c213c71943f57307f14a3f5535628d05855/packages/flutter/lib/src/rendering/animated_size.dart#L87-L91
…but, as far as I can tell, this is never used, since this controller only goes forward().
So it seems to me that this property should be deprecated and eventually removed from AnimatedSize and RenderAnimatedSize, and AnimatedCrossFade should take the responsibility of passing AnimatedSize the appropriate duration.

The duration is set to 1 second, and reverseDuration is set to 5 seconds. The size transition (on the black border) is always 1 second long, though, i.e. it's always using duration, and never reverseDuration.
The size clipping looks bad but it's entirely unrelated — I apologize for the confusion this causes. I'll adjust the demo later so we have a clearer illustration.

@huycozy I've updated the linked DartPad, the video, and the explanation of what to observe. Hopefully this will make things clearer.

Thank you for updating the sample, it's more evident than previous one. Reproduced this issue on the latest stable and master channels.

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.10.2, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.10.2 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 9cd3d0d9ff (22 hours ago), 2023-05-23 20:57:28 -0700
    • Engine revision 90fa3ae28f
    • Dart version 3.0.2
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.78.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 113.0.5672.126

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.11.0-14.0.pre.73, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.11.0-14.0.pre.73 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 59128bd61e (49 minutes ago), 2023-05-29 22:35:15 -0400
    • Engine revision 93a8d41549
    • Dart version 3.1.0 (build 3.1.0-155.0.dev)
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.78.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.64.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 113.0.5672.126

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


gedis doc is out of date

https://github.com/threefoldtech/digitalmeX/tree/master/docs/Gedis
This doc needs to be updated

➤ Abdulrahman Hamdy commented:
https://github.com/threefoldtech/home/issues/164#issuecomment-485363376


"Add Geolocation (frontmatter) to current note" reproducable failure for any location

Using "Add Geolocation (frontmatter) to current note" can fail for any location and any note when the note body contains ---.
When using this command, the resulting output is inserted immediately before the last occurance of a --- in the document.
This is wrong, and can result in the information being inserted into the body of the note instead of the frontmatter - if anyone's using that as an in-note separator.
The information should find the second occurance of --- in the note, not the last.

Worked out what this was! Made a pull request :)

Thank you! :sunglasses:


Ability to install into Get-ToolsLocation directory

Hi,
I like how Anaconda package is installed into Tools folder (customized to C:\bin) on my machine. How about switching miniconda installation to Tools folder? Another more flexible alternative is allowing to override the installation folder via command-line - Anaconda installer allows it too. I could raise a PR for any of those options.
Thoughts?

I added myself as package maintainer, so fixed now


All tags to lower case

In reference to double Camera tags in the future extension search dialog.
https://github.com/4ian/GDevelop/pull/2140#issuecomment-751380418

Sounds fair. Note that we could have tags that are different then in the extension json files... but I think it's ok, the search is only based on tags in the "extension short headers".


Mouse wheel does not scroll settings windows

Environment
Windows build number: [run "ver" at a command prompt] Microsoft Windows [Version 10.0.18363.836]
PowerToys version:  Release v0.18.2

Steps to reproduce
Run .msi installer of version v0.18.2
Run PowerToys
Right click on icon in task bar
Open Settings
Navigate to settings item that has a content that would cause scroll bar to appear on right side
Mouse wheel scroll doesn't work

Expected behavior
I would expect the mouse wheel to be able to scroll the content like any other window.

Actual behavior
The content does not scroll. I have to move  the windows up and down by the scroll bar on the right side.

Screenshots

#3400 is the tracking issue


Admin access

Find a way to have superuser accessibility to other's workflow.

upon discussion, we might not pursue this in the near future.


Update Install or Defer.sh

Allows connectivity check to pass on corporate networks where ping is blocked

Thanks! Do you know whether this should work on old macOS versions as well?
And do you mind using the same OpenDNS IP address instead of google.com, for consistency?

Looks like macOS has included netcat in the default install as of 10.13, which is our minimum OS requirement, so that should work fine as a replacement.

Using an IP is pretty limited outside of pinging it. Perhaps a reasonable compromise would be to switch google.com for apple.com, as that's the domain we're concerned about connecting to

Would it be possible to test directly against Apple's software update servers (by hostname or IP), rather than testing google.com/apple.com/OpenDNS to try and determine whether the Mac can check for updates? We could also just move the testing phase to the actual update check, and exit with error if that check errors out for connectivity issues.

We can indeed. Edited the URL to point to swscan.apple.com


[QUESTION] Option callback with list of Enums

First check

[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the Typer documentation, with the integrated search.
[x] I already searched in Google "How to X in Typer" and didn't find any information.
[x] I already searched in Google "How to X in Click" and didn't find any information.

Description
Hi everyone,
Not sure if this some sort of bug or everything works as expected so I labelled my issue as Question.
I am trying to write an Option object that takes a list of custom Enums, so that I can pass multiple values from a list of possible choices.
First I have learned that I can only pass multiple options, but not a single option with multiple values.
Given an example Enum class Colour
class Colour(str, Enum):
    red = 'red'
    green = 'green'
    blue = 'blue'

I can pass multiple colour options this way
$ python main.py --colours red --colours blue
But not this way
$ python main.py --colours red blue
I believe this is a click limitation and as a workaround I could write a custom click option, but for the time being I can live with passing multiple options, even though I need to name the option colours (plural) which in reality only accepts a single value.
So I created my option object like this:
colours: List[Colour] = typer.Option(...)

So far so good
If I inspect the content of the values I passed from the CLI everything works as expected
def main(colours: List[Colour] = typer.Option(...)):
    for colour in colours:
        print(colour)

Colour.red
Colour.blue
Now if I add a callback to my Option, things get a a bit strange, basically the callback returns a list of None

from enum import Enum
from typing import List

import typer

class Colour(str, Enum):
    red = 'red'
    green = 'green'
    blue = 'blue'

def dummy_callback(colours: List[Colour]) -> List[Colour]:
    for colour in colours:
        print(f'Callback {colour}')
    return colours

def main(colours: List[Colour] = typer.Option(..., callback=dummy_callback)):
    for colour in colours:
        print(f'Main {colour}')

if __name__ == "__main__":
    typer.run(main)

Callback red
Callback blue
Main None
Main None
Why is this happening? Also I should mention that if I change the type in the option to List[str], the callback works correctly, as in it returns the expected values. Although this way I would lose the choices values in the help. Which is the main reason why I'm using an Enum in the first place.
Can anyone give some advice on how to achieve this? An Option that takes List[Enum], or as an alternative a List[str] but also document valid choices in the help.
Cheers!

Hey,
The result you are getting is because typer expects to parse string to enum and you are passing enum and not string (in the return statement of callback you are passing enums).
Callback below works for me. Enums can be annoying in Typer from my experience.
def dummy_callback(colours: List[Colour]) -> List[Colour]:
    for colour in colours:
        print(f'Callback {colour}')
    return [colour.value for colour in colours]

I am quite sure (but not certain) that this behaviour is related to click, because parsing is outsourced there.

I see, thanks for your reply, although I found that a bit counterintuitive.

@captainCapitalism, thanks for the reply as well! An additional question regarding this: is it possible to ensure that the value returned from dummy_callback is actually a list of string values instead of being [<Colour.red: 'red'>, <Colour.green: 'green'>, <Colour.blue: 'blue'>]?
I'm using Enum to be able to provide default set of values (I'd ideally just use a list, but that doesn't seem possible) and then want to use that as a list of values down the line. I could just convert the aforementioned list of Enum into a list of its values at the start of the main function, but I am curious if there's a better way.


🐸 Highlighting In Page Nav

Highlight selected headline
Autoselect new href if user scroll to next headline
=> see also mdn docu

//BUG: Reloading doesnt work again???


Wagtail Live Tutorial

I open this PR to add documentation to the project.

[ ]  Write topic on publishers
[ ]  Write topic on input source and receivers
[ ]  Write topic on live interface

Yes @Stormheg, I didn't pay attention indeed. I will remove them, thanks!

Closing this. Refer to #92.


chore: fix GoReleaser config and option for GoReleaser v2

The release workflow failed due to the breaking change of GoReleaser v2.
https://github.com/ddddddO/gtree/actions/runs/10540466053/job/29205156183#step:4:20
  ⨯ command failed                                   error=unknown flag: --rm-dist

--rm-dist was deleted.
https://github.com/ddddddO/gtree/releases/tag/v1.10.11
Releasing assets failed.

https://goreleaser.com/blog/goreleaser-v2/?h=v2#upgrading
https://goreleaser.com/deprecations/#brewsfolder

Test
$ goreleaser check
  • checking                                 path=.goreleaser.yml
  • 1 configuration file(s) validated
  • thanks for using goreleaser!

@suzuki-shunsuke
I didn't realize the execution was failing. Thanks also for fixing the config file!
(First non-Me commit on gtree that I'm very happy about! 😆)


Short position incorrect when shorting and own complete sets

This is only an issue if the user is taking their own orders. I think this is a super edge case.
User's position is short 0.1 but the sum of filled orders is 0.0 shares. User has 0.2 complete sets.

This is actual shares owned by user:

To create scenario:
Create market with liquidity
Second user takes a bid and ask on one outcome
Market creator gets complete sets.
If user with complete sets is taking other user's orders then the synthetics are correct.
I think the correct way to address this is through documentation or educating the user in the UI. I don't think we need to make augur-node changes.
putting this in backlog. I'd like to get @Chwy5 input on this issue.

@bthaile -- Was this on Rinkeby or a local net, and do you happen to have a market ID that alex can poke at?

I was local. Doesnt matter.
User creates a market with liquidity. Second user takes order on each side of the book.
Then market creater has complete sets and takes his own original liqidity orders.

This is an uncommon edge case, but is a huge issue imo if it occurs...we need to figure out the math/balances to make sure they are always correct

@ryanberckmans plz speak with @bthaile prior to working

Tested, non issue anymore


distuv: Full test coverage for Binomial and Beta distributions. Fix mode calculation for Beta in some cases.

Please take a look.

PTAL.


error trying to use sailfish

hello!
when i try to include the latest version of sailfish (the one i get using cargo add sailfish) my app wont compile with the following error(s):
```error: failed to select a version for proc-macro2.
... required by package sailfish-compiler v0.4.0
... which satisfies dependency sailfish-compiler = "^0.4.0" of package sailfish-macros v0.4.0
... which satisfies dependency sailfish-macros = "^0.4.0" of package sailfish v0.4.0
... which satisfies dependency sailfish = "^0.4.0" of package aviacms v0.1.0 (/home/sysop/Rust/01-aviacms)
versions that meet the requirements >=1.0.11, <=1.0.36 are: 1.0.36, 1.0.35, 1.0.34, 1.0.33, 1.0.32, 1.0.31, 1.0.30, 1.0.29, 1.0.28, 1.0.27, 1.0.26, 1.0.25, 1.0.24, 1.0.23, 1.0.22, 1.0.21, 1.0.20, 1.0.19, 1.0.18, 1.0.17, 1.0.16, 1.0.15, 1.0.14, 1.0.13, 1.0.12
all possible versions conflict with previously selected packages.
previously selected package proc-macro2 v1.0.37
... which satisfies dependency proc-macro2 = "^1.0.37" of package darling_core v0.14.1
... which satisfies dependency darling_core = "=0.14.1" of package darling v0.14.1
... which satisfies dependency darling = "^0.14.1" of package salvo_macros v0.29.0
... which satisfies dependency salvo_macros = "^0.29.0" of package salvo_core v0.29.0
... which satisfies dependency salvo_core = "^0.29.0" of package salvo v0.29.0
... which satisfies dependency salvo = "^0.29.0" of package aviacms v0.1.0 (/home/sysop/Rust/01-aviacms)
failed to select a version for proc-macro2 which could resolve this conflict```
i am very new to both Rust and Sailfish, and i could use some help and guidance :)

@apps4uco Thank you very much for helping out with this!
@jhjacobs81 are you still experiencing any issues with this?

i have since moved on to other templating. But im not really happy about it atm, so give me a few days..

Alrighty, since this doesn't seem to still be an issue, I will close this then. Please let me know if this needs to be revived.


Edit error response and change cervical cancer request body format

Edit cervicalCancerTestResult function (Merging from development branch) & fix error response.

Merge approved bro.


Adding links to template; specify current link is for metadata.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

are you still working on this, @meg-huggingface @EziOzoani? I think with @nateraw suggestions it would be ready to merge (and would be an improvement vs the current doc) WDYT?

looks good to me!
Hopefully after that it's clearer that we encourage authors to input BOTH model card metadata and model card freeform content

@julien-c while you're here, could you review the guidebook on the hub docs so the blog post can go out


No Steps to Move Forward

Challenge http://www.freecodecamp.com/challenges/waypoint-inherit-styles-from-the-body-element has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
There is no checklist of things to accomplish so after I completed each of the steps, it would not let me move forward.

Hey @kendraforrest thanks for posting.
I'm having trouble replicating this, it works correctly for me.
I'll close this for now, but if it is still an issue for you please reopen


special handling by voice type and version

Added a map to allow special handling of single characters when spoken by Flite v0.2.
Ensure pause at the beginning and end of each transcribed sentence / text-snippet

lgtm


Steps for creating a custom dataset

Am trying out djl and really excited to finally try out object detection in Java. What are the steps to label images for object detection?
I see that images needs to be separated in to train and test directories and also see index.file containing the coordinates of annotated objects. What tool can be used to annotate images to generate index.file?

Hi contributors thanks for the suggestions added here. However I have some criticism and I have to say the documentation is very incomplete. Maybe it is worth to put some more effort in this whole topic.

SageMaker is a very high level labeling tool which does not answer how to integrate a dataset into DJL.
PikachuDetection is a good basic example which unfortunately only contains 1 label, further it is not clear how the Pikachu is woven into a record dataset. From the index structure I can see it is a relative bounding box structure. But still it is unclear how multiple labels can be converted to a NDArray record structure.
Finally your link to the own dataset creation only addresses a different AI problem and not image labeling for object detection not to speak of image segmentation.


Issue with string type patch values when another type is expected integrating with Microsoft Entra ID

We ran into following issue when integrating with Microsoft Entra ID Provisioning Service:
Attribute 'active' expected value type 'boolean' but found type 'string' for 'replace' op of operation 1 in PatchOp request body
This error happened due to a malformed PATCH request:
PATCH /scim/v2/Users/1234567-1234-1234-1234-123456789012
{
  schemas: [ 'urn:ietf:params:scim:api:messages:2.0:PatchOp' ],
  Operations: [
    { op: 'Replace', path: 'active', value: 'False' }
  ]
}

I imagine the value here is supposed to be the boolean value false, but Entra ID serializes json patch values as strings.
Would it be possible/desirable to support the type checker either, not flagging this, either automatically converting to the desired type?

As a workaround we're modifying the request body before it gets passed to the SCIMMYRouters handler:
// Run this before your middleware so the request body is available
app.use(express.json({ type: ["application/scim+json", "application/json"], limit: "1mb" }));
app.use("/scim/v2", (req, res, next) => {
    if (req.method == "PATCH" && req.body && Array.isArray(req.body.Operations)) {
        const { body } = req;

        req.body.Operations = body.Operations
            .map(x => ({
                ...x,
                value: sanitizeValue(x.path, x.value)
            }));
    }
    next();
});

Hi @arxssoftware, thanks for getting in touch.
According to this Microsoft article regarding Entra ID SCIM protocol compliance issues, and the "Disable User" example request from their "plan provisioning" tutorial, I had been lead to believe that Microsoft had rolled out a fix for this issue as far back as 2018. Further investigation shows that the fix is still stuck behind a "feature flag". The flag must be manually enabled by adding the string ?aadOptscim062020 to the end of the tenant URL, which supposedly corrects the behaviour of booleans in PATCH operations, but disables the "On-Demand Provisioning" functionality.
Whilst investigating I also came across this StackOverflow answer in which the author details instructions for modifying the active attribute mapping in Entra ID to correctly map the values into boolean in PATCH operations and resolve the issue.
I'm hesitant to add explicit handling to accomodate this non-compliant behaviour when other solutions may be available, however I would consider it if no other alternative works. If possible, would you mind testing to see whether either adding the feature flag to the tenant URL or modifying the attribute mapping result in Entra ID sending compliant PATCH requests?
If not, the middleware you added will of course also resolve the issue, but it would be much nicer if Entra ID was sending compliant requests and it was not necessary 🙂
Thanks,
Sam

Hi Sam,
Thanks for that thorough investigation!. I agree with your conclusion. Adding explicit support for non-compliant behavior does seem like it could do more harm than good.
That said, in our sitaution, we are just going to take the pragmatic route and keep the middleware. As this reduces the amount of support requests we need to handle ;-)
Thanks again!
Yannick


add snow sensor

Checking the api on api.weatherbit.io for my location a snow indication is available. please consider adding that to the sensors? Not sure if this is a binary value or not (showing '0') for my location now, which could be either No, or simply 0 mm snow.

Release in V0.24

👍


Fix additional code search

All additional codes were returned regardless of search terms.
This change adds a custom DRF filter backend, which searches for exact Additional Code
Type SID + Additional Code matches (eg: X001), and falls back to full-text search on
sid, code, type, description and type description.

Codecov Report

Merging #37 into master will decrease coverage by 0.06%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master      #37      +/-   ##
==========================================
- Coverage   73.59%   73.52%   -0.07%
==========================================
  Files          57       58       +1
  Lines        1890     1904      +14
  Branches       79       80       +1
==========================================
+ Hits         1391     1400       +9
- Misses        481      486       +5
  Partials       18       18

Impacted Files
Coverage Δ

additional_codes/filters.py
58.33% <58.33%> (ø)

additional_codes/views.py
87.50% <100.00%> (+1.13%)
:arrow_up:

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 a731c13...0b4f383. Read the comment docs.


Running ERROR about transformers.trainer package

Thanks for your awesome work! But I encountered some ImportError as follows.
ImportError: cannot import name 'ShardedDDPOption' from 'transformers.trainer', reported in file "/data/wzw/CoIN/ETrain/Train/LLaVA/llava_trainer.py", line 7.
ImportError: cannot import name 'is_fairscale_available' from 'transformers.integrations', reported in file "/data/wzw/CoIN/ETrain/Train/LLaVA/llava_trainer.py", line 37.

What is the version of your transformers library?
Maybe you could try 4.32.
I will upload the docker file if you still can not solve it.

你们的变压器库是什么版本？也许你可以试试 4.32。如果你还是解决不了，我会上传 docker 文件。

I've tried a lot of different transformers versions, but I still get different errors, can you upload docker?

I changed the transfomers' version, but I sitll can't find the ShardedDDPOption.

我更改了 transfomers 的版本，但仍然找不到 ShardedDDPOption。

我是直接删除了这里的使用，但是继续往下进行仍旧遇到错误

I changed the transfomers' version, but I sitll can't find the ShardedDDPOption.

Hello, I have found a non conflicting and runnable version (only tested for training, can be trained normally), you need to run:
pip uninstall transformers peft huggingface-hub gradio gradio-client tokenizers accelerate deepspeed lsg-converter -y
pip install transformers==4.33.1
pip install tokenizers==0.15.0
pip install huggingface_hub==0.19.4
pip install accelerate==0.21.0
pip install deepspeed==0.14.5
pip install peft==0.7.0
pip install gradio==4.16.0
pip install lsg-converter==0.1.7
It should be noted that some versions of the unpad_input function in flash attention return 4 values, while others return 5 values.

Wow! Thank you! I'll try it later.

I changed the transfomers' version, but I sitll can't find the ShardedDDPOption.

Hello, I have found a non conflicting and runnable version (only tested for training, can be trained normally), you need to run: pip uninstall transformers peft huggingface-hub gradio gradio-client tokenizers accelerate deepspeed lsg-converter -y pip install transformers==4.33.1 pip install tokenizers==0.15.0 pip install huggingface_hub==0.19.4 pip install accelerate==0.21.0 pip install deepspeed==0.14.5 pip install peft==0.7.0 pip install gradio==4.16.0 pip install lsg-converter==0.1.7 It should be noted that some versions of the unpad_input function in flash attention return 4 values, while others return 5 values.

Wow! Thank you! I'll try it later.


How to run charlet?

The README file says to run the charlet file to execute it. But this file does not exist. Where can I find it? What am I doing wrong? Thank you.

I think you mean 'chalet' as cmd. Did you fulfill the requirements and did you run all the pip install cmd's?

Yes. I ran the pip install cmd's. Where can I find the executable of charlet? At which point is it built?

Hello,
After successful installation the 'chalet' command is available in the root directory. The associated file is in the bin/ directory of the virtual environment, that would be venv/bin/chalet following the README. The environment needs to be activated when running installation commands and running the tool itself.
Does this resolve the issue?

Hello,
no, the charlet comman is not avaible in my root directory. I am running windows 10. What do you mean by 'root directory'?
Anyhow, I searched the whole system for the file 'charlet'. No success.
These are the last lines of the output of the command python -m pip install -e .[testing]
Successfully built chalet
Installing collected packages: iniconfig, exceptiongroup, coverage, pytest, pyte
st-cov, chalet
  Attempting uninstall: chalet
    Found existing installation: chalet 1.0
    Uninstalling chalet-1.0:
      Successfully uninstalled chalet-1.0
Successfully installed chalet-1.0 coverage-7.3.1 exceptiongroup-1.1.3 iniconfig-
2.0.0 pytest-7.4.2 pytest-cov-4.1.0

By root directory I meant the top level directory of the cloned repository, which would be 'chalet-charging-location-for-electric-trucks' per default. Can you check the contents of your virtual environment subdirectory, i.e. 'chalet-charging-location-for-electric-trucks/venv/bin' ? Please also note that 'chalet' is spelled without 'r'.

Hi,
I finally found the chalet.exe file in venv/Scripts. I use windows so that might have caused confusion.
Best
Julian

Okay I see, good point. I am closing the issue.


Stream cannot recover after internet restore

We simulate the situation: esp32 is connected to wi-fi, wi-fi has Internet access. We turn off the Internet on the router, then turn the Internet back on in a minute. The stream could not recover. There will be all the time - Stream timeout, resume streaming ...
Add a function to check if the stream is alive.

This is done internally and heavily discussion on this many times.

This is your internet connection issue.
Nothing to add for that but you can check the bool returns from httpConnected() method of Firebase Data object that you use for stream.
The httpConnected() will be true when stream connection is alive as the stream is connected (not the WiFi or internet status).

You can use streamTimeout() method of Firebase Data object that used for stream to check the stream connection too.
That's the method use in the stream examples (not a stream callback), please check.


native_posix: minor doc fixes

A few minor fixes in the native_posix documentation.
Signed-off-by: Alberto Escolar Piedras<EMAIL_ADDRESS>

Codecov Report

Merging #9166 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #9166   +/-   ##
=======================================
  Coverage   52.62%   52.62%
=======================================
  Files         201      201
  Lines       25247    25247
  Branches     5275     5275
=======================================
  Hits        13285    13285
  Misses       9837     9837
  Partials     2125     2125

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 0b89920...a735dbb. Read the comment docs.


Crash when loading/starting a new save file

The game loads fine, until I try to start a new game or load an existing save file. It crashes and exits with no error message. gdb reports a segmentation violation (SIGSEGV), but I can't really do much without debugging symbols.
I'm using Scarab 1.20.0 and the following mods only:
ItemChanger <IP_ADDRESS>
MagicUI 1.7.8419.12514
SFCore <IP_ADDRESS>
Transcendence <IP_ADDRESS>
Game works fine if I disable Transcendence and leave the 3 dependencies enabled.
I'm running Fedora Linux 37. Let me know if there's anything more you need.

That is odd; I have seen bugs where Transcendence failed to load, but none where it outright crashed the game. Could you provide the ModLog.txt (and ideally also the Unity Player.log) from that session? The ModLog can be found in the same directory as your save files; I'm not sure where to find the Player.log on Linux.

Sure. Player.log was in the same directory as ModLog.txt.
https://gist.github.com/antroseco/092edb3449ac98ddf04baca2e53dc2ab
https://gist.github.com/antroseco/8c96dbbd305e1aac34bc5af22bdbe737

From reading the ModLog, it appears that Transcendence actually loaded fine; it was ItemChanger that threw an exception while loading its save data, and Transcendence code does not appear at all in the stack trace. The exception itself wasn't what crashed the game - it just got logged in the ModLog - but clearly something else soon after did. I'll forward this to some other modders who may have better insight into this.

Oh, yeah that exception was my fault. I loaded a Randomizer save file without the mod loaded. I've reproduced with a normal save file and updated the gist (identical, just no exception this time).
Interestingly enough, I got a slightly different stack trace this time:
Caught fatal signal - signo:11 code:128 errno:0 addr:(nil)
Obtained 23 stack frames.
#0  0x007f0e7725fb20 in __sigaction
#1  0x007f0e772a2f18 in __vasprintf_internal
#2  0x007f0d9a2301ad in monoeg_g_logv
#3  0x007f0d9a2302f9 in monoeg_assertion_message
#4  0x007f0d9a14dd6c in mono_breakpoint_clean_code
#5  0x00000040c1e708 in (Unknown)
#6  0x000000412838f8 in System.Collections.Generic.ObjectEqualityComparer`1<T_REF>:GetHashCode (T_REF)
#7  0x007f0d9a05baf5 in mono_print_method_from_ip
#8  0x007f0d9a1cb7cc in mono_perfcounter_foreach
#9  0x007f0d9a1cc679 in mono_runtime_invoke
#10 0x007f0e783ad2c2 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#11 0x007f0e783ab5ba in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#12 0x007f0e7838fb41 in MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingExceptionPtr*)
#13 0x007f0e7838fc62 in MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethodPtr, ScriptingObjectPtr)
#14 0x007f0e78390536 in MonoBehaviour::DelayedStartCall(Object*, void*)
#15 0x007f0e780ce3a2 in DelayedCallManager::Update(int)
#16 0x007f0e7822e777 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#17 0x007f0e7822e732 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#18 0x007f0e7822ecde in PlayerLoop()
#19 0x007f0e7840d9a2 in PlayerMain(int, char**)
#20 0x007f0e7724a510 in __libc_start_call_main
#21 0x007f0e7724a5c9 in __libc_start_main
#22 0x00000000201029 in _start

Interesting, though unfortunately, not much more informative. It seems to have died trying to compare something for equality, but I haven't got any idea about what it was. I don't have an x86 Linux system handy either so I can't easily try to reproduce your setup either.
Have you tried running the game with rando installed? I would not expect it to make any difference from what I've seen in the logs, but Transcendence has had bugs related to the absence of rando before, though none are known at the time or manifested in the logs.

It appears that this is a recurrence of a known issue with ItemChanger on Linux that we have thus far not been able to diagnose; see https://github.com/homothetyhk/HollowKnight.ItemChanger/issues/9.
Let me know if some of the workarounds mentioned in that thread help you; if they don't, it may indicate that the issue you ran into is different.

I tried running it with rando installed, and that didn't help. The solution in the linked issue didn't help either, unfortunately.
I played around with gdb for a while, and was able to find a few more clues (although I know nothing about mono).
Note the address at the top frame:
Caught fatal signal - signo:4 code:2 errno:0 addr:0x41781099
Obtained 17 stack frames.
#0  0x00000041781099 in (Unknown)
#1  0x007fca72a5baf5 in mono_print_method_from_ip
#2  0x007fca72bcb7cc in mono_perfcounter_foreach
#3  0x007fca72bcc679 in mono_runtime_invoke
#4  0x007fca799ad2c2 in scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#5  0x007fca799ab5ba in ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#6  0x007fca7998fb41 in MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingExceptionPtr*)
#7  0x007fca7998fc62 in MonoBehaviour::InvokeMethodOrCoroutineChecked(ScriptingMethodPtr, ScriptingObjectPtr)
#8  0x007fca79990536 in MonoBehaviour::DelayedStartCall(Object*, void*)
#9  0x007fca796ce3a2 in DelayedCallManager::Update(int)
#10 0x007fca7982e777 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#11 0x007fca7982e732 in ExecutePlayerLoop(NativePlayerLoopSystem*)
#12 0x007fca7982ecde in PlayerLoop()
#13 0x007fca79a0d9a2 in PlayerMain(int, char**)
#14 0x007fca7876a510 in __libc_start_call_main
#15 0x007fca7876a5c9 in __libc_start_main
#16 0x00000000201029 in _start

Mono can decode it to: JIT trampoline for SFCore.CharmHelper:OnBuildEquippedCharmsStart_single
(gdb) mono_backtrace 10
#0 0x00000041781099 in <0x41781099 - JIT trampoline for SFCore.CharmHelper:OnBuildEquippedCharmsStart_single (System.Action`1<BuildEquippedCharms>,BuildEquippedCharms)>
#1 0x007fc98282313b in  (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Hook<BuildEquippedCharms::Start>?-951817472 (BuildEquippedCharms) {0x42e0720} + 0x5b (0x7fc9828230e0 0x7fc98282315d) [0x7fca73775d20 - Unity Root Domain]
#2 0x007fff6cad9270 in ?? ()
#3 0x007fc942a7df00 in ?? ()
#4 0x007fc942a7df00 in ?? ()
#5 0x0000004137189a in  (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr) {0x288e178} + 0x6a (0x41371830 0x4137190c) [0x7fca73775d20 - Unity Root Domain]
#6 0x007fca6f2f7e33 in ?? ()
#7 0x007fff6cad9270 in ?? ()
#8 0x0000000465f0c0 in ?? ()
#9 0x00000000000000 in ?? ()
Initial frame selected; you cannot go up.

But the trampoline looks like nonsense!

(gdb) frame 0
#0  0x0000000041781099 in ?? ()
(gdb) disas $pc, +32
Dump of assembler code from 0x41781099 to 0x417810b9:
=> 0x0000000041781099:	(bad)
0x000000004178109a:	leave
0x000000004178109b:	jg     0x4178109d
0x000000004178109d:	add    %al,(%rax,%rax,1)
0x00000000417810a0:	(bad)
0x00000000417810a1:	(bad)
0x00000000417810a2:	add    $0x0,%al
0x00000000417810a4:	add    %al,(%rax)
0x00000000417810a6:	add    %al,(%rax)
0x00000000417810a8:	add    %al,(%rax)
0x00000000417810aa:	add    %al,(%rax)
0x00000000417810ac:	add    %al,(%rax)
0x00000000417810ae:	add    %al,(%rax)
0x00000000417810b0:	sub    $0x18,%rsp
0x00000000417810b4:	mov    %rdi,0x10(%rsp)
End of assembler dump.

I doubt this helps, but at this point I'm starting to believe that this is a mono bug.

I'm guessing the (bad) in the disassembly denotes illegal instructions? The rest of it does look like complete nonsense; either it's a code-generation bug in Mono's JIT or MonoMod, or the PC ended up somewhere it shouldn't.
But your investigation does at least explain why enabling Transcendence triggers the crash - the top frame in the Mono backtrace is a call into SFCore, which Transcendence uses to add its charms to the charm menu.

Yeah, that sounds about right. Might be interesting to compare the disassembly with that from Windows.

Closing as I haven't observed this again in a while and no further information has come up. May reopen if we have some kind of new insight.


feat: semaphore group contract implementation

Closes #1
Hi @bitfalt I am done with contract. Kindly review
I also worked on the test too, just for me to be to be sure my contract works.
Kindly pls assign me the test issue, so i can push and create a pull request for the test i worked on.

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree?
https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree? https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hi @evgongora yes i saw this, but i also saw that there is no cargo package, that was why i worked on the contract without it.
Do you have a cargo package that i can use for soroban?.

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree? https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hi @evgongora yes i saw this, but i also saw that there is no cargo package, that was why i worked on the contract without it.
Do you have a cargo package that i can use for soroban?.

This is part of the research and implementation process, we need to be able to migrate the contract inluding the IMT since is part of the Semaphore base contracts, let me know what you're able to find.

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree? https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hi @evgongora yes i saw this, but i also saw that there is no cargo package, that was why i worked on the contract without it.
Do you have a cargo package that i can use for soroban?.

This is part of the research and implementation process, we need to be able to migrate the contract inluding the IMT since is part of the Semaphore base contracts, let me know what you're able to find.

I see this is the TypeScript source code for the package https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/lean-imt. What I suggest is to first migrate this package , publish it, and then implement it in the Semaphore group contract."

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree? https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hi @evgongora yes i saw this, but i also saw that there is no cargo package, that was why i worked on the contract without it.
Do you have a cargo package that i can use for soroban?.

This is part of the research and implementation process, we need to be able to migrate the contract inluding the IMT since is part of the Semaphore base contracts, let me know what you're able to find.

I see this is the TypeScript source code for the package https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/lean-imt. What I suggest is to first migrate this package , publish it, and then implement it in the Semaphore group contract.

Awesome! let's do that.

Hello @KoxyG, so far how are you dealing with the Incremental Merkle Tree? https://zkkit.pse.dev/modules/_zk_kit_lean_imt.html

Hi @evgongora yes i saw this, but i also saw that there is no cargo package, that was why i worked on the contract without it.
Do you have a cargo package that i can use for soroban?.

This is part of the research and implementation process, we need to be able to migrate the contract inluding the IMT since is part of the Semaphore base contracts, let me know what you're able to find.

I see this is the TypeScript source code for the package https://github.com/privacy-scaling-explorations/zk-kit/tree/main/packages/lean-imt. What I suggest is to first migrate this package , publish it, and then implement it in the Semaphore group contract.

Awesome! let's do that.

okay then

hiii @KoxyG, we'll merge your PR since the implementation is done. We'll create another issue to "create" the IMT and another one to implement it in the smart contract.
We'll leave the tests pending until the IMT is done in the smart contract.
Thank you for this amazing job!


[feaLib] don't de-duplicate lookups

keep original lookup order and preserve the feature file's semantics
Fixes https://github.com/fonttools/fonttools/issues/448

i'm going to also modify the inline comments that say "Exact same content as feature f1; lookup should be shared."


[Bug]: Data cleaning and data archiving report XMLException

ODC version
ODC4.2.1
OB version
OB4.1.0
What happened?
Data cleaning and data archiving report XMLException
What did you expect to happen?
exceute normally
How can we reproduce it (as minimally and precisely as possible)?
Create primary key unique table
Perform data cleaning, or perform data archiving + add time conditions

Anything else we need to know?
No response
Cloud
No response

Updating the code while executing the task results in


More concrete around ioloops and threads

@rabernat @jmcgrath207 @rsignell-usgs @zflamig
Would appreciate running your sometimes-hanging workflows with this PR.

Should we try this with pip install git+https://github.com/martindurant/s3fs as well?

You will need the specific branch
pip install git+https://github.com/martindurant/filesystem_spec@ioloop_massage

(note that this is installing fsspec, not s3fs)

When trying this I am getting this error now.
TypeError                                 Traceback (most recent call last)
<ipython-input-13-f76853d87372> in <module>
----> 1 temp_mean = temp_mean.compute()

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/xarray/core/dataarray.py in compute(self, **kwargs)
    891         """
    892         new = self.copy(deep=False)
--> 893         return new.load(**kwargs)
    894
    895     def persist(self, **kwargs) -> "DataArray":

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/xarray/core/dataarray.py in load(self, **kwargs)
    865         dask.array.compute
    866         """
--> 867         ds = self._to_temp_dataset().load(**kwargs)
    868         new = self._from_temp_dataset(ds)
    869         self._variable = new._variable

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/xarray/core/dataset.py in load(self, **kwargs)
    739
    740             # evaluate all the dask arrays simultaneously
--> 741             evaluated_data = da.compute(*lazy_data.values(), **kwargs)
    742
    743             for k, data in zip(lazy_data, evaluated_data):

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/dask/base.py in compute(*args, **kwargs)
    559         postcomputes.append(x.__dask_postcompute__())
    560
--> 561     results = schedule(dsk, keys, **kwargs)
    562     return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)])
    563

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/client.py in get(self, dsk, keys, restrictions, loose_restrictions, resources, sync, asynchronous, direct, retries, priority, fifo_timeout, actors, **kwargs)
   2682                     should_rejoin = False
   2683             try:
-> 2684                 results = self.gather(packed, asynchronous=asynchronous, direct=direct)
   2685             finally:
   2686                 for f in futures.values():

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/client.py in gather(self, futures, errors, direct, asynchronous)
   1997                 direct=direct,
   1998                 local_worker=local_worker,
-> 1999                 asynchronous=asynchronous,
   2000             )
   2001

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/client.py in sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
    838         else:
    839             return sync(
--> 840                 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
    841             )
    842

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
    338     if error[0]:
    339         typ, exc, tb = error[0]
--> 340         raise exc.with_traceback(tb)
    341     else:
    342         return result[0]

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/utils.py in f()
    322             if callback_timeout is not None:
    323                 future = asyncio.wait_for(future, callback_timeout)
--> 324             result[0] = yield future
    325         except Exception as exc:
    326             error[0] = sys.exc_info()

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/tornado/gen.py in run(self)
    760
    761                     try:
--> 762                         value = future.result()
    763                     except Exception:
    764                         exc_info = sys.exc_info()

~/anaconda3/envs/daskpy3/lib/python3.7/site-packages/distributed/client.py in _gather(self, futures, errors, direct, local_worker)
   1856                             exc = CancelledError(key)
   1857                         else:
-> 1858                             raise exception.with_traceback(traceback)
   1859                         raise exc
   1860                     if errors == "skip":

/opt/conda/lib/python3.7/site-packages/dask/array/core.py in getter()

/opt/conda/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray()

/opt/conda/lib/python3.7/site-packages/xarray/core/indexing.py in __array__()

/opt/conda/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray()

/opt/conda/lib/python3.7/site-packages/xarray/core/indexing.py in __array__()

/opt/conda/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray()

/opt/conda/lib/python3.7/site-packages/xarray/core/indexing.py in __array__()

/opt/conda/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray()

/opt/conda/lib/python3.7/site-packages/xarray/coding/variables.py in __array__()

/opt/conda/lib/python3.7/site-packages/xarray/coding/variables.py in _apply_mask()

/opt/conda/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray()

/opt/conda/lib/python3.7/site-packages/xarray/core/indexing.py in __array__()

/opt/conda/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py in __getitem__()

/opt/conda/lib/python3.7/site-packages/xarray/core/indexing.py in explicit_indexing_adapter()

/opt/conda/lib/python3.7/site-packages/xarray/backends/h5netcdf_.py in _getitem()

/opt/conda/lib/python3.7/site-packages/h5netcdf/core.py in __getitem__()

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

/opt/conda/lib/python3.7/site-packages/h5py/_hl/dataset.py in __getitem__()

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

h5py/h5d.pyx in h5py.h5d.DatasetID.read()

h5py/_proxy.pyx in h5py._proxy.dset_rw()

h5py/h5fd.pyx in h5py.h5fd.H5FD_fileobj_read()

/opt/conda/lib/python3.7/site-packages/fsspec/spec.py in readinto()

/opt/conda/lib/python3.7/site-packages/fsspec/spec.py in read()

/opt/conda/lib/python3.7/site-packages/fsspec/caching.py in _fetch()

TypeError: 'NoneType' object is not subscriptable

Would you mind trying again now?
I also made new branch ioloop_massage2 with a different approach.

Probably my fork, master; although the changes here are orthogonal to what I was doing there, so master on dask/s3fs.git should work as well

ioloop_massage2 looks good. I was able to complete a computation that was stalling pretty much 100% of the time before. Will let the others chime in if its working for their use cases too now. I'm running with s3fs 0.5.2.


Live

Docs Build status updates of commit 4ab60d8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/install-adv2.md
:bulb:Suggestion

Details

docs-conceptual/azureadps-2.0/new-user-sample.md
:bulb:Suggestion

Details

docs-conceptual/azureadps-2.0/signing-in-service-principal.md
:bulb:Suggestion

Details

docs-conceptual/azureadps-2.0/using-extension-attributes-sample.md
:bulb:Suggestion

Details

azureadps-2.0/AzureAD/AzureActiveDirectory.md
:white_check_mark:Succeeded

azureadps-2.0/AzureAD/New-AzureADApplicationKeyCredential.md
:white_check_mark:Succeeded

docs-conceptual/azureadps-2.0/install-adv2.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

docs-conceptual/azureadps-2.0/new-user-sample.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

docs-conceptual/azureadps-2.0/signing-in-service-principal.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

docs-conceptual/azureadps-2.0/using-extension-attributes-sample.md

Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


How to do simple addition/multiplication of clear/cipher data?

Not an issue. Just a quick question. I can build/run all test cases, and see how EVA supports polynomial functions and more advanced processing of HE-enc data.
However, it is not obvious to me how primitive operations like addition/multiplication of numbers in clear/cipher vector/matrix works, as seen in other python-to-SEAL bindings, e.g., z = clear_vector_x * cipher_vector_y, and then execute poly(z),....
If I have to use other bindings for such primitive operations, how do we make keys/encrypted-numbers portable with EVA? Thx

Hi! You can add plaintext inputs to EVA programs by setting the is_encrypted parameter of the Input function to false. The following program takes both an unencrypted and encrypted vector with 1 element each as inputs and produces their sum and multiplication:
prog = EvaProgram('AddMult', vec_size=1)
with prog:
    x = Input('x', is_encrypted=False)
    y = Input('y')
    Output('sum', x+y)
    Output('multiplication', x*y)

Hi! You can add plaintext inputs to EVA programs by setting the is_encrypted parameter of the Input function to false. The following program takes both an unencrypted and encrypted vector with 1 element each as inputs and produces their sum and multiplication:
prog = EvaProgram('AddMult', vec_size=1)
with prog:
    x = Input('x', is_encrypted=False)
    y = Input('y')
    Output('sum', x+y)
    Output('multiplication', x*y)

Is input to prog entirely encrypted as one dict separately different keys? if so, what does 'is_encrypted=False' mean here?
If not, please advise a syntax to create a dict with { 'x':[cleartext] , 'y':[ciphertext]}, i.e.,
inputs = { 'x': [1], 'y':[2] }
encInputs = public_ctx.encrypt(inputs, signature)
#this works, but both x and y are encrypted, what is significance of 'is_encrypted=False'?
encOutputs = public_ctx.execute(compiled_prog, encInputs)
inputs = {'y':[2] }
encInputs = public_ctx.encrypt(inputs, signature)
#encOutputs = public_ctx.execute(compiled_prog, {'x':[1],encInputs}) #looking for sth. like this ?

Is input to prog entirely encrypted as one dict separately different keys? if so, what does 'is_encrypted=False' mean here?
If not, please advise a syntax to create a dict with { 'x':[cleartext] , 'y':[ciphertext]}, i.e.,
inputs = { 'x': [1], 'y':[2] }
encInputs = public_ctx.encrypt(inputs, signature)
#this works, but both x and y are encrypted, what is significance of 'is_encrypted=False'?
encOutputs = public_ctx.execute(compiled_prog, encInputs)
inputs = {'y':[2] }
encInputs = public_ctx.encrypt(inputs, signature)
#encOutputs = public_ctx.execute(compiled_prog, {'x':[1],encInputs}) #looking for sth. like this ?

Sorry for the late reply. is_encrypted=False will skip encryption for that input, instead the value will be stored as-is in encInputs (which is really just a wrapper for a C++ std::map holding the values for each input).
Currently this is mostly useful for performance in cases where a client has some data that doesn't need to be encrypted. In the future we'll add a way to provide inputs from multiple sources, in which case a server providing some privacy preserving service can insert additional values locally and avoid encryption.


Move fabric module from client_sdk to sdk

avalon_sdk is single sdk for all clients and moved fabric to sdk.
Fix the lint errors in fabric modules.

Signed-off-by: Ramakrishna Srinivasamurthy<EMAIL_ADDRESS>

@manojgop Fixed pep8 name convention errors.


Fix link to discussions page

Currently the link to the discussion page brings you to a 404 Not Found page. Also note that the "Discussion" link on the footer of the website has a similar issue (linking to /discussion instead of /discussions).

Thanks for the fix @GUI!


Mac support with M1 processor (darwin, arm64) for the VAL tool

Trying to install the VAL tool on a Mac with M1 processor, I get this error:
Binaries for operating system darwin arm64 are not available. Supported: win32 (arch: x64, x32, ia32), linux (arch: x64), darwin (x64)

The workaround consists in re-building VAL yourself:

clone it from https://github.com/KCL-Planning/VAL/
run scripts/build_macos.sh from that repo
set the path to point to the binary named Validate

Same issue here.
Solved by following @victorpaleologue comment above!

FWIW I followed those instructions, as well, setting all the paths in the VS Code Settings, and I think it worked, but even though there are values for all of the VAL tools in the settings, I still get prompted to install VAL, and there doesn't seem to be any way to tell the plugin that the tools are already installed.


Implement partial translation source with fallback translations

If a translation source is marked "incomplete" for it's given source material (e.g. a translation steek on Jap Ji Sahib only), then we should ask the user to denote a fallback translation.
Can start with a BoS translation which only converts translation lines of Sri Guru Granth Sahib where it says "Lord" to "Vaheguru" as an example partial translation.
This is required for multiple translation sources in our backlog.

Should the translation source specify the fallback translation source, or should the user? Because, in the BoS case, they'd only replace a few words etc, but if you use a fallback translation that's drastically different, it may be a very jarring experience

For ease of use to the consumer it can be hardcoded by the translation source. For more flexibility the user can choose.
I suppose if we consider these as "derivations" and not as "incomplete" works then hardcode makes sense. But in the case of partial translations which are not meant (or not capable) to be completed by anything else, then user choice makes more sense.
I think I'd prefer user choice with a popular default setting. Pretty sure everyone mostly uses the SSKJ translation. It may help if there is a "suggested" fallback source which can be changed and if no suggested fallback source then use the most popular fallback source?


Add generated View modifiers for the environment values

Hi! 👋
I have used this library recently, and it does a fantastic job! 🚀 However, I think it could be improved a little bit. Let me explain my idea / problem.
Problem
Currently the user of the library either uses the .environment modifier for the generated environment values, or they can write for themselves the View modifier. It requires more boilerplate to be written, which should be more simple to do.
Example
Let's say I have the following:
@EnvironmentStorage
extension EnvironmentValues {
    var envFont: Font = .largeTitle
}

I can use it like:
TestText(text: "Hello, world!")
    .environment(\.envFont, .title)

Which is fine, but most of the developers tend to write a "wrapper method" for every environment value. So I can write manually:
extension View {
    func envFont(_ envFont: Font) -> some View {
        environment(\.envFont, envFont)
    }
}

With this the mentioned code would look like this:
TestText(text: "Hello, world!")
    .envFont(.title)

Which is more readable and concise, while enables better autocomplete.
Solution
For every environment value the library should generate a method, like this:
extension View {
    func <environmentValueName>(_ <environmentValueName>: <environmentValueType>) -> some View {
        environment(\.<environmentValueName>, <environmentValueName>)
    }
}

Unfortunately I'm not proficient in Swift macros - is it even feasible to implement?
Does it have any technical limitation?
Thanks!

Unfortunately, such a thing wouldn't be possible to add, at least automatically. The EnvironmentStorage macro is attached to EnvironmentStorage and can therefore only expand that type (or its subtypes). It cannot extend the View type, because it doesn't have "access" to it.

I see @Wouter01 , thanks for the explanation! I was thinking about something similar when I mentioned technical limitations 😞


composite struct literal net/mail.Address with unkeyed fields

Hello,
I get this error, when I use the package with App Engine. I use App Engine mail package when use with GAE, but for standalone version I use gophermail. I share code between them.
src/github.com/jpoehls/gophermail/main.go:342:10: composite struct literal net/mail.Address with unkeyed fields
It can be solved by changing line 342
addr := mail.Address{input, ""}

to
addr := mail.Address{Name: input, Address: ""}

thanks.

@bsr203: I just pushed the update you recommended. I'm going to close this issue but definitely reopen it if you still see the error. Thanks!