RTSP Quality VS YouTube RTMP

Hi,
I am wondering why the quality of my RTSP stream is so poor compared to an RTMP stream sent to youtube live ( see attached video )
I have a screen recording of a simple app - The top video is getting its stream from Kinesis ( pushed up using the gstreamer_sample_rtsp_app ) and the bottom video is locally encoded to RTMP using ffmpeg and then pushed to youtube live and embedded in my page.
The quality is the same in the AWS console.....
Anything I can do to improve this?
Thanks!
Home Page - AngularCoreAWS - Google Chrome 2018_03_19 19_07_10.zip

Also - below are the commands I am using and attached my camera settings
//OnUbutntu - RTSP
AWS_ACCESS_KEY_ID=MyKeyID  AWS_SECRET_ACCESS_KEY=MySecret./kinesis_video_gstreamer_sample_rtsp_app  "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif" MyOnvifStream1
//FromWindows
ffmpeg -f lavfi -i anullsrc -rtsp_transport udp -i "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif" -tune zerolatency -vcodec libx264 -t 12:00:00 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/youtubekey

@francoisdutoit the KVS end-to-end does not modify the encoded bits so the quality should be what your application/pipeline is producing.
I looked at the attached videos. The visual artifacts are not related to the quality of the encoder but the fact that the elementary stream is broken - either the timestamps are incorrect or frames are missing.
Could you please ensure that

Your application properly submits decoding timestamps and presentation timestamps - those should be properly done. I assume you are using the sample application?
There are no dropped frames on the producer side. Please run for the duration of the test and collect all the detailed logs so we can see whether there are any dropped frames, failed frames.
Less likely, your browsers support for MSE might have issues with properly decoding (I wouldn't even consider this at this stage)

Hi @francoisdutoit
The demo RTSP app has been tested with streams having video resolutions of 1900x1200 without any visual quality issues.

Could you tell us what environment you are running this demo app?
-- what is the Ubuntu configuration ( CPU / Memory / Network / Wired / Wireless Speed )?
Is it possible to run the ffmpeg also in the same environment and send us the screenshots?

Thanks
ss

@unicornss @MushMal
So running ffmpeg from the ubuntu vm still gives quality results on youtube - the only difference between the two streams is that I am directly pushing a RTSP stream to kinesis and with youtube I am converting the stream to rtmp using ffmpeg and then pushing to youtube.
See attached videos.
Captures.zip

PS:  My Windows 10 PC is an i7-7700 4.2Hgz with 16GB Ram
The Ubuntu VM that runs on the windows pc has 8GB of ram assigned.
My line speed is 8-10Mbps

Here is some of the console output from running the kinesis_video_gstreamer_sample_rtsp_app
KinesisConsoleOutput.txt

Check if you have errors from KVS Producer SDK. As I mentioned, please attach the full logs for the run so we can help.

@MushMal  - Where can I check for errors on the Producer SDK and where are the log files saved? - I am just running the sample app from the command line

As @MushMal  has mentioned the sample app sends the incoming data stream directly to KVS as it is received. The quality of the streams you are seeing in the console relates directly to the stream it receives from the source.

https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/kinesis-video-gst-demo/kinesis_video_gstreamer_sample_rtsp_app.cpp#L396

You may want to check your camera options (higher bitrate , subtype )  to send the best quality RTSP stream .

@francoisdutoit by default the sample applications output the logs on the console. You can capture the entire output from the console.

Hi @francoisdutoit
From your logs, it shows frames are getting dropped due to timestamp issue in the incoming stream.

ERROR - Failed to submit frame to Kinesis Video client. status: 0x32000002 decoding timestamp: 713726356 presentation timestamp: 713416203

For any errors you see in the logs, You can refer the details in https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-errors.html
Also, make sure you are using the latest sample application from the Github.
Thanks

@francoisdutoit  can you also provide details of the camera model you are using ... Thanks

@unicornss ,
It a Dahua  IPC-HFW1120S,
Device Type
IPC-HFW1120S
Software Version
2.420.0000.19.R, Build Date: 2016-06-24
WEB Version
<IP_ADDRESS>5658
ONVIF Version
2.4.2

@francoisdutoit  can you try Encode Mode as. H.264B (baseline profile) instead of H.264H ?

@unicornss . Ok - Let me try that....

@unicornss
That does not seem to make a difference...... I'm trying a few different settings with the main stream now that are not available in the substream. - Just to see what effect that has...

@unicornss ,
I'm going to install the latest version of the app to see if that makes a difference...... Will let you know if that makes any difference.  Thanks!

@unicornss  - so I'm running the latest version of the demo app now - but it is just timing out
createKinesisVideoClient(): Creating Kinesis Video Client
heapInitialize(): Initializing native heap with limit size 536870912, spill ratio 0% and flags 0x00000001
heapInitialize(): Creating AIV heap.
heapInitialize(): Heap is initialized OKINFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
INFO - New credentials expiration is<PHONE_NUMBER>
DEBUG - createDeviceHandler invoked
createDeviceResultEvent(): Create device result event.DEBUG - Awaiting for the producer to become ready...
DEBUG - Kinesis Video producer is Ready.
DEBUG - Client is ready
INFO - Creating Kinesis Video Stream MyOnvifStream1
createKinesisVideoStream(): Creating Kinesis Video Stream.DEBUG - describeStreamHandler invoked
DEBUG - Awaiting for the stream to become ready...
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=576ae9d8c8bcea527b7058c1b97c2c9e9ae7d0b723d02997caa4471f1bcd3acb
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195951Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=90a0279d9378eed4400f0a082dadc5558b5c634ca7ef75e2b764bb3da927594a
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195952Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=b14c36600bf87d070e5152f5c45c3ff783996b8f1b2c85056dc3c3f5af64c681
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195953Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=e831703be9a57cc6fd7de743f8a556ed7200bd296aaba04a1b1971821d8d9819
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195954Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=50bea7dcaad2cf96d94be2a73bafcb1af1131457de04b381784b7e6dfdb1d696
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195956Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=251e0028f10f5925b8a9a67110298e109569531986c56e58fe74ff2b7213b19e
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T195959Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.ERROR - Submitting event result for stream:<PHONE_NUMBER>4678 failed with:<PHONE_NUMBER>
ERROR - Reporting stream error. Errored timecode: 0 Status:<PHONE_NUMBER>
ERROR - Failed to create Kinesis Video Stream - timed out.
terminate called after throwing an instance of 'std::runtime_error'
what():  Failed to create Kinesis Video Stream - timed out.
Aborted (core dumped)

I'm getting the following error with the latest version....
describeStreamResultEvent(): Describe stream result event.DEBUG - describeStreamHandler invoked
INFO - Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
ERROR - curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Problem with the SSL CA cert (path? access rights?): error setting certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: none
WARN - HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJ2WGXLCSWYBFSUFQ/20180320/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=101dc453907fe8293648b6ce28be254a11d63f2b30a0553dbe97aa46ca1056fb
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180320T202521Z
DEBUG - describeStream response:
INFO - Describe stream did not find the stream MyOnvifStream1 in Kinesis Video (stream will be created)
describeStreamResultEvent(): Describe stream result event.ERROR - Submitting event result for stream:<PHONE_NUMBER>1990 failed with:<PHONE_NUMBER>
ERROR - Reporting stream error. Errored timecode: 0 Status:<PHONE_NUMBER>
ERROR - Failed to create Kinesis Video Stream - timed out.
terminate called after throwing an instance of 'std::runtime_error'
what():  Failed to create Kinesis Video Stream - timed out.
Aborted (core dumped)

This is caused by certificate issue. Please refer to https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp#certificate-store-integration to fix this.

As @zhiyua-git   mentioned this is due to the certificate issue and you need to copy the certificate as in https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp#certificate-store-integration . Then follow the steps in https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/issues/40 to rebuild the curl.

Basically curl is not able to refer the cert ca bundle and thus fails validation. curl which was downloaded as part of the install-script uses libssl and other dependencies from the local folder (<producer_sdk_path/kinesis-video-native-build/downloads/local/lib). Looks like your curl was not build properly. Can you please reinstall curl by following below steps? This should fix the issue.
rm <producer_sdk_path>/kinesis-video-native-build/downloads/local/lib/libcurl*
rm <producer_sdk_path>/kinesis-video-native-build/downloads/local/bin/curl*
cd <producer_sdk_path>/kinesis-video-native-build/downloads/curl-7.57.0
export DOWNLOADS=<producer_sdk_path>/kinesis-video-native-build/downloads
make clean
./configure --prefix=$DOWNLOADS/local/ --enable-dynamic --disable-rtsp --disable-ldap --without-zlib --with-ssl=$DOWNLOADS/local/ --with-ca-bundle=/etc/ssl/cert.pem
make
make install

@unicornss @MushMal
So running the latest version has resolved the issue :) The quality is fine now :)
Thanks for the help :)


feat(apm): add trace span procedural macro

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Which docs this PR relation:
Ref #
Which toolchain this PR adaption:
No Breaking Change
Special notes for your reviewer:

Codecov Report

Merging #116 (3746e16) into main (f6484fd) will decrease coverage by 0.24%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #116      +/-   ##
==========================================
- Coverage   38.67%   38.43%   -0.25%
==========================================
  Files          75       76       +1
  Lines        5120     5152      +32
==========================================
  Hits         1980     1980
- Misses       3140     3172      +32

Impacted Files
Coverage Δ

common/apm/src/tracing.rs
0.00% <0.00%> (ø)

core/api/src/jsonrpc/impl.rs
0.00% <ø> (ø)

core/consensus/src/adapter.rs
0.00% <ø> (ø)

core/consensus/src/consensus.rs
0.00% <ø> (ø)

core/consensus/src/message.rs
0.00% <ø> (ø)

core/consensus/src/wal.rs
0.00% <ø> (ø)


GRANT: debug files for sync attachment service

Resolves:

Attempt to resolve prod bug;

Changes:

Added more logs;
Skip on failed attachments;

References:

N/A;

Screenshots:

N/A;

Safety

[x] lint;
[x] test;
[x] prettier;

Fix worked, need to merge to dev first before pushing to main


Don't we want to test the --cifti-output integration?

Since this 8421f89701d2f474d788e3f24d695f5393c4a9bb, ds005 is run without --cifti-output. We probably want to take it back, right? /cc @effigies

I thought we only removed it in the rerun test.

I haven't looked in depth but I don't think it's in the config file at all.
I spotted it because the report doesn't have anything about CIFTI
On Sat, Mar 5, 2022, 15:19 Chris Markiewicz @.***>
wrote:

I thought we only removed it in the rerun test.
—
Reply to this email directly, view it on GitHub
https://github.com/nipreps/fmriprep/issues/2735#issuecomment-1059773429,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAESDRTHWDC6YWE7DG3WVS3U6NUPJANCNFSM5P7WDI5A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


DraggableScrollableSheet + snap + setState not working

DraggableScrollableSheet does not scroll if snap true is set and if i try to set a state inside the NotificationListener with DraggableScrollableNotification.
What im getting
https://user-images.githubusercontent.com/4725556/182286601-dbde9f3d-7cb9-47f9-8c49-2a4610647c71.mov
What im looking for
i want to be able to set snap true and use setState inside NotificationListener
What am i doing wrong?
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.3.1 21E258 darwin-x64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.69.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

minimal code reproduction
NotificationListener<DraggableScrollableNotification>(
        onNotification: (notification) {
          _scrolledSize = notification.extent;
          setState(() => someVar = _scrolledSize); //remove this and snap will work
          return false;
        },
        child: DraggableScrollableSheet(
          snap: true,
          builder: ((context, scrollController) {
            return SingleChildScrollView(
               controller : scrollController,
               child : Container(width:100, height:100, color : Colors.red)
            );
          }));

close this as https://github.com/flutter/flutter/pull/107876/files has fixed the issue, just wanted to know when its gonna be on stable channel, thanks.


[native_assets_cli] asset ids

This PR explores a solution to https://github.com/dart-lang/native/issues/1410:

CodeAsset with a String id
DataAsset with a String package and String name
No shared getters in Asset.

This leads to the following quirks:

Validation on all assets communicates errors in terms of assetIDs, which data assets do not have.

Could be mitigated if we add a 🥁  String get id; that produces a string representation of the package and name.

package:native_toolchain_c still only takes an asset name, because the package is already read from the config.

If we have a use case for having the combined string for data assets, and need for the individual components of name and package in native code assets, maybe we should embrace having both.

AssetId extension type on String. Enables passing around the combination and get out both package and name. And the logic can be explained on the extension type. But, verbose constructor calls for DataAsset and NativeCodeAsset.
String get package, String get name, String get id => 'package:$package/$name'; on Asset. More concise, in use. The logic needs to be explained on the getters. (Constructors take package and name to facilitate correct by construction.)

At the risk of more bike shedding. cc @mkustermann @mosuem @HosseinYousefi (Feel free to continue the discussion on https://github.com/dart-lang/native/issues/1410 instead of this PR.)

coverage: 91.068% (-0.002%) from 91.07%
when pulling d85a4183b869d9d64c21f7fd905f6923ca9128d4 on asset-id
into 75805b2f46d747643af3fb71c2abc84296ba4e32 on main.


Typos corrected

There were a few Typos on the code. So, as Flat Feather asked, I corrected them

I corrected some more typos (this time mostly by hand) so double check it, please

It looks like PR is pending @Girelli56617 's signature.


Rules to generic: Can´t use span or small inseide form or fieldset

Hi,
first thanks for your great and simple theme. I use this theme very often. But there are some css rules that are to generic and break some of my stuff.
form.css
form span         {/*...*/}
fieldset small    {/*...*/}
/*...*/
input[type="checkbox"] + label + small
/*...*/
input[type="radio"] + label + small
/*...*/
.hide-lables fieldset.error input + small,
.hide-lables fieldset.error select + small,
.hide-lables fieldset.error textarea + small
.hide-lables small

Because of this to selectors I can´t really use a span or small element inside my forms. Also form span  change the inline element span into a block element. I use span very often for inline styling e.g.: changing a text color. I´m not sure for what you are using this selector. Disable the display:block and the margin properties doesn´t change anything in your examples, because .radio > span or .checkbox > span will take over.
Also I use small to only changing the size of the inner text. In the hide-labels the small element will also be hidden.
So you may wanna change this selectors to something like this:
form.css
form .form-block         {/*...*/}
fieldset .error    {/*...*/}
/*...*/
input[type="checkbox"] + label + .error
/*...*/
input[type="radio"] + label + .error
/*...*/
.hide-lables fieldset.error input + .error,
.hide-lables fieldset.error select + .error,
.hide-lables fieldset.error textarea + .error
.hide-lables .error

It´s just an recommendation but in the current state, I always have to change this values before i can use your theme.
regards,
David

Thank you, A very good point you raised here, I'll take a look at reworking the forms span & small to use a class rather then targeting them directly.

Thanks @DavidWiesner
@MikeBallan can we see if there any more rules like such in other components and bundle all the fixes in one go?

@shahrukhomar Sure ill take an audit of then CSS and see what else there is we can apply this too..!


Refactoring: Extract alertmanager http cli from amtool

Currently, alertmanager has no client for the existing rest API. The amtool has commands that access the API endpoints, but the client code (query, and parsing) is totally coupled to it.
Also, almost no tests exist for it.
I propose we extract the query/parsing of the API from the amtool, and expose it properly in the cli package, moving the amtool commands to a new package inside the cli (e.g.: cli/cmd).
This has lots of benefits in my opinion. Eg:

We can adequately test the code that accesses the API, ignoring the dependencies of the cmd lib (corba/viper/etc).
A lib to alertmanager HTTP api can serve as a documentation https://github.com/prometheus/alertmanager/issues/511, and also allow others to write their tools on top of it.
It simplifies the migration from one cmd tool to another, like the one in this PR https://github.com/prometheus/alertmanager/pull/976.
It decouples specific features of the tool, from the HTTP client like https://github.com/prometheus/alertmanager/issues/1028.

I'm willing to work on this if team/community thinks it makes sense.
@stuartnelson3 @brancz @mxinden @fabxc what you think?

This is somewhat intentional currently, as the Alertmanager API is likely to change (possibly in a breaking way, regarding client usage apart from the alert receiving endpoints). Separating and decoupling the code is a good idea anyways, but usage outside of this repo rather not recommended.
Question is, if we're already touching this, do we also want to diverge towards grpc APIs like Prometheus?

Code for this exists in this pr here: https://github.com/prometheus/client_golang/pull/333
If you want to take over adding tests, it's basically done.

Code for this exists in this pr here: https://github.com/prometheus/client_golang/pull/333
If you want to take over adding tests, it's basically done.

@josedonizetti are you still working on this? If not, I can carry on.

@simonpasquier let me know if you start, I have some time off in a month when I was planning on doing this but it would be nice not to duplicate work :)

closed by #1278


Accelerate divmod() in Cython by calling C div() for C int type integers

Inspired by #3780, this is my first attempt accelerating divmod() in Cython by calling (pure) C div() function for C int type integers.
If this is expected, I could subsequently open another PR for C long type integers by calling (pure) C ldiv() function.
Do I need to append the div() function as the C API equivalent in the docs/src/userguide/language_basics.rst file?

Do I need to append the div() function as the C API equivalent in the docs/src/userguide/language_basics.rst file?

I don't think so - This is just a fairly invisible optimization

Maybe improvement for another PR but is it possible to avoid creating tuple when user stores result in ctyple?
cdef (int, int) bar = divmod(...)

Maybe improvement for another PR but is it possible to avoid creating tuple when user stores result in ctuple?
cdef (int, int) bar = divmod(...)

I think this was suggested in https://github.com/cython/cython/issues/3780, but would probably be quite hard to do I think. I'd probably leave it for another PR

Realised that Python and C/C++ use different algorithm in calculating quotients and remainders. This results in different answers between Python and C/C++ when the dividend is negative and the divisor is positive and vice versa.
So I still need to call the PyNumber_Divmod() function for these situations. Switch the optimise function to unsigned int would overflow for the C div() function.
As for the cdef (int, int) bar = divmod(...) approach, I cannot come up with such solution within my current knowledge.

Yeah, there's dedicated integer division/modulus code for this:
https://github.com/cython/cython/blob/master/Cython/Utility/CMath.c#L43
I think you can do this here as well. Just leave a comment where it came from.
Also, you need to handle the division by zero case.
https://github.com/cython/cython/blob/master/Cython/Utility/Optimize.c#L1190

I think this has been reviewed fairly thoroughly so let's merge it. Thanks @unnecessary-username


ComfyUI-CogVideoXWrapper (Fix or Uninstall)

hello guys.
i accidentally closed comyui cmd and it was downloading the cogvideo model and sence then CogVideoXWrapper not working anymore i tried to reinstall the wrapper with requirments and still the same issue.
i tried to reinstall comyui and still the same issue, oh and i installed timm too and still.
it was working fine on text to vid and img2vid i tried to download the newer version and this happened.
so please can someone help me.

I'm having the exact same issue.

Looks like timm sneaked in as dependency with the PAB update, it's not actually used by CogVideoX anyway so I've now removed it as requirement, updating should solve that issue.
For any other import issues please always report what the error in the log says, like above with timm, it's very helpful.

Looks like timm sneaked in as dependency with the PAB update, it's not actually used by CogVideoX anyway so I've now removed it as requirement, updating should solve that issue.
For any other import issues please always report what the error in the log says, like above with timm, it's very helpful.

thank you so match i update all and it fixed. ❤


Continue button not greyed out when 'Add Files' field is blank

Describe the bug in current situation
Under the Records tab, when a user uploads a file/folder through the 'Upload Records' modal, and then immediately selects 'Upload Records' again, the user is able to click 'Continue' without attaching a new file/folder.  If the user clicks 'Continue' without adding a new file/folder, the initial file/folder that was uploaded will be reuploaded.
Link bug to the User Story
User Story # 2779
Impact of this bug
Describe the impact, i.e. what the impact is, and number of users impacted.
Low
Chance of Occurring (high/medium/low/very low)
High
Pre Conditions: which Env, any pre-requesites or assumptions to execute steps?
Tested in TEST-MARSHAL on record # EDI-2022-01234, with user foiedu@idir (ministry coordinator role). Tested on Microsoft Edge, Chrome and Firefox.
Steps to Reproduce
Steps to reproduce the behavior:

Under the Records tab, click the 'Upload Records' button to open the Upload Records modal
Add a file/folder using the "Add Files" option, or by dragging and dropping a file/folder.
Click "Continue", and the file/folder should be uploaded.
Click the 'Upload Records' button again.
There should be no files/folders in the "Add Files" field, but the "Continue" button should be available to select (i.e., not greyed out).
If you click the "Continue" button, the initial file/folder you uploaded will be uploaded again (it will be a duplicate).

Actual/ observed behaviour/ results
GIVEN you have just uploaded a file/folder through the 'Upload Records' modal (under the Records tab)
AND you have not left the Records tab
WHEN you click 'Upload Records' to open the Upload Records modal
THEN the 'Continue' button is not greyed out, and you are not required to add a new file/folder
AND if you click 'Continue' when the 'Add Files' field is empty, the initial file/folder you uploaded will be reuploaded.
Expected behaviour
GIVEN you have just uploaded a file/folder through the 'Upload Records' modal (under the Records tab)
AND you have not left the Records tab
WHEN you click 'Upload Records' to open the Upload Records modal
THEN the 'Continue' button should be greyed out until you must add a new file/folder.
Screenshots/ Visual Reference/ Source
If applicable, add screenshots to help explain your problem. You an use screengrab.

Below is the initial file/folder being uploaded. After the file was added to the 'Add Files' field, the continue button was clickable (i.e., no longer greyed out). After clicking 'Continue', the file is uploaded and posted on the Records tab. This is expected functionality.

Without leaving the Records tab, when you click the 'Upload Records' button again, the 'Continue' button is not greyed out when the 'Add Files' Field is empty. This is not the expected functionality.

If you click 'Continue' when the 'Add Files' field is empty, the initial file/folder you uploaded (in Step 1 above) will be reuploaded.

Thanks @KyEggleston.  @nkan-aot could you please look into this issue?

i think it can be closed, cc @abin-aot @lmullane what do you think?

I will close it and tag it to go with the Fees Release.

@lmullane This is part of Gathering records. Hence changing the release tag to Gathering Records.


Chances to change the default route. Is this a use case ?

I've heard that some VPN case could be the one. (but now there is no CNI plugin for VPN yet, so it could be a future case)
I suppose IP routing can be one possible challenges in multi interface.
In current CNI specification, user and CNI plugin can add IP route, but user cannot
delete/filter ip routes added by CNI plugins. In case of multus multiple interface,
non master plugin cannot change the route added by master plugin.
The most visible case could be default route. So we could provide fix to mask default
route as quick fix. Then we could discuss more general case for users to filter any
IPv4/v6 routes with network-attach-definition or some other way, I guess.

This is covered in the latest version of the NPWG spec with default route selection.


BUG: Fixed fraction in ADTriggerStatus to match docs

Fixes the ADTriggerStatus to match the behaviour as documented in https://github.com/bluesky/bluesky/pull/1496/files
Also, added a test for this behaviour.

@DominicOram Would you mind rebasing to fix the merge conflict? Should be a simple one. Sorry that this sat here way too long.


Suggestion

a Boss or "Nether King" would be awesome.

New content is not currently being planned for NetherEx and it will remain the same for the foreseeable future.


windows js_module_loader_so support

I've done one before by dlfcn-win32, now use win32 api LoadLibraryW, GetProcAddress, FreeLibrary replace unix dlopen, dlsym, dlclose.
Here's my implementation, ignore xmake build file
https://github.com/zeromake/quickjs-ng/commit/86b7df5fc729a8c7535ca14ac2b6229246f5f84e#diff-95fe784bea3e0fbdf30ba834b1a74b538090f4d70f4f8770ef397ef68ec37aa3R482
Run an example
❯ git clone https://github.com/zeromake/quickjs-ng.git
❯ cd quickjs-ng && xmake f -c -y
❯ xmake b qjsc && xmake b qjs && xmake b fib
❯ xmake r qjs ..\..\..\..\examples\test_fib.js
Hello World
fib(10)= 55

But there are still a lot of uncertainties

like node native file is .node be supported, but quickjs is .so.
fallback path search? Eg: "./fib.so" find ["./fib.so", "./fib-${platform}-${arch}.so"]
cmake test windows local native module support

I'd say open a PR and let's go through it!

Is of no concern here. On windows shared libraries should have a .dll extension, as is customary.

@saghul ok, I'll bring the PR out first later


how to set/change the Outline level of a paragraph <w:outlineLvl w:val="#"/>?

Thanks for the project.  It's very appreciated.
I have an issue where despite me changing the styles, it does not change the outline level.  What I am trying to do is correct anything that matches the Normal Style to a Body (Outlinelvl = 9) however I have not figured out how I can modify this xml value.  Could anyone help?
<w:pPr>
    <w:pStyle w:val="TOC9"/>
    <w:outlineLvl w:val="3"/>
    <w:rPr>
      <w:rStyle w:val="Strong"/>
    </w:rPr>
  </w:pPr>

How far have you gotten? Post the code you're trying and in particular what python-docx object you're starting with and we'll see if we can help. Otherwise your question reduces to "how do I edit XML"? Which is a legitimate question if that's where you're at, but addressed very differently.

Absolutely, thanks for the response.  I have not gotten far, I was hoping if I may be missing some setter in the Paragraph object to change outlinelvl.
I have the following code.  It's very simple it just looks for a paragraph that includes the word [Requirement] in the paragraph text and sets the style Normal which I was hoping would also change outlineLvl w:val="3" to outlineLvl w:val="9" (e.g. body text).  I've also tried other styles like Body_Text, TOC9 etc from the list of available styles however while the style changes, the outlinelvl does not change from outlineLvl w:val="3".
print("\n\n*************************************")
print("Correcting Outline level for body text.")
print("*************************************\n")

for paragraph in document.paragraphs:
	ptext = paragraph.text
	p = paragraph._p
	if ptext.find("[Requirement]") != -1: #[Requirement] found in text
		#print("\nFound [Requirement].")
		print(ptext)
		#pxml = p.xml
		print(p.xml)
		# set paragraphs with [Requirement] to Normal
		paragraph.style = document.styles['Normal']
		# *** have tried Normal, Body_Text, TOC9 etc. however the Outline level of this paragraph does not change from <w:outlineLvl w:val="3"/>
		print(paragraph.style.name) # show the style name of the paragraph
		print(paragraph.text) # show the text of the paragraph
		print(p.xml) # show the xml of the paragraph

I do not see it under parfmt so this may just be a new feature request ?:
from .text.parfmt import (
    CT_Ind, CT_Jc, CT_PPr, CT_Spacing, CT_TabStop, CT_TabStops
)
register_element_cls('w:ind',             CT_Ind)
register_element_cls('w:jc',              CT_Jc)
register_element_cls('w:keepLines',       CT_OnOff)
register_element_cls('w:keepNext',        CT_OnOff)
register_element_cls('w:pageBreakBefore', CT_OnOff)
register_element_cls('w:pPr',             CT_PPr)
register_element_cls('w:pStyle',          CT_String)
register_element_cls('w:spacing',         CT_Spacing)
register_element_cls('w:tab',             CT_TabStop)
register_element_cls('w:tabs',            CT_TabStops)
register_element_cls('w:widowControl',    CT_OnOff)

Alright, I think the code I'm looking for is this:
document = Document("my_doc.docx")
paragraph = document.paragraphs[42]
print(paragraph._p.xml)

Which produces something like:
<w:p>
  <w:pPr>
    <w:pStyle w:val="TOC9"/>
    <w:outlineLvl w:val="3"/>
    <w:rPr>
      <w:rStyle w:val="Strong"/>
    </w:rPr>
  </w:pPr>
  ...

If that's the case, probably the easiest thing is just to drop the w:outline element altogether, since it is not needed; that sort of thing is typically provided by the style, but it looks like the author perhaps customized it here by applying it directly to the paragraph.
outlineLvls = paragraph._p.xpath(".//w:outlineLvl")
for outlineLvl in outlineLvls:
    outlineLvl.getparent().remove(outlineLvl)

or more compactly:
map(lambda o: o.getparent().remove(o), paragraph._p.xpath(".//w:outlineLvl"))

Awesome!  I very appreciate it.  Worked perfect.

Thank you!!!


Update papers Postolache

👷 Deploy Preview for gladia processing.

Name
Link

🔨 Latest commit
741995ae8544c91c3103e5f268143cf85745a434

🔍 Latest deploy log
https://app.netlify.com/sites/gladia/deploys/6637a44f5fd5b700084a05e4


Consider having a way to avoid storing default values of formals in forwarding stubs

Currently the default values are copied to formals of the stubs from the procedures they forward to.  It incurs undesirable consequences for modular compilation and summaries.
For more context, please see https://github.com/dart-lang/sdk/issues/31027.

/cc @stereotype441

Specifically, the undesirable consequence is that if a method is in module A, and a forwarding stub is generated for it in module B, then during compilation of module B, the default parameters for the method in A won't be seen (because, as I understand it, .outline.dill files don't include the values of default parameters).  Therefore, the forwarding stub will not have the correct default parameters, leading to incorrect behavior of the compiled code.  For example:
// In module A:
class Base {
  num f([num x = 10]) {
    return x;
  }
}

// In module B:
class Interface<T> {
  num f([T x]);
}
class Derived extends Base implements Interface<num> {
  // Since Derived is a subtype of Interface<Object>, the type system can no longer
  // statically guarantee that the value passed to f is a num, so a forwarding stub needs to
  // be inserted that effectively looks like this:
  //
  //     num f([covariant num x = 10]) => super.f(x);
  //
  // However, with modular compilation, the default value for x is lost, so instead we get:
  //
  //     num f([covariant num x]) => super.f(x);
}
main() {
  var derived = new Derived();
  print(derived.f()); // Should print 10; prints null with modular compilation
}


Cleanup commands, fix scrolling

If possible, please merge #27 before this pull request because this PR deals with commands more extensively
Apologies for not doing this in multiple commits
Changes

Cleanup command code (permissions, ordering, etc.)
Fix Shard Tablet screen scrolling too much sometimes
Removed all usages of the var keyword (This might be a bit overkill, though. I understand why someone would want to use the var keyword, but I just found it confusing. (For some reason, there was one instance where var was being used instead of int.) Feel free to replace (or tell me to replace) the longer types (i.e. Map.Entry<Identifier, JsonElement> and CommandNode<FabricClientCommandSource>).)
Implemented the view command

For future discussion

Group together arguments with their (sub)commands
Change the permission level of all library subcommands to 4 to match with library deleteall or downgrade deleteall's permission level to 3 for consistency (if I can delete one at a time, why not delete all of them at once?). Additionally, command blocks should never be able to execute library commands (even if they somehow get a permission level of 3 or 4), so there should be a player validation check.

If possible, please merge #27 before this pull request because this PR deals with commands more extensively
Apologies for not doing this in multiple commits
Changes

Cleanup command code (permissions, ordering, etc.)
Fix Shard Tablet screen scrolling too much sometimes
Removed all usages of the var keyword (This might be a bit overkill, though. I understand why someone would want to use the var keyword, but I just found it confusing. (For some reason, there was one instance where var was being used instead of int.) Feel free to replace (or tell me to replace) the longer types (i.e. Map.Entry<Identifier, JsonElement> and CommandNode<FabricClientCommandSource>).)
Implemented the view command

For future discussion

Group together arguments with their (sub)commands
Change the permission level of all library subcommands to 4 to match with library deleteall or downgrade deleteall's permission level to 3 for consistency (if I can delete one at a time, why not delete all of them at once?). Additionally, command blocks should never be able to execute library commands (even if they somehow get a permission level of 3 or 4), so there should be a player validation check.

@ekulxam set for a merge

Sorry, I haven't been able to work on this very much. I'll see what I can do to solve #30 and fix the conflicts in time for Modfest 1.21 opening day.

Reopening because I accidentally nuked the PR
I'll look into fixing #30 now


Support CUDA 12

Depends on issue ( https://github.com/conda-forge/staged-recipes/issues/21382 )

NVIDIA has not released a cuDNN version that supports CUDA 12 yet.

Or perhaps more generally figuring out how we handle this package as part of those changes

There is now a CUDA 12 cuDNN, however, they no longer upload archives. This is an issue for us at Nixpkgs. Does anyone here (including maintainer @kkraus14) have a way to contact NVIDIA to release the archives?

I was just told the archives were moved to https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/.

Looks like <IP_ADDRESS> is the first version supporting CUDA 12

@conda-forge-admin, please re-render

Added PR ( https://github.com/conda-forge/cudnn-feedstock/pull/59 ) to apply the CUDA 12 migration on this feedstock. Not expecting many changes from that


gulpfile javascript build

@colin-marshall could you look at the gulp.task('javascript', function()
Even if I comment out all the assets in PATHS{ javascript:[] } and rebuild the file the resulting foundation.js shows no changes.

Anytime you make changes to the gulpfile you have to stop and restart the gulp task for them to take effect. Did you do this after commenting out the paths?

I didn't have watch running.  I just ran build.

@jimlongo56 I have solved the issue.
When I made the gulpfile I did some testing and thought I didn't need to have a clean task that deletes the files before it rebuilds them. I think I only tested it with the SCSS though and not the JS, and it looks like foundation.js definitely needs to be deleted before it gets built. Check out the PR above if you need this fixed before it gets merged.

Thanks @colin-marshall that seems to have fixed that.

Yup! Would you mind reopening this issue until the PR is merged? Thanks!


Extracting MultiEntity and their associations

At present we can find multiple entities but I am unable to find association among them with the current rasa.
For eg:
Apple CEO Tim Cook met with Microsoft CEO Satya Nadella last month in California.
In this I can easily find "Apple", "TIm Cook","Microsoft","Satya Nadella" as entities but how can I relate first 2 with each other and last 2 with each other, how can I feed this info while training my model.
Earlier I was solving this issue using dep parsing but with rasa is there any way to solve this.
Secondly, Are we using Delexicalisation anywhere in rasa.
Regards,
Mayank

Can anyone from the rasa team tell me whether its possible or not whatever I mentioned in my first comment.

To clarify a little bit your question, can you show an example of the data structure you want to extract from the user input? Is it something like this:
{
  "text": "What can you tell me about Satya Nadella",
  "intent": "info",
  "entities": [
    {
      "start": 28,
      "end": 41,
      "value": "Satya Nadella",
      "entity": "person",
      "relation": { "Microsoft": "CEO" }
    }
  ]
}

There is no way to feed this kind of information in your training data. Rasa is not really meant to be a low-level NLP framework, but if you feel it necessary for your chatbot, you can try to build your own component (see the link below) to fill this gap.
As for your second question, do you have an example of what you call "delexicalisation"?
Also have a look at the doc related to Rasa NLP internals.

For the first part the data structure should look like as follows:
{
"text": "Apple CEO Tim Cook met with Microsoft CEO Satya Nadella last month in California",
"intent": "info",
"entities": [
{
"start": ,
"end": ,
"value": "Apple",
"entity": "org",
"relation_to": { "Apple": "Tim Cook" }
},
{
"start": ,
"end": ,
"value": "Tim Cook",
"entity": "person",
"related_to": { "Tim Cook": "Apple" }
},
{
"start": ,
"end": ,
"value": "Microsoft",
"entity": "org",
"related_to": { "Microsoft": "Satya Nadella" }
},
{
"start": ,
"end": ,
"value": "Satya Nadella",
"entity": "person",
"related_to": { "Satya Nadella":"Microsoft"}
},
{
"start": ,
"end": ,
"value": "California",
"entity": "loc",
"related_to": {}
}
]
}
I haven't add start and end but the structure should look like this and I don't need any knowledge from outside as you explained in your structure ie. "CEO", I just want to tag whatever is there in sentence.
For second question ,
Delexicalisation: slots and values are replaced by generic tokens (e.g. keywords like Chinese food are replaced by [v.food] [s.food] to allow weight sharing)

To quote myself:

There is no way to feed this kind of information in your training data.
Rasa is not really meant to be a low-level NLP framework, but if you feel it necessary for your chatbot, you can try to build your own component to fill this gap.

I don't think Rasa use any "delexicalisation" mechanism as words are just processed into features vectors and no featurizer use "delexicalisation" AFAIK.

Can I ask what the use case is or would be for the association in the realm of chatbots or natural language agents?

@wrathagom  If multiple entities are present in user query and you want to take action based on that, then you should know which entities are related to each other. For eg. Book a train from A to B and flight from B to C , here I can extract entities A, B, C but how to relate train to A and B & flight to B and C. Another use case , I need a red shirt and blue tie, here red, shirt, blue , tie I can find but how to relate red to shirt and blue to tie.
I think you understand my requirements, for now I am using dep parsing and semantic parsing to resolve such issues, but how can I go with data driven approach like rasa to solve such issue.
Can you help me out what can be the best way I can develop a component to solve such problems.

To build a new component achieving that, have a look at one of the extractor source code. You just have to build a component extracting dependencies using the same tools you are using now and add its result to Rasa json output.
But talking about the design, I'd like to think that chatbots are just simple API interfaces in natural language. In your example:

Book a train from A to B and flight from B to C

You have two api calls:

One for booking train places
Another for booking flights

In the same way you wouldn't try to overcomplexify your API calls by composing them together, you should design your chatbot to handle these separately (count/check your extracted entities types for instance).
Otherwise you'll end up wanting your chatbot to handle things like:

You: Hi. Do you know where I can find an Indian restaurant in Chigaco open after 10 p.m. because I'll travel by plane from New York to Chicago from tomorrow to the end of September and I'm so fond of Indian food even if I like eating Italian from time to time. So could you also book the cheapest airplane ticket available please and check the meteo: I'd like to see if there will be some turbulences as I feel a little bit uncomfortable in planes. And could you also send a mail to my GF to tell her I'm OK once I arrived?

Your chatbot: ...

You get the point.

@PHLF  I agree with you , it will be handled by 2 api calls only but my question is what is your thought on how to divide the query based on entities as all are cities and from intent perspective I can get only single intent, for my second example, I need a blue shirt and red tie, what should be your approach for this in order to link blue to shirt and red with tie.

A first raw idea would be to define from <city> as being entities of <departure_city> and to <city> as being entities of <arrival_city>. Of course such an approach can be improved a lot but it can already cover a lot of cases.
This case is a little bit more complex as what you describe here are structured entities: you have entities and subentities. This is the kind of things LUIS for instance can handle natively. Rasa doesn't at the moment (the CRF entities extractor component could theoretically achieve that as it is extremely powerful and has margin for improvement). But you can also work with entities like: color, size... and cloth_type, define your API to require only cloth_type as a mandatory entity then check if there are other generic entities in the user input like color... So you'll be able to handle cases such as:

I'd like to buy a tie // Ok let's look for all available ties.

I'd like to buy a blue tie // Ok let's look for all available big blue ties

I'd like to buy a big blue tie // etc.

With structured entities you would be able to handle things like:

I'd like to rent a six wheeled car

Being wheeled is an inherent property of a car object

Multiple intents per message is a duplicate of #374 and the Rasa guys have already said they want to handle it. I can see value for different associations within the entities.
So:
I want to buy a red shirt shirt may be the actual entity and red is detected to modify it.
I want to buy a big blue tie tie is the actual entity with two modified big and blue.
You may be able to accomplish this with syntactic analysis. I'm sure the Rasa guys could come up with a fancier solution too.
Even I want to book a flight from A to B and book a train from B to C may be able to be split into two using the same method.
For today, I wonder if you can train a too_many_questions sort of intent until some of the above could be implemented.
So have a book_a_train intent and book_a_plane intent and then one that tries to do both with a default response of. "I think I can help you, but let's handle things one at a time. What would you like to do first" sort of a thing. I'm not saying that's the most sophisticated or elegant, but it may be a good solution for the functionality that exists today.

partial duplicate, Github is half right.

@mayankg53 @wrathagom @PHLF
I also have difficulties concerning structured entities or entity assiciations. For example, let me show some simple requests for a simple database Friendship:
  1. "show info of PersonA" --> intent: 'get_info'; with a 'person' entity
  2. "show info of PersonA's friend PersonB" --> intent: 'get_info'; with two 'person' entities, but we want to only know about PersonB
  3. "show info of PersonA and PersonB" --> intent: 'get_info'; with two 'person' entities, and we want to know both of them
  4. "show info of PersonA's friends" --> intent: 'get_friends'; with a 'person' entity

Things rapidly become much more complicated if more types of relationship (teacher/student, parent/child), more intents (get_teacher), more complex text structures (ex: "A, who is a friend of ...") are concerned.
One solution I can eaisly imagine, it's the sentence sparsing (lower-level, ex: that of SpaCy). For the 2nd example, the sentence structure can tell us we want to know about PersonB, not PersonA; while in the 3rd example, we want to know the both. To my knowledge, it cannot be done at the level of Rasa NLU yet at present (please tell me if i'm wrong). The structured entity might be an interesting functionality to implement in Rasa NLU.
PS: and eventually structured intents (not only a problem of 'multi-intents', but also intent associations and hierarchical intent), such as get_info(get_friend_names) or yes_no(count(get_friend_names)==10), etc.

we now have support and examples around knowledgebases - I'll close this for now


Test against original VOC Implementation

I would not use these result in a paper until this implementation is compared with the official VOC implementation.

I think you forget the setp, sort by score.

Sorry, I am not sure to understand, could you give me more precision or some reference? Thank you!

@MathGaron did you ever follow up on this? I am getting different results (lower score) than with the official COCO API (assuming it's the same as VOC). Also the precision in PR curve drops to zero early in most cases (although I do not fully understand the theory of the PR curve)
Example of precision dropping to zero

I actually never checked this in details, I am kind of busy with a few projects... I also did not check current coco implementations. It would be awesome if you could provide me some code + samples for the coco evaluation and this evaluation. I could check where my implementation diverges. Also it seems that some people uses this code so I should make it a priority!
Thanks for pointing that out, I should have done this before...

I will brush up my PR-curve theory and create an example to check the results against. It is possible that the differences are due to minor differences in the algorithms or possibly how our model is evaluated during training vs after training. Let's see!
The COCO code for mAP score is here https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocotools/cocoeval.py (description here)

Awesome thanks so much. I will have some time to check this out in depth next week. Thanks for taking the time to investigate this!

While we did not find an error in this implementation, we discovered a reason for the difference to our existing results. The library we were using, Luminoth, takes all predictions to compute mAP at runtime, then for evaluation the predictions are filtered with confidence > 0.7. If you are interested in their implementation, see calculate_metrics in https://github.com/tryolabs/luminoth/blob/master/luminoth/eval.py

@StephenRUK
Hello,
First of all, thank you for implementing such a useful tool. I am curious if the issues that was brought up previously, precision dropping early & testing with original VOC result have been resolved.
Also relating to the last comment in this thread, I briefly read through calculate_metrics in luminoth but I don't see any filtering related code for predictions with a confidence lower than 0.7.


Avoid format string literals

format string literals f"{foo}" is not working in Python 3.5 or older.

#27 is also Python's version problem.


/api/commit/item/digg/ cannot run without a certain header

Looks like TikTok added a new header for more blockage. "hTc6j8Njvn" it has a, b, c, d, f. You cant like or follow without adding these header values. I tried debugging from console but there are so many functions. Looks like part of the _sig. Please fix it, thank you.


New device: Eurom Soleil 601

Can you please add support for this device? The product page is here: https://eurom.nl/en/product/permanent-heating/infrared-heaters-permanent/mon-soleil-601-wifi/ There are also larger and smaller models I guess they all work the same way.
Right now the device is detected as follows:
Device matches mirabella_genio_usb with quality of 40%. DPS: {'1': False, '2': 21, '3': 20, '6': False, '13': 0, 'updated_at':<PHONE_NUMBER>.705068}
In the Tuya app I can control On/Off, Eco mode (which is basically 16 degress setpoint) and the temperature.
Maybe some code from the other Tuya devices is re-usable? I will be glad to help add support for this device, just let me know if you need more information.

Which is current temperature, and which is set temperature out of 21 and 20?
Does it have a timer?  The last 0 could be either a timer or a fault code I think.

Thanks for the reply. I did some testing this evening and I believe the id's are as follows:
1 = On/off
2 = Setpoint
3 = Temperature
6 = Eco mode
13 = Error code
The device has a timer but this has no effect on id 13 when I change it.
Based on the above I created the following yaml file (eurom_601_heater.yaml):
`name: Eurom Mon Soleil 601 Heater
legacy_type: eurom_heater
primary_entity:
entity: climate
dps:
- id: 1
type: boolean
mapping:
- dps_val: false
value: "off"
icon: "mdi:radiator-disabled"
icon_priority: 1
- dps_val: true
value: "heat"
icon: "mdi:radiator"
icon_priority: 3
name: hvac_mode
- id: 2
type: integer
range:
min: 15
max: 35
name: temperature
- id: 3
type: integer
readonly: true
name: current_temperature
- id: 6
type: boolean
mapping:
- dps_val: false
value: "off"
- dps_val: true
value: "on"
name: eco_mode
- id: 13
type: bitfield
mapping:
- dps_val: 0
value: "OK"
readonly: true
name: error
secondary_entities:

entity: binary_sensor
name: Error
category: diagnostic
class: problem
dps:

id: 13
type: bitfield
name: sensor
mapping:

dps_val: 0
value: false
value: true
`
The device is working and it is properly detected.
Any feedback on the device configuration file?

I can confirm everything is working with the new version.
Thanks a lot for the quick support!


GA requirements for dependency version pinning is unclear

In this section of the GA requirements: https://github.com/signalfx/gdi-specification/blob/4d4cdfab21ae690e7b48aef8e1c5040ce80ed14b/specification/repository.md#dependencies it says:

MUST lock the versions of all build dependencies (e.g. libraries, binaries, scripts, docker images) or vendor them; EXCEPTION: tools that are available out-of-the-box

I think that the "out-of-the-box" portion is too vague -- aren't all dependencies really "out-of-the-box"? If not, what does this even mean?
Does the pinning requirement apply to dependencies used in tests/testing?

I think that the "out-of-the-box" portion is too vague -- aren't all dependencies really "out-of-the-box"? If not, what does this even mean?

I see "out-of-the-box" as the tools already installed on the CI runners

Does the pinning requirement apply to dependencies used in tests/testing?

Currently, yes.


BottomNavigationBar background color

The background parameter in BottomNavigationBar widget don't work. But if we pass backgroundColor to BottomNavigationBarItem widget it start working. This is because the BottomNavigationBar is internally taking the background color of a selected BottomNavigationBarItem.

Thank you for your contribution. I'm going to close this PR for now since there are outstanding comments, just to get this off our PR review queue. Please don't hesitate to re-open or submit a new PR if you have the time to address the review comments. Thanks!


docs: Finalize Documentation

This pull request introduces several key documentation updates to enhance clarity, accessibility, and compliance for the Polling App. Major updates include adding a license, revisions to the README.md, and the creation of a detailed infrastructure.md document.
Changes Included:
License Added:

Added an MIT license to the project to clarify the usage rights and restrictions for the software.
The license is detailed in the LICENSE file.

README.md Overhaul:

Updated the architecture section with a direct link to the newly created infrastructure.md.
Embedded CircleCI build status badge to provide real-time status updates directly on the repository homepage.
Included visual references (architecture and pipeline diagrams) with links to hosted images on Sirv to enhance understanding of the project's infrastructure and CI/CD processes.

Infrastructure.md Creation:

Updated infrastructure.md file detailing the infrastructure setup using AWS services such as RDS, S3, and Elastic Beanstalk.
Provided an overview of each service used, their purpose in the project context, and the benefits they offer.

Updates to the Documentation Links:

Updated all internal links and added new sections to documentation, ensuring all critical information is accessible and well-integrated.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


WIP: Add options to ignore shared/managed Plex clients

Proposed change

The Plex integration currently adds every visible Plex client as a separate media_player entity. This makes some installations very unwieldy as large number of shared clients are dynamically created.
This PR allows you to choose which Plex users' players will create media_player entities via the integration's config options.
It also adds an option (YAML and config option) which ignores shared & managed users as they're granted access to the Plex server.
All clients will still be counted by the integration's sensor for currently playing sessions.
Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[x] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Example entry for configuration.yaml:

# Example configuration.yaml
plex:
   host: <IP_ADDRESS>
   token: <PLEX_TOKEN>
   media_player:
     ignore_new_shared_users: true

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request: TODO

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist
[x] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

Updating this PR to use the new multi-select config option UI when that's available (https://github.com/home-assistant/home-assistant-polymer/pull/4247 / https://github.com/home-assistant/home-assistant/pull/31798). Still WIP for now.


Convolution not commutative

We find that:
((PWP.constructUniform 3) PWP.<+> (PWP.constructDelta 1)) /= ((PWP.constructDelta 1) PWP.<+> (PWP.constructUniform 3))
In particular the former loses 1/3 of its probability mass!

This is due to the wrong basepoint being generated for the final interval, thus cutting off the last part of the PDF.

What we find:
ghci> queueWait = PWP.constructUniform (3::Double)
ghci> service = PWP.constructDelta (1::Double)
ghci> queueWait
PDF (Pieces {getPieces = [Piece {basepoint = 0.0, object = Pd (Poly [0.3333333333333333])},Piece {basepoint = 3.0, object = Pd (Poly [0.0])}]})
ghci> service
PDF (Pieces {getPieces = [Piece {basepoint = 0.0, object = Pd (Poly [0.0])},Piece {basepoint = 1.0, object = D 1.0},Piece {basepoint = 1.0, object = Pd (Poly [0.0])}]}
ghci> queueWait PWP.<+> service
PDF (Pieces {getPieces = [Piece {basepoint = 0.0, object = Pd (Poly [0.0])},Piece {basepoint = 1.0, object = Pd (Poly [0.3333333333333333])},Piece {basepoint = 3.0, object = Pd (Poly [0.0])}]})
ghci> service PWP.<+> queueWait
PDF (Pieces {getPieces = [Piece {basepoint = 0.0, object = Pd (Poly [0.0])},Piece {basepoint = 1.0, object = Pd (Poly [0.3333333333333333])},Piece {basepoint = 4.0, object = Pd (Poly [0.0])}]})
NB the difference in the last basepoint!
Digging further:
ghci> disaggregate [Piece {basepoint = 0.0, object =  ( [0.3333333333333333])},Piece {basepoint = 3.0, object =  ([0.0])}]
[(0.0,3.0,[0.3333333333333333]),(3.0,7.0,[0.0])]
ghci> disaggregate [Piece {basepoint = 0.0, object =  ( [0.0])},Piece {basepoint = 1.0, object =  [1.0]},Piece {basepoint = 1.0, object =  ( [0.0])}]
[(0.0,1.0,[0.0]),(1.0,1.0,[1.0]),(1.0,3.0,[0.0])]
Which is what we expect.

So, then we call:
(<+>) as bs = sum [Pieces (map makePiece (convolveIntervals a b)) | a <- das, b <- dbs]
    where das = disaggregate (getPieces as)
               dbs = disaggregate (getPieces bs)

The list comprehension will produce the same set of calls to convolveIntervals in each case; convolveIntervals is instantiated by convolvePolyDeltas: the relevant cases are (with error/degenerate cases removed for clarity):
convolvePolyDeltas (lf, uf, Pd f) (lg, ug, Pd g)
    -- convolve the polynomials to get a list of intervals, put the type back and remove redundant intervals
    | otherwise = aggregate $ map (\(x, p) -> (x, Pd p)) (convolvePolys (lf, uf, f) (lg, ug, g))
convolvePolyDeltas (lf, uf, D f) (lg, ug, Pd g)
    -- translate the polynomial and the interval by the location of the delta and scale it by the delta mass
    -- shifted poly can't be zero, so no point in aggregating
    | otherwise    = [(0, Pd zeroPoly), (lg + lf, scalePD f (Pd (shiftPoly lf g))), (ug + lf, Pd zeroPoly)]
convolvePolyDeltas (lf, uf, Pd f) (lg, ug, D g) = convolvePolyDeltas (lg, ug, D g) (lf, uf, Pd f)  -- commutative

Note that the case with the delta and an poly is always evaluated the same way round, so the original order of the arguments can't affect this. Also convolvePolys rearranges its arguments to have the wider interval first, so this should also be unaffected by the original order of the arguments to the convolve operator.

So suspicion falls on the sum operation, which calls the alignPieces function to create the piecewise set to sum over. This function is very complex! Better to start from first principles and rewrite it to be more clearly correct - this works!


Add multimodal support in prompt_template for easier prompting.

Description
First thing that comes to mind is to add something like this
prompt_template = """
SYSTEM:
...

USER:
...

IMAGE:
{image_url}

Since gpt-4o is multi-modal with audio too (and it looks like other players are headed in this direction), it's likely worth also thinking about how to handle both images and audio

Note that users can pass in several images and images can be a part of any user message, not just the final message.
A message content can either be a string or a list.
If user pass in only a string, assume that it's just text. If user passes in a list, assume that it's text, images, audio, etc.
I suggest something like this:
prompt_template = """
SYSTEM:
...

USER:
<you need a way to parse a string or a list of multiple input types here>

ASSISTANT:
<AI can also output text, audio, images, etc. Just wait for GPT-4o>

USER:
<you need a way to parse a string or a list of multiple input types here>
"""

History should also take this into account.
I'm not sure if this is the right abstraction. Maybe OpenAI abstraction of representing chat history as a list is already great. Because this is a chat model, not an instruct model, if you want to utilize python features, you should model the prompt template as a list, not as a string.
It feels like we are repeating the mistake of LangChain. Forcing prompt_template to be a string is introducing magic unnecessarily isn't it? (You are forced to come up with your own markup language similar to YAML or TOML)
What do you guys think?

I agree, which is why we originally opted for enabling writing the messages array directly.
We also enable the MESSAGES: keyword for injecting a list of messages for chat history. This will inject any messages as-is into the messages array and can be used wherever and however many times you want in the prompt template just like other keywords.
I do think there is a way to update the prompt template parser to provide good DX for the multi-modal case; however, as you mentioned I also don't think the solution is a self-defined language.
Just because a multi-modal user messages has a content array doesn't necessary mean that we also need to have an array in the prompt template through a custom language. In fact, I think there is potentially a rather nice way of writing multi-modal messages still as a single string. For example:
from mirascope.openai import OpenAICall, OpenAIImage

class MultiModalCall(OpenAICall):
    prompt_template = "Can you please describe this image? {image}"

    img_bytes: bytes

    @property
    def image(self) -> OpenAIImage:
        return OpenAIImage(media_type="jpeg", bytes=self.img_bytes)

To me, this feels more natural as a transcript and how I would generally interact with the chat model anyway. Then, under the hood we can parse the user message into the correct content array if images are provided.
Of course we would also want to ensure:

Multiple images can be passed into a single user message just like in the content array. Something like:
prompt_template = "Image 1: {image1}, Image 2: {image2}"
Additional convenience for passing in multiple images altogether. Something like:
prompt_template = "Images: {images}"
Ability to pass in a URL and not the bytes for additional convenience around not having to load the image manually.
Similar convenience for audio files now that it looks like providers are headed in that direction (re: gpt-4o and gemini).

What do you think @off6atomic @brenkao?

If this works across all our various providers, then I'm all for it.

@willbakst I think that's a better syntax for producing a list of inputs indeed. I totally missed that.
However, I still think this is a custom markup, which means it needs to be very easy for users to understand how it's parsed and there should be a page that explicitly explains how the custom markup is parsed into OpenAI format (or internal Mirascope format).
I would suggest using this syntax in a way that tells to the user it's simply being parsed to a list (and users can specify order of the items in the list).
For example, if user wants to pass [image, text, image]
Maybe we can allow something like this: "{image1} Please describe the difference between left and right image {image2}"
If the user wants to pass 2 images without text [image, image]
Then they just need to provide empty text between those images e.g. "{image1} {image2}"
Users should also be allowed to type the inputs in multiple lines e.g.
"""
USER:
What is the following image?
{image}

How does it relate to the following audio and video?
{audio} {video}

I want you to describe the relationship in {style} tone.
"""

would be translated to [text, image, text, audio, video, text]
I think this provides a simple mental representation for users to understand the parser. It's just splitting the string by non-text arguments.
One thing we need to be clear to users is how we remove whitespaces and newlines surrounding non-text arguments.
Should we remove all the whitespaces and newlines surrounding non-text arguments?
I think if we do that then it's simpler to understand and most of the time the users are simply going to put non-text arguments at the end of the message anyway.

100%, everything you've described is pretty much exactly the behavior I would expect. The goal is for the parser to feel intuitive and behave how you would expect so it's "convenient" and not "magic" (but still feels like magic).
Of course, I totally agree that in order for this not to be "magic" we need to have extremely clear documentation. For the README examples, this will likely be simple comments + examples of what the output messages will look like so it's succinct. In the concepts/writing_prompts.md docs page we should add a more detailed writeup of exactly what is happening under the hood so it's extremely clear to users what's happening. We can also mention in the README with this update that users should read the docs for more details.
How we handle the parser will need some more thought as we work towards implementing this feature and see what makes sense both from an internal implementation perspective as well as the external DX perspective. Mostly want to make sure that any decisions we make for parsing image/audio prompts doesn't have unintended effects on other prompts.
I'm hoping to find some time soon to prioritize this feature now that we've got a good idea of the interface and DX.


[Popper] Updating in the wrong position in a list when scrolling with a customized useAutocomplete hook

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯

Current behavior: view list options in popper of custom autocomplete using useAutocomplete has wrong position

=> I think due to list options has dynamic height why i see default autocomplete of mui has popper too but view list options is ok also
Demo: https://codesandbox.io/s/customizedhook-material-demo-forked-n3lmro?file=/demo.tsx

Expected behavior 🤔
Position of list options in popper is correct

Steps to reproduce 🕹
Steps:

Create Custom autocomplete use useAutocomplete
Use popper for list options
Click to input to show list options in popper
=> view list options is ok

Scroll window to popper auto change placement from bottom-start to  top-start
=> Current behavior: view list options has wrong position

=> I think due to list options has dynamic height why i see default autocomplete of mui has popper too but view list options is ok also
With default autocomplete:

Before scroll

After scroll

Context 🔦
No response
Your environment 🌎

`npx @mui/envinfo`
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

i has same issue

The issue appears as your Listbox component has a position: absolute set (line 120 in your sandbox). Because of this, Popper can't calculate its height and behaves in an undesired way.


File directory used to enumerate @types package, but current directory used to look them up

mkdir c:\test\
cd c:\test
touch file.ts
npm install @types\react

mkdir c:\another
cd c:\another
tsc c:\test\file.ts

expected, no errors.
acctual:

error TS2304: Cannot find name 'react'.

traceResolution gives a better picture:
======== Resolving type reference directive 'react', containing file not set, root directory 'c:\another'. ========
Resolving with primary search path 'c:\another/types/'
File 'c:\another/types/react/package.json' does not exist.
File 'c:\another/types/react/index.d.ts' does not exist.
Resolving with primary search path 'c:\another/node_modules/'
File 'c:\another/node_modules/react/package.json' does not exist.
File 'c:\another/node_modules/react/index.d.ts' does not exist.
Resolving with primary search path 'c:\another/node_modules/@types/'
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
Looking up in 'node_modules' folder, initial location 'c:\another'
File 'c:/another/node_modules/react.ts' does not exist.
File 'c:/another/node_modules/react.d.ts' does not exist.
File 'c:/another/node_modules/react/package.json' does not exist.
File 'c:/another/node_modules/react/index.ts' does not exist.
File 'c:/another/node_modules/react/index.d.ts' does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File 'c:/node_modules/react.ts' does not exist.
File 'c:/node_modules/react.d.ts' does not exist.
File 'c:/node_modules/react/package.json' does not exist.
File 'c:/node_modules/react/index.ts' does not exist.
File 'c:/node_modules/react/index.d.ts' does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
File<EMAIL_ADDRESS>does not exist.
======== Type reference directive 'react' was not resolved. ========

Fixed by #9012


Backport "Remove double tests of tests/pos" to LTS

Backports #18683 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-18731.
Reference


Constructor of ControllerModel does not set Controller property for ActionModels

Hi,
when using the ControllerModel constructor public ControllerModel(ControllerModel other) the "deep copies" of the ActionModels still point to the old ControllerModel:
public class ModelConventionTest : IApplicationModelConvention
{
	public void Apply(ApplicationModel application)
	{
		ControllerModel oldControllerModel = application.Controllers.First();
		ControllerModel newControllerModel = new ControllerModel(oldControllerModel);

		if (newControllerModel.Actions.Any(x => x.Controller != newControllerModel))
		{
			Debug.WriteLine("1");
		}

		if (newControllerModel.Actions.All(x => x.Controller == oldControllerModel))
		{
			Debug.WriteLine("2");
		}
	}
}

Is this by design? If not this could be maybe fixed after copying the ActionModels?

This is definitely a bug.

Do you want me to go for a PR?

Yes if you don't mind 👍  - we need to fix the same bug for ControllerModel, ActionModel, ParameterModel, and `PropertyModel  - and the relevant tests need to be udpated.


Clarify supported API version for v7

As noted at https://github.com/cloudfoundry/cli/commit/f9f34785be90af3a4b1aca9d82733e18e4a0887a#r40956344 various parts of README.md and https://github.com/cloudfoundry/cli/releases disagree about minimum version of API supported.
https://github.com/cloudfoundry/cli/blame/master/README.md#L47

The v7 CLI's minimum supported version of the CC API is v3.85.0 (published in CAPI release v1.95.0).

https://github.com/cloudfoundry/cli/blame/master/README.md#L54

The v7 CLI's minimum supported version of the CC APIs are v2.128.0 and v3.63.0 (published in CAPI release v1.74.0).

https://github.com/cloudfoundry/cli/blame/master/README.md#L208

The v7 CLI's minimum supported version of the CC API is v3.85.0 (published in CAPI release v1.95.0).

https://github.com/cloudfoundry/cli/releases/tag/v7.0.0

Minimum API Version: 3.85.0 (cf deployment v13.5.0)

https://docs.cloudfoundry.org/cf-cli/v7.html

The cf CLI v7 requires cf-deployment v13.5.0 or later.
This version of cf-deployment contains CAPI release v1.95.0, which provides the CAPI v3 API version 3.85.0.

cf CLI / https://github.com/cloudfoundry/cli/blob/master/command/v7/shared/version_checker.go#L9

Warning: Your targeted API's version (x) is less than the minimum supported API version (3.85.0). Some commands may not function correctly.

Thanks for pointing this leftover from v7-beta days. Cleaned it up here: https://github.com/cloudfoundry/cli/commit/7a2fce8c9443148b2ab151a9f855b27b2a3f96db


Improve accessibility on control buttons with aria-pressed

Improve accessibility by adding aria-pressed attribute to control buttons and sync with together with the pressed attribute.
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed

Ping @sampotts 👯


Add shipping charge to the percentage surcharge

Give the shipping charges as kwarg to the applicator and use it to calculate the total surcharge.
This is necessary because before the surcharges were only calculated over the basket items.
For example when using this as a payment surcharge you actually pay the shipping charge but don't pay surcharges over them. This way it will cost the webshop owner some money in transaction cost.
Maybe there are other opinions and maybe it should be a setting?
After agreement of what to do I wil add some extensions to the docs.

Give the shipping charges as kwarg to the applicator and use it to calculate the total surcharge

I don't think it should be a setting because the surcharges shipped in oscar serve more as an example. People can always implement their own surcharges if different requirements must be met. So this seems ok to me. Calculating surcharges over the total amount payable is sane.


Stop creating containers when they're not active

Also updates PHP links so they don't get created to non-existent services.
Also updates PHP images to point to creode docker hub images


Update basic CFT to use new version of Xterm and web app

There is a new version of xterm available on public ECR:  public.ecr.aws/senzing/xterm:1.2.0
There will also be an updated version of the web app forthcoming
Upload to marketplace ECR and update the CFT to use it.

PR merged


display mismatch between dev and prod

I'm submitting a ...
[x] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?

BUG

What is the current behavior?

Hi, i have a display mismatch between dev and prod configuration, text-center property in prod is ignored and buttons are very small, it's not happen in dev mode... any suggestion ??

Please tell us about your environment:

Ng2-admin 0.9.0
Browser: [all]

Hi, i use class="btn btn-success" on buttons can you print your code?

Hi,
for login I use "btn btn-default btn-auth", other buttons are "btn btn-primary"
eg.

  <ba-card class="admin-dash-item-container col-xlg-4 col-lg-4 col-md-6 col-sm-12 col-xs-12">

        ...

        ...

            <button class="btn btn-primary" (click)="downloadInstallJar()">Download Installer</button>

  </ba-card>


Gap bug with foreground color

As shown in image there is a gap!

Hello,
I couldn't immediately reproduce this using the demo application.

What version of the component are you using?
Do you have a small snippet of code that will set up an ImageBox control is such a way as to easily reproduce?

Thanks;
Richard Moss


NTFS Permissions

I believe you should add a "Assigning NTFS Permissions" section to these docs. As per https://docs.microsoft.com/en-us/azure/virtual-desktop/create-file-share#configure-ntfs-permissions
By default "Everyone" will have full access to the Azure Netapp Files volume. I know I need to change the ACL's but there is no mention of this on this page to keep others right, even a reference to this might help - https://docs.microsoft.com/en-us/azure/azure-netapp-files/azure-netapp-files-create-volumes-smb#control-access-to-an-smb-volume

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 199c71b3-554b-a36e-b323-a74cd2c599c3
Version Independent ID: 9cd42f6c-56b3-ba83-90c2-00d3d41c9d5d
Content: FSLogix profile containers NetApp Windows Virtual Desktop - Azure
Content Source: articles/virtual-desktop/create-fslogix-profile-container.md
Service: virtual-desktop
GitHub Login: @Heidilohr
Microsoft Alias: helohr

@birdnathan
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@Heidilohr
Can you please check and add your comments on this doc update request as applicable.


SQLToolKit not passing correct llm to llm_chain with AzureChatOpenAI

Greetings,
The
from langchain.agents import create_sql_agent
from langchain.agents.agent_toolkits import SQLDatabaseToolkit
from langchain.sql_database import SQLDatabase
from langchain.chat_models import AzureChatOpenAI

db = SQLDatabase.from_uri(connection_string2)
toolkit = SQLDatabaseToolkit(db=db)

agent_executor = create_sql_agent(
    llm=AzureChatOpenAI(deployment_name="gpt-4-32k", model_name="gpt-4-32k",temperature=0.0),
    toolkit=toolkit,
    verbose=True
)
agent_executor.run("Tell me about this database")

I get the error in query_checker_sql_db
Thought:The TITLE column seems to be related to the topics in the CONTENT table. I should query this column to get the topics.
Action: query_checker_sql_db
Action Input: SELECT TOP 10 TITLE FROM CONTENTTraceback (most recent call last):
  File "/code/confluence_test.py", line 57, in <module>

  File "/usr/local/lib/python3.9/site-packages/langchain/chains/base.py", line 213, in run
    return self(args[0])[self.output_keys[0]]
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/base.py", line 116, in __call__
    raise e
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
  File "/usr/local/lib/python3.9/site-packages/langchain/agents/agent.py", line 792, in _call
    next_step_output = self._take_next_step(
  File "/usr/local/lib/python3.9/site-packages/langchain/agents/agent.py", line 695, in _take_next_step
    observation = tool.run(
  File "/usr/local/lib/python3.9/site-packages/langchain/tools/base.py", line 73, in run
    raise e
  File "/usr/local/lib/python3.9/site-packages/langchain/tools/base.py", line 70, in run
    observation = self._run(tool_input)
  File "/code/sql_database/tool.py", line 125, in _run
    return self.llm_chain.predict(query=query, dialect=self.db.dialect)
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/llm.py", line 151, in predict
    return self(kwargs)[self.output_key]
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/base.py", line 116, in __call__
    raise e
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/llm.py", line 57, in _call
    return self.apply([inputs])[0]
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/llm.py", line 118, in apply
    response = self.generate(input_list)
  File "/usr/local/lib/python3.9/site-packages/langchain/chains/llm.py", line 62, in generate
    return self.llm.generate_prompt(prompts, stop)
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/base.py", line 107, in generate_prompt
    return self.generate(prompt_strings, stop=stop)
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/base.py", line 140, in generate
    raise e
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/base.py", line 137, in generate
    output = self._generate(prompts, stop=stop)
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/openai.py", line 290, in _generate
    response = completion_with_retry(self, prompt=_prompts, **params)
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/openai.py", line 99, in completion_with_retry
    return _completion_with_retry(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/tenacity/__init__.py", line 326, in wrapped_f
    return self(f, *args, **kw)
  File "/usr/local/lib/python3.9/site-packages/tenacity/__init__.py", line 406, in __call__
    do = self.iter(retry_state=retry_state)
  File "/usr/local/lib/python3.9/site-packages/tenacity/__init__.py", line 351, in iter
    return fut.result()
  File "/usr/local/lib/python3.9/concurrent/futures/_base.py", line 439, in result
    return self.__get_result()
  File "/usr/local/lib/python3.9/concurrent/futures/_base.py", line 391, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.9/site-packages/tenacity/__init__.py", line 409, in __call__
    result = fn(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/langchain/llms/openai.py", line 97, in _completion_with_retry
    return llm.client.create(**kwargs)
  File "/usr/local/lib/python3.9/site-packages/openai-0.27.2-py3.9.egg/openai/api_resources/completion.py", line 25, in create
  File "/usr/local/lib/python3.9/site-packages/openai-0.27.2-py3.9.egg/openai/api_resources/abstract/engine_api_resource.py", line 149, in create
  File "/usr/local/lib/python3.9/site-packages/openai-0.27.2-py3.9.egg/openai/api_resources/abstract/engine_api_resource.py", line 83, in __prepare_create_request
openai.error.InvalidRequestError: Must provide an 'engine' or 'deployment_id' parameter to create a <class 'openai.api_resources.completion.Completion'>

because it seems that the llm is still defaulting to llm=OpenAI(cache=None, verbose=False...)
as seen in this values output
from SQLDatabaseToolkit
--------------------------
--------------------------
memory=None callback_manager=<langchain.callbacks.shared.SharedCallbackManager object at 0x7fff4f982250> verbose=False prompt=PromptTemplate(input_variables=['query', 'dialect'], output_parser=None, partial_variables={}, template='\n{query}\nDouble check the {dialect} query above for common mistakes, including:\n- Using NOT IN with NULL values\n- Using UNION when UNION ALL should have been used\n- Using BETWEEN for exclusive ranges\n- Data type mismatch in predicates\n- Properly quoting identifiers\n- Using the correct number of arguments for functions\n- Casting to the correct data type\n- Using the proper columns for joins\n\nIf there are any of the above mistakes, rewrite the query. If there are no mistakes, just reproduce the original query.', template_format='f-string', validate_template=True) llm=OpenAI(cache=None, verbose=False, callback_manager=<langchain.callbacks.shared.SharedCallbackManager object at 0x7fff4f982250>, client=<class 'openai.api_resources.completion.Completion'>, model_name='text-davinci-003', temperature=0.0, max_tokens=256, top_p=1, frequency_penalty=0, presence_penalty=0, n=1, best_of=1, model_kwargs={}, openai_api_key=None, openai_api_base=None, openai_organization=None, batch_size=20, request_timeout=None, logit_bias={}, max_retries=6, streaming=False) output_key='text'
--------------------------
--------------------------

from create_sql_agent
--------------------------
--------------------------
memory=None callback_manager=<langchain.callbacks.shared.SharedCallbackManager object at 0x7fff4f97f7f0> verbose=False prompt=PromptTemplate(input_variables=['query', 'dialect'], output_parser=None, partial_variables={}, template='\n{query}\nDouble check the {dialect} query above for common mistakes, including:\n- Using NOT IN with NULL values\n- Using UNION when UNION ALL should have been used\n- Using BETWEEN for exclusive ranges\n- Data type mismatch in predicates\n- Properly quoting identifiers\n- Using the correct number of arguments for functions\n- Casting to the correct data type\n- Using the proper columns for joins\n\nIf there are any of the above mistakes, rewrite the query. If there are no mistakes, just reproduce the original query.', template_format='f-string', validate_template=True) llm=OpenAI(cache=None, verbose=False, callback_manager=<langchain.callbacks.shared.SharedCallbackManager object at 0x7fff4f97f7f0>, client=<class 'openai.api_resources.completion.Completion'>, model_name='text-davinci-003', temperature=0.0, max_tokens=256, top_p=1, frequency_penalty=0, presence_penalty=0, n=1, best_of=1, model_kwargs={}, openai_api_key=None, openai_api_base=None, openai_organization=None, batch_size=20, request_timeout=None, logit_bias={}, max_retries=6, streaming=False) output_key='text'
--------------------------
--------------------------

requires a similar fix to #3808


Add Prometheus Node Exporter

Hi, @andyone.
After a long time since the last PR have been made, I ask you to review the new one. It would be nice to add Prometheus Node Exporter to EK repository in addition to existing Prometheus and Prometheus Pushgateway packages.

Looks good, merged.

Package has been added to kaos-testing repository.


[WIP] add support for the new amazon-eks-node-* AMI

PR o'clock
Description
Add support for the new amazon-eks-node-* AMI.  Fix https://github.com/terraform-aws-modules/terraform-aws-eks/issues/97
Checklist

[x] terraform fmt and terraform validate both work from the root and examples/eks_test_fixture directories (look in CI for an example)
[ ] Tests for the changes have been added and passing (for bug fixes/features)
[ ] Test results are pasted in this PR (in lieu of CI)
[ ] Docs have been updated using terraform-docs per README.md instructions
[ ] I've added my change to CHANGELOG.md
[ ] Any breaking changes are highlighted above

Awesome. Looking forward to this!


ENH: Choose number of cards when launching models via UI

Is your feature request related to a problem? Please describe
Add a button for users to choose number of cards when launch models.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Related #640

For this enhancement, do we just need to set the n_gpu parameter through the UI and pass it to API call? If so, I would be happy to implement the feature. Shouldn't take too long since I developed the UI and am familiar with it

For this enhancement, do we just need to set the n_gpu parameter through the UI and pass it to API call? If so, I would be happy to implement the feature. Shouldn't take too long since I developed the UI and am familiar with it

It has been implemented in #730.


Wrong Position Embedding Size

In the original implementation, the position embedding has a dimension of  [ n_patches+1, hidden_size] to accommodate for additional class token:
https://github.com/jeonsworld/ViT-pytorch/blob/a786151f6ceed00e97ab526772916faec5efb8ed/models/modeling.py#L150
In your implementation, you removed the class token and your position embedding has a dimention [ n_patches, hidden_size]:
https://github.com/Beckschen/TransUNet/blob/main/networks/vit_seg_modeling.py#L149
When I tried to load the pre-trained model based on your changes (the new size) , I get a mismatch error:
    model.load_from(np.load(args.pretrained_dir)), in load_from     self.transformer.embeddings.position_embeddings.copy_(np2th(posemb)) RuntimeError: The size of tensor a (196) must match the size of tensor b (170) at non-singleton dimension 1
Would you please explain how the pretrained checkpoint can be loaded based on these changes  ?

Hello, line 412-414 shows how to adapt the token length from pre-trained weight to the current model. I am also curious why you get a size of (170).

Unfortunately I still get this error. The lines you mentioned are also in the original implementation but the sizes seem different, with yours removing the classification token.


Support for gzipped files?

Is there a plan to support gzipped files in the future?
I'm trying to read a csv.gz file, and using
io = GZip.open("file.csv.gz")
df = readcsv(io)

throws the following error:
ERROR: type GZipStream has no field mark
Stacktrace:
 [1] setproperty!(::GZipStream, ::Symbol, ::Int64) at ./sysimg.jl:19
 [2] mark(::GZipStream) at ./io.jl:901
 [3] checkformat(::GZipStream) at /Users/karel/.julia/packages/TableReader/lhDR8/src/TableReader.jl:337
 [4] wrapstream(::GZipStream, ::TableReader.ParserParameters) at /Users/karel/.julia/packages/TableReader/lhDR8/src/TableReader.jl:306
 [5] #readcsv#19(::Char, ::Char, ::Bool, ::Bool, ::Int64, ::Bool, ::String, ::Nothing, ::Bool, ::Bool, ::Int64, ::Nothing, ::typeof(readcsv), ::GZipStream) at /Users/karel/.julia/packages/TableReader/lhDR8/src/TableReader.jl:295
 [6] readcsv(::GZipStream) at /Users/karel/.julia/packages/TableReader/lhDR8/src/TableReader.jl:290
 [7] top-level scope at none:0

I just figured out that I can use CodecZlib.jl in the following way:
io = GzipDecompressorStream(open("file.csv.gz"))
data = readcsv(io)
close(io)

Opening a file with ~13 million rows, using CSV (v0.4.3) + GZip takes ~100s. Using TableReader + CodecZlib it takes ~17s. Amazing!

FYI, readcsv automatically detect the compression format of a file and so you can just call readcsv("file.csv.gz").


Should await asyncpg.create_pool() return Pool instead of None | Pool

Thank you for the library!
After setting this up I found that my connection pool logic is being flagged
essentially I have:
connection_pool: asyncpg.Pool[asyncpg.Record]

def on_startup() -> None:
    global connection_pool
    connection_pool = await asyncpg.create_pool()

and I get an error:
Incompatible types in assignment (expression has type "Optional[Pool[Record]]", variable has type "Pool[Record]")  [assignment] mypy(error)

looking at Asyncpg's pool:
https://github.com/MagicStack/asyncpg/blob/40b16ea65f8b634a392e7e5b6509ee7dda45c4cd/asyncpg/pool.py#L978-L979
I think technically it can return None but it seems unlikely to happen for most use cases (maybe?)
so while Pool | None represents a possible case, I think it would be okay if it didn't include it in the types for better ergonomics
What do you think?

I think you're right that await asyncpg.create_pool() will never produce None since create_pool() is returning a brand new Pool that won't have _initialize set, so awaiting the new Pool will produce itself. I imagine the best way to type this is to make create_pool() an async function so the typing for Pool.__await__ can still be correct. Does that sound like a good solution to you?

By way of example, if create_pool() is typed as an async function, the following is the result:
import asyncpg

async def main() -> None:
    pool = await asyncpg.create_pool()
    reveal_type(pool)  # Pool[Record]
    reveal_type(await pool)  # Pool[Record] | None

I changed the typing of asyncpg.create_pool() to an async function in e387d77f6af463e8cebe3e4601ed44adfb9cc6d0 and made a new release (0.26.5)

Evidently, I didn't take into account using asyncpg.Pool as a context manager, so I'm back to the drawing board on this. I reverted the change in 94eaa963efc612018e8e89f08a7366d8e950d9f4 and released 0.26.6. This may come down to being an issue that has to be # type: ignore because the stubs are limited in what they can do. For now, you can pin to 0.26.5 (even though you won't be able to use create_pool() as a context manager), but I'll continue to think of a good solution for this problem.