Twitter: ERROR: 'NoneType' object has no attribute 'format'

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm reporting that yt-dlp is broken on a supported site
[X] I've verified that I'm running yt-dlp version 2023.06.21 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
canada
Provide a description that is worded well enough to be understood
All of the following example Twitter URLs fail with
ERROR: 'NoneType' object has no attribute 'format'
https://twitter.com/SpokedZ/status/1642176959760285696
https://twitter.com/Hockey_Robinson/status/1661010129544941569
https://twitter.com/IIHFHockey/status/1661035921960218625
https://twitter.com/Hockey_Robinson/status/1600943989871767552
https://twitter.com/MainTeamSports/status/1657831400660140033
...thanks
Ringo
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
>yt-dlp.py -v "https://twitter.com/SpokedZ/status/1642176959760285696"
[debug] Command-line config: ['-v', 'https://twitter.com/SpokedZ/status/1642176959760285696']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>[42f2d40b4] (zip)
[debug] Python 3.10.5 (CPython AMD64 64bit) - Windows-10-10.0.14393-SP0 (OpenSSL 1.1.1n  15 Mar 2022)
[debug] exe versions: ffmpeg 4.3.2-2021-02-02-full_build-www.gyan.dev, ffprobe 4.3.2-2021-02-02-full_build-www.gyan.dev, rtmpdump 2.4
[debug] Optional libraries: sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1848 extractors
ERROR: 'NoneType' object has no attribute 'format'
Traceback (most recent call last):
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\YoutubeDL.py", line 1555, in wrapper
    return func(self, *args, **kwargs)
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\YoutubeDL.py", line 1631, in __extract_info
    ie_result = ie.extract(url)
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\extractor\common.py", line 705, in extract
    self.initialize()
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\extractor\common.py", line 609, in initialize
    username, password = self._get_login_info()
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\extractor\common.py", line 1335, in _get_login_info
    username, password = self._get_netrc_login_info(netrc_machine)
  File "C:\Transmogrifier\yt-dlp.py\yt_dlp\extractor\common.py", line 1300, in _get_netrc_login_info
    cmd = self.get_param('netrc_cmd', '').format(netrc_machine)
AttributeError: 'NoneType' object has no attribute 'format'

SORRY..i did not see this:
https://github.com/yt-dlp/yt-dlp/issues/7367
My bad!

SORRY..i did not see this:
https://github.com/yt-dlp/yt-dlp/issues/7367
My bad!


attempts to fix an issue with modelViewValue, addresses an issue with…

… extra character input, addresses an issue with passing eventsToHandle in ui-options, fixes test and demo for changes
Model View Value
I propose a slight change for the model-view-value implementation.  It shouldn't update the model with a trailing mask.  For example:
for view value (999) 123-123_ X____
model value should be: (999) 123-123
Fix ui-options for eventsToHandle
This wasn't working, I think, because of a bug in the code.  I made an attempt to fix it.  To summarize the fix, ui-mask was extending the passed in options with the base and eventsToHandle was being overwritten.
Prevent model update on focus when there are no changes being made
The event handler was updating the model on focus (by calling setViewValue) even if there was no user input.
Updated demo page and fixed a test
I updated the demo page so that you can test model view value and eventsToHandle.

@PowerKiKi I think this might be the better approach (at least seems more likely to cover other cases). However I am also not opposed to keeping #51 as well as it will give people the ability to control dirty changes if the value does change (possibly programatically?), not sure.

Trusting @marbletravis opinion on this. @Tim91084 could you rebase the PR please ? then i'll merge

rebased and moved to #69

Wow, good timing, thank you. This commit fixes a bug that I was just about to open that was happening on IE11 when a select box is on the same form.
http://plnkr.co/edit/PPDIiYrcIFY59o5zql9N?p=preview


pysyndna

@antgonza https://github.com/qiita-spots/qp-woltka/pull/23/files#diff-74a4463d1da3fd6db5893bab907a6ed4e1ccabef35c642f17fbc28c1edc966a5 is an empty file. is this okay?

Well, that was the output of the log, meaning there was no output so ... yes, it's fine.


Mm4.1

@tejaycar lovely; can I ask you to create a ci/release_notes.md describing the changes? These will go straight into the github release notes when I run shipit in the CI.
Thanks in advance!

@drnic Yea, we can do that.  However, there is one other issue.  I'm still not clear on how to ensure you ship the same blobs I'm using.
For each release, we should pull the coordinated MM blob (in this case MM 4.1) and the latest load test blob
the load test blob is always available at https://releases.mattermost.com/mattermost-load-test/mattermost-load-test.tar.gz (sadly no versioning at this time)
I believe the Ci scripts already handle the correct upload for the MM code.

Ok, I've created a new repo +github releases https://github.com/starkandwayne/mattermost-releases/releases
I'll update this pipeline next/later. Am on holidays so am squeezing this in. BBl

@tejaycar I've upgraded the CI to bump enterprise + load-test to v4.2.0 (and should keep doing this in future). Would you like rebase this PR?

Ooh, the MM4.1 branch is in this repo so I've fixed the branch and force pushed

@tejaycar ok this branch is now CI happy; but we've moved to 4.2.0 blobs; would you like it merged as is or want to upgrade for any new 4.2 properties?

Tell you what, I'll merge this PR so its all on master. And any 4.2.0 fields can go into new PR.

OK, that will have to do :)
4.2 PR should be out momentarily
On Wed, Sep 20, 2017 at 3:04 AM, Dr Nic Williams<EMAIL_ADDRESS>wrote:

Tell you what, I'll merge this PR so its all on master. And any 4.2.0
fields can go into new PR.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cloudfoundry-community/mattermost-boshrelease/pull/8#issuecomment-330791706,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADqwzIdXZSGbytQfRKbECjidRzh1E5r2ks5skNUSgaJpZM4PbC9m
.


Added zIndex property to default options

Looks good. If you fix the indentation I'll gladly merge it.

fixed


Make getOthers() API return an array directly

This simplifies the API for the getOthers() call to not return a custom array proxy, but a real array. This was attempted to be merged in #109 and #122, but led to some debate about potentially closing off a future optimization path, see https://github.com/liveblocks/liveblocks/pull/122#issuecomment-1092444391.
I'm now reopening this PR as it stood to continue that discussion, because I think the API simpliciation would still be a better DX.

Closing as this has landed in the 0.18.0 beta.


Convert Markdown to RST in setup.py

As you know, Python packages are published on PyPi. For this project, this happens after successful builds.
Since PyPi expects Restructured Text files for the readme, our Markdown doesn't look as good. There are some libraries to convert MD to RST. I suggest to use one for conversion to make the page look better. Other projects do the same. Suggest to see what's the best way to implement it.

Pandoc is a popular one.

Anything that works. Is there any established solution that the user doesn't need to have pandoc installed during installation?

Why does the user need to have Pandoc installed? We are just converting files from MD to rST, right?

Because the Markdown file is converted in setup.py. This file is also called during installation.
We can also do it manually for now. Please just add the command to DEVELOP.md.

https://stackoverflow.com/a/23265673

I tried pandoc, I don't think auto conversion from markdown to rST would be a good idea. It messed up a few bullet points while converting README.md.

I guess README.md can be changed to account for that.

Let me check, how that can be done.

Now there is one issue, pandoc is not able to convert hyperlinked image (CI badge). (Works if there is no link to CI)

Pure HTML may work. The hyperlink isn't necessary. Just the image will be enough as well.

Added a PR converting the README in the repo from markdown to rst, see above.
Conversion at install time is a very spooky and error prone thing IMHO introducing dependencies, so why not simply converting into the format better suited for PyPi for once and be done?

Good point. Let's go with that. Also a good practice to learn editing the Debian Wiki.


chore: Rename QuotientMap to IsQuotientMap

Function.Embedding is a type while Embedding is a proposition, and there are many other kinds of embeddings than topological embeddings. Hence this PR is a step towards

renaming Embedding to IsEmbedding and similarly for neighboring declarations (which QuotientMap is)
namespacing it inside Topology

bors merge


Detect attached card reader on app start

Hello @pokusew .
This is a great lib.
I'm using it on an Electron app with an ACS ACR1251 Dual Reader.
If I connect the reader after the app is started all is good, the reader is detected, but if the app starts and the reader is already connected to the PC, it does not register it.
Any help ?

Hi Ionut,
how did you solve this issue??


.save() does not work for changing properties of populated associations

Example code with documentation for Sails v0.11.0, using sails-mongo v0.11.2 and mongo v3.0.4
As per http://sailsjs.org/documentation/reference/waterline-orm/populated-values#?modifying-populated-values
Changes to populated values are persisted
(i.e. saved to the database) by calling
.save() on the record they are attached to.
You cannot call .save() directly on a
populated value.

This is not the case with collections.
function update(criteria, creator, success, error) {
  var self = this;
  Account.
    findOne({ id: criteria.id }).
    populateAll().
    then(function(record) {
      if(record === undefined) {
        return error(sails.config.messages.notFound);
      }
      record.identities[0].value =<EMAIL_ADDRESS>      console.log(record.identities);
/*
data:    app.js:1411 - [ { type: 'email',
data:    app.js:1411 -     value<EMAIL_ADDRESS>                 <------------ correct
data:    app.js:1411 -     account: '55b86d4a9966676a407f4895',
data:    app.js:1411 -     archive: false,
data:    app.js:1411 -     status: 'unverified',
data:    app.js:1411 -     createdAt: '2015-07-29T06:06:03.000Z',
data:    app.js:1411 -     updatedAt: '2015-07-29T06:06:03.000Z',
data:    app.js:1411 -     id: '55b86d4b9966676a407f4896' },
data:    app.js:1411 -   add: [Function: add],
data:    app.js:1411 -   remove: [Function: remove] ]
*/
      record.save(function(err, result) {
        if(err) {
          return error(err);
        }
        console.log(result.identities);
/*
data:    app.js:1411 - [ { type: 'email',
data:    app.js:1411 -     value<EMAIL_ADDRESS>                    <----------- violently wrong :(
data:    app.js:1411 -     account: '55b86d4a9966676a407f4895',
data:    app.js:1411 -     archive: false,
data:    app.js:1411 -     status: 'unverified',
data:    app.js:1411 -     createdAt: '2015-07-29T06:06:03.000Z',
data:    app.js:1411 -     updatedAt: '2015-07-29T06:06:03.000Z',
data:    app.js:1411 -     id: '55b86d4b9966676a407f4896' },
data:    app.js:1411 -   add: [Function: add],
data:    app.js:1411 -   remove: [Function: remove] ]
*/
        return success(result, creator);
      });
    }).
    catch(error);
}

Maybe @dmarcelino can help here?

I suspect this is failing?
https://github.com/balderdashy/waterline/blob/77fe3a9b9a9b12110a6ba079a84e5cd43a4369db/lib/waterline/model/lib/defaultMethods/save.js#L69

Updated to node 0.12.2 and cleaned/install all npm deps... same problem.  the proto.associationsCache remains empty.

To get around this limitation, I have done the following:

Detect which records (Identities) within the association have to change.
Create a function that performs the .save() for the record and push that function to an array.
Execute async.parallel() with that array and when that is done, save the parent model.  (The Account)

Wait a darn poopin minute...
record.identities[0].value =<EMAIL_ADDRESS>then
record.save
What is "identities"?

@CodeOtter, can you try using PR balderdashy/waterline#1048? It potentially fixes the issue you found.

@dmarcelino Oh hey, a diffing/unit of work algo!  Just what the doctor ordered, thanks :D


Chef::Knife::Bootstrap::RemoteExecutionFailed

Chef::Knife::Bootstrap::RemoteExecutionFailed
Describe the problem

While I am trying to add a new node in to the hosted chef server, I am keep getting "Chef::Knife::Bootstrap::RemoteExecutionFailed" error. Please help
root@osboxes:/home/osboxes/chef-repo# knife bootstrap <IP_ADDRESS> --connection-user osboxes  --sudo --use-sudo-password --node-name Node1 --run-list 'recipe[learn_chef_apache2]' --connection-password 'osboxes.org'
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:31: warning: already initialized constant Chef::Knife::Bootstrap::SUPPORTED_CONNECTION_PROTOCOLS
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:31: warning: previous definition of SUPPORTED_CONNECTION_PROTOCOLS was here
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:32: warning: already initialized constant Chef::Knife::Bootstrap::WINRM_AUTH_PROTOCOL_LIST
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:32: warning: previous definition of WINRM_AUTH_PROTOCOL_LIST was here
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:350: warning: already initialized constant Chef::Knife::Bootstrap::DEPRECATED_FLAGS
/opt/chefdk/embedded/lib/ruby/gems/2.6.0/gems/chef-15.0.300/lib/chef/knife/bootstrap.rb:350: warning: previous definition of DEPRECATED_FLAGS was here
Node Node1 exists, overwrite it? (Y/N) Y
Client Node1 exists, overwrite it? (Y/N) Y
Creating new client for Node1
Creating new node for Node1
Connecting to <IP_ADDRESS>
WARN: [SSH] PTY requested: stderr will be merged into stdout
The authenticity of host '<IP_ADDRESS> ()' can't be established.
fingerprint is SHA256:EgHkEDdS+sDWCmsyWq1n+qMnlwxULnNnEsa+zsoeco0.
Are you sure you want to continue connecting
? (Y/N) Y
WARN: [SSH] PTY requested: stderr will be merged into stdout
ERROR: Chef::Knife::Bootstrap::RemoteExecutionFailed: Chef::Knife::Bootstrap::RemoteExecutionFailed

Software Version

ubuntu 19.04
Replication Case

knife bootstrap <IP_ADDRESS> --connection-user osboxes  --sudo --use-sudo-password --node-name Node1 --run-list 'recipe[learn_chef_apache2]' --connection-password 'osboxes.org'
Stacktrace

```
```

Possible Solution

@singh0009 could you please add stacktrace using verbose option i.e. -VV

@singh009 feel free to reopen this if you still facing this.


separate the node list into two separate vectors

to avoid the overhead of a variant discriminator for every item. This should decrease memory pressure.
It shows a small performance improvement in the benchmarks (about 3.5 %)
$ python benchmark/cmp.py before.txt after.txt
        1509a62d.hex mean: 0.022263 (-0.002348) -9.54 % (within uncertainty)
        73d19fac.hex mean: 0.046827 (-0.006502) -12.19 % (within uncertainty)
        ca4b27bc.hex mean: 0.023823 (-0.002127) -8.20 % (within uncertainty)
          concat.hex mean: 0.634571 (-0.035736) -5.33 % (within uncertainty)
      count-even.hex mean: 0.032501 (-0.003437) -9.56 % (within uncertainty)
        d20e7d20.hex mean: 0.019012 (-0.002185) -10.31 % (within uncertainty)
       factorial.hex mean: 0.178255 (-0.004526) -2.48 % (within uncertainty)
     hash-string.hex mean: 0.337750 (-0.003297) -0.97 % (within uncertainty)
       hash-tree.hex mean: 0.070640 (-0.007488) -9.58 % (within uncertainty)
     large-block.hex mean: 0.427025 (-0.032651) -7.10 % (within uncertainty)
 matrix-multiply.hex mean: 0.377796 (-0.034381) -8.34 %
       point-pow.hex mean: 1.259553 (-0.006682) -0.53 % (within uncertainty)
     pubkey-tree.hex mean: 0.463226 (-0.005521) -1.18 % (within uncertainty)
      shift-left.hex mean: 2.317158 (-0.046278) -1.96 % (within uncertainty)
     substr-tree.hex mean: 0.385590 (-0.025769) -6.26 % (within uncertainty)
          substr.hex mean: 0.116922 (-0.005582) -4.56 % (within uncertainty)
        sum-tree.hex mean: 0.594497 (-0.041585) -6.54 % (within uncertainty)
TOTAL: 365.370418 (-13.304822) -3.51 %

fun trivia: Quake 1 used a similar representation for its BSP tree, where negative indices referred to leaves and positive to internal nodes.


comparison to pymmcore

Hi,
Would it be possible to add a brief comparison of pycromanager to pymmcore to either or both of the readme and the docs? This would help reduce the mental burden of choice for someone like me stumbling across both and trying to decide which route to follow. (In my case it was pycromanager bc there are docs :smile: ) but I think  section structured something like this could be helpful:
Use pycromanager if:

use case one
use case two

Use pymmcore if:

use case one
use case two

Not sure if this is entirely figured out yet. pymmcore is older, no docs, no GUI. Potentially faster, but we're working on that (https://github.com/micro-manager/pycro-manager/issues/90). If that pans out, the only reason to use pymmcore would be that you want to use something lighter weight with no GUI

From another user’s perspective, we gave pycromanager serious thought but ended up staying with pymmcore for the time being. We decided to stick with the older package as access to core functions is straightforward, giving us more flexibility with output formats (pycromanagers TIFF format is highly specialized and cannot be read outside of the package; we also didn’t need a GUI). Docs of pymmcore may be lacking, but the implementation is relatively intuitive. I assume that pycromanager will ultimately get there though.

added https://github.com/micro-manager/pycro-manager/pull/191


Set up a MAINTAINERS team & add GOVERNANCE files (.maint/* et al.)

What would you like to see added in this software?
@esavary, please address this issue (adding the GOVERNANCE files where they belong) and coordinate a maintainers team.
@celprov, if I'm right, you wanted to volunteer as a maintainer?
This project may potentially be of interest to @Shotgunosine (as it would be the right place to integrate, e.g., group-aggregated reports for fmriprep)
Who else wants to join? cc/ @nipreps/fmriprep-contributors
Do you have any interest in helping implement the feature?
Yes
Additional information / screenshots
No response

@oesteban yes I'm volunteering to become a maintainer of nireports.


Change initContract import in quickstart section

According to initTsRest is deprecated this PR update quickstart section to use initContract insead.

Good catch thanks @ghoullier! 👍 Appreciate the PR

@all-contributors please add @ghoullier  for docs


[New Extension] added Package Tracker extension

Description
Track your packages and parcels in raycast with the 17Track API
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Just solved it!

@pernielsentikaer any more comments, or things to change in the code?

README still says 17track - is it only business.pkge.net now?

README still says 17track - is it only business.pkge.net now?

I'm sorry @pernielsentikaer , I've pushed to the wrong repo. corrected it now!


Should the function generateWorld be accessible ?

Hi,
We're in charge of taking over a component that generates and consumes biscuits.
The component is developed in Java and we want to rewrite it in Go.
I wanted to retrieve a fact from a unmarshalled biscuit.
Example in Java of retrieving the facts (here, the first one)
biscuit.context().stream().filter(Option::isDefined).map(Option::get).findFirst()
.orElseThrow(() -> forbidden());

And the biscuit
user(1233);

In Go, we have no function that allows us to get the facts of a biscuit...
I suppose it could be done by performing Query on the World structure, and the Biscuit structure has a generateWorld method that can create this needed World, but it is private and only used by the tests...
func (b *Biscuit) generateWorld(symbols *datalog.SymbolTable) (*datalog.World, error) {
	world := datalog.NewWorld()

	for _, fact := range *b.authority.facts {
		world.AddFact(fact)
	}

	for _, rule := range b.authority.rules {
		world.AddRule(rule)
	}

	for _, block := range b.blocks {
		for _, fact := range *block.facts {
			world.AddFact(fact)
		}

		for _, rule := range block.rules {
			world.AddRule(rule)
		}
	}

	if err := world.Run(symbols); err != nil {
		return nil, err
	}

	return world, nil
}

Is this a bug ?
Shouldn't it be available for consumption ?
If not, how can I retrieve the facts of an unmarshalled biscuit properly ? (no regex and other ugly stuff like that)
Thank you very much

Any update on this subject ?

could you tell me more about the use case here? The generateWorld was meant only for tests. if you want to access data in the token, that's supposed to be done through the authorizer API, with methods like Query.
A better solution to access the entire list would be the snapshot API that we will introduce soon to this library (already specified and implemented in other libraries): https://github.com/biscuit-auth/biscuit/blob/c87cbb5d778964d6574df3e9e6579567cad12fff/schema.proto#L186-L207
If the goal is to compare tokens there may be other means. What do you want to achieve?

Thanks @Geal,
One of the use case (the main one for us) is for our own tests where we have to check a generated token (ie. same as expected one). For the moment, we use a "very dirty way" by comparing the String() result (which generate sometimes different output and failed our tests with no reason... but that's another subject).
We thought to use the authorizer API but using it means that we have, for each generated biscuit, for each use cases, for each facts/rules, to validate every possible values to be sure that the fact/rule is present and validate the right way. That's much more a validation of the authorizer part than a validation of the biscuit itself.
Today, for the  Go client (it doesn't seem to be the case for other clients), the API is really limited to creation/authorization. It's quite hard to just consult the biscuit content.

Thank you @Geal for your answer
To add more information to @Benoit12345 comment about our use cases :
We have different kinds of biscuit. Each kind allowing access to different kind of resources.
Since they are different, they have different authorizers, that are dynamically loaded depending on the type.
The type of the biscuit is stored inside of it.
So we can not use the Query API on the authorizer to get the type, since we need the type to get the authorizer :disappointed:
In my understanding, the Query API is available on an authorizer, after an Authorize() call.
In my tests :
Query before authorizing
        b, err := biscuit.Unmarshal(token)
	if err != nil {
		panic("unmarhsal failed: " + err.Error())
	}

	fmt.Println(b.String())
	authorizer, err := b.Authorizer(pub)
	if err != nil {
		panic("authorizer creation failed: " + err.Error())
	}

	authorizerRules, err := parser.FromStringRule(`
		my::type($t) <- type($t)
	`)
	if err != nil {
		panic("authorizer contents can not be parsed: " + err.Error())
	}

	authorizer.AddRule(authorizerRules)

	fs, _ := authorizer.Query(authorizerRules)  // fs = [] here

Query after authorizing
        b, err := biscuit.Unmarshal(token)
	if err != nil {
		panic("unmarhsal failed: " + err.Error())
	}

	fmt.Println(b.String())
	authorizer, err := b.Authorizer(pub)
	if err != nil {
		panic("authorizer creation failed: " + err.Error())
	}

	policy, err := parser.FromStringPolicy("allow if type(\"A\")")
	if err != nil {
		panic("unparsable policy: " + err.Error())
	}

	authorizer.AddPolicy(policy)

	if err := authorizer.Authorize(); err != nil {
		panic("failed authorizing: " + err.Error())
	}

	authorizerRules, err := parser.FromStringRule(`
		my::type($t) <- type($t)
	`)
	if err != nil {
		panic("authorizer contents can not be parsed: " + err.Error())
	}

	authorizer.AddRule(authorizerRules)

	fs, _ := authorizer.Query(authorizerRules)  // fs contains the my::type fact

As said in my first message, we have to work with this legacy approach...

With an imaginary example :

We have 2 kinds of biscuit :
Type A with the following authorizer
check if res::user($r), user($u), $u == $r

Type B with the following authorizer
check if res::amount($a), max($m), $a <= $m

We generate a biscuit for token A
type("A")
user("foo")

The biscuit is used by the client to access a resource, so to get the authorizer, we must retrieve the fact type from the given biscuit.

So how can we do it in your opinion ?
Thank you very much :)

Hello @Geal ,
Do you have any advice on our issue ?
We need to keep the same behaviour, allowed in Java, but it does not seem possible in Golang without the requested evolution..
Or maybe you have a better idea ?
Thank you !

Hello,
Does anyone have an opinion ?


Feature request - playback to wkWebView -> webGL texture instead of player

I wonder if it is possible to use the Cordova Streaming Media plugin without displaying the video player, but instead direct the video output to a webview texture, like this:
[Native HLS playback] > Bridge API > wkWebView > WebGL context
Is that possible? I am currently experiencing massive problems with playing back HLS onto a texture using HTML5 video tag in WebView on iOS.

I'd imagine it's possible but you'd have to provide the PR


Allow adding custom annotations to Admission Controller and Proxy Scanner

This is very helpful when Secrets or configmap content changes. Using Stakater Reloader annotations these deployments PODs would be restarted and configuration would be refreshed
At the moment I have to restart the PODs manually each time
Another common technique is to use Helm checksum annotations
admission-controller
https://github.com/lacework/helm-charts/blob/1e5139040a65ad6fb019a16f11edd31674ec09be/admission-controller/templates/deployment.yaml#L11
proxy-scanner
https://github.com/lacework/helm-charts/blob/1e5139040a65ad6fb019a16f11edd31674ec09be/proxy-scanner/templates/deployment.yaml#L14

Thanks for the feedback! Will open an internal ticket to add and test this.

@carlosjgp This has been added to the latest proxy scanner helm chart, we'll add this to the admission controller helm chart next.


Add a SPIManifest for this package

We'll need to give it a Docker image for the Linux builds:
error: emit-module command failed with exit code 1 (use -v to see invocation)[549/1528] Emitting module TSCUtility
<module-includes>:1:10: note: in file included from <module-includes>:1:
#include "csqlite3.h"
         ^
/host/spi-builder-workspace/.build/checkouts/swift-tools-support-core/Sources/TSCclibc/include/csqlite3.h:1:10: error: 'sqlite3.h' file not found
#include <sqlite3.h>
         ^
/host/spi-builder-workspace/.build/checkouts/swift-tools-support-core/Sources/TSCUtility/SQLite.swift:14:29: error: could not build C module 'CSQLite3'
@_implementationOnly import CSQLite3

Fixed in 08cd6ee5133e4a43a84e56a16596ee698a86ab19 and dce61db3f2afe795ff29629d9d9327cd56bef51d


New Steps: SAS Content - Obtain Folder URI & SAS Content - Create Folder

Please include answers to these questions as part of your pull request
In the GitHub webUI, use the Write tab to modify the Markdown text that is part of the pull request. For each question simply place an X inside the square brackets, [X], that represents your answer. Make sure there are no blanks inside the brackets, otherwise MarkDown doesn't render properly. Using the Preview tab while editing this form, you can see the formatted/rendered version of the message.

Q1: Confirm that you have the right to submit the code that is being contributed. Please consider the origin of your code and confirm you have the appropriate rights to make the submission subject to the Apache 2.0 license that applies to everything in this repository of custom steps. If so, follow the instructions for the Contributor Agreement (which is based on the industry-standard Developer Certificate of Origin (DCO)).

[X] Yes, I have the right to submit the contributed code on behalf of myself, my company, or any other owner of the code. I have also attached my signed copy of the DCO to this message.
[ ] No

Q2: Confirm that your contribution does not include any personally identifiable information (PII), for example, in any examples used in your README file.

[X] My contribution does NOT include PII data
[ ] My contribution includes PII data

Q3: Confirm your contribution does not include any encryption or other export-controlled technology.

[X] My contribution does NOT contain encryption or other export-controlled technology
[ ] My contribution includes encryption or other export-controlled technology

ContributorAgreement.txt

I apologise for the non-standard submission (namely, two custom steps folders in one pull request), but felt that since these two steps share many common features, and due to the close nature in which they originated, we may consider them as part of the same custom step.  Happy to reconsider if necessary.  Thanks.

Hi @SundareshSankaran, agreed that both steps are closely related and small in terms of UI and codegen, so it's okay to put them in a single pull request.
Here's my feedback, just some (small) text changes to help explain what the steps do. Hope you don't mind.

SAS Content - Create Folder

"desired" feels strange in this context. Here are some of my recommendations for changing this:

label of textControl "folderName": Specify name for new folder to create inside selected parent folder:

I'm okay with an abbreviated version as well, like: Specify name for new folder to create:

Proposed text for README.md and About tab:
This is a utility custom step which allows you to create a new folder inside a SAS Content folder programmatically.
Some SAS programs require operations to be performed on folders inside SAS Content, which is
a file service and not a mounted file system on SAS Compute, therefore you cannot use the dcreate()
DATA step function and have to use the Viya folders service (REST API).

SAS Content - Obtain Folder URI

"desired" feels strange in this context. Here are some of my recommendations for changing this:
Proposed text for README.md and About tab:
This is a utility custom step which obtains the URI of a selected SAS Content folder and ...

On a side note (Feel free to ignore this one):

You named your macro to retrieve the folder URI  _obtain_sas_content_folder_uri instead of _get_sas_content_folder_uri. Using "get" would align with general programming best practices, any specific reason to divert from that best practice?

DId some quick tests, here are my results. Would it be possible to fix these?

SAS Content - Obtain Folder URI

Screenshot in README.md suggests that the SAS log contains the value of targetFolderURI. But I couldn't find it. Macro variables are being created but the %put statements to print their values in the log (very useful) are not. Could you add these again?

SAS Content - Create Folder

When the selected parent folder is a read-only folder, a scary HTTP 403 message is dumped in the log and the step is put in error state. I saw that the doc on developer.sas.com doesn't explicitly mention 403 (HTTP Forbidden). So don't know whether you can rely on a 403 representing that the user does not have update access and then catching this and issuing a "user-friendly" error message. You might want to check with Joe Furbee on this.
I tried typing in the field that represents the input folder and when I enter sascontent:/, the specified new folder is not created and I also don't see an error. The log says "404 Not found". Should this not be reported as an error to the user, and the step be set in error state?

Hi @snlwih ,
Slightly different situation with a read-only folder, I’m unable to replicate the exact error situation.
My thoughts on what definitely is, and could be a read-only folder:
For a non-admin user1,  the folder /Users/viya_admin (and any subfolder thereof) is not even visible, because user1 is not authorized to even know about it.   The error produced in such a case seems to make sense (note that this is a new error while addressing your second point, and therefore you may have not seen it).  I can add "...does not exist or may not be accessible".

The closest alternative I thought of was a folder such as Users for user1, where user1 can’t perform operations even though they can perform operations within /Users/user1.  Here, I do get a 403, but it’s not scary in the sense that I’m permitted to carry out further successful operations and the session doesn’t hang.

I can get in touch with Joe anyways, but currently I’m wondering if my action should be to treat it as another failure mode with a message of “This operation is forbidden.  Check if you have the correct authorization levels and permissions on parent folder &sasFolderPath. “ ?

Hi @snlwih ,
Further to above, I've pushed changes for:
SAS Content - Obtain Folder URI

Macro variables now show up in the log.

SAS Content - Create Folder

I checked with Joe Furze offline and he concurs with the proposed message indicating that the operation is forbidden and the user might need to check permissions on the asset.  Taking this, and my earlier comment into account, here are some depictions of how different situations are handled.

If all goes well

if the root folder (your second comment) is provided, treating this as a special case

If nothing is provided

If the path is improper (or the user makes a wrong assumption on the starting point).  Note that there's a soft warning provided by the UI in such cases too.

As discussed with Joe, if a user tries to write to a read-only / any parent where they don't have sufficient rights

An edge-case following upon my previous comment: If the user tries to write to a folder that they do not see.  Note that earlier, this special case was concealed within an error scenario of "Folder is not found" which might have covered more benign error situations (e.g. folder was not found because it simply does not exist).  This way, both cases are treated as separate

I had provided the wrong screenshot earlier for this particular error scenario.  Somehow the previous comment edits do not reflect, hence re-pasting.
If the path is improper (or the user makes a wrong assumption about the start of a path). Note that there's a soft warning provided by the UI in such cases too.

Fixed incorrect rendering of nested numbered lists in one of the readme files
Updated release date to reflect the last time the .step files were touched (18DEC2023)

SAS Internal Due Diligence Review - COMPLETED on 20DEC2023


Stop scrolling when you reach the bottom of the select2 list

To reproduce.
Take any select2 from here, open the selection, and quickly scroll to the bottom. Notice the body does not move.
Now take any select2 from here, open the selection, and quickly scroll to the bottom. Notice the entire page moves.
I think this should be consistent with how native select fields work in the browser (don't scroll the parent's body)

If you'll use a select2.full.js the behaviour will be correct. I didn't dig into it, but I think one of the plugins bundled in the full package is preventing page scroll.

I have also a requirement to fix this behavior - not to scroll the page, when bottom of select2 is reached. Can someone confirm that the issue is resolved (or put related commit/PR)? Can this issue be closed?
What version should be used? ANd if it is not fixed when it could be? Thank you very much

Hi @Laykou!
This project – select2-bootstrap-css – provided CSS to integrate Select2 v3 with Bootstrap 2 and 3. For Select2 v4 it is continued as an official theme as select2-bootstrap-theme (and only targets integration with Bootstrap 3). _Please consider upgrading to Select2 v4 if you can!

The full build of Select2 v4 – select2.full.js – which @xpundel mentioned earlier in this thread, contains "additional features and recommended includes":

As you can see above in the screenshot from the current v4 documentation for Select2, among those "recommended includes" is jquery.mousewheel.js. This additional jQuery plugin is what you need to manually include along with Select2 v3 to fix your issue. Quoting the Select2 v3.5.3 source code:

if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel

Here's a link to the version of jquery.mousewheel.js that makes things work on the Select2 v3.5.3 demonstation/documentation page: https://select2.github.io/select2/js/jquery.mousewheel.js

I hope this helps!
Closing this as it is not at all an issue of select2-bootstrap-css. ✌


ParametricScalar Layer

It would be nice to add a ParametricScalar layer where learnable scalars are multiplied element-wise with the input similar to the PReLU activation function. Although this layer can be implemented as a custom layer, it is a commonly used module to merge multiple results together with learnable weights. A sample implementation is provided as follows:
class ParametricScalar(keras.layers.Layer):
    def __init__(self, alpha_initializer='ones', shared_axes=None, **kwargs):
        super().__init__(**kwargs)
        self.alpha_initializer = keras.initializers.get(alpha_initializer)
        if shared_axes is None:
            self.shared_axes = None
        elif not isinstance(shared_axes, (list, tuple)):
            self.shared_axes = [shared_axes]
        else:
            self.shared_axes = list(shared_axes)

    def get_config(self):
        return {'act_set': self.act_set}

    def build(self, input_shape):
        param_shape = list(input_shape[1:])
        if self.shared_axes is not None:
            for i in self.shared_axes:
                param_shape[i - 1] = 1
        self.alpha = self.add_weight(
            shape=param_shape,
            name='alpha',
            initializer=self.alpha_initializer)

    def get_config(self):
        config = {
            'alpha_initializer': keras.initializers.serialize(self.alpha_initializer),
            'shared_axes': self.shared_axes
        }
        base_config = super().get_config()
        return dict(list(base_config.items()) + list(config.items()))

    def call(self, inputs):
        return inputs * self.alpha```

Thanks for considering it. Yeah, it works for me as long as the other issue on loading keras models with custom layers bug will be fixed in the next release which I reported here: . But it is blocking me from upgrading me TF version (which is also fine for now, but I couldn't use any new features in TF2.6+) as some trained models with this layer fails to load.
For the usage of such layer, it is quite helpful in preserving the original signals in a lot of cases. For example, to lean f(x) = x > 0.5. Any normalization we put in f would destroy x's original strength and make the model unable to learn this simply task. But if we weight the normalized signal and the original signal using this scalar layer and sum them, it will have this ability. (Although a dense layer could do the same, it is a lot more expensive and prone to overfitting.) Maybe just my use case, but it is something to consider I think.


Fixes [#357] Fix behavior when optional parameters are defined within a route and not at the end

/cc @rynowak

Updated

Addressed the remaining feedback, replaced the constraint resolver mock with the default implementation, and removed the helper method.

:shipit:


Migration questions: Adding Map to UI, and importing Context

I'm hitting (so far) these errors when  upgrading from 0.7 to 0.13:
error[E0308]: mismatched types
   --> src\main.rs:212:67
    |
212 |             self.map_geoportal_tiles = Some(Tiles::new(Geoportal, ctx.to_owned()));
    |                                             ----------            ^^^^^^^^^^^^^^ expected `egui::context::Context`, found `eframe::egui::Context`
    |                                             |
    |                                             arguments to this function are incorrect
    |
    = note: `eframe::egui::Context` and `egui::context::Context` have similar names, but are actually distinct types
note: `eframe::egui::Context` is defined in crate `egui`

Note that eframe::context::Context is is private, so can't be imported.
error[E0277]: expected a `FnOnce<(&mut Ui,)>` closure, found `walkers::Map<'_, '_>`
    --> src\gui.rs:108:12
     |
108  |     ui.add(map);
     |        --- ^^^ expected an `FnOnce<(&mut Ui,)>` closure, found `walkers::Map<'_, '_>`

Ty!

Looks like egui version mismatch. From 0.13.0 we use egui/eframe 0.23.

Ty; that did it. I was on egui 0.24 when upgrading to this. Solved.


hub cannot sync change to child when remove a line data from a configmap

What happened:
delete a line data from a configmap, the hub cannot sync this change to a child cluster
example:
create a cm
apiVersion: v1
data:
  aa: bb
  cc: dd
kind: ConfigMap
metadata:
  name: test-cm
  namespace: test

delete data.cc from this configmap, hub cannot sync this change to the child cluster.
apiVersion: v1
data:
  aa: bb
kind: ConfigMap
metadata:
  name: test-cm
  namespace: test

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Clusternet version:

Clusternet-agent version (user clusternet-agent --version=json):
Clusternet-hub version (user clusternet-hub --version=json):

Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Others:

Was this Configmap bound to any Subscriptions?

sure, this configmap has deployed to the child cluster, when updating the configmap, cannot sync to the child cluster.


Insert settings and config into manifest directly, rather than derived env vars

Context:

https://github.com/meltano/meltano/pull/7148#issuecomment-1428445422
https://github.com/meltano/meltano/pull/7148#issuecomment-1428660571

Environment variables like MELTANO_<setting name> or TAP_ABC_<setting name> should be provided at run-time, rather than contained in the manifest. Instead, the manifest should contain the settings/config directly, with all default values included when the project files do not specify something else.

Some findings:

We aren't yet properly handling the merging of plugin lockfiles into plugins which use inherit_from.
Sometimes collisions occur when dealing with plugin lockfiles because some setting keys will be dot-expanded, while others will have . in their name. I'm not yet sure what the root cause is. Relates to https://github.com/meltano/meltano/issues/7270

@aaronsteers I've created an issue to separately address the aforementioned issue around setting key dot-expansion:

https://github.com/meltano/meltano/issues/7319

@WillDaSilva - Is it okay to treat this as a relatively low priority for now? While the large list of env vars may be redundant, I don't see immediate issues or blockers being raised from this, and I'd be okay to keep low pri for now.
Wdyt?

I think part of the framing for me would be:

Does the manifest accurately carry the state of the project? (I think yes.)
In reconstructing from the manifest, does Meltano have sufficient context to properly override declared env vars with runtime env vars? (I think also yes.)

I might be misreading or misinterpreting this point:

...the manifest should contain the settings/config directly, with all default values included when the project files do not specify something else

but I'd be okay if unset project-level default settings and feature flags were omitted from the manifest altogether. A good example of settings we'd prefer to omit if unset would be deprecated settings at https://docs.meltano.com/reference/ui#meltano-ui-server - such as ui.bind_host, ui.bind_port, etc.
As I'm writing this, I also recognize that it could be a lot of effort to distinguish between 'set' and 'unset' values - hence again why I think it's okay to not prioritize highly right now if the existing resolutions will accomplish our core objectives without any major defects.


ci: stop testing against NodeJS v14, v16

BREAKING CHANGE: Drop support for NodeJS v14, v16

https://github.com/orgs/octokit/discussions/44


String based datatypes to be explained in YANG files

Either ImplementationCommonDatatypes or IetfYangTypes to be use in UML. Types not been translated into String during UML2YANG translation, but to maintained with the initial names. YANG representation of ImplementationCommonDatatypes or IetfYangTypes to be generated and to be imported into YANG file of tech.spec. Interface/Profile yang.

Fixed with QosProfile_1.0.0-tsp.220405.1620.


Support from in runtime variables

At present, runtime variable cannot be assigned values from global variables.
- &runtime_var_var_name {value}


Forward javascript events

Is it possible to forward the events, so that I can get the mouse position of the cancel and/or drop event?
I want to use dragula to place an object at a absolute position, therefore I need the mouse position of the drop event. I do the positioning myself, so I need only the coordinates.

Drop doesn't necessarily happen after a mouse event, it could also be triggered programatically. I would do this outside of dragula.
var lastReleased
var drake = dragula(el)
drake.on('drop', drop)
el.addEventListener('mouseup', released)
function released (e) {
  lastReleased = e
}
function drop () {
  // use lastReleased
}


ResponseError: Invalid field type for field content_vector

This is for the Chatbot app.
I have the Redisearch module loaded. The errant code:

# Optional step to drop the index if it already exists
#redis_client.ft(INDEX_NAME).dropindex()

# Check if index exists
try:
    redis_client.ft(INDEX_NAME).info()
    print("Index already exists")
except Exception as e:
    print(e)
    # Create RediSearch Index
    print('Not there yet. Creating')
    redis_client.ft(INDEX_NAME).create_index(
        fields = fields,
        definition = IndexDefinition(prefix=[PREFIX], index_type=IndexType.HASH)
    )

Output:
Unknown Index name
Not there yet. Creating

---------------------------------------------------------------------------
ResponseError                             Traceback (most recent call last)
Cell In[40], line 6
      5 try:
----> 6     redis_client.ft(INDEX_NAME).info()
      7     print("Index already exists")

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/commands/search/commands.py:370, in SearchCommands.info(self)
    363 """
    364 Get info an stats about the the current index, including the number of
    365 documents, memory consumption, etc
    366
    367 For more information see `FT.INFO <https://redis.io/commands/ft.info>`_.
    368 """
--> 370 res = self.execute_command(INFO_CMD, self.index_name)
    371 it = map(to_string, res)

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1258, in Redis.execute_command(self, *args, **options)
   1257 try:
-> 1258     return conn.retry.call_with_retry(
   1259         lambda: self._send_command_parse_response(
   1260             conn, command_name, *args, **options
   1261         ),
   1262         lambda error: self._disconnect_raise(conn, error),
   1263     )
   1264 finally:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/retry.py:46, in Retry.call_with_retry(self, do, fail)
     45 try:
---> 46     return do()
     47 except self._supported_errors as error:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1259, in Redis.execute_command.<locals>.<lambda>()
   1257 try:
   1258     return conn.retry.call_with_retry(
-> 1259         lambda: self._send_command_parse_response(
   1260             conn, command_name, *args, **options
   1261         ),
   1262         lambda error: self._disconnect_raise(conn, error),
   1263     )
   1264 finally:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1235, in Redis._send_command_parse_response(self, conn, command_name, *args, **options)
   1234 conn.send_command(*args)
-> 1235 return self.parse_response(conn, command_name, **options)

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1275, in Redis.parse_response(self, connection, command_name, **options)
   1274     else:
-> 1275         response = connection.read_response()
   1276 except ResponseError:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/connection.py:957, in Connection.read_response(self, disable_decoding)
    956 if isinstance(response, ResponseError):
--> 957     raise response
    958 return response

ResponseError: Unknown Index name

During handling of the above exception, another exception occurred:

ResponseError                             Traceback (most recent call last)
Cell In[40], line 12
     10 # Create RediSearch Index
     11 print('Not there yet. Creating')
---> 12 redis_client.ft(INDEX_NAME).create_index(
     13     fields = fields,
     14     definition = IndexDefinition(prefix=[PREFIX], index_type=IndexType.HASH)
     15 )

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/commands/search/commands.py:141, in SearchCommands.create_index(self, fields, no_term_offsets, no_field_flags, stopwords, definition, max_text_fields, temporary, no_highlight, no_term_frequencies, skip_initial_scan)
    138 except TypeError:
    139     args += fields.redis_args()
--> 141 return self.execute_command(*args)

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1258, in Redis.execute_command(self, *args, **options)
   1255 conn = self.connection or pool.get_connection(command_name, **options)
   1257 try:
-> 1258     return conn.retry.call_with_retry(
   1259         lambda: self._send_command_parse_response(
   1260             conn, command_name, *args, **options
   1261         ),
   1262         lambda error: self._disconnect_raise(conn, error),
   1263     )
   1264 finally:
   1265     if not self.connection:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/retry.py:46, in Retry.call_with_retry(self, do, fail)
     44 while True:
     45     try:
---> 46         return do()
     47     except self._supported_errors as error:
     48         failures += 1

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1259, in Redis.execute_command.<locals>.<lambda>()
   1255 conn = self.connection or pool.get_connection(command_name, **options)
   1257 try:
   1258     return conn.retry.call_with_retry(
-> 1259         lambda: self._send_command_parse_response(
   1260             conn, command_name, *args, **options
   1261         ),
   1262         lambda error: self._disconnect_raise(conn, error),
   1263     )
   1264 finally:
   1265     if not self.connection:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1235, in Redis._send_command_parse_response(self, conn, command_name, *args, **options)
   1231 """
   1232 Send a command and parse the response
   1233 """
   1234 conn.send_command(*args)
-> 1235 return self.parse_response(conn, command_name, **options)

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/client.py:1275, in Redis.parse_response(self, connection, command_name, **options)
   1273         options.pop(NEVER_DECODE)
   1274     else:
-> 1275         response = connection.read_response()
   1276 except ResponseError:
   1277     if EMPTY_RESPONSE in options:

File /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/redis/connection.py:957, in Connection.read_response(self, disable_decoding)
    954     self.next_health_check = time() + self.health_check_interval
    956 if isinstance(response, ResponseError):
--> 957     raise response
    958 return response

ResponseError: Invalid field type for field `content_vector`

I'm facing the same issue, any hints on how to resolve this ?

I believe this is an issue with your version of redisearch. I was just using 2.0.2 and getting this error, but it worked once I switched to 2.4.3.
I was just running redis locally with the docker images.
Works:
docker run -p 6379:6379 redislabs/redisearch:2.4.3
Error you're experiencing:
docker run -p 6379:6379 redislabs/redisearch:2.0.2

I believe this is an issue with your version of redisearch. I was just using 2.0.2 and getting this error, but it worked once I switched to 2.4.3.
I was just running redis locally with the docker images.
Works: docker run -p 6379:6379 redislabs/redisearch:2.4.3
Error you're experiencing: docker run -p 6379:6379 redislabs/redisearch:2.0.2

This solution works!!
Thanks!!

Can confirm -- please make sure to use the latest version of RediSearch module within Redis Stack: https://redis.io/docs/stack/get-started/install/docker/ OR signup for a hosted instance on Redis Cloud to not deal with the hassle of managing it.
The officially recommended docker command (from link above):
docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest


[Question] how do I wait for dialog box?

Hi,
I'm needing to wait for a dialog box to appear before continuing.
Whats the best way to wait for dialog box to appear?
I see in the js version we could do page.waitForEvent('dialog'). What is the equivalent in Java?
Thanks!

I actually ended up changing my code to not need a dialog box, but am still interested in the above.

There is Page.onDialog that you can use to handle dialogs. Something like this:
boolean[] didShowDialog = {false};
page.onDialog(dialog -> didShowDialog[0] = true);
page.evaluate("setTimeout(() => alert('hello'), 0);");
while (!didShowDialog[0]) {
  page.waitForTimeout(100);
}

Unlike other events we didn't add page.waitForDialog as the dialog has to be either accepted or dismissed before the page execution can continue and if we returned a dialog object from waitForDialog the client could get to the next step in their script before doing anything with the dialog which would lead to a deadlock.


HDDS-4458. Fix Max Transaction ID value in OM.

What changes were proposed in this pull request?
Right now Max Transaction ID value is coming as 4194302, whereas it should be<PHONE_NUMBER>9481982.
Due to this after 4194302, all transactions in OM will fail.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-4458
How was this patch tested?
Added a test.

LGTM. Thanks for catching this Bharat.
+1 pending CI.


Writing checkpoints on tables with timestamps results in some warnings

Environment
Delta-rs version: current HEAD of main
Binding: Rust
Environment:

Cloud provider:
OS:
Other:

Bug
What happened:
Using the code here: https://github.com/buoyant-data/demo-recordbatch-writer
This creates a simple table with the timestamp typed column. Writes without checkpoints results in no problems with reads, however when writing a checkpoint, the reads then result in the following warnings:
 >>> dt = DeltaTable("../temp-tables/wx"); df = dt.to_pandas(); df.query('temp > 0')
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:46:04 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:46:04 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:46:17 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:46:17 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:51:06 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:51:06 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:23 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:23 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:34 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:34 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:34 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:34 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:35 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:35 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:35 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:35 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:36 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:36 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:36 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:36 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:37 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:37 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:37 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:37 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:38 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:38 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:38 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 04:52:38 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:05:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:05:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:05:44 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:05:44 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:09:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:09:33 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:14:05 +00:00
[2023-01-05T05:14:54Z WARN  deltalake::action::parquet_read] Unexpected type when parsing min/max values for timestamp. Found 2023-01-05 05:14:05 +00:00
                    timestamp  temp       lat        long
0  2023-01-05 04:46:04.952979    71  39.61941 -119.229162

Looking at the checkpoint parquet file with parquet-tools show an example of the output:
{'path': 'part-00000-814bc2b7-49d3-43f6-a2a8-63e7e7c5a47d-c000.snappy.parquet', 'size': 1508.0, 'modificationTime':<PHONE_NUMBER>677.0, 'dataChange': False, 'stats': '{"numRecords":5,"minValues":{"temp":67,"lat":39.61940984546992,"timestamp":"2023-01-05T05:14:05.672Z","long":-119.22916208856955},"maxValues":{"timestamp":"2023-01-05T05:14:05.672Z","temp":71,"lat":39.61940984546992,"long":-119.22916208856955},"nullCount":{"long":0,"temp":0,"lat":0,"timestamp":0}}', 'partitionValues': [], 'tags': None, 'stats_parsed': {'numRecords': 5.0, 'minValues': {'timestamp': datetime.datetime(2023, 1, 5, 5, 14, 5, 672000), 'temp': 67.0, 'lat': 39.61940984546992, 'long': -119.22916208856957}, 'maxValues': {'timestamp': datetime.datetime(2023, 1, 5, 5, 14, 5, 672000), 'temp': 71.0, 'lat': 39.61940984546992, 'long': -119.22916208856957}, 'nullCount': {'timestamp': 0.0, 'temp': 0.0, 'lat': 0.0, 'long': 0.0}}}

What you expected to happen:
No warnings :smile:
How to reproduce it:
RUST_LOG=info cargo run and then read the code with the deltalake Python library.
More details:

Just waiting for the next datafusion release, to get an updated arrow version. Then I am planning to address #813, which means replacing the low level parquet readers. Not entirely sure where these warnings are coming from, but seems like a good opportunity to look into that as well...

This is from this type match statement: https://github.com/delta-io/delta-rs/blob/3c99d9750f0a0b9ed025fa88a35ed4f3cac1c906/rust/src/action/parquet_read/mod.rs#L251
Perhaps the timestamp column has a different resolution other than millis?

I believe this might be related or identical in the root problem with #1286

I think this is resolved now


If Admin rejects the Request he sees a Modal Window for the Request Creation submitted successfully

Rejecting a private cloud project:

Rejecting a public cloud project:

Corrected:

Note: @funtigr I think that the emails are not correctly capturing whatever was inputted into the text box, something worth double checking. As the emails I received when testing did not have my input that I provided in the box.

Now Rejection has its own modal window:


Tal Rasha 6 set extends are not working right

When simulating i lose the 6 set buff when i shouldn't. So when using tals 6 set set on the current version the way it works is, you have to use 4 different elements to build up to 4 stacks of tals 6 set, once the 4 stacks are achieved you only have to rotate 2 elements every 8 seconds to keep it up permanently. You dont have to cycle all the elements again to keep up the extends.

Ah I was confused about the wording. What does this mean?

At 4 stacks, each different elemental attack extends the duration by 2 seconds, up to a maximum of 8 seconds.

I thought that would mean that you can only extend the buff for 8 seconds, before it drops? How does it work then?

After you reached 4 stacks, you can extend the duration of the 4 stacks to 8 seconds by using an attack that works for TR 6pc, but was not the last attack that added a stack or refreshed it. So you really only have to alternate 2 skills every 8 seconds, or - in practice - spam the attack you deal damage with and use another attack at least every 8 seconds.

Ah I see. Do you have to alternate between any two attacks or do they have to be of a different element?

They have to be of a different element, and need to be attacks that can proc TR 6pc. That's why many people have been running Teleport: Calamity or Frost Nova: Frozen Mist, while these skills have other runes that are a lot better.

Yeah I know you had to run Calamity/Frozen Mist before (played TR a lot in S3), so they didn't change that in 2.4?

Nope, not changed at all. Extending the 6pc does not also extend the 4pc btw.

Yeah 4pc seems pretty straightforward I guess.
Still a bit confused on the wording:

At 4 stacks, each different elemental attack extends the duration by 2 seconds, up to a maximum of 8 seconds.

You're saying it refreshes the buff to 8 seconds, so you only have to use the alternate attack once every 8 seconds. Where do the 2 seconds mentioned come into play, then?

That was supposed to be 4 seconds, my bad.


Security Fix for Prototype Pollution in cli-tableau

📊 Metadata *
cli-tableau is a pretty unicode table for the CLI with Node.JS.
cli-tableau is vulnerable to Prototype Pollution. The utilities function allows modification of the Object prototype. If an attacker can control part of the structure passed to this function, they could add or modify an existing property. Possibly leading to many kinds of attacks such as the denial-of-service, checking bypass, or potentially code execution.
Bounty URL: https://www.huntr.dev/bounties/1-npm-cli-tableau/
⚙ Description *
proto/constructor/prototype check in options() function in utils.js.
💻 Technical Description *
Nested propoty assignment must be checked to avoid to pollute to the object's propotype.
🐛 Proof of Concept (PoC) *
Run the PoC.js with the contents below:
//PoC.js
var cli = require('cli-tableau');
var payload = '{"proto":{"polluted":"pzhou@shu"}}'; //var payload = '{"constructor":{"prototype":{"polluted":"pzhou@shu"}}}';
console.log('Before:', {}.polluted); //Before: undefined
cli(JSON.parse(payload));
console.log('After:', {}.polluted); //After: pzhou@shu
//end of PoC.js
🔥 Proof of Fix (PoF) *
After the fix:
//PoF.js
var cli = require('cli-tableau');
var payload = '{"proto":{"polluted":"pzhou@shu"}}'; //var payload = '{"constructor":{"prototype":{"polluted":"pzhou@shu"}}}';
console.log('Before:', {}.polluted); //Before: undefined
cli(JSON.parse(payload));
console.log('After:', {}.polluted); //After: undefined
//end of PoF.js
npm test

<EMAIL_ADDRESS>test
mocha test/*

Table
✓ should test complete table
✓ test width property
✓ test vertical table output
✓ test cross table output
✓ test table colors
✓ test custom chars
✓ test compact shortand
✓ test compact empty mid line
✓ test decoration lines disabled
✓ test with null/undefined as values or column names
✓ test with toString things
✓ test with array method values
✓ test table with newlines in headers
✓ test column width is accurately reflected when newlines are present
✓ test newlines in body cells
✓ test newlines in vertical cell header and body
✓ test newlines in cross table header and body

17 passing (9ms)
🔗 Relates to...
https://github.com/418sec/huntr/pull/1970

👋 Hello, @rauchg - @zpbrent has opened a PR to us with a fix for a potential vulnerability in your repository. To view the vulnerability, please refer to the bounty URL in the first comment, above.
Ultimately, you get to decide if the fix is 👍 or 👎. If you are happy with the fix, please write a new comment (@huntr-helper - LGTM) and we will open a PR to your repository with the fix. All remaining PRs for this vulnerability will be automatically closed.
If you have any questions or need support, come and join us on our community Discord!
@rauchg & @zpbrent - thank you for your efforts in securing the world’s open source code! 🎉

🔨 Want more security researchers protecting your repository?
Stick our badge on your README.md, and let security researchers know that they can win bounties protecting your repositories. Sounds cool, huh? 😎
Copy this small code snippet and insert it into your README.md:
[![huntr](https://cdn.huntr.dev/huntr_security_badge.svg)](https://huntr.dev)
👇 👇 👇


Permission error check

So this is kind of a fun one.
If the permissions for a NBI get set to root:wheel and you attempt to update this NBI you'll get the following error message which is good. However the UI element is playing a nice refresh game.
(Github won't allow me to attach videos to issues) :-1:
https://dl.dropboxusercontent.com/u/4223848/NBICreator_Perm_issue_lol.mov
Using latest release: 0.2.4
OS: 10.11.3

Looks nice :)
Fixed in the latest release


path & distance

Hi, is there any possibility how to express the both parameters (path & distance) with one metric - integer?
distance, path = fastdtw(ref, x)

Stupid question.


Support for SSD MobileNet v2 (TF2) 320x320

@dusty-nv You wrote a great article on SSD (TF1) 300x300 https://github.com/dusty-nv/jetson-inference/blob/master/docs/pytorch-ssd.md.
Any suggestions for getting a custom model using the base model SSD MobileNet v2 (TF2) 320x320 to run?
I get the following error when I try to compile:
[TRT]    ModelImporter.cpp:125: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale [Mul] inputs: [StatefulPartitionedCall/Squeeze:0 -> (1, 1917, 4)], [StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale_value:0 -> (1, 1, 4)],
[TRT]    ImporterContext.hpp:141: Registering layer: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale for ONNX node: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale
[TRT]    ImporterContext.hpp:116: Registering tensor: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale:0_1 for ONNX tensor: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale:0_1
[TRT]    ModelImporter.cpp:179: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale [Mul] outputs: [StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale:0_1 -> (1, 1917, 4)],
[TRT]    ModelImporter.cpp:103: Parsing node: nms/non_maximum_suppression_first [EfficientNMS_TRT]
[TRT]    ModelImporter.cpp:119: Searching for input: StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale:0_1
[TRT]    ModelImporter.cpp:119: Searching for input: StatefulPartitionedCall/BoxPredictor/ConvolutionalClassHead_/slicer:0_0
[TRT]    ModelImporter.cpp:119: Searching for input: nms/anchors:0
[TRT]    ModelImporter.cpp:125: nms/non_maximum_suppression_first [EfficientNMS_TRT] inputs: [StatefulPartitionedCall/BoxPredictor/ConvolutionalBoxHead_/scale:0_1 -> (1, 1917, 4)], [StatefulPartitionedCall/BoxPredictor/ConvolutionalClassHead_/slicer:0_0 -> (1, 1917, 90)], [nms/anchors:0 -> (1, 1917, 4)],
[TRT]    ModelImporter.cpp:135: No importer registered for op: EfficientNMS_TRT. Attempting to import as plugin.
[TRT]    builtin_op_importers.cpp:3659: Searching for plugin: EfficientNMS_TRT, plugin_version: 1, plugin_namespace:
[TRT]    INVALID_ARGUMENT: getPluginCreator could not find plugin EfficientNMS_TRT version 1
ERROR: builtin_op_importers.cpp:3661 In function importFallbackPluginImporter:
[8] Assertion failed: creator && "Plugin not found, are the plugin name, version, and namespace correct?"
[TRT]    failed to parse ONNX model 'models/ssd_model.onnx'
[TRT]    device GPU, failed to load models/ssd_model.onnx
[TRT]    detectNet -- failed to initialize.
jetson.inference -- detectNet failed to load network

Hi @leenremm, I haven't done this with TF2 sorry.  Here was the tool used to convert from TF1:  https://github.com/aastanv
It has been awhile since I used TF and personally I use PyTorch now.


Proposal: Allow divs as thumbnails

Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x] 3.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
Currently you need to specify  under an <ion-thumbnail> in a list. This is a bit annoying as you loose a bit of flexability with the CSS eg cannot do a cover image. I suggest adding something roughly equivelent to the following code so that you can do eg cover backgrounds and nice image sizing preserving ratios where the backend does not produce nice 80x80 crops:
ion-thumbnail .img {
    width: $item-md-thumbnail-size;
    height: $item-md-thumbnail-size;
    background-position: 50% 50%;
    background-size: cover;
}

<ion-thumbnail item-start>

</ion-thumbnail>

Have you tried setting a background image on the actual thumbnail?

Hello! Thanks for the feature request. I'm going to move this issue over to our internal list of feature requests for evaluation. We are continually prioritizing all requests that we receive with outstanding issues. We are extremely grateful for your feedback, but it may not always be our next priority. I'll copy the issue back to this repository when we have begun implementation. Thanks!


add missing requirements of symfony/http-client to composer plugin

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Related tickets
fixes #248

Documentation
-

License
MIT

What's in this PR?
As discovered in #248, the composer plugin does not install a functional set of dependencies to actually discover the psr18 client when installing symfony/http-client.
Reproduce
To reproduce the problem, create an empty folder, create composer.json with the following content and run composer update:
{
  "config": {
    "allow-plugins": {
      "php-http/discovery": true
    }
  },
  "require": {
    "psr/http-client-implementation": "*",
    "php-http/discovery": "^1.18"
  }
}

ls vendor/psr shows that psr/http-client is not installed.
Checklist

[ ] Updated CHANGELOG.md to describe BC breaks / deprecations | new feature | bugfix

@nicolas-grekas i will adjust the unit tests and update changelog if you agree that this is the correct thing to do.

I suppose I was expecting that libs that require an implem would also require the abstraction :)

the trap of optional dependencies... i adjusted the test expectation.


Remove spurious bracket added in PR 1656

Remove an unintentionally added parenthesis in #1656 that broke the build.

@CISC thank you, just saw this after fixing the same thing.

@abetlen No worries. :)


Updated a couple names that changed in Sprintr

I found a few more and corrected them in this commit: https://github.com/mendix/docs/commit/161b71a3a2db165d335f85b905de17c6dd991df2
Thanks for the trigger!

That looks great Mark, go ahead and push it!


[Linear Algebra] Triangular solve

This PR adds triangularSolve operation with its gradient. Unfortunately, TF triangularSolve function doesn't do automatic broadcasting, so I had to implement it. For broadcasting case, I needed an implementation for extracting leading dimension to input tensors - in the code, it is called extractLeadingDims. This function can be useful in general.
PR requires some polishing and open for discussion.
Thanks!

@dan-zheng, @Shashi456 I updated PR

@awav could you add a test for extractLeadingDims ?

@Shashi456, I added tests.

@dan-zheng, @Shashi456 Hello all, any comments on the code? :)

@dan-zheng,

Sorry for the late reply!

No problem!

Would you be interested in exploring this in a separate PR? I'd say avoiding manual definitions for functions that have default implementations is sufficiently desirable that #609 is a blocker for this PR.

Yes, I can do it. Although, I need a bit more input on how to do it properly or just a simple example of how it can be done.

Yes, I can do it. Although, I need a bit more input on how to do it properly or just a simple example of how it can be done.

Awesome!
You can start by adding an empty extension TensorShape: Collection {} conformance to Sources/TensorFlow/Core/TensorShape.swift. If you try to compile it, the compiler will produce error messages prompting you to implement the missing Collection protocol requirements. Xcode can even fill in dummy protocol requirement skeletons for you.
Do the same for RangeReplaceableCollection: extension TensorShape: RangeReplaceableCollection { ... }. When that conformance is done, you can use the RangeReplaceableCollection.+(_:_:) default implementation!

@dan-zheng, I cannot assign myself to the task in Github's swift-apis. Guess, I'm not the project member.
According to the https://github.com/apple/swift/blob/02d8d83658033d88c8ec99db2ee37cff99292b6b/stdlib/public/core/RangeReplaceableCollection.swift#L967 link, + uses the append method, that means that TensorShape should be modifiable. Right now, TensorShape is immutable, which is not a bad thing.

@dan-zheng, I cannot assign myself to the task in Github's swift-apis. Guess, I'm not the project member.

Ah, that's right. Would you like me to assign the issue to you?

Also, according to your link, + uses the append method, that means that TensorShape should be modifiable. Right now, TensorShape is immutable, which is not a bad thing.

I think you may be confusing a few concepts. In Swift, we don't typically say that types like TensorShape as mutable or immutable. Instead, we categorize them into value types and reference types. Value types (structs and enums) have value semantics, while reference types (classes) have reference semantics. I'd highly recommend checking out the article linked above to learn more, if you're not familiar with these concepts!
Value types like TensorShape can define mutating methods like RangeReplaceableCollection.append(_:). These methods can only be applied to mutable values (e.g. values declared with var).

Short example of mutating methods:
// A value type.
struct TensorShape {
  mutating func mutate() {}
}
var mutable = TensorShape()
mutable.mutate() // okay

let immutable = TensorShape()
immutable.mutate() // not okay

$ swift test.swift
test.swift:9:11: error: cannot use mutating member on immutable value: 'immutable' is a 'let' constant
immutable.mutate() // not okay
~~~~~~~~~ ^
test.swift:8:1: note: change 'let' to 'var' to make it mutable
let immutable = TensorShape()
^~~
var

@dan-zheng Do we still need to check the trisolve broadcasting semantics?

@awav mentioned that batched input support for _Raw.matrixTriangularSolve was added in https://github.com/tensorflow/tensorflow/commit/b105944eb6c563849a085a1765d6700ee2c0f35c.
I verified that the behavior is consistent with the Swift implementation added in this patch: https://gist.github.com/dan-zheng/6c1404149aa16a4c7082047ce3890ee2

Currently, our version of tensorflow is pinned at v2.1.0-rc1.
We should be able to remove the custom Swift broadcasting code in func triangularSolve after we:

Upgrade the tensorflow version to a commit past https://github.com/tensorflow/tensorflow/commit/b105944eb6c563849a085a1765d6700ee2c0f35c in update-checkout-config.json.
Regenerate Swift bindings for TensorFlow.

func triangularSolve should then directly forward to _Raw.matrixTriangularSolve.


Fix for issue #112

The problem is that getBoundingClientRect() does not account for css border styles.  This fix attempts to make that accommodation.

Makes sense.  Thanks for the PR, I'll try to get it merged in this week!


Unable to ingest OpenStreetMap into CARLA

CARLA version: 0.9.14 built from source
Platform/OS: Windows 10
Problem you have experienced: Unable to ingest a map from OpenStreetMap into CARLA.
I've been trying to ingest a map exported from OpenStreetMaps into CARLA as per the documentation, however I keep getting the error map not found. I have tried to ingest the map using all 3 methods described in the aforementioned documentation, but I always get the same error. There are no other errors.
I'm able to load other maps (eg: Town01). I have also noticed that, when trying to ingest the .xodr/.osm file, the file 'carla_source/Unreal/CarlaUE4/Content/Carla/Maps/Nav/OpenDriveMap.obj' is modified and is non-empty.
Steps to reproduce: Run either

python config.py --osm-path=path_to_osm_file
python config.py -x=path_to_xodr_file

in the command line, with the CARLA server up and running.
Other information (documentation you consulted, workarounds you tried): I have tried to rebuild the CARLA server and UE4 (as per this issue #6006), but that didn't fix the issue. I have also tried using multiple different maps from OpenStreetMaps, both big and small. All other functionalities in CARLA appear to work fine.

Hi, I have tried on windows 11 it worked.
python config.py --osm-path="path\to\osm\file\your_file.osm"
I named my osm file as "map.osm". Anyway I will give you an example path to make it clear for you.
python config.py --osm-path="C:\Users\Admin\desktop\Carla_project\map.osm"

Hi!
Is this issue fix? Using absolute paths is always a good idea.
Could you check if vafali 's solution work for you?


Somya's Plan

By April 24, I am planning on having a chart shows how frequently specific risk factors were mentioned in the comm_use_subset. I am planning on doing this through python.
The risk factors I am looking at are pulmonary disease, co-infection, pregnancy, diabetes, and heart disease.

I've only really used nltk in the past for these types of tasks, but spaCy is one of the newer nlp python libraries.
let me know if you need help with anything (you can always push your code into a branch and I can try running it on my end)

Fixed in #41


Overlay queue

Also a great feature to have, queue some overlays would be great....

Hmm. I am not convinced by this one. I mean, what could be a real world use of this? As a user I would find it pretty annoying.

If there are more than two error messages I want to show...

I see your point. Ill add it soon.

A more specific example:
User hits login button
I show the overlay with a spinner
When return block of the login is called I hide the the overlay.
If success do nothing, but if error I want to show another overlay with the error message.
But both get dismissed.

That senario should work. You could always call the show method again to change the overlay and since its called on the shared instance of the overlay, you are essentially changing the same overlay.

I see what you mean. Since the overlay adopts the singleton pattern, only one instance is available during the lifetime of the application and this you cannot shows multiple overlays at once. You could show multiple overlays in succession, which would essentially be the same as I explained above.

I guess I will shelve this for now, in favour of other features. You are welcome to send a pull request if you get this working before me.

Ok, I will see if I have some time for that.
But just to let you know, I would already use it right know because I already get both my overlays dismissed at the same time =/

Are you using an overlay with the "auto hide" option? The auto hide option overwrites and hide call, currently. I will be pushing an update where the auto hide option is overwritten by the hide call.


Improved Chinese translation & Fixed some errors

Most of the works are translating some text mistranslated and retranslating some elder texts, which expressed not so native, or were incorrect in syntax, and could be hardly understood before, into Chinese. In the meantime, I sorted items in OdeMessages_zh_CN.properties into the order likes OdeMessages.java. So they, in the same structure and has identical annotation now, can be looked-up or modified handily. By the way, some errors were fixed.

@Donlon Your change updated 32 files. If you only updated the Chinese translation, can you please cleanup this pull request so that other files are not updated. Thanks.

@jisqyv Actually I only aim at making the translation more perfect originally. But I find somewhere can be fixed (such as internationalizing some text and some...) when I do it. So I updated those items and combined them and the translation files into one pull request to upload. Should I split them into few requests?

Oops I may have forgotten something... (The annotation below the header tells what this file's item is identical to.)

@cavedunissin Would you mind reviewing this change, especially the translations?

@ewpatton , for these two files (/OdeMessages_zh_TW.properties and  _messages.js) should use my latest commit (id: 80da726 ,30814ea and 30814ea)
sorry don't know how to insert commit id in reply.

Since the work @cavedunissin did in #1000, I think this PR is now obsolete. If that's not the case, please reopen it and we can discuss further.


[bug]: Chrome extension loses origin list after backend upgrade

We have noticed that sometimes (seems to be correlated with version upgrades of the hoppscotch backend version), we lost the Hoppscotch URL in the Chrome extension.

We Also see it happens also in Chrome restart and not necessarily when upgrading version which is more severe.

@liyasthomas @AndrewBastin the bug seems to be triggered when Chrome version update occurs.
Seems like chrome.runtime.onInstalled.addListener(() in src/index.js, Line:358 is using this function which according to the docs is "Fired when the extension is first installed, when the extension is updated to a new version, and when Chrome is updated to a new version."
Looks likes the origin list is being overwritten with default origin list on every Chrome Browser update.

@liyasthomas @AndrewBastin the bug seems to be triggered when Chrome version update occurs.
Seems like chrome.runtime.onInstalled.addListener(() in src/index.js, Line:358 is using this function which according to the docs is "Fired when the extension is first installed, when the extension is updated to a new version, and when Chrome is updated to a new version."
Looks likes the origin list is being overwritten with default origin list on every Chrome Browser update.

Hi @tomerr-ma we'll try to reproduce the issue again and revert back to you. Thanks for the update.

closing as the PR #282 is merged.


enable codespace

i think it will be very helpful to configure the repo so we can do it with codespace

Hello, let me check on this.


turbo-frame tage with 'src' attribute not adding proper mimetype to fetch request

I'm using turbo in rails, and have a view with the following tag:
  <%= turbo_frame_tag 'organizations', src: '/organizations' %>

I then have a index.turbo_stream.erb view for updating the originating tag:
  <%= turbo_stream.replace 'organizations' do %>
    <ul>
       // not relevant
    </ul>
<% end %>

When the page loads the tag loads the source, however it does not attach the Accept: text/vnd.turbo-stream.html and Rails fails to recognize the request as a turbo_stream request. As a result, the respond_to block return HTML as opposed to the turbo stream template.
  def index
    @organizations = @current_user.organizations

    respond_to do |format|
      format.html
      format.turbo_stream
    end
  end

I was able to get the expected behavior to work by manually adding the Accept header on the turbo:before-fetch-request event and setting a custom type='turbo-stream' attribute on the tag. However, I feel like this is either a bug, or I'm missing a configuration.
document.addEventListener('turbo:before-fetch-request', (event) => {
  if (event.target.getAttribute('type') == 'turbo-stream') {
    event.detail.fetchOptions.headers['Accept'] = 'text/vnd.turbo-stream.html';
  }
})

Is this expected for the src attribute?

Thank you for opening this issue!
I believe you're combining two distinct concepts. A Turbo Frame with a [src] attribute will transmit a GET request for text/html content. That request should be handled by the server as HTML. You can learn more about frames in the Decompose with Turbo Frames section of the Turbo Handbook.
Your server response should treat the request as HTML, and respond as if it were a typical full-page HTML request. When Turbo receive the response, it'll search the response HTML for a <turbo-frame> element with a matching [id] attribute and replace its old contents with the response's contents.
Requests originating from a <turbo-frame> won't have the text/vnd.turbo-stream.html because they're conceptually separate from <turbo-stream> elements and Turbo Stream responses. You should not inject an Accept: text/vnd.turbo-stream.html header into a Turbo Frame's request.


Update Contribute.md

Star the repo if u liked it and also plz read README file carefully....you added the card inside a filled row div.....
only 3 cards can be added inside a row-div...

Changed the position of the card and only 3 cards were added inside a
row-div.
Please consider my PR.
On Tue, Oct 11, 2022 at 11:15 PM Harsh Vardhan Singh <
@.***> wrote:

Star the repo if u liked it and also plz read README file carefully....you
added the card inside a filled row div.....
only 3 cards can be added inside a row-div...
—
Reply to this email directly, view it on GitHub
https://github.com/harshvardhansb/TourGuide/pull/52#issuecomment-1275057290,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUSBO3STDWCHPHAGA7OEGBLWCWRS5ANCNFSM6AAAAAARCQR2AU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add TaskIntegrator tracking class

What was wrong?
In the process of #1226 it became necessary to track a bunch of asynchronous tasks that happen out of order, and then do follow-up post-processing only after they have been completed in sequence.
For example, we can download block bodies and receipt bodies in any order, but can't actually persist them to disk until we have each subtask completed (block download & receipt download), and in order.
But that PR is too big, so I'm pulling this into a separate one.
How was it fixed?
Track tasks and subtasks that happen asynchronously, and provide a simple interface for waiting on consecutive completion.
Roughly:

say we need to do some post-processing work on five in-order tasks T1 -> T5
before we can do that post-processing, we have to do two subtasks: S1, S2
we complete S1 for tasks T2 -> T5
we complete S2 for tasks T1 -> T4
(we still cannot do post-processing, because we need S1 to complete for T1)
we complete S1 for T1
we begin post-processing on T1 -> T4
etc.

In preparation, we run: task_integrator.prepare(tasks_to_attempt)
After completing a subtask, we run: task_integrator.finish(S1, completed_tasks)
The post-processor waits for completed_batch = await task_integrator.next_completed() then runs.
Note that this implementation does support forking. Each task can only depend on one parent, but one parent may have many children.
Cute Animal Picture

Ok, I changed a bunch of the lingo used, and updated/added comments. I hope it's a bit easier to pick up. I also "cheated" a bit by showing an example in the class docstring rather than try to explain it more/better.


Missing Temp and Humidity

Describe Your Problem:
Humidity and temperature don’t appear in Home after enabling configuration. Any ideas?
Logs:
Show the Homebridge logs here, remove any sensitive information.

Plugin Config:
Show your Homebridge config.json here, remove any sensitive information.

Screenshots:

Environment:

Plugin Version: 1.0.0
Homebridge Version:
Node.js Version:
NPM Version:
Operating System:

I understand; thanks! You can close the ticket.


drogon: init at 1.6.0

Motivation for this change
Things done

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

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

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] 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/)
21.11 Release Notes

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

I did some additional testing with some CMake projects and I've discovered that in order to use find_package you need to be in a shell that includes this package's dependencies too.  It looks like DrogonConfig.cmake calls find_dependency, but for some reason these the dependencies it's looking for are not visible to CMake unless you are in a shell that includes them.  Does anyone more knowledgeable than me know how to fix this?
example
would be included in CMakeLists.txt
find_package(Drogon REQUIRED)

a shell.nix that works now
buildInputs = with pkgs; [
  drogon
  jsoncpp
  libuuid
  zlib
];

a shell.nix that I think should work
buildInputs = with pkgs; [
  drogon
];


Config changes to reflect the default branch from master to main. Please merge to complete the default branch renaming job.

Auto branch renaming content.

Docs Build status updates of commit 9000f62:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.publish.config.json
: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 docs.microsoft.com contributor guidesPost your question in the Docs support channel


Error when loading new tenant

After creating a new tenant and login into it following error log get printed. It is not a blocker, yet printing an error log is wrong.
[2023-02-24 10:21:45,137] ERROR - TenantServiceCreator Error while copying API manager specific synapse sequencesjava.nio.file.NoSuchFileException: /home/dushani/wso2/Rnd/4.2.0/kernel_release/wso2am-4.2.0-SNAPSHOT/repository/tenants/1/synapse-configs/default/sequences/main.xml

This is fixed by https://github.com/wso2/carbon-apimgt/pull/11901
This issue happens for the first tenant load only.
The TenantSynapseConfigHierarchyCreator threads are spawned twice by

File authFailureHandlerSequenceNameFile = new File(filepath.toString());
//Here we will check authfailurehandler sequence exist in synapse artifact. If it is not available we will create
//sequence synapse configurations by using resource artifacts
if (!authFailureHandlerSequenceNameFile.exists()) {
createTenantSynapseConfigHierarchy(synapseConfigDir, tenantDomain);
}
https://github.com/wso2/carbon-apimgt/blob/master/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/internal/TenantServiceCreator.java#L124

        File graphqlFailureHandlerSequenceNameFile = new File(graphqlFilepath);
     if (!graphqlFailureHandlerSequenceNameFile.exists()) {
         createTenantSynapseConfigHierarchy(synapseConfigDir, tenantDomain);
     }

https://github.com/wso2/carbon-apimgt/blob/master/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/internal/TenantServiceCreator.java#L132
Therefore, when the file already exists the error is thrown. As this is harmless, the exception is ignored.


Web support?

I assume there is no web support yet? or ever will be? loved the prisma on expo!

There is no web support yet, but there will be eventually. Our plan is for Prisma to work in two environments: Apps and servers.
We are starting with Expo based apps, and will bring the same functionality to web+react and eventually other frameworks as well.

@sorenbs Thanks!

Would also really like web support. Being able to use one offline-first solution cross-platform would be a game changer.

+1. Is this on roadmap with any solid timeline yet?
(I ask bc we run a local-first react web app - our approach is local-first and our homespun tooling mirrors Prisma's query API very closely, even using the DMMF to resolve relations and generate types. We may be a great test bed of any proof-of-concept if we were given access to an alpha.)


Add "copy to curl" and "copy to clipboard" options for code samples

Add support of console for 1-click copying of the APIs in the curl format for easier consumption by developers.

In addition to adding this feature, can we add tracking as a measurement tool?

Being worked on by #1924


Develop Bathtub plusarg options

+bathtub_features - Feature files
+bathtub_verbosity - UVM verbosity for bathtub messages
+bathtub_dryrun - Parse but don't run
+bathtub_errormax - Stop after so many errors
+bathtub_include - Tags to include
+bathtub_exclude - Tags to exclude
+bathtub_start - Index of scenario to start with
+bathtub_quantity - Number of scenarios to run
+bathtub_stop - Index of scenario to stop on
+bathtub_help - Print help message then exit
See https://cucumber.io/docs/cucumber/api/#from-the-command-line

+bathtub_features works locally

+bathtub_dryrun works locally

Dropped +bathtub_errormax. Bathtub doesn't track errors, therefore there's no easy way to count them all.
User will have to implement this themselves.

Changed +bathtub_quantity to +bathtub_stop since starting and stopping functionality is already implemented.

+bathtub_start and +bathtub_stop work locally

+bathtub_verbosity works locally

+bathtub_help works locally