Create SDK switcher to allow for switching between SDKs at runtime based on headset plugged in

There should be a default way within the toolkit to allow devs to switch SDK at runtime.

Some VR games on Steam use a "Open in Steam VR" / "Open in Oculus VR" Steam radio box launcher. Which presumably just makes Steam run the executable with different arguments. So besides just auto detecting available headsets it might be good to also support arguments to explicitly pick an SDK.
Also because Unity generates warnings when you have multiple VR camera rigs from different SDKs (I get a stream of errors about multiple audio listeners when I have both the Steam VR camera rig and the VRTK Simulator in the same scene) we're probably going to have to auto-spawn the camera rig from prefabs instead of dropping instances in scenes. Presumably by dropping links to the Steam VR [CameraRig], Oculus rig and avatar, and Simulator (or a copy of them) into the SDK Manager.
The biggest issue I can imagine is customizing SDK rig settings (Steam VR's bounds colors and sizes, Oculus Avatar's displaying of hands and/or controllers). Right now if you drop a prefab instance into a scene the overrides will be in the scene and the instance will be linked to the prefab in the SDK. So when you update, any changes to the SDK's prefabs will update in all scenes and setting changes will persist in the instance. However if you instead spawn the SDK's prefab and edit the SDK's prefab settings directly, then updating the SDK may delete your setting changes. And if you make your own prefab, then when you update the SDK changes to it may not apply to your prefab. Although I may be overstating this problem, in theory you're supposed to be making your own prefabs anyways, so there are probably a bunch of people that already use unlinked prefabs of their own with settings changes for Steam VR's [CameraRig] and just workaround the caveats.

This probably wont fit into the VRTK architecture but, our solution in other projects is to put device specific rigs in separate sub-scenes and then load the scene we want at runtime.

Maybe the end solution to this could be a collection of tutorials showing different ways of how to set it up in your own project?

Another idea could be to add some extra VRTK scripts that instead make VRTK responsible for tweaking some of the rig settings you tweak most commonly; or replacing a SDK level feature with a user/VRTK level feature that we might be able to customize more. Then unmodified standard prefabs are enough for most users and only people with more uncommon/complex use cases need to deal with keeping their own prefab up to date.
The simple version would be something like a VRTK_ControllerDisplay script with settings like "Start With Controllers" and "Hide Hands" (or a better pattern of settings I can't think of) which would simply modify the "Start With Controllers" setting and optionally disable hand models in the standard Oculus Avatar prefab. So all you need is SDK prefab + settings script.
A more complex example would be a VRTK_PlayArea or VRTK_Boundaries script you could add alongside the SDK Manager. Then, instead of having to modify the boundary thickness and color in the SteamVR_PlayArea script on [CameraRig], the script would implicitly hide the play area boundaries that come with the SteamVR prefab, fetch the play area metadata in an SDK agnostic way and draw its own play area boundaries. Then we'd have the same boundary rendering in SteamVR and OculusSDK; and there would even be room to support optional extras like 3d mesh based boundaries, floor textures, particle lines, or any other type of custom boundary drawing that fits into the theme of the game better.

My PUN Test project does include an "SDK Chooser" now. Have a look.

We do it with separate config scenes for each device that is additively loaded at runtime after the platform detection is made. Using subscenes to make it modular.

On Mar 16, 2017, at 9:19 AM, Christopher - Marcel Böddecker<EMAIL_ADDRESS>wrote:
My PUN Test project does include an "SDK Chooser" now. Have a look.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Yeah I stole that for the test project 😛

Ideally, we could just have multiple VR rigs under the VRTK root, and it just auto enables the correct one at runtime. That allows us to configure/customize each VR rig as we need, but we don't need to get into funky additive loading, or other workarounds.
VRTK
-> SteamVRRig
-> OculusVRRig
-> PSVRRig
etc...
Create a small script that can be placed on each rig to identify it's hmd, and controls. Then SDK manager only needs a reference to each hmdSet, and can flip the correct one on at startup.
True that your prefab wont be updated when the SDK updates, but that's a fact of life already. The first thing you do in any VR project is duplicate the prefab so you can customize it. I don't see this as a primary concern.

@treefortress Said "small script" could actually be the SDK Manager.
You set up multiple ones of them for the associated SDK+CameraRig, then the one you enable takes care of the rest like loading the VR device, activating the CameraRig etc.
We could even allow reverting everything it did when it's disabled.
I'll have something like that up soon as I can adapt my PUN Test project code for that.

Yep that works too :)

It's probably better for the script connected to the camera rig to be separate from the SDK Manager.
There can still be multiple SDK types selected (eg: The HMD SDK and Controller SDK can be different). And in the future this will be a requirement (Locomotion SDKs will always be different, and they also won't have a camera rig).
It's probably best if we have a smaller script responsible for being assigned one SDK type, linking to the camera rig. While the SDK manager is responsible for linking to the aliases and the correct VRTK_CameraRig component(s).
Also it's probably better if these scripts don't have to be on the rig itself. There might be some SDKs similar to OculusVR where they are actually composed of 2 separate SDKs and rigs and might need a container. Or instead of replacing the standard camera rig prefab someone might just want to put their VRTK_CameraRig components on [VRTK] instead of on the rigs themselves.

I'm working on it by splitting the SDK Manager into pieces first. The Load button in the inspector will just call a method on the SDK Manager that is also available at runtime. There will be an Unload method, too.
The idea is to add more fields to the Setups so the SDK Manager knows which VR Device (or none) to load and the associated game object(s) to enable/disable or spawn/destroy.

I'll have a look at simplifying things into one SDK dropdown (we can't load the VR Devices OpenVR and Oculus at the same time anyway...).

we can't load the VR Devices OpenVR and Oculus at the same time anyway...

That's not necessarily completely true and there are more SDKs than just OpenVR and OculusVR to think of. It's still possible that there will be situations where support for either multiple SDKSetups or a mixed SDKSetup will be desirable.

Remember that OculusVR is actually made up of two separate SDKs on its own (the SDK for the HMD and the Avatar SDK for the controllers), it's not unreasonable for a different controller SDK to be used.
Remember we're supporting a bunch more SDKs in the codebase, PRs, and some private SDK implementations: Daydream, Ximmerse, and Gear VR (even PSVR would be nice as well). With the number of controllerless mobile SDKs there it would be reasonable for them to be used with a different controller SDK.
Don't forget about the Nolo VR SDK, which provides controllers and additional tracking for mobile VR SDKs.
#992 asks for support for new Locomotion SDKs (Treadmills, Walk in Place hardware like VAY and PocketStrafe) which are going to require an additional SDK selector that cannot be combined (since no VR SDK provides a Locomotion implementation and no Locomotion SDK provides a HMD or Controller implementation).
Additionally glove controllers are going to be coming out. Judging from the implementations I've seen so far, it looks like most of them will be doing that through their own SDKs as well rather than attempting to get OpenVR to integrate them. Which means, a separate Glove SDKs selector.

I was talking about actual VR *Devices, you're talking about SDKs. I agree that we need to support using different SDKs at the same time, but if a user specifies to use SteamVR for the HMD and Oculus for the controllers it makes no sense.
I was only talking about the that specific use because we're building upon Unity's native integration of the runtimes and therefore are bound to be only to load one of those VR Devices at the same time via VRSettings.LoadDeviceByName.

I'll make sure to let the SDKs specify their "native VR Device" so I can tell the user about SDKSetups that are not possible.


fixing links, typo

Required items, please complete
Change(s):

See guidance below

Reason for Change(s):

See guidance below

Version Updated:

Required only for Detections/Analytic Rule templates
See guidance below

Testing Completed:

See guidance below

Checked that the validations are passing and have addressed any issues that are present:

See guidance below

Guidance <- remove section before submitting

Before submitting this PR please ensure that you have read the following sections and filled out the changes, reason for change and testing complete sections:
Thank you for your contribution to the Microsoft Sentinel Github repo.

Details of the code changes in your submitted PR.  Providing descriptions for pull requests ensures there is context to changes being made and greatly enhances the code review process.  Providing associated Issues that this resolves also easily connects the reason.

Change(s):

Updated syntax for XYZ.yaml

Reason for Change(s):

New schema used for XYZ.yaml
Resolves ISSUE #1234

Version updated:

Yes
Detections/Analytic Rule templates are required to have the version updated

The code should have been tested in a Microsoft Sentinel environment that does not have any custom parsers, functions or tables, so that you validate no incorrect syntax and execution functions properly.  If your submission requires a custom parser or function, it must be submitted with the PR.

Testing Completed:

Yes/No/Need Help

Note: If updating a detection, you must update the version field.

Before the submission has been made, please look at running the KQL and Yaml Validation Checks locally.
https://github.com/Azure/Azure-Sentinel#run-kql-validation-locally

Checked that the validations are passing and have addressed any issues that are present:

Yes/No/Need Help

Note: Let us know if you have tried fixing the validation error and need help.

References:

Guidance for Detection checks
General contribution guidance
PR validation troubleshooting

Hi @NikitaGrunskyHolm,
As per latest guidelines issued by Microsoft Sentinel, please repackage the solution using V3 tool Please go through this readme file on how to use the V3 tool https://github.com/Azure/Azure-Sentinel/blob/master/Tools/Create-Azure-Sentinel-Solution/V3/README.md
And we need to add ReleaseNotes file for solution.Please refer below link for how to create ReleaseNotes.
https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/ReleaseNotesGuidance.md
Thanks

@v-atulyadav Hi! I've pushed V3 package and release notes, could you please check :slightly_smiling_face:

Hello @NikitaGrunskyHolm, Thanks for committing the requested changes. @v-atulyadav will take a look at this.


[Bug]<EMAIL_ADDRESS>- TypeError: Cannot destructure property 'distPath' of 'environment' as it is undefined.

Version
System:
    OS: macOS 14.5
    CPU: (14) arm64 Apple M3 Max
    Memory: 118.88 MB / 36.00 GB
    Shell: 5.9 - /bin/zsh
  Browsers:
    Chrome: 126.0.6478.127
    Safari: 17.5
  npmPackages:
    @rsbuild/core: 0.7.10 => 0.7.10
    @rsbuild/plugin-eslint: 1.0.0 => 1.0.0
    @rsbuild/plugin-react: 0.7.10 => 0.7.10

Details
Latest v1.0.0 of @rsbuild/plugin-eslint causes build to fail with:
error   Failed to build.
error   TypeError: Cannot destructure property 'distPath' of 'environment' as it is undefined.

Works as before with 0.7.10
Reproduce link
don't have a public repo, but should be pretty straightforward to reproduce
Reproduce Steps
rsbuild build

Please use @rsbuild/core 1.0.0-alpha when using @rsbuild/plugin-eslint 1.0.0

https://github.com/rspack-contrib/rsbuild-plugin-eslint/blob/d72e7f28a0f1d5161399ac39255063a1b010c208/package.json#L53


Transactions support

This PR contains the following changes:

Support for RocksDb iterators which can be created by calling the openIterator() proc on the RocksDbRef object. The iterator supports forwards and backwards iteration using the low level primatives exposed in the c library. The RocksIteratorRef type also implements a pairs inline iterator which can be used as a simple option to traverse the key value pairs in the database. The column family to read can be specified when opening the iterator.
WriteBatchRef support which makes it possible to atomically write a group of puts/deletes to the database to one or many column families at once. Note that these WriteBatchRef atomic updates don't require the usage of transactions.
Transactions support using TransactionDbRef which can open one or more column families in the database. TransactionDbRef.openTransaction will create a transaction which can read/write to/from any of the opened column families. TransactionRefsupports the usual commit and rollback functions as expected and allows reading pending updates from the transaction which haven't yet been committed to the database.

Here is the related PR to update Nimbus-Eth1 to use these changes: https://github.com/status-im/nimbus-eth1/pull/2054


coqPackages.autosubst: 5b40a32e -> 1.7 and fix build

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 122367 run on x86_64-darwin 1

1 package built:

coqPackages.autosubst


use glove.840B.300d for NLI experiments

Description
Use glove.840B.300d instead of glove.6B.300d. Updated accuracy numbers.
Checklist
Essentials

[ ] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage
[ ] Code is well-documented

Changes

[ ] default embedding is glove.840B.300d

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

Job PR-567/2 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-567/2/index.html

Job PR-567/4 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-567/4/index.html


Could not run euroc example

Hello, Lukas @lukasvst ! Thanks for your excellent work!   When I execute run_dmvio.py, the program shutdown because it could not find camera calibration file.
Reading Calibration from file ./camera.txt ... not found. Cannot operate without calibration, shutting down. Segmentation fault (core dumped)
Meanwhile, I couldn't find this camera file in euroc dataset and dm_vio.

That's strange, download_euroc.py should create the calibration file. Did it (the download script) finish running without errors?

Yes. I use download all command but  I want to test seq0, so  ctrl +c is executed when seq0 is finished. I use download one seq and the calibration file created. And the good news: run successfully! Thanks @lukasvst

I'm glad the issue could be resolved.
For future reference: The download scripts should not be stopped with ctrl-c, because then not all relevant files will be generated. If you want to download only some sequences, the option --only_seq should be used.


[SE, stdlib]: Map Sorting

I should probably add some tests as well, though I couldn't find much on sorting. test/stdlib/sort_integers.swift seems like the only suitable place.
https://github.com/apple/swift-evolution/pull/999

Can one of the admins verify this patch?

This is outdated. See https://forums.swift.org/t/why-are-these-evolution-proposals-not-moving-forward/27996/2


Added NuGet Detector Doc

Added doc describing NuGet Detector

Can you update the README.md as part of this PR too please?


Package Initialization Error

Diagnostics
undefined

Versions
Teletype version: v0.13.3
Atom version: 1.33.0
Platform: win32

Thanks for the report! I'm going to go ahead and close as a duplicate of #372 so you can subscribe there for updates if you'd like. If you can, please let us know if you're consistently seeing this error or if you saw it just once. It would also be useful to know if you access the internet via a proxy.


Rename to VMEC?

I suggest to rename this repository to VMEC, since PARVMEC should be considered the main VMEC implementation.
Now would be the right time to rename it, since not many people depend on this particular codebase yet.

I would have preferred VMEC but that repo name was already taken under the ORNL-Fusion organization.

Okay, one more reason to go for an independent organization...

Taken by who? If there is a repo under ORNL-fusion that’s not actual vmec that is called vmec IT needs to be renamed


Replace {null} in JSDocs with {void}

These functions are not returning null. They are returning nothing, so {void} is more appropriate.

The literal term for nothing in JS is null. Why put void? You don't do const variable = void

Those functions are not returning null, they are returning literally nothing. They technically return undefined. The usual convention for JSDoc is to use {void} to indicate that. ESLint even detects {void} so that you don't have to provide a description for it, if you're using the requireReturn part of the valid-jsdoc rule.

Ah, I see now.

The docs stating that these methods returning null is misleading, as if you were to (for some reason) test someMethod() === null, you would always get false.

#582 supersedes this PR.


bank-account: Should GetBalance be a Balance property instead?

When I was doing this exercise, I remarked that it seemed unidiomatic that GetBalance() was a method, rather than having a Balance property.
But y'all know C# better than I do, so y'all are in a better position to answer - must it be a method? Or can/should it be a property?

It should indeed be a property, good catch!

@petertseng A PR has been opened.

I've just gone ahead and merged the PR. Thanks @petertseng for bringing this up.


Fix g:dein#_ftplugin do not saved

dein#save_state do not save g:dein#_ftplugin. It's possible that ftplugin is not generated .

LGTM


Fixed missing numpy headers in OS X build.

Trying to build seqlearn on OS X 10.11 results in the following error:
$ python setup.py install
...
clang -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c seqlearn/_decode/bestfirst.c -o build/temp.macosx-10.10-x86_64-2.7/seqlearn/_decode/bestfirst.o
seqlearn/_decode/bestfirst.c:250:10: fatal error: 'numpy/arrayobject.h' file not found
#include "numpy/arrayobject.h"
         ^
1 error generated.
error: command 'clang' failed with exit status 1

Which is the same error solved here: https://github.com/hmmlearn/hmmlearn/issues/43. This ports the hmmlearn fix to seqlearn.

Nah, I wish I viewed this PR before staging my https://github.com/larsmans/seqlearn/pull/23


CONTRIBUTING: Unbreak CLA links

This repairs Markdown links which were broken.

@olleolleolle Thanks for submitting the PR.


[Question iOS] Support Enable Bitcode

Can we support build with ENABLE_BITCODE on iOS?

Without being too familiar with bitcode, I recall it would significantly increase the build size.
What benefit would that bring in your case?

Without being too familiar with bitcode, I recall it would significantly increase the build size.
What benefit would that bring in your case?

Yes, it will be increase size of ipa file. but we can't use App Thining because App Thining require Bitcode.
App Thinking reduces iOS App size when users download App from AppStore
I hope you will consider it

reading more about bitcode, it's been deprecated for Xcode14, with the App store no longer accepting bitcode submissions. Since that's not the direction Apple is going, we will not be adding bitcode support.

it's been deprecated for Xcode14

Oh, I don't know that, thank you for your share.


Blazor support for aspnet core and Net5 integration

Would be interesting to see how the library can be integrated using Blazor Wasm or Blazor server, through JSruntime support.

Hey! This sounds great and we are up for it, but right now we are implementing general functionality of the library. Once the read/ write logic is complete, we'll get into this specific implementations. In the meantime, feel free to drop a PR yourself! 😄

Already on it and almost working

Can you see something strange? It looks like this is the last step but the loader doesn't work.
I had to manually change some of the path to suite the Blazor arrangement.

This is the IFCLoader pulled from ThreeJS (5 days ago is the last commit)

I needed to add a reference also to this js file

And finally this is the organization of the folders

and this is the error in the console

Ok now we talk!
Just some issue with referencing the libraries...


Move CHANGELOG entry to correct section

A recent merge added an CHANGELOG entry to an earlier release. This just moves that entry to the unreleased section.

Thanks for spotting and fixing this!


metadata of typescript DevWorkspace types is just object

Describe the bug
metadata of typescript DevWorkspace types is just object, but for clients it's needed to know that it has all fields from K8s API, like namespace, name, annotations https://github.com/devfile/api/blob/main/pkg/apis/workspaces/v1alpha2/devworkspace_types.go#L80
To Reproduce
Steps to reproduce the behavior:

Import devfile/api somewhere in typescript project.
Check V1alpha2DevWorkspace or V1alpha2DevWorkspaceTempalate. Metadata there is just an object

Expected behavior
it's expected it has all field from K8s ObjectMeta.

@tinakurian is working on it

related controller-gen PR https://github.com/kubernetes-sigs/controller-tools/pull/557.
metadata can have limited number of fields: name, namespace, labels, annotations and finalizers


Modifies Makefile to allow caching

Trying to increase Netlify build times. Removes 'yarn clean' from build command. Hopefully allows cache to speed things up.
Product Version(s):

Issue:

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

@doucol Will this do it?


Paper edits

This PR incorporates some feedback from Bill after a first-pass of reading the paper.
WIP label because I will figure how to acknowledge funding support soon.

@JacksonBurns This PR is now ready for review. Could you please look over the wording changes to the acknowledgement section?


GDPR compliant

Add the option to make it GDPR compliant for those who wish to, by writing their own custom cookie consent policy.

custom cookie consent policy title and description
add custom blocks describing types of cookies and what are they used for
add for each block (describing a specific type of cookie) opt-in/out option
add custom block to make it possible for users to contact you for further info. about your policy

writing a cookie policy that fully follows these guidelines is up to the user.


Sidecar: Thanos sidecar not uploading all chunks during backend migration to AWS S3

Thanos, Prometheus and Golang version used:  Thanos: v0.28.1,  Prometheus: v2.36.2, Golang v1.17

Object Storage Provider: AWS S3
What happened:
We are attempting to reconfigure our object storage provider from storing our Prometheus data on a local disk to AWS S3, as well as migrating the historical data.  We have roughly 12.4 TB of data stored on the drive over ~1000 blocks for the past 3 months of data.
After setting the --shipper.upload-compacted flag on Sidecar, and disabling compaction as detailed here, Sidecar appears to be uploading the block files to S3, and the Sidecar logs do not show any errors.  What we have found though is that not all of the chunk files for a block are getting uploaded to their respective directory in S3.  Examining the meta.json file, we see entries for all of the segment files and their corresponding chunks, but not all the chunk files themselves are in the directory.  Looking in the chunk directory on the Prometheus host, all of the chunk files are present.
This is an intermittent issue - the majority of the blocks and their chunks appear to be uploading correctly.  This poses a problem however, as it results in gaps in our data, or queries outright failing.
What you expected to happen:
All of the chunks in a block are uploaded to S3, or if they are not, a process runs to upload the missing chunks.
How to reproduce it (as minimally and precisely as possible):

Run Sidecar with the --shipper.upload-compacted flag and compaction disabled
Wait for uploads to complete (~6 hours in our case).  We have also observed that this problem can occur early in the upload process by examining uploaded block directories in S3
Use thanos-query to run prometheus queries over progressively longer time periods.  At some point, you will run into an error similar to this - ...Aborted desc = fetch series for block 01GA6XJEMBY74QYDM8A54447VK: load chunks: get range reader: The specified key does not exist.
Find the corresponding block directory in S3, and examine the chunk directory inside.  Chunk files will be missing.  Most of the time the chunks missing will be at the beginning of the numerical sequence.
Compare the present files to the recorded segment files in meta.json, and observe the discrepancy
Examine the chunks directory on the Prometheus host, and the missing chunk files will be present

Full logs to relevant components:
level=info ts=2022-11-03T18:04:31.018120423Z caller=shipper.go:334 msg="upload new block" id=01GA6XJEMBY74QYDM8A54447VK
level=debug ts=2022-11-03T18:04:32.919196867Z caller=objstore.go:288 msg="uploaded file" from=/prometheus/data/thanos/upload/01GA6XJEMBY74QYDM8A54447VK/chunks/000001 dst=01GA6XJEMBY74QYDM8A54447VK/chunks/000001 bucket="tracing: thanos-receive-dev"

Full debug logs are not provided here as there were about 1500 between these two messages.  We looked at these in detail, but did not find any errors that appeared relevant to the upload (other logs here mostly related to grpc.service=thanos.Store, or handling STREAMED_XOR_CHUNKS).
Anything else we need to know:
Below are methods we have tried to remediate this issue -

Upgraded from Thanos v0.24.0 to v0.28.1
Removing the corresponding entries within the thanos.shipper.json file in the hopes it would re-upload the block and missing chunk files.
Waiting for thanos-compactor to process all of the blocks it wanted to, then deleting the thanos.shipper.json file entirely and restarting the Sidecar.  This appeared to upload blocks that thanos-compactor had deleted, but none that had not been processed by the compactor.  The compactor also did not appear to process the full set of uploaded blocks before its runs began taking less than a second with no reported actions taken or errors.
Deleting the block directories reported by thanos-query from S3, deleting thanos.shipper.json, and restarting the Sidecar.  This did successfully upload the missing chunks the second time in most cases.  This was not a viable workaround though, as different chunks appeared as missing when further queries with different metrics were tried.  Repeated this process five times or so before giving up
Tried using thanos tools bucket verify to detect issues.  Did not detect missing chunks.

AWS S3 configuration -
bucket_config.yml: |-
    type: S3
    config:
      bucket: "thanos-receive-dev"
      endpoint: "s3.eu-west-1.amazonaws.com"
      region: "eu-west-1"
      insecure: false
      signature_version2: false
      trace:
        enable: false
      part_size: 67108864

Thanos Sidecar configuration -
      thanos-sidecar:
        image: thanosio/thanos:v0.28.1
        args:
        - "sidecar"
        - "--log.level=debug"
        - "--tsdb.path=/prometheus/data"
        - "--prometheus.url=http://<IP_ADDRESS>:9090"
        - "--http-address=<IP_ADDRESS>:10902"
        - "--grpc-address=<IP_ADDRESS>:10901"
        - "--reloader.config-file=/etc/prometheus/prometheus.yml.tmpl"
        - "--reloader.config-envsubst-file=/etc/prometheus-shared/prometheus.yml"
        - "--reloader.rule-dir=/etc/prometheus-rules"
        - "--shipper.upload-compacted"
        - "--objstore.config-file=/etc/bucket/bucket_config.yml"
        - |
          --request.logging-config=options:
            level: DEBUG
            decision:
              log_start: true
              log_end: true

Thanos-compactor configuration -
  thanos-compactor:
    image: thanosio/thanos:v0.28.1
    username: "%{hiera('prometheus_user_uid')}:%{hiera('prometheus_user_gid')}"
    command: >-
      compact
      --data-dir "/data/compactor"
      --objstore.config-file "/etc/thanos-compactor/bucket.yaml"
      --http-address="<IP_ADDRESS>:10902"
      --wait
      --wait-interval=10m
      --retention.resolution-raw=397d
      --downsampling.disable
      --delete-delay=1h
      --consistency-delay=30m
      --compact.cleanup-interval=5m
      --compact.concurrency=4

S3 directory with missing chunks -

Meta.json from base directory -
{
	"ulid": "01GA6XJEMBY74QYDM8A54447VK",
	"minTime":<PHONE_NUMBER>000,
	"maxTime":<PHONE_NUMBER>000,
	"stats": {
		"numSamples":<PHONE_NUMBER>,
		"numSeries": 19268807,
		"numChunks": 60665004
	},
	"compaction": {
		"level": 1,
		"sources": [
			"01GA6XJEMBY74QYDM8A54447VK"
		]
	},
	"version": 1,
	"thanos": {
		"labels": {
			"monitor": "prometheus",
			"replica": "promethanos-blue-0"
		},
		"downsample": {
			"resolution": 0
		},
		"source": "sidecar",
		"segment_files": [
			"000001",
			"000002",
			"000003",
			"000004",
			"000005",
			"000006",
			"000007",
			"000008",
			"000009",
			"000010",
			"000011",
			"000012",
			"000013",
			"000014",
			"000015",
			"000016",
			"000017",
			"000018"
		],
		"files": [
			{
				"rel_path": "chunks/000001",
				"size_bytes": 536870704
			},
			{
				"rel_path": "chunks/000002",
				"size_bytes": 536870758
			},
			{
				"rel_path": "chunks/000003",
				"size_bytes": 536870842
			},
			{
				"rel_path": "chunks/000004",
				"size_bytes": 536870856
			},
			{
				"rel_path": "chunks/000005",
				"size_bytes": 536870504
			},
			{
				"rel_path": "chunks/000006",
				"size_bytes": 536870449
			},
			{
				"rel_path": "chunks/000007",
				"size_bytes": 536870674
			},
			{
				"rel_path": "chunks/000008",
				"size_bytes": 536870861
			},
			{
				"rel_path": "chunks/000009",
				"size_bytes": 536870840
			},
			{
				"rel_path": "chunks/000010",
				"size_bytes": 536870829
			},
			{
				"rel_path": "chunks/000011",
				"size_bytes": 536870854
			},
			{
				"rel_path": "chunks/000012",
				"size_bytes": 536870828
			},
			{
				"rel_path": "chunks/000013",
				"size_bytes": 536870582
			},
			{
				"rel_path": "chunks/000014",
				"size_bytes": 536870579
			},
			{
				"rel_path": "chunks/000015",
				"size_bytes": 536870903
			},
			{
				"rel_path": "chunks/000016",
				"size_bytes": 536870852
			},
			{
				"rel_path": "chunks/000017",
				"size_bytes": 536870892
			},
			{
				"rel_path": "chunks/000018",
				"size_bytes": 20565395
			},
			{
				"rel_path": "index",
				"size_bytes":<PHONE_NUMBER>
			},
			{
				"rel_path": "meta.json"
			}
		]
	}
}

Present chunks on Prometheus host -
/prometheus/data/01GA6XJEMBY74QYDM8A54447VK/chunks $ ls -lah
total 9G
drwxrwsr-x    2 nobody   nobody      4.0K Aug 11 17:07 .
drwxrwsr-x    3 nobody   nobody      4.0K Aug 11 17:11 ..
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:02 000001
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:02 000002
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:03 000003
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:03 000004
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:03 000005
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:03 000006
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:03 000007
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:04 000008
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:04 000009
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:04 000010
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:05 000011
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:05 000012
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:05 000013
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:06 000014
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:06 000015
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:06 000016
-rw-rw-r--    1 nobody   nobody    512.0M Aug 11 17:07 000017
-rw-rw-r--    1 nobody   nobody     19.6M Aug 11 17:07 000018

@bwplotka, I believe you're the correct person to ping based on https://github.com/thanos-io/thanos/blob/main/docs/storage.md 😄

We took a look at server-level S3 logs thinking that minio-go may have been eating 503 SlowDown errors when they were returned from S3, but nothing related seemed to emerge.  From a time period when we emptied and re-uploaded the blocks to S3 we found -

1.1 mil 404's from thanos-compactor looking for deletion-mark.json.  Seems excessive, but unrelated.
1.6 mil 200s
192 206s from thanos-store
4 misc errors (301, 403, 500s)

We've been observing the behavior on this closely and have found that there are three separate ways that this might present itself.

The way reported in this issue previously, where a number of chunk files at the beginning of the range are missing on S3, but present on local prometheus, and the full set referenced in the meta.json
The chunks subdirectory is not present at all, but the corresponding block is present in thanos.shipper.json
The block directory is not present at all, but the corresponding block is present in thanos.shipper.json

Also worth mentioning this issue is very similar to https://github.com/thanos-io/thanos/issues/1331.

Facing the exact same issue regarding shipping Prometheus data from TSDB to Azure Blob.

We ended up creating shell scripts that run on a cron schedule for the three situations mentioned above that compare the contents on the local Prometheus to what has been uploaded to S3 and manually uploads when a discrepancy is found.
FixPartialUploadsAndChunks.sh
UploadIndexFiles.sh
This last one is just informational - it will tell you what's missing on S3.
CompareUploadedBlocks.sh
Our crons are set up like this -
scripts.cron
*/30 * * * * /usr/bin/flock -n /usr/sbin/scripts/FixPartialUploadsAndChunks.lock /usr/sbin/scripts/FixPartialUploadsAndChunks.sh >> /var/log/prometheus.log 2>&1 */30 * * * * /usr/bin/flock -n /usr/sbin/scripts/UploadIndexFiles.lock /usr/sbin/scripts/UploadIndexFiles.sh >> /var/log/prometheus.log 2>&1
Doing a quick skim of our logs, I don't see any recent uploads that have occurred when running these scripts.  It's entirely possible the behavior we saw was because of the massive volume that we were uploading to S3 during our migration (12 TB of data for each Prometheus instance).  I wouldn't want to say I'm positive of that though without a more thorough analysis.

We face the same issue almost 5% of the chunks are missing in the Azure Storage Account Container. So I guess the issue is not on the Cloud provider since it is happening for S3 in AWS and in the Storage Account in Azure. Can someone check the source code to investigate this further? I believe the HTTP return code or the retry is not handled properly, or there might be some issue with the library used to upload


[SPARK-48167][CONNECT][TESTS] Skip known behaviour change by SPARK-46122

What changes were proposed in this pull request?
This PR proposes to skip test_create_without_provider in backward compatibility test in https://github.com/apache/spark/actions/workflows/build_python_connect35.yml
Why are the changes needed?
This is a intentional behaviour change (SPARK-46122)
Does this PR introduce any user-facing change?
No, test-only.
How was this patch tested?
Tested in my fork
Was this patch authored or co-authored using generative AI tooling?
No.

Merged to branch-3.5.


We need to decentralize the role files

Rock previously had the monolithic design with all files centrally located. They need to be moved out to their respective role folders.

I finished doing this.


Potential math rendering errors in pymoo.org

There appear to be some errors in the math rendering on pymoo.org:

As soon as the page loads, the math shows up fine - for around ~15-30 seconds. However, after 30 seconds or so, the math ends up as shown in the above picture: [Math Processing Error]. I usually would assume that this was something wrong with my browser, but this happened on three different browsers on two different devices (Firefox mobile, Firefox Desktop, and Edge Desktop), both in regular mode and incognito/private browsing - so that probably rules out something being wrong with my browser specifically.
On going through the Javascript console on the browser, it looks like there are some JS libraries missing:
GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff?V=2.7.3 net::ERR_ABORTED 404 (Not Found)
/_static/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff?V=2.7.3:1 GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff?V=2.7.3 net::ERR_ABORTED 404 (Not Found)
/_static/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff?V=2.7.3:1 GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff?V=2.7.3 net::ERR_ABORTED 404 (Not Found)
/_static/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf?V=2.7.3:1 GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf?V=2.7.3 net::ERR_ABORTED 404 (Not Found)
/_static/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf?V=2.7.3:1 GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf?V=2.7.3 net::ERR_ABORTED 404 (Not Found)
/_static/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf?V=2.7.3:1 GET https://pymoo.org/_static/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf?V=2.7.3 net::ERR_ABORTED 404 (Not Found)

followed by this error:
Uncaught TypeError: Cannot read properties of undefined (reading 'img')
    at GETWIDTHS (imageFonts.js?V=2.7.3:184)
    at Function.execute (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:243)
    at cb (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:225)
    at Object.Process (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:495)
    at Object.call (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:508)
    at Function.WAITEXECUTE (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:348)
    at cb (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:225)
    at Object.Execute (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:426)
    at Object.loadComplete (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:968)
    at Object.loadTimeout (MathJax.js?config=TeX-AMS-MML_HTMLorMML-full.js:979)

after which the math error shows up. Just thought I'd let you know - if this doesn't seem like a problem others are facing, please close this issue - thanks!

I have updated the pymoo.org page.
Can you please check again? (do not forget to delete the cache)

Can you please check again? (do not forget to delete the cache)

Hi, the 404s and the subsequent errors don't seem to be appearing right now.

I have had to reupload the files. Please check again.


[Bug Report] table width error when using table in tabs

Element UI version
1.3.7
OS/Browsers version
win7/chrome59
Vue version
2.4.1
Reproduction Link
https://jsfiddle.net/stanJ/yns9mvod/3/
Steps to reproduce

switch tabs first time, the width of table is right.
click refresh button, then switch to another tab, the width of table is not right.

What is Expected?
the width of table is 100%
What is actually happening?
the width of table is not 100%

需要用 key 来强制渲染一个新的 Table：https://jsfiddle.net/yns9mvod/4/

谢啦


Question: Slack or discord?

Thanks!

Did not have one before but that is a great idea. Thanks for suggesting it! I just set up a slack channel. Feel free to join: http://slack.devspace-cloud.com/


when using flynn-host bootstrap --min-hosts 3

deploy-app redis error: timed out waiting for scale to complete (waited 300 seconds)

stop at   deploy-app redis
05:56:22.359259 gen-random pg-password
05:56:22.359333 gen-random pg-password fffba3cbb2e48686c5f0e8ac8e3c8f87
05:56:22.359338 run-app postgres
05:56:24.074844 gen-random controller-key
05:56:24.075063 gen-random controller-key 0e86d1054eb452e2cacbccf46a8f4eaf
05:56:24.075383 gen-random bootstrap-id
05:56:24.075459 gen-random bootstrap-id bfb4bde5-7a8e-48d6-9930-38dcd08da70f
05:56:24.075549 gen-random dashboard-session-secret
05:56:24.075559 gen-random dashboard-session-secret 0877667e6866561a2d03a2f2f4cfdda6
05:56:24.075624 gen-random dashboard-login-token
05:56:24.075738 gen-random dashboard-login-token ae8c3f31b17d2174bb8d20586592a243
05:56:24.075747 gen-random name-seed
05:56:24.075828 gen-random name-seed 8a16ba59050f849e0e35
05:56:24.075836 gen-random router-sticky-key
05:56:24.075934 gen-random router-sticky-key ODoWl/Hp6z9Kck8d2olOfVat++qQWJ7dO0vjbvI8HP8=
05:56:24.075943 wait postgres-wait
05:56:28.724494 gen-tls-cert controller-cert
05:56:30.878167 gen-tls-cert controller-cert pin: wybKYg8dn2JOsvCO3UN+PutKslYE/T0wU4nv34frT4U=
05:56:30.880257 run-app controller
05:56:32.199058 wait controller-wait
05:56:33.404172 add-app controller-inception
05:56:33.576374 add-app postgres-app
05:56:33.623741 add-app flannel-app
05:56:33.665363 add-app discoverd-app
05:56:33.713313 scale-app scheduler-scale
05:56:33.726011 run-app scheduler
05:56:34.527645 create-artifact slugbuilder-image
05:56:34.743348 create-artifact slugrunner-image
05:56:34.752770 create-artifact redis-image
05:56:34.761788 deploy-app redis

I am also having this issue.

Me too.

I rebuilt the cluster 🤷♂

I had this happen again. I got farther running the fix in http://github.com/flynn/flynn/issues/4334
https://gist.github.com/lmars/cfb46fe104d1c17be8f22acf41c907e9
But now I am stuck on
14:57:53.604517 deploy-app router
15:02:55.798277 deploy-app router error: timed out waiting for scale to complete (waited 300 seconds)

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


google popup

https://github.com/ita-social-projects/GreenCityClient/commit/bc3f081ff4f6e3ffc452cdfed4e723226a52fcf0


load_dataset possibly broken for gated datasets?

Describe the bug
When trying to download the winoground dataset, I get this error unless I roll back the version of huggingface-hub:
[/usr/local/lib/python3.7/dist-packages/huggingface_hub/utils/_validators.py](https://localhost:8080/#) in validate_repo_id(repo_id)
    165     if repo_id.count("/") > 1:
    166         raise HFValidationError(
--> 167             "Repo id must be in the form 'repo_name' or 'namespace/repo_name':"
    168             f" '{repo_id}'. Use `repo_type` argument if needed."
    169         )

HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name': 'datasets/facebook/winoground'. Use `repo_type` argument if needed

Steps to reproduce the bug
Install requirements:
pip install transformers
pip install datasets
# It works if you uncomment the following line, rolling back huggingface hub:
# pip install huggingface-hub==0.10.1

Then:
from datasets import load_dataset
auth_token = ""  # Replace with an auth token, which you can get from your huggingface account: Profile -> Settings -> Access Tokens -> New Token
winoground = load_dataset("facebook/winoground", use_auth_token=auth_token)["test"]

Expected behavior
Downloading of the datset
Environment info
Just a google colab; see here: https://colab.research.google.com/drive/15wwOSte2CjTazdnCWYUm2VPlFbk2NGc0?usp=sharing

I see the same issue when calling load_dataset('poloclub/diffusiondb', 'large_random_1k') with datasets==2.6.1. No issue with datasets=2.6.1
https://github.com/poloclub/diffusiondb/issues/7

I fixed my issue by specifying repo_type in hf_hub_url(). https://github.com/poloclub/diffusiondb/commit/9eb91c79aaca98b0515a0ce45778b8af65b84652
I opened a PR on the Winoground's repo: https://huggingface.co/datasets/facebook/winoground/discussions/2

This is a bug in the script, indeed. The most robust fix is to use a relative path instead of hf_hub_url, which does not depend on huggingface_hub's version 🙂. I've opened a PR here: https://huggingface.co/datasets/facebook/winoground/discussions/3.

Awesome, big thanks to both @xiaohk and @mariosasko!

so, if i reproduce the bug, what should i do ? with huggingface_hub0.13.3  dataset2.6.1

huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name':
tokenizer = AutoTokenizer.from_pretrained(ARGS.model_path, trust_remote_code=True)

Please handle automatically for local path and repo name inside, otherwise users always get confused about this

I think I'm also hitting this error, trying to load a model from a local path.


Overloaded route handler

Interface{} says nothing, but in this case could be useful to have handler overloding for easier and simpler interpolarity with existent interfaces or even third-party middleware.

This was already achieved via the built-in middleware layer. Closing.


System.print() a string with null

System.print(_) calls vm.writeFn that takes a C string (const char*). However, since Wren strings can contain null, I think we need to make it take const char* and size_t, like wrenGetSlotBytes(). This way, the host can choose what to do with a string like "a\0b", while in the current implementation, it is forced to see it like "a".

I'm closing this now because it seems to be a fundamental things in the API. For example, resolveModuleFn and loadModuleFn do that too. Yes, I agree that NULL in module names is, uhm, slightly uncommon, but hey, printing NULL is also somewhat uncommon. Should we change that? I don't know, provided that it'll be a big breaking change for any embedder. Even more basic question, is this a bug? To be honest, I don't know. The lexer also uses NULL to terminate lexing, which means that you cannot embed NULL inside your code. Is this a bug? Again, I don't know. NULL in code is probably a whitespace. The only meaningful place is inside string. But you can escape NULL inside strings using \0. Most programming languages do not encourage Unicode source code, even if they support it. Wren supports bare Unicode in strings, but also supports escaping. Is it a big deal if we don't support bare NULL specifically? If an embedder wants to allow NULLs in import strings, and it can't, is this a problem? Maybe we just don't allow that.
Thinking about it again, it is meaningful. I don't know if it was intentional, but either way: strings in Wren are used both as texts and as binary data buffers. Binary data, of course, can contain NULL, just like it can contain any other byte. So if you use String to hold binary data, you need an API that will allow you utilize all of the potential. wrenGetSlotBytes() is targeted for that. But import strings, text to print, and source code, all are not binary data but pieces of text. Text, in Wren, should not contain weird characters. Emojis - yes, but unprintable ASCII characters, why. So maybe the bug is not that we disallow NULL but that we do allow ASCII code 21, for example 😄


Update readme for Vapor 3

You should update the version to  1.0.0-rc.1.0 in the readme because it's stuck at 0.10

Solved in the 1.0.0 release!


Fix case sensitivity and Platform::fileDelete

for linux and OSX. Correct a couple of warnings and errors preventing builds on linux.

Can confirm this allows compilation of the development branch to complete successfully on Linux. Tested on Arch Linux x86_64.

Great! Thanks a lot for these linux and mac compile fix!
Yes, we are still not using modern C++ but we should as today it's supported anywhere.
I'll discuss about that with my SC colleagues.
Reviewed and approved as functional, correct and safe PR ;)


How to extend a customized driver with ogm based on this repo?

Hi, I am a developer from TuGraph-DB team(https://github.com/TuGraph-db).  I am working on the ogm support for tugraph-db. I found neo4j-ogm is a nice work as an ogm implementation example. When developing the customized ogm for our database, I found I need to register my new driver implementation in api/src/main/java/org/neo4j/ogm/config/Drivers.java which is the main entry for users to create an ogm client. This requirement makes me unable to claim neo4j-ogm as a maven dependency in my project. The only choice for me is to import the source code to my project. Is there a graceful to extend the project?

Expected Behavior

A graceful way to write my ogm client based on neo4j-ogm
Current Behavior

I have to import the source code directly to my project.
Your Environment

Java version:1.8
OGM Version (The version of this software):4.0.0
OGM Transport used (One of Bolt, HTTP or embedded): RPC driver
Neo4j Java Driver version (in case of Bolt transport):4.4.5

Thanks for reaching out. The driver module design was introduced mostly for internal needs and structuring.
Neo4j-OGM is still modular in the sense that it has the neo4j-core dependency and the neo4j-api that defines how a Driver needs to behave. A custom driver implementation would depend on the api module only.
I see what you mean, but you might work around this limitation with the Drivers enum by defining your own Configuration implementation (extending the existing one) and just ignore/override the step of the determination of the concrete (internal) driver type.
Then you declare the core and  dependency in an application.

I'm gonna close this as Neo4j-OGM is explicitly designed for a with Neo4j and we do not support other graph databases. Sorry.


Sample code of user authentication from the tutorial does not work

Code from the tutorial / Security / Simple OAuth2 with Password:
fake_users_db = {
    "johndoe": {
        "username": "johndoe",
        "full_name": "John Doe",
        "email"<EMAIL_ADDRESS>        "hashed_password": "fakehashedsecret",
        "disabled": False,
    },
    "alice": {
        "username": "alice",
        "full_name": "Alice Wonderson",
        "email"<EMAIL_ADDRESS>        "hashed_password": "fakehashedsecret2",
        "disabled": True,
    },
}

def get_user(db, username: str):
    if username in db:
        user_dict = db[username]
        return UserInDB(**user_dict)

def fake_decode_token(token):
    # This doesn't provide any security at all
    # Check the next version
    user = get_user(fake_users_db, token)
    return user

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if not user:
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Invalid authentication credentials",
            headers={"WWW-Authenticate": "Bearer"},
        )
    return user

async def get_current_active_user(current_user: User = Depends(get_current_user)):
    if current_user.disabled:
        raise HTTPException(status_code=400, detail="Inactive user")
    return current_user

@app.get("/users/me")
async def read_users_me(current_user: User = Depends(get_current_active_user)):
    return current_user

When fake_decode_token(token) called get_user(fake_users_db, token), a token is passed. However get_user() is expecting an username, not a token, so, get_current_user() always get a none user, and always raise the exception.
At the last part of the document Simple OAuth2 with Password, it shows read_users_me() works, but it does now work actually.

The login path operation function returns user.username as token, so we can pass token to get_user(), it's actually same as username. That's what I think.

The login path operation function returns user.username as token, so we can pass token to get_user(), it's actually same as username. That's what I think.

i have tried, it does not works.


fix: isolate required and optional dependencies

This makes the i/o dependencies, which are only required for the .save()/.load() methods, optional. I have an environment where I would really rather not have netcdf4 installed and realized xeofs was the reason it kept getting pulled in.
Along the same lines, numba is a heavyweight dependency and has very limited use here so far (only in GWPCA). numba is probably bigger in size than all other deps combined. statsmodels also has very minimal use (CPCCA). I'm tempted to try and make those optional as well, since probably the majority of people who use this package just stick to EOF. Wanted to get your thoughts first though @nicrie .

Ok, I went ahead and moved numba and statsmodels into an optional group as well, with appropriate warnings in the install and contributing docs. I also parameterized the CI over minimal and complete dependencies to make sure the minimal version remains compatible with running the test suite, by skipping certain tests as needed.
I used etc as the miscellaneous group which is what xarray uses for sparse. Could also do accel (which xarray also uses, but this is mostly for things that speed up operations but still work without them) or perf. :shrug:

hey @slevang I was quite packed over the last days, I will have a look now.
:+1: for etc


Evaluate planner list design change

Now that we have removed the Description field, that list view looks empty. What do you think of this idea?
Proposed change:
When the Details view appears it "pushes" the list view over so that it is not hidden. This would allow the controls on the list view to be accessed while the Details view is active.

@joshuawilson - it appears empty now due to the fact that the other pieces planned for the list are not in scope ATM. In the long term goals, there is additional information on each item that identify the assigned user, epic, etc.
Another aspect that will come into play more and more are the different screen resolutions. These were designed/defined with a standard screen size, not 1080p (still not industry standard) or 4K.


Add future deprecation message to AdalAuthenticator

Is your feature request related to a problem? Please describe.
In preparation for https://github.com/microsoft/botbuilder-dotnet/issues/6175 with V5 of the sdk, add an Obsolete attribute with instructions to AdalAuthenticator

We cannot deprecate AdalAuthenticator until msal is the default, and this would be a breaking change in v4.
For instructions on how to use msal instead, see https://github.com/microsoft/botbuilder-dotnet/pull/5736


get LaunchOptions data

How to get  LaunchOptions data on receiver app ?

Which information in specific were you looking to obtain from the LaunchOptions data? If possible please fill out the Cast SDK Issue Tracker so that we can take a closer look: https://issuetracker.google.com/issues/new?component=190205&template=814901


redesigned the 404 page

Short Description
Redesigned the 404 page as suggested in the Figma designs
Fixes Issue
Closes #23
Screenshots

Nice job,
You did a great job.
The texts are too big.

Could you suggest the text sizes?

Could you suggest the text sizes?

Maybe, Make it half of the current size.

How is it going?

You did a great job.
Thanks for your contributions.
I hope to see you again in the future.


Dask array astype method does not support order keyword argument

What happened:
The astype method for numpy arrays allows an order keyword argument, but the same keyword argument in dask causes an error.
What you expected to happen:
I expected the same behaviour as numpy. There are many other places in the dask code repository that include an order keyword argument.
Minimal Complete Verifiable Example:
import numpy as np

numpy_array = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]], order="C")
print(numpy_array.dtype)
print(numpy_array.flags)
converted_numpy_array = numpy_array.astype(float, order="F")
print(converted_numpy_array.dtype) # array is now float type
print(converted_numpy_array.flags) # array is now F_CONTIGUOUS

import dask.array as da

dask_array = da.from_array(numpy_array)
converted_dask_array = dask_array.astype(float, order="F") # ERROR!

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [10], in <cell line: 1>()
----> 1 dask_array.astype(float, order="F")

File ~/Documents/GitHub/dask/dask/array/core.py:2239, in Array.astype(self, dtype, **kwargs)
   2237 extra = set(kwargs) - {"casting", "copy"}
   2238 if extra:
-> 2239     raise TypeError(
   2240         f"astype does not take the following keyword arguments: {list(extra)}"
   2241     )
   2242 casting = kwargs.get("casting", "unsafe")
   2243 dtype = np.dtype(dtype)

TypeError: astype does not take the following keyword arguments: ['order']

Anything else we need to know?:
Dask doesn't seem like it preserves the contiguous order of arrays (unrelated to this issue). That makes debugging a bit more complicated. See https://github.com/dask/dask/issues/9316
Environment:

Dask version: 2021.12.0+411.gc98fab71
Python version: 3.9.13
Operating System: M1 Macbook, running Monteray
Install method (conda, pip, source): pip editable installation from current main branch

Here's someone else having the same problem (this time using dask.array.to_zarr which eventually calls astype): https://github.com/zarr-developers/zarr-python/issues/962#issuecomment-1195084096

I believe #9317 resolves this issue, thanks you @GenevieveBuckley!


"missing argument: guifg=" when opening a hovering window

When attempting to use any navigator.lua command that opens an overlay (like LspKeymaps, which I've used to try this out), guihua throws an error:
E5108: Error executing lua ...im/site/pack/packer/start/guihua.lua/lua/guihua/util.lua:152: Vim(highlight):E417: missing argument: guifg=
stack traceback:
        [C]: in function 'cmd'
        ...im/site/pack/packer/start/guihua.lua/lua/guihua/util.lua:152: in function 'selcolor'
        ...ite/pack/packer/start/guihua.lua/lua/guihua/listview.lua:41: in function 'initialize'
        ...im/site/pack/packer/start/guihua.lua/lua/middleclass.lua:135: in function 'new'
        .../start/navigator.lua/lua/navigator/lspclient/mapping.lua:490: in function 'get_keymaps_help'
        [string ":lua"]:1: in main chunk

This interestingly only happens once; after that the overlay box opens just fine and doesn't look weird in any way.
The error is here:
https://github.com/ray-x/guihua.lua/blob/a19ac4447021f21383fadd7a9e1fc150d0b67e1f/lua/guihua/util.lua#L147-L152
I'm assuming this has something to do with if sel_gstr then; since everything except nil and false is truthy, this would always be true, even if sel_gstr == "".
I use a light background with notermguicolors, so there's a chance that sel_gstr is empty.
Note that this is all just guesswork; setting termguicolors didn't help.
This is with NVIM v0.8.3, compiled with +acl +iconv +tui, so no gui support.
I'm using my own colorscheme without gui definitions, is this something I can fix by adding those?

I pushed a change for it, please check if it works for you. Thanks!

Yeah, that did it! Thanks for the quick response :)


Fix: allow length to be zero

As per TUF specification, length attribute is a numerical value (which can include 0) - https://theupdateframework.github.io/specification/latest/#metapath-length

fix: update tests
Fixes #2136

[ ] The code follows the Code Style Guidelines
[ ] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.104%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1346

Relevant Lines:
1362

💛  - Coveralls

Thanks. I think I agree with this. @MVrachev any comment?
I suppose it might make sense to also test that verify_length_and_hashes() really supports the "empty input" (I'm pretty sure it does but :shrug:)?  I mean either a manual check and confirmation comment here or an actual test in tests/test_api.py. That said I think this PR is correct even if there was a bug in verify_length_and_hashes() so that doesn't really need to happen in this PR...

Thank you all! @jku I can definitely confirm after manually testing the changes that targetinfo.verify_length_and_hashes() works with a targetinfo file of length 0.
Example of targetinfo:
{'length': 0, 'hashes': {'sha256': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'sha512': 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'}}

Is there anything else needed on my end?


DB Password Error - Incorrectly passed

DB Password is passed with incorrect value

Corrected the db2 errors and its loading data now


Migrate to react-router-dom

This PR follows the changes implemented in https://github.com/gojek/mlp/pull/56, for the Turing application.

Migration from @reach/router to react-router-dom, per the official guidelines.
ui/craco.config.js, ui/src/AppRoutes.js - Exposing all the routes under AppRoutes, as a federated component

In addition, ui/src/components/page_navigation/ component has been removed and is replaced by the component from the MLP library.

Thanks for the review! I've addressed the comments now. Will merge this PR once the CI passes.


online algorithm

when I'm wrapping the c++ code in python it generates error related to namespace (which is ridi),
i was wrapping model_wrapper for that in speed regression, how can i correct those errors?
or is there a specific way to do the live algorithm?

Hi, Ador2,
Sorry for the late reply. I don't know too much about python wrapper. But as a suggestion, I strongly recommend you to check out our newer work on the topic, which is in every aspect far better than RIDI:
RoNIN: Robust Neural Inertial Navigation
http://ronin.cs.sfu.ca/
The code is under releasing, but I believe you can get early access by contacting another first author:
Sachini Herath<EMAIL_ADDRESS>The new algorithm uses LSTM, which is online in nature and can be deployed to mobile device easily.
Hope this is helpful.

thank you very much @higerra


Avoid showing the first line of test method's docstring in tests

Currently, running test_missing_loader method shows the following "unusual" output as if there is code to print out messages using print:

Python's unittest module has a behavior that the test runner prints the first line of test method's docstring in tests. It seems better to rename the test name to more informative for now because all tests except this test and test_mlqa_preprocessor (this docstring isn't informative) don't use this feature. Whether to use this feature or not can be discussed in separate places if necessary.

Actually, running test_mlqa_preprocessor causes the test runner to print out its description. I'll update to remove it.

Created a related issue about docstring structure itself: https://github.com/neulab/ExplainaBoard/issues/404


E2E: Generic (Bazel) tag main default SLSA2

Repo: https://github.com/slsa-framework/example-package/tree/v21.0.0
Run: https://github.com/slsa-framework/example-package/actions/runs/2480621081
Workflow name: Generic (Bazel) tag main default SLSA2
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic-bazel.tag.main.default.slsa2.yml
Trigger: push
Branch: v21.0.0
Date: Sat Jun 11 16:51:59 UTC 2022

Repo: https://github.com/slsa-framework/example-package/tree/v21.0.1
Run: https://github.com/slsa-framework/example-package/actions/runs/2480647542
Workflow name: Generic (Bazel) tag main default SLSA2
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic-bazel.tag.main.default.slsa2.yml
Trigger: push
Branch: v21.0.1
Date: Sat Jun 11 17:01:00 UTC 2022

Repo: https://github.com/slsa-framework/example-package/tree/v21.0.2
Run: https://github.com/slsa-framework/example-package/actions/runs/2482125375
Workflow name: Generic (Bazel) tag main default SLSA2
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic-bazel.tag.main.default.slsa2.yml
Trigger: push
Branch: v21.0.2
Date: Sun Jun 12 03:25:24 UTC 2022

Repo: https://github.com/slsa-framework/example-package/tree/v21.0.3
Run: https://github.com/slsa-framework/example-package/actions/runs/2485877083
Workflow name: Generic (Bazel) tag main default SLSA2
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic-bazel.tag.main.default.slsa2.yml
Trigger: push
Branch: v21.0.3
Date: Mon Jun 13 03:39:04 UTC 2022

Should be resolved by https://github.com/slsa-framework/example-package/commit/1f99d71d8117fd7760e0467f255baa240b3ddad0 but probably the automation won't detect this for the next ~8 hours (commenting to auto-subscribe to notifications here and revise if it doesn't get auto-closed)

Feel free to start the run manually or via the CLI bash .github/workflows/scripts/manual-run-e2e.sh e2e.generic-bazel.tag.main.default.slsa2.yml
Note: I hit some rate limit on my PAT earlier today, so beware this may happen :/


ARROW-383: [C++] Integration testing CLI tool

Modeled after Java version in ARROW-367

Don't know what's going on with Travis CI, but this is ready to do cc @xhochy

Java failed due to a transient apt-get issue. I'm going to merge this so I can proceed with ARROW-363 -- if there are comments on this patch I can address them in #211

+1


Anti-slash not properly handled

Steps to reproduce.
When trying to apply markjs to the following text: www.happy.com\, the anti slash will prevent marking to work properly.
mark.mark("www.happy.com\\", { "separateWordSearch": false, "accuracy": "complementary", "ignoreJoiners": true });

Trying to add the (escaped) anti-slash as a synonym will not help:
mark.mark("www.happy.com\\", { "separateWordSearch": false, "accuracy": "complementary", "ignoreJoiners": true, "synonyms": { "\\": " " } });

Worse, when I add other synonyms (depending on how many and which), it will throw an exception:
mark.mark("www.happy.com\\", { "separateWordSearch": false, "accuracy": "complementary", "ignoreJoiners": true, "synonyms": { "-": " ", ".": " ", "+": " ", "\\": " " } });

mark.js:555 Uncaught SyntaxError: Invalid regular expression: /()([^\s!"#\$%&'\(\)\*\+,\-\.\/:;<=>\?@\[\\\]\^_`\{\|\}~¡¿]*w[\u00ad\u200b\u200c\u200d]*w[\u00ad\u200b\u200c\u200d]*w[\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*([\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*.|[\u00ad\u200b\u200c\u200d]*([\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*+|[\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*)[\u00ad\u200b\u200c\u200d]*)[\u00ad\u200b\u200c\u200d]*h[\u00ad\u200b\u200c\u200d]*[aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ][\u00ad\u200b\u200c\u200d]*p[\u00ad\u200b\u200c\u200d]*p[\u00ad\u200b\u200c\u200d]*[yýỳỷỹỵÿYÝỲỶỸỴŸ][\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*([\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*.|[\u00ad\u200b\u200c\u200d]*([\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*+|[\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*)[\u00ad\u200b\u200c\u200d]*)[\u00ad\u200b\u200c\u200d]*[cçćčCÇĆČ][\u00ad\u200b\u200c\u200d]*[oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ][\u00ad\u200b\u200c\u200d]*m[\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*(\\|[\s]+)[\u00ad\u200b\u200c\u200d]*[^\s!"#\$%&'\(\)\*\+,\-\.\/:;<=>\?@\[\\\]\^_`\{\|\}~¡¿]*)/: Nothing to repeat
    at new RegExp (<anonymous>)
    at handler (mark.js:555)
    at Mark.mark (mark.js:582)
    at window.Mark.mark (mark.js:1022)

Hi @mayerwin ,
Thanks for submitting.
Please read the contribution guidelines and provide the required information named there.

Using Chrome (latest version), and the latest version of Mark.js published on Github. Not sure anything else is missing.

@mayerwin

A fiddle that demonstrates your issue (if possible)

Closing as you haven't prodided a fiddle and I can't find any issue. This is working:
https://jsfiddle.net/kxhbohp8/
And even with your options it's working since you've added a synonym of "" for " ": https://jsfiddle.net/kxhbohp8/1/

Thanks for the fiddles. It seems there are two separate issues:

To reproduce the exception I noted, please refer to the following Fiddle with the most minimal sample I could come up with: https://jsfiddle.net/nyxaudL8/. An exception will be thrown. You can experiment with the two texts and synonyms. Removing "+": " ", "\\": " " from the synonyms have no impact on the marking but makes the exception go away, so it seems something is not right in the way the regular expression is built.
Your sample didn't use the same kind of short text as I did, this is why it seems it didn't fail.

In your fiddle https://jsfiddle.net/kxhbohp8/1/ why is Lorem\ ipsum highlighted but not the whole text or just Lorem? Adding  "\" as a synonym for " " causes the first instance of " " no longer to be treated as a separator.
It may be better to be able to specify explicitly that "\" and the other characters I used in synonyms for " " should be treated as a separators, if synonyms involving a special character like " " will not produce a predictable behavior. Or it should be documented (and work) that adding a character as a synonym of " " will cause it to become a separator (instead of " " to be sometimes treated as the other character as seems to be the case in the fiddle).

Awesome, great work @julmot and @Mottie! To answer your earlier question (sorry for the delay), yes, ignorePunctuation is probably best for my use case. But it is still good that the weird behavior for synonyms has been fixed.


Allow easier customization of whole domain, entity lists, globs.

Description:
Allow easier customization of whole domain, entity lists, globs.
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#1791
Example entry for configuration.yaml (if applicable):
homeassistant:
  customize:
    - entity_id: light,switch.kitchen,switch.bedroom
      hidden: True
    - entity_id: switch.k*,switch.b?d*
      hidden: False

This will set:

hidden=True on all lights.
hidden=True on switch.kitchen, switch.bedroom
hidden=False on switch.kale, (but not on switch.bedroom, because that one is matched by exact ID)

Dictionary values are deep-updated:
homeassistant:
  customize:
    - entity_id: cover
      custom:
        key1: value1
    - entity_id: cover.back
      custom:
        key2: value2

cover.back will have attribute custom={key1: value1, key2: value2}
Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

One last thought, you could speed this up by caching the result. The _OVERWRITES dictionary will not ever change once is has been set and I think it should be set before get_overwrites is ever called. This means that every time get_overwrites is called, it will return the same result. Seems silly to keep calling it.

I too think that this a significant performance impact and we should make it faster.
I also don't really see the use case… what if we just add a syntax to be able to specify a list of entities that a block applies to ? We can then process it when customization is set instead of processing it at update time.

I added caching of overwrites and switched to glob (fnmatch) instead of regexps.

I specifically kept the comma-separated syntax as I think it is much easier to use rather than repeating keys with the same list of attributes.

@kellerza
I would like to try to avoid forcing the user to think about order as it is inconvenient in big configs.
So domains have the lowest priority (and no glob/regexp, because the list is small enough)
Glob/regexp has higher priority
Exact id match has the highest priority.
The order might still matter if an entity id is specified in more than one list or is matched by more than one glob. In that case it is treated in order.

@kellerza
I think the glob is important (and I would like to add it more places, like groups)
Maybe to make it less confusing to the user - have a special prefix: glob; ?
customize:
  glob;light.l*: {...}

This way we can add regexp; and similar in the future if we like.

Some brainstorming:
I think what we might want to do first is organize the customize configuration to allow multiple entity_ids, similar to service calls, something like below. We could then use different keys such as entity_id, entity_id_glob, entity_id_regex, etc. If we're using a common format this is something that could potentially be reused elsewhere.
I agree with @andrey-git about rule priorities. Most specific should take precedence. (i.e., exact entity overwrites wildcard match overwrites domain-wide rule.) Beyond those priorities though order has to be the tie-breaker. (We should keep in mind that these sort of rules can get complicated quickly.)
customize:
  - entity_id: light.living_room
    hidden: true
  - entity_id:
    - light.entity_1
    - light.entity_2
    hidden: true

@armills
This syntax is not backward compatible and will require everyone change their configs.

We can keep deprecated config parsing for a few versions and issue a logger warning. I think it's best to figure out how we would design the component if it was going in new today rather than base new code around how the component used to work.

If we really need to introduce this complexity @armills proposal is much cleaner. We could even keep the current dict and proposed list versions indefinitely.
Had a look at my customize: config and each entry is a unique friendly_name and/or unique icon. Not sure where I'd need any globs (even filtering on domains don't make that much sense in my config), so failing to see the need and it's not clear from your original description. Do you have a concrete example?

In my config most of my customize entries are hidden: true for entities I'm only using to assist automations. I wouldn't use the globbing myself but a list of entities would be nice.
One potential use for globbing / domain wide customization would be icons.

Ah, I see. I have no hidden entries, simply omit those from groups and the default_view.
If you replace a domain's icons your are back to square 1. They are all the same and still not unique :-)

It should be easy to do a validator function to convert current dict to list:
function _ensure_customize_dict(inp):
    if not isinstance(inp, dict):
        return cv.ensure_list(inp)
    if 'entity_id' in inp:
        return [inp]  # sigle entry
    res = []
    for key, val in inp.items():
        val['entity_id'] = [key]
        res.append(val)
    return res

And then your schema becomes: vol.All(_dict_to_list, _LIST_BASED_SCHEMA)
And then the list can have these new complicated entries

Thanks for the proposal!
The reason I began with this is theming.
I want to do
customize:
  light:
    uimode: newmode

And then have a new UI component in home-assistant-polymer to appear for all lights (in this example)
Theoretically I would also like to support the CSS-like (better syntax ideas welcome)
  hidden: true

To apply customization to entities with a specific attribute.
So if understood the proposal correctly, this is the format I'm going to support:
customize:
  - entity_id:
    entity_id: name: light,switch.kitchen,switch.bedroom
    hidden: true
  - entity_id_glob:
    entity_id_glob: switch.k*,switch.b?d*
    hidden: true

because as I understand
customize:
  - entity_id: light.living_room
    hidden: true

is not a valid YAML.

To apply customization to entities with a specific attribute.
You can only customize based on the entity names, not entity attributes

Your second yaml example is perfectly valid yaml and used extensively for all "platforms"
Before you make changes, it would be good to get the ok from @balloob as well

@kellerza Why not (in the future) customize based on attributes?

I see a benefit only for a very small group of users. So it should not be bad for most of other users with any slow dones.
So on my 230 line big customize.yaml I can't use it while I use also friendly name for all this entities.

I think if we use this second proposal, since globbing / regex will be opt-in there shouldn't be any slowdown for most users.

The regexp/glob/list split is only done once and the result is cached, so there shouldn't be slowdown.
For the future attributes based matcher I'll either find something that doesn't hurt users who don't use it or won't implement it.

@armills proposal implemented.

@pvizeli if you are OK with the new format - I'll make a documentation PR.

I keep out of it. I only give a comment. I think @kellerza @balloob can that better decide.

I think that the current approach is ok. It will need some moving around as the customize code all of a sudden has become very big.

@balloob I have added support for deep-updating values and edited the description to explain it.
I'll move the code into homeassistant.helpers.customize tomorrow.

I moved the code to homeassistant/helpers/customize.py like you suggested.
I also took care of comma-splitting and lowercasing in schema configuration.

Looks good to me. 👍  I like how this is implemented now. It should be flexible without impacting performance.

I forgot to ask, do you have a PR against the documentation to update the documentation on this feature?

Working on documentation

Documentation PR created as home-assistant/home-assistant.github.io#1791

@andrey-git maybe you can also add a test for a string list key and a mixed string, with entity_id,domain and glob combined?

@kellerza Addressed all comments.

I don't know why coverage report complains - the report doesn't make sense.

Now the coverage is happy.

Thanks @andrey-git ! 🐬


Export Inspector report as txt file

For both debugging and interoperability in general, it would be nice to add a 'export to text file' button to the inspection (both pipeline and standalone tool) instead of entirely relying on the in-window rendering of the messages

Is a .json file alright or would you prefer a reproduction/request of the format_messages output?

The CLI usage allows both via two pathways; so being able to choose either works here
If JSON is the requests format, https://github.com/NeurodataWithoutBorders/nwbinspector/blob/dev/src/nwbinspector/nwbinspector.py#L298
If structured text, then https://github.com/NeurodataWithoutBorders/nwbinspector/blob/dev/src/nwbinspector/nwbinspector.py#L304

added in #569


Convert into other language

how can i convert it to other language?

I'm not too sure. I would look up how to convert Bert in general to other languages, since DocProduct's main modules are Bert.

well alright sir, and one more question how can I convert it to tflite? i can't convert it on colab, on "train your own QnA"

I haven't done that conversion before, but I would love to offer any assistance I can so that we can update our examples. What have you tried so far.


'op run' hangs powershell on Windows

repro:

open a powershell terminal on Windows
clone a fresh copy of https://github.com/opspec-io/spec
cd examples/nodejs
opctl run install-deps

expected:
op runs to completion, displays ContainerExited & OpEnded events, and exits
actual:
op never shows ContainerExited or OpEnded events and never exits; ctrl +c doesn't work either

repro:

open a powershell terminal on Windows
clone a fresh copy of https://github.com/opspec-io/spec
cd examples/nodejs
opctl run install-deps

expected:
op runs to completion, displays ContainerExited & OpEnded events, and exits
actual:
op never shows ContainerExited or OpEnded events and never exits; ctrl +c doesn't work either

interestingly, if in the op you replace:
cmd: [ npm, install ]

with
cmd: [ npm, install, --quiet ]

it runs to completion as expected

possibly related https://github.com/docker/for-win/issues/199


Install procedure no longer works

with the latest jupyter, the install instructions no longer works

ERROR:root:Line magic function %install_ext not found.

Fixed in 23963fc


feat: add installCommand option

Adds the ability for users to customize the install command

Addresses issue: https://github.com/timonmasberg/nx-migration-gh-action/issues/130


False positive?

Hello defparam! Thank you for your tool.
I think i had a problem,
I used your tool and it reported to me for potential request smuggling, i retested several times and it confirmed on the same method.
I manually retested it, with intruder and without,
A normal request shows 401 unauthorized, a smuggled request shows 0, null.
Is it from the server or i'm doing it wrong? I tried several payloads, several subdomains for the same program, but same response.

Does it worth reporting it to the affected program?

This isn’t the right place to discuss hacking, you should only open an issue if you have an issue with the tool itself (a bug or feature request).
It’s stated in the git readme that vulnerabilities reported from this tool could indeed be false positives (which could be what you are seeing). Please find support for exploitation techniques elsewhere.


Medium selection on Signers

For mediums we have different UX in different places. Different for signers and different for PSBT signing and different for Mobile Keys. Need to make it  single way
All mediums are:
NFC or
File/ text or
QR

Medium selection UI , Have been done in remote sharing flow.
File
https://www.figma.com/design/m5eMFTKD391AiJAXaEzgxB/Bitcoin-Keeper?node-id=209-1651&t=XPwrIZ3MFvMtNnmS-1


Add draw calls unaffected by fade

Title says it all. Currently everything that is drawn is affected by the fade effects.

This will require a few modifications, none of which should break existing code.
Adding a boolean parameter to all image drawing functions
At the end of each draw image function, a boolean flag, "ignore_fade", or something to that effect should be added with a default flag of 'false'. This way all existing code can continue to use the function without having to make changes.
Internal Changes
Internally this the Renderer handles fades by drawing a rectangle over the screen and adjusting its alpha parameter. In order to make this work, images that will ignore the fade effect need to be drawn above this rectangle.
Simplest way is to 'defer' drawing these images until after the fade rectangle is added. A list with position, color and image pointer should suffice.
Issues to Consider
Simplest method is to use a std::vector and simply '.clear()' it after ever frame. E.g., at the end of the frame draw the rectangle, iterate through the list of deferred drawing, clear the list, rinse repeat.\
This can lead to several issues:

Performance Issues - doing this on a lot of Image's can be time consuming and costly for the renderer. Use of the image blitter in this way should be limited.
Unexpected Draw Order - if a user attempts to use this form of the blitter, the Image will be drawn above everything else regardless of when the call was made.

Alternatives
The current method of fade effects is adequate. However, it's possible that using a global illumination source would provide an easier alternative. Apply a directional light to everything as you render it and turn off lighting when you want to avoid fades.
This would require a fundamental change to the Renderer interface but is a viable alternative.

The more I think about this the less I think it really makes sense. I'm going to leave this one on the backburner for now and approach it again at a later time.

Been thinking about this one again and it occurs to me that it can be done fairly simply without having to add unnecessary checks.
First and foremost, the Renderer itself needs to be updated and the call to draw a box over the screen needs to be removed. While effective and simplifies implementation details in derived Renderer types, it forces the fade effect to be implemented in only one way. The rest of the fade calls can be left in place with the base Renderer calculating and updating the fade alpha.
Second, the Renderer's interface can be augmented with a few extra calls for draw calls not affected by fade. For instance:
void drawImage_nofade(Image& image, float x, float y, float scale = 1.0f);
Very simple way to offer a draw call not affected by fades. While it does add to the overall complexity of the interface only a few of these functions really 'need' to be added and at the moment I would only offer the above function for the sake of simplicity.

IMPLEMENTATION
The OGL_Renderer is currently the only actual implementation of a Renderer so the changes would be fairly simple.
I've used OpenGL fog to 'tint' textures while also maintaining their alpha channels so I believe applying fog to the entire scene is an easy way to implement fade. The current alpha and color values for the fade can be maintained and the implementation of drawImage_nofade() would be a simple matter of wrapping the regular drawImage() call around glDisable(GL_FOG) and glEnable(GL_FOG).

Gonna call this one a 'nice to have' feature that's not really necessary and overly complicated the interface and potential implementations.