Bitbucket Code

Title
Dataset URL - here
Does the dataset exist in a scraped format?
URL if Yes - here
Description
Got 1261420 repos from bitbucket that we can download. This data included: ['type', 'full_name', 'links', 'name', 'slug', 'description', 'scm', 'website', 'owner', 'workspace', 'is_private', 'project', 'fork_policy', 'created_on', 'updated_on', 'size', 'language', 'has_issues', 'has_wiki', 'uuid', 'mainbranch', 'override_settings', 'parent'] from repos.
Procedure

[ ] Attempt to clone repo based on information parquest file above
[ ] Filtering by Licence following this list

MIT-0
MIT
MIT-feh
Apache-2.0
BSD-3-Clause
BSD-3-Clause-Clear
BSD-3-Clause-No-Nuclear-License-2014
BSD-2-Clause
CC0-1.0
EPL-1.0
MPL-2.0
Unlicense
ISC
Artistic-2.0
deprecated_LGPL-3.0+
deprecated_LGPL-2.1+
ECL-2.0
SHL-0.51
MPL-2.0-no-copyleft-exception

[ ] Procedure processes like Github CodeParrot
[ ] Convert to lm_dataformat

Tests
Include a dummy_dataset.parquet file to test your code against. This dummy_dataset should include the columns for the data and metadata associated with the dataset, which will then be converted into the final format for language model consumption, along with an example row or rows that you can verify your code correctly collects. In addition to this file, include the unit test that evaluates your code against this dummy_dataset.
Give an example of the columns and data:

col1
col2
....

row1
row1
....

I got started here using the google drive parquet file, but ran into some questions before I could make much more progress.
import pyarrow.parquet as pq
from urllib.request import urlopen
import shutil
import os

bitbucket_repos = pq.read_table("bitbucket_version_1.parquet", columns=["full_name", "mainbranch", "description", "uuid"]).to_pandas()
bitbucket_repos["mainbranch"] = bitbucket_repos["mainbranch"].apply(lambda x: x and x["name"])

def download_repo(repo):
    main_branch = repo["mainbranch"]
    full_name = repo["full_name"]
    repo_uuid = repo["uuid"]
    zip_link = "https://bitbucket.org/" + full_name + "/get/" + main_branch + ".zip"
    try:
        urlopen(zip_link)
        shutil.unpack_archive("./" + main_branch + ".zip", extract_dir = "./" + repo_uuid)
        return repo
    except:
        return None

# For now, all this does is ensure the existence of a license file
# Question: is it good enough to look for a substring of known licenses
# to ensure that the repo we're scraping has the license we would expect?
# Is there any prior art here?
def open_license(repo):
    for root, dirs, files in os.walk("./" + repo["uuid"]):
        for name in files:
            if name == "LICENSE" or name == "LICENSE.txt" or name == "LICENSE.md":
                return True
    return False

def traverse_repo(repo):
    for root, dirs, files in os.walk("./" + repo["uuid"]):
        for name in files:
            print(name)

The original Pile dataset from github used stars as a way to filter out low-quality repositories. Bitbucket doesn't really have anything comparable, they do have the concept of "watchers," though. Do we care about doing this level of filtering?
How do we know if a license matches one of the ones above? Is it good enough to do a substring match on a critical part of the license text?
I think a lot of the open source content on bitbucket is pretty old, and some of the projects were migrated to github. Is it worth the time to include this content in this project?

Hi @CamdenClark,
Thank you for your consideration to pick this one.

Currently we do not start this one yet, so about filtering we still have not decided how to filter the repo, using watchers is a good idea but I also think about filtering the repo with very small watchers, just one thing that I concern is compared with Github,  bitbucket source code is more personalize and number repo will be filtered is large.
The API for this you can refer here: https://developer.atlassian.com/cloud/bitbucket/rest/api-group-repositories/#api-repositories-workspace-repo-slug-watchers-get
Bitbucket limited API by IP so I used Kaggle Kernel, and Google Colab to get the list repo above, you can consider using this when you work with Bitbucket API.
You are right, the problem with the license is a problem that we are having a headache about. Maybe we only check with the repo that it has a LICENCE file. We still need to discuss more this one.
Actually still have a lot of repos in recent times at bitbucket when I used their API and realized that you can see the file below this is  the notebook I used to get the repos created in 2022

We are currently focusing on a release based on a list of data that we are prioritizing, so decisions about bitbucket may not be clear at this point, to make things less confusing and take your time, you can look and start with other more explicit datasets like https://github.com/CarperAI/Code-Pile/issues/4 or https://github.com/CarperAI/Code-Pile/issues/33

Thanks for a quick response! I will focus on gitlab then instead.


Incorrect versions in latest.version this script refers to

dotnetcli.blob.core.windows.net/dotnet/Runtime/2.1/latest.version - returns 2.1.16, latest is 2.1.17 (same is true for dotnetcli.azureedge.net; dotnet/aspnetcore/Runtime/2.1/latest.version correctly returns 2.1.17)
dotnetcli.blob.core.windows.net/dotnet/Sdk/2.1/latest.version - returns 2.1.804, latest is 2.1.805 (same is true for dotnetcli.azureedge.net)
dotnetcli.blob.core.windows.net/dotnet/Runtime/2.2/latest.version - returns 2.2.7, latest is 2.2.8 (same is true for dotnetcli.azureedge.net; dotnet/aspnetcore/Runtime/2.2/latest.version correctly returns 2.2.8)
dotnetcli.blob.core.windows.net/dotnet/aspnetcore/Runtime/Current/latest.version - returns 3.1.0, latest is 3.1.3 (same is true for dotnetcli.azureedge.net source; dotnet/Runtime/Current/latest.version correctly returns 3.1.3)
dotnetcli.blob.core.windows.net/dotnet/aspnetcore/Runtime/LTS/latest.version - returns 3.1.0, latest is 3.1.3 (same is true for dotnetcli.azureedge.net source; dotnet/Runtime/LTS/latest.version correctly returns 3.1.3)

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

ID: a2e484a9-5e0c-eb3e-1413-7b507c4fa07d
Version Independent ID: 5bc7caa5-f1c2-d7d5-fe02-80c65cca9672
Content: dotnet-install scripts - .NET Core CLI
Content Source: docs/core/tools/dotnet-install-script.md
Product: dotnet-core
Technology: dotnet-cli
GitHub Login: @tdykstra
Microsoft Alias: tdykstra

dotnetcli.blob.core.windows.net/dotnet/Sdk/2.2/latest.version - returns 2.2.402, not sure if the latest version is this one or 2.2.207

All the above makes my script, which is based on this script, download non-latest versions: https://github.com/aannenko/dotnet-download

@wli3 who can help with this?

Issue moved to dotnet/sdk #11356 via ZenHub


[fribidi] Build error

Host Environment

OS: MacOS 12.1
Compiler: revision

To Reproduce
Steps to reproduce the behavior:
./vcpkg.exe upgrade --no-dry-run
Failure logs
CMake Error at scripts/cmake/vcpkg_configure_make.cmake:600 (message):
fribidi requires autoconf from the system package manager (example: "sudo
apt-get install autoconf")
Call Stack (most recent call first):
ports/fribidi/portfile.cmake:9 (vcpkg_configure_make)
scripts/ports.cmake:142 (include)

dude
fribidi requires autoconf from the system package manager (example: "sudo apt-get install autoconf")

@sbrosgol Does this issue resolve? Thanks @Osyotr's response.

Same issue here, and I have two issues with that solution:
Firstly, a minor detail: this message instructs to use apt while the issue is on macOS. Now, I know what the equivalent for macOS is, but I would expect vcpkg to give me the appropriate error message for my OS. (This is less a technical issue and more of a UX problem.)
Secondly, why would building certain packages require specific additional tools? The very reason I'm using vcpkg is because I don't have to care what my packages depend on, as vcpkg handles that for me. The macOS prerequisites do not refer to autoconf anywhere in the installation steps. If autoconf is a required tool to work with vcpkg, I would expect it to be either required when installing vcpkg, or that vcpkg bundles its own version like it does with CMake.

I have tried this solution, and after installing autoconf, Fribidi requires aclocal, which I can't find in brew.

dude fribidi requires autoconf from the system package manager (example: "sudo apt-get install autoconf")

By this comment, it sounds like it should be obvious that users are expected to install those tools manually; if so, then should it be documented in the steps to install vcpkg? It feels counter-intuitive for me to do this have to look at what my dependencies depend on, or even to have to watch them regularly for new sub-dependencies (OP's command being upgrade, I suppose that's what happened here) since that's the problem vcpkg is trying to solve.

Is this issue resolved?

I think that the latest pull fixed the build error.
On Thu, Jan 13, 2022 at 8:28 AM Jack·Boos·Yu @.***>
wrote:

Is this issue resolved?
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vcpkg/issues/22039#issuecomment-1011835222,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHUTXG34L7AVX4PXNSJJEDLUVZWIDANCNFSM5KEJ6ZTA
.
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 were mentioned.Message ID:
@.***>

--
S.Brosgol


the sgf format is diff

the version 1.0.1 can automatic save sgf now.
but I found the format is diff that of leela zero.
for example here the pass step is wroted to W[  ],not W[tt]

This is legal per the SGF spec http://www.red-bean.com/sgf/go.html#types


INFOPLAT-1402 Beholder gh action

What
boilerplate cobra app + gh action that runs in a docker container

Working here
https://github.com/smartcontractkit/atlas/actions/runs/11583651596/job/32249338219


Add telemetry to statement query

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


Time Picker has its own state even if the value doesn't change

TimePicker has its own value state instead of the value prop.
When the onChange function execute the time.start not change but the value in the component still change no matter what
Reproduce Behavior: CodeSandBox reproduce
<TimePicker value={time.start} mode="24h" onChange={onPickTimeStart} />

@HarikiRito Sorry it took so long, but this is now fixed in v1.2.0.


feat(dynamicErrorPage): dynamic error page

** Please provide as much detail as possible, but feel free to remove irrelevant sections **
need a different error message to display for expired job.
BREAKING CHANGE:
one of the props in ErrorPage is been remove and been replace with different props.
onRetryClick => button.onClick
RFC URL:
none
MIGRATION GUIDE:
Before:
import {
  JobsDBErrorPage
} from 'seek-asia-style-guide/react';

<JobsDBErrorPage onRetryClick={function(){}} />

After:
import {
  JobsDBErrorPage
} from 'seek-asia-style-guide/react';

<JobsDBErrorPage
  customeButton={{
    onClick: () => {...}
  }}
 />

EXAMPLE USAGE:
import {
  JobsDBErrorPage
} from 'seek-asia-style-guide/react';

<JobsDBErrorPage
  customeButton={{
    onClick: () => {...},
    text: 'Search again'
  }}
  customeText={{
    headline: 'This job ad is currently unavailable',
    subline: 'Keep calm and search again'
  }}
/>

Screen Shot

The preview from screenshot looks good to me. Will there be a testing environment of this style guide update?

sure @MingHo138 , you can preview it with following url http://seek-asia-style-guide--b87d0a85f9039c637923629ce7b1e55838d56af5.surge.sh/jobsdb-errorpage


Add skeleton for the WASM prototype

Add skeleton code for the WASM backend.
Co-author: @nsthorat

Add tfjs-backend-wasm top-level folder (mono-repo style).
Add settings/lint/npm configurations (tslint.json, settings.json, package.json, ...).
Add initial sketch of the C++ backend.
Reuse core's unit tests.
Implement element-wise operation add() and test against core unit tests.
Setup building npm package.
Add a simple build.sh script (will move to Bazel later)
Add a multi-root workspace file so vscode can understand the mono-repo.

Short-term TODOs:

Move c++ files to src/cpp/
Move ts files to src/ts/
Migrate to Bazel as a build system.
Have the add kernel live in its own file so we can drop it in modular builds.
Remove dependency on stdio.h

This change is

For some reason GitHub check didn't get updated, but the Build passed: https://console.cloud.google.com/gcr/builds/0b789b40-d7ee-4e75-b886-709f79c77f4f?project=834911136599


[Front-end] User Registration and Credentials

I assume that we'll be using Svelte for the front-end implementation. Currently looking at sources that showcase Svelte implementation. Still unknown what type of authentication we'd want to require for registration and credentials, but at minimum, we should have a designed page for credentials and registration, such as a login or sign-up page.

[x] (https://github.com/SecurityLogMiner/log-collection-frontend/issues/10)
[x] (https://github.com/SecurityLogMiner/log-collection-frontend/issues/12)
[x] (https://github.com/SecurityLogMiner/log-collection-frontend/issues/14)
[ ] (https://github.com/SecurityLogMiner/log-collection-frontend/issues/15)
[ ] (https://github.com/SecurityLogMiner/log-collection-frontend/issues/16)

maybe something like auth0 will work. the documentation is good:
https://auth0.com/blog/authenticating-svelte-apps/

completed


change close-symbol button outline to none

Change close-button border focus outline to none
Testing plan: I've tested the both branch and on multiple browsers.
GIFs or screenshots:
Before

After

The commit message can be improved:
https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

The commit message can be improved:
https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

The commit message can be improved:
https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

Just changed the commit message. Can you review this Pull Request

The commit message can be improved:
https://zulip.readthedocs.io/en/latest/contributing/version-control.html#commit-messages

Just changed the commit message. Can you review this Pull Request


Coveralls support

First attempt to update CI so that coverage info for unit tests + itests is uploaded to Coveralls (and could be displayed for future PRs).
I looked at the setup for btcd:
https://github.com/btcsuite/btcd/blob/master/.github/workflows/go.yml
https://github.com/btcsuite/btcd/blob/b161cd6a199b4e35acec66afc5aad221f05fe1e3/Makefile#L109
I think we don't need to change directory into subfolders for unit tests since we don't have sub-packages in this repo?
For the itest coverage, I looked at the PR adding that for LND:
https://github.com/lightningnetwork/lnd/pull/7364
But the way itests are run there is different (via script), so I think the coverage output ends up in a different place.
When playing with this locally I couldn't get the itest coverage data to be written in the correct location, so I think that's the last missing piece.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on coveralls_support at 0.0%

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls

Closing in favor of #1069


CB-9879 Allow option to not start datahub cluster automatically when …

…environment starts up
See detailed description in the commit message.

retest this please

restest this please


feat(wrappers): add Vampire/setup-wsl@v2

Why did you revert my change for the v1 commit hash?
There was also a new v1 release.

It didn't influence the generated code. I usually don't change the commit hash in such case.

Ah, ok, sorry.
Actually I wouldn't have sent a PR for it alone but thought I include it with this one. :-D
I pushed a new version where it is right away not changed.


Why do claim need to have binary keys?

The claims/0 spec is defined as claims() :: %{required(binary()) => term(). I'm curious why the claims you pass into Joken functions need to have binary keys. It also works with atom keys but dialyzer fails.

This is probably just because claims are JSON data and that is how JSON libraries usually encode to the format. Nothing really "needed" but thought of as a good practice when dealing with JSON in general.
Do you have a particular use case that atom keys would be a nice fit?


Include a comment on secp256k1_ecdsa_sign explaining low-s.

This was suggested by DavidEGrayson.

@DavidEGrayson ping

Thanks, that comment looks good to me!  I am glad it talks about flipping the sign of S instead of modifying the nonce.

ACK


How to support running symfony app

Thanks for making this great package.
I'm encountering an error in the build phase when running composer scripts, specifically symfony's cache:clear command, it requires access to .env which is not available in the build phase.
Is the app source code not available during the build phase?

that'll depend on how you're building your app; do you mind sharing the rest of your derivation?

Pretty much exactly as it is in the example in the repo.
The post-install-cmd runs symfony's cache:clear. When i list contents of the derivation, i see something like this:
composer.json
composer.lock
repo/
composer.nix

phpApp = pkgs.stdenv.mkDerivation {
            inherit name;

            src = self;

            buildInputs = [ php php.packages.composer ];

            COMPOSER = "${repo}/composer.json";

            configurePhase = ''
              composer install --no-progress --no-dev --prefer-dist --optimize-autoloader --classmap-authoritative --no-scripts
              composer run post-install-cmd
            '';

            installPhase = ''
              mkdir $out
              cp -r . $out
            '';

it seems like your derivation is not correctly unpacking the project src; what is self?


V4.x.x

Hey,
I guess the purpose of this PR was to update v4.x.x branch with the latest master commits.
That's a good catch, I just updated the branch.
Thanks


Config from dwd_weather is a deprecated alias / prepare for  HA Core 2025.11

Hello,
HA logs give a hint about a deprecation and retirement next year, which I wanted to pass on here as a reminder to adjust:

Logger: homeassistant.core
Quelle: helpers/deprecation.py:222
Erstmals aufgetreten: 10:34:14 (1 Vorkommnisse)
Zuletzt protokolliert: 10:34:14
Config was used from dwd_weather, this is a deprecated alias which will be removed in HA Core 2025.11. Use homeassistant.core_config.Config instead, please report it to the author of the 'dwd_weather' custom integration

Thanks for reporting!


Allow ordering for post type

This was fixed on <IP_ADDRESS> . The is now a BeforeDataFetch hook which you can use to modify the query before it fetches the data. You can modify the query to include order columns . Example:-
function CreateConfigPage{
...
...
$pageConfig->RegisterBeforeDataFetch("OderPage");
}

function OderPage($query){
    //Note query object is passed by reference. No need to return anything
    $query->set('order', 'ASC');
    $query->set('orderby', 'id');
}


0.10 pegjs.buildParser is not a function

while updating from 0.9 to 0.10,  I got the following error
pegjs.buildParser is not a function
Is this expected for upgrading from 0.9 to 0.10?

@lianyi Yes, see the relevant section of CHANGELOG.md.

thanks！ since pegjs is following SemVar versioning and this change is not backward compatible, perhaps either bump the major version or add a alias to the deprecated function?

@lianyi Semver rules for pre-1.0 projects are a bit different; generally, 0.X is treated as what would be a major version in post-1.0 versioning.
Possibly relevant links: How should I deal with revisions in the 0yz initial development phase?, relevant spec point
(Apologies for the drive-by comment.)

Thanks @hawkrives !  Indeed major version zero is fine with unstable public APIs by SemVar definition.  Will figure out how npm pickup the incompatible updates in this case.


Duplicate feed but correct version not updating

Hi! Somehow my show is in here twice:

https://podcastindex.org/podcast/2108724 (Points to the RSS feed on blubrry, which is not the correct feed for the show)
https://podcastindex.org/podcast/1039729 (points to the correct RSS feed on arresteddevops.com, but it's very out of date)

Not quite sure if an issue is the right way to raise this, but giving it a shot :)

I kicked the https://podcastindex.org/podcast/1039729 version and marked the other as a duplicate.
Thanks for reporting it.

@daveajones the index is showing some duplicate episodes now. Will those resolve? They are not duplicated in the XML.

You probably want to do a "reset" on it to clear out the old stuff and have it pull a fresh feed.

Could we have a simple mechanism on the front-end for fixing (or just reporting) dupe's
One I came across can be seen with https://podcastindex.org/search?q=somewhere on earth&type=all
and is both 6661055 and 6711174

Resolved.


Reference validation

References need to be validated against canonical bibliographic sources (e.g. PubMed, Crossref etc) so that the correct details are included.
User Stories
Author

As an author, I want to be able to populate a reference by searching a bibliographic database so that I don't have to manually fill out every field.
As an author, I want to be able to use a DOI or PMID to locate the details for a reference so that I can complete references using the minimum possible information.
As an author, I want to be able to use a reference's author/title/year details to retrieve the corresponding DOI and/or PMID so that I can complete the reference details.

Production staff

But what if . . . ?

Considerations

An author should be able to enter, say, first author, year, title and journal and search for the rest of the information, or search using DOI via connections with indexing services like PubMed and Crossref.
When an article uses author-year citations, the validation tool should not override the a,b,c etc additions to the year field used to distinguish between citations with the same name and year UNLESS the validation results in the year changing.
eLife is very strict about the order of preference for data. For instance, PubMed has better quality and curated metadata but is less comprehensive than Crossref, so current rules dictate a references is validated against PubMed first and if there is no result, the tool then tries to validate it against Crossref.
eLife has some rules in place to establish known mistakes in the metadata - for instance, Crossref has only included elocation-ID in their schema since 2018, so many journal first pages are actually elocation IDs. The current tool converts this tag back to elocation-ID for journals known to use them (e.g. PLOS, eLife).
Some journals have changed name over time and for purposes of neatness in the reference list, eLife overwrites the database output with the preferred version (captured in a configuration list). The best example of this is PLOS, which can be presented as plos, PLOS or PLoS. We normalise to 'PLOS'. In addition, there are some titles that are captured rather oddly in PubMed (e.g. Nature Genetics being recorded as 'Nature. Genetics'. These are also over-ridden with a more stylistically suitable version.
Many book publishers have been assigning DOIs to books and book chapters. eLife's current tool/process is poor at retrieving these and needs to be improved.
eLife's current tool does not validate URLs in references. It would be great if the tool could ping a webpage and alert us if an error page is reached.
eLife has a list of journals with dates before which the journal did not assign DOIs to its content, and where it is known that DOIs have not been back-filled in their archives.

XML requirements

Taken from: https://github.com/elifesciences/TextureRequirements/issues/90

It is possible to add a reference using DOI in texture. This feature does not meet eLife’s user stories completely


Feature: Metric Detail Tab Replacement

Feature Details
We want to replace the metric detail tab with the new data model.
This would also be a good time to replace some of the tag list UIs with a simpler structure, like a reactable.

@jonthegeek, regarding the PR that's about to come through, it only relates to mod_metric_details_server.
The mod_site_details_server is technically on the metric details tab. I'm going to log a separate issue for that.


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

Coverage increased (+0.6%) to 47.864% when pulling bb25bb467b2b91c571a733e40794c3461f3f172e on template-sync-1 into 8d0c345bfb531c70f57fc062344fc12d9e0bb756 on master.

:tada: This PR is included in version 8.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Move to Jest Documentation

Move from Mocha to Jest documentation
Remove rewire docs and replace with Jest snapshot information.

This should address #1206!

Coverage remained the same at 98.864% when pulling 14552b9bdef87f7225a9767fa04b600f4c23d904 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

Excellent job @outdooricon !! Thanks!

Coverage remained the same at 98.864% when pulling 2882d94b55219f349d162377a8b9026d95af0de5 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

Coverage remained the same at 98.864% when pulling 17fd5c987dba9dc02f2f93010528a458ea447504 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

Coverage remained the same at 98.864% when pulling 17fd5c987dba9dc02f2f93010528a458ea447504 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

@outdooricon I thought this was complete, but I noticed some additional items: 😄
There is mention of Karma in the Testing section of docs/general/commands.md
And while you're at it, the Browsers section no longer applies, please delete it.

:) I knew it was too easy. Done!

Coverage remained the same at 98.864% when pulling 68ceea55860a47cb6153e79a91366d87a1de0090 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

Coverage remained the same at 98.864% when pulling 68ceea55860a47cb6153e79a91366d87a1de0090 on outdooricon:jestDocs into 68abb90241940fbe3a81c042208f9a3549d6ac79 on mxstbr:3.4.

Thanks @outdooricon LGTM 🎉

Amazing, love it!


APIConnectionError: Connection error.

❗BEFORE YOU BEGIN❗
Are you on discord? 🤗 We'd love to have you asking questions on discord instead: https://discord.com/invite/a3K9c8GRGt
Describe the bug
No matter what I try, I keep getting APIConnectionError: Connection error. when using deepeval only.
I have a script that first generates predictions, calling OpenAI, for ~400 rows. I use asyncio + semaphores + backoff to handle issues. Everything runs fine and fast.
When I get to the deepeval part, I'm able to process 3 of those rows before getting
Traceback (most recent call last):
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py", line 72, in map_httpcore_exceptions
    yield
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py", line 377, in handle_async_request
    resp = await self._pool.handle_async_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 216, in handle_async_request
    raise exc from None
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 196, in handle_async_request
    response = await connection.handle_async_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_async/connection.py", line 99, in handle_async_request
    raise exc
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_async/connection.py", line 76, in handle_async_request
    stream = await self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_async/connection.py", line 122, in _connect
    stream = await self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 30, in connect_tcp
    return await self._backend.connect_tcp(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 114, in connect_tcp
    with map_exceptions(exc_map):
  File<EMAIL_ADDRESS>line 158, in __exit__
    self.gen.throw(value)
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed

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

Traceback (most recent call last):
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/openai/_base_client.py", line 1562, in _request
    response = await self._client.send(
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_client.py", line 1674, in send
    response = await self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_client.py", line 1702, in _send_handling_auth
    response = await self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_client.py", line 1739, in _send_handling_redirects
    response = await self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_client.py", line 1776, in _send_single_request
    response = await transport.handle_async_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py", line 376, in handle_async_request
    with map_httpcore_exceptions():
  File<EMAIL_ADDRESS>line 158, in __exit__
    self.gen.throw(value)
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py", line 89, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed

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

Traceback (most recent call last):
  File "/Users/paulaceccon/work/paulaceccon/design_advice/src/main.py", line 121, in <module>
    cli()
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/work/paulaceccon/design_advice/src/main.py", line 110, in evaluate
    asyncio.run(evaluator.run_evaluation())
  File<EMAIL_ADDRESS>line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File<EMAIL_ADDRESS>line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File<EMAIL_ADDRESS>line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 436, in wrapper
    res, _ = await _execute_call(wrapper, call, *args, **kwargs)  # type: ignore
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 253, in _call_async
    return handle_exception(e)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 251, in _call_async
    res = await func(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/work/paulaceccon/design_advice/src/evaluator.py", line 441, in run_evaluation
    "advice_eval": await self.g_eval_score(
                   ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/backoff/_async.py", line 151, in retry
    ret = await target(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/work/paulaceccon/design_advice/src/evaluator.py", line 391, in g_eval_score
    await asyncio.gather(metric.a_measure(test_case))
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/deepeval/metrics/g_eval/g_eval.py", line 154, in a_measure
    await self._a_generate_evaluation_steps()
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/deepeval/metrics/g_eval/g_eval.py", line 187, in _a_generate_evaluation_steps
    res, cost = await self.model.a_generate(prompt)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 189, in async_wrapped
    return await copy(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 111, in __call__
    do = await self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 153, in iter
    result = await action(retry_state)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/_utils.py", line 99, in inner
    return call(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/__init__.py", line 398, in <lambda>
    self._add_action_func(lambda rs: rs.outcome.result())
                                     ^^^^^^^^^^^^^^^^^^^
  File<EMAIL_ADDRESS>line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File<EMAIL_ADDRESS>line 401, in __get_result
    raise self._exception
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/tenacity/asyncio/__init__.py", line 114, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/deepeval/models/gpt_model.py", line 182, in a_generate
    res = await chat_model.ainvoke(prompt)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 305, in ainvoke
    llm_result = await self.agenerate_prompt(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 794, in agenerate_prompt
    return await self.agenerate(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 754, in agenerate
    raise exceptions[0]
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/langchain_core/language_models/chat_models.py", line 930, in _agenerate_with_cache
    result = await self._agenerate(
             ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/langchain_openai/chat_models/base.py", line 827, in _agenerate
    response = await self.async_client.create(**payload)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 436, in wrapper
    res, _ = await _execute_call(wrapper, call, *args, **kwargs)  # type: ignore
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 253, in _call_async
    return handle_exception(e)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/trace/op.py", line 251, in _call_async
    res = await func(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/weave/integrations/openai/openai_sdk.py", line 288, in _wrapper
    return await fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/openai/resources/chat/completions.py", line 1412, in create
    return await self._post(
           ^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/openai/_base_client.py", line 1829, in post
    return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/openai/_base_client.py", line 1523, in request
    return await self._request(
           ^^^^^^^^^^^^^^^^^^^^
  File "/Users/paulaceccon/Library/Caches/pypoetry/virtualenvs/design-advice-vbsnYNek-py3.12/lib/python3.12/site-packages/openai/_base_client.py", line 1596, in _request
    raise APIConnectionError(request=request) from err
openai.APIConnectionError: Connection error.

I'm running the deepeval through:
@backoff.on_exception(
        backoff.expo,
        exception=(
                openai.APIConnectionError,
                openai.APIError,
                openai.RateLimitError,
                openai.InternalServerError,
                openai.APITimeoutError,
                ClientError, BotoCoreError, EndpointConnectionError
        ),
        max_tries=5,
        max_time=60,
        factor=2,
    )  # Not sure how to better handle errors with deepeval
    async def g_eval_score(
        self,
        expected: str,
        actual: str,
        metric_name: str,
        criteria: str | None = None,
        evaluation_steps: list[str] | None = None,
        threshold: float | None = None,
        model: str = "gpt-4o",
        verbose_mode: bool = False,
        **kwargs,
    ) -> dict[str, Any]:
        """
        Generic function to measure the G-Eval score for a given metric.

        :param verbose_mode: Whether to print verbose logs.
        :param expected: Ground truth (e.g., principles, advice, category).
        :param actual: Model output (e.g., principles, advice, category).
        :param metric_name: Name of the metric.
        :param threshold: Threshold for the G-Eval metric.
        :param criteria: Criteria for the G-Eval metric.
        :param evaluation_steps: Evaluation steps for the G-Eval metric.
        :param model: Model.value (default: "gpt-4o").
        :return: A dictionary with the metric score and reason.

        Notes:
        - Either criteria or evaluation_steps must be provided.
        - For accurate and valid results, only the parameters that are mentioned in criteria should
            be included as a member of evaluation_params.
        """
        if not criteria and not evaluation_steps:
            raise ValueError("Either criteria or evaluation_steps must be provided.")

        evaluation_params = kwargs.get(
            "evaluation_params",
            [LLMTestCaseParams.INPUT, LLMTestCaseParams.ACTUAL_OUTPUT],
        )

        # Base test_case_params with mandatory `input` and `actual_output`
        test_case_params = {"input": expected, "actual_output": actual}

        if LLMTestCaseParams.EXPECTED_OUTPUT in evaluation_params:
            test_case_params["expected_output"] = expected

        if LLMTestCaseParams.INPUT in evaluation_params and "input" in kwargs:
            test_case_params["input"] = kwargs["input"]

        # Dynamically create the test case using the built params
        test_case = LLMTestCase(**test_case_params)

        if criteria:
            metric = GEval(
                name=metric_name,
                criteria=criteria,
                evaluation_params=evaluation_params,
                model=model,
                threshold=threshold or self._eval_config.g_eval_threshold,
                verbose_mode=verbose_mode,
            )
        else:
            metric = GEval(
                name=metric_name,
                evaluation_steps=evaluation_steps,
                evaluation_params=evaluation_params,
                model=model,
                threshold=threshold or self._eval_config.g_eval_threshold,
                verbose_mode=verbose_mode,
            )

        await asyncio.gather(metric.a_measure(test_case))

        return {"score": metric.score, "reason": metric.reason}

I'm not sure why this issue just happens with deepeval and how to solve it.

I'm seeing this error, too

Hey @paulacanva there are a few anti patterns in your code. When you want to run many test cases on one metric, you should use the evaluate function: https://docs.confident-ai.com/docs/evaluation-introduction#evaluating-without-pytest
We have throttling options, and even ignoring errors so you don't lose your data on error like how @jyyogi  described. You can also cache your results so even if it errors you don't have to rerun everything the next time.
The way you're using asyncio.gather will introduce a lot of bugs since each metric is stateful. In the evaluate function we handle everything so there's no overwriting of values.

hey @penguine-ip - thanks for the quick reply here! I'm using evaluate and somehow glossed over the fact that we can cache our results as a way to get around failed calls. That feature is super nifty!

Do you have an example of how ignore_errors and write_cache / use_cache behave?
Does ignore_errors=True return all successful tests?
Do you have a pattern where we can easily check which test cases have failed so we can retry those? We pass an ID into the test case so i could use that to compare the input against the successful test results. but maybe there's something easier here... 🤞


[FEATURE] make rtc pluggable

Description
any plan to make rtc pluggable? such as livekt or some other rtc provider
Severity
Major
Additional Information
No response

it's pluggable by default. we just need someone to contribute the extension :) would be happy to see contribution from community

it's pluggable by default. we just need someone to contribute the extension :) would be happy to see contribution from community

do we have any document about it？

yes it's here
https://doc.theten.ai/ten-agent/create_a_hello_world_extension

yes it's here
https://doc.theten.ai/ten-agent/create_a_hello_world_extension

seems the playground ui is binding to agora rtc


🐛 [Bug] torch_tensorrt.ts.convert_method_to_trt_engine  -> Unsupported operator

Bug Description
I want to save compiled model as TensorRT Engine
But while running  torch_tensorrt.ts.convert_method_to_trt_engine(...,  getting an Error:
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[21], line 13
      1 import torch_tensorrt
      2 compile_spec = {
      3          "inputs": [torch_tensorrt.Input(
      4             max_shape=[256, 3, 224, 224],
   (...)
     11
     12      }
---> 13 trt_engine = torch_tensorrt.ts.convert_method_to_trt_engine(optimized_model, "forward", **compile_spec)

File /usr/local/lib/python3.8/dist-packages/torch_tensorrt/ts/_compiler.py:241, in convert_method_to_trt_engine(module, method_name, inputs, device, disable_tf32, sparse_weights, enabled_precisions, refit, debug, capability, num_avg_timing_iters, workspace_size, dla_sram_size, dla_local_dram_size, dla_global_dram_size, truncate_long_and_double, calibrator)
    222     raise TypeError(
    223         "torch.jit.ScriptFunctions currently are not directly supported, wrap the function in a module to compile"
    224     )
    226 compile_spec = {
    227     "inputs": inputs,
    228     "device": device,
   (...)
    238     "truncate_long_and_double": truncate_long_and_double,
    239 }
--> 241 engine_str = _C.convert_graph_to_trt_engine(
    242     module._c, method_name, _parse_compile_spec(compile_spec)
    243 )
    245 import io
    247 with io.BytesIO() as engine_bytes:

RuntimeError: [Error thrown at core/compiler.cpp:305] Expected conversion::VerifyConverterSupportForBlock(g->block()) to be true but got false
Not all operations in graph are supported by the compiler

To Reproduce
Steps to reproduce the behavior:

Load ViT model from timm:

model_name = 'vit_base_patch32_224_clip_laion2b'
model = timm.create_model(model_name, pretrained = True, num_classes=num_cls, exportable=True, scriptable=True)
model_dct = torch.load(checkpoints_name, map_location = device)
model.load_state_dict(model_dct['state_dict_ema'])
model.eval().to(device)

Compile model

model = model.eval().to(device)

inputs_trt = [
        torch_tensorrt.Input(
            max_shape=[64, 3, 224, 224],
            opt_shape=[32, 3, 224, 224],
            min_shape=[1, 3, 224, 224],
            dtype=torch.float32,)]
inputs_dummy = torch.rand((32, 3, 224, 224), dtype=torch.float32, device=device)
enabled_precisions = {torch.float,}

traced_model = torch.jit.trace(model, inputs_dummy)

optimized_model = torch_tensorrt.compile(
        traced_model, inputs=inputs_trt, enabled_precisions=enabled_precisions, truncate_long_and_double=True,)

Here I get some warnings

Output here
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - There may be undefined behavior using dynamic shape and aten::size
WARNING: [Torch-TensorRT] - Truncating weight (constant in the graph) from Float64 to Float32

Convert to TRT engine

compile_spec = {
         "inputs": [torch_tensorrt.Input(
            max_shape=[64, 3, 224, 224],
            opt_shape=[32, 3, 224, 224],
            min_shape=[1, 3, 224, 224],
            dtype=torch.float32,
        )],
         "enabled_precisions": torch.float,
        "truncate_long_and_double": True }
trt_engine = torch_tensorrt.ts.convert_method_to_trt_engine(optimized_model, "forward", **compile_spec)

Output here
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[21], line 13
      1 import torch_tensorrt
      2 compile_spec = {
      3          "inputs": [torch_tensorrt.Input(
      4             max_shape=[256, 3, 224, 224],
   (...)
     11
     12      }
---> 13 trt_engine = torch_tensorrt.ts.convert_method_to_trt_engine(optimized_model, "forward", **compile_spec)

File /usr/local/lib/python3.8/dist-packages/torch_tensorrt/ts/_compiler.py:241, in convert_method_to_trt_engine(module, method_name, inputs, device, disable_tf32, sparse_weights, enabled_precisions, refit, debug, capability, num_avg_timing_iters, workspace_size, dla_sram_size, dla_local_dram_size, dla_global_dram_size, truncate_long_and_double, calibrator)
    222     raise TypeError(
    223         "torch.jit.ScriptFunctions currently are not directly supported, wrap the function in a module to compile"
    224     )
    226 compile_spec = {
    227     "inputs": inputs,
    228     "device": device,
   (...)
    238     "truncate_long_and_double": truncate_long_and_double,
    239 }
--> 241 engine_str = _C.convert_graph_to_trt_engine(
    242     module._c, method_name, _parse_compile_spec(compile_spec)
    243 )
    245 import io
    247 with io.BytesIO() as engine_bytes:

RuntimeError: [Error thrown at core/compiler.cpp:305] Expected conversion::VerifyConverterSupportForBlock(g->block()) to be true but got false
Not all operations in graph are supported by the compiler

Environment

I'm running this inside Nvidia container: nvcr.io/nvidia/pytorch:23.04-py3
Torch-TensorRT Version (e.g. 1.0.0): '1.4.0.dev0'
PyTorch Version (e.g. 1.0): '2.1.0a0+fe05266'
Python version: Python 3.8.10
CUDA version: 12.1
GPU models and configuration: Tesla T4

I'm almost sure that the model is supported in TensorRT, because I converted this ViT model using the trtexec command and everything worked as it should

Output for `with torch_tensorrt.logging.debug():`
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[9], line 14
      2 compile_spec = {
      3          "inputs": [torch_tensorrt.Input(
      4             max_shape=[64, 3, 224, 224],
   (...)
     11
     12      }
     13 with torch_tensorrt.logging.debug():
---> 14     trt_engine = torch_tensorrt.ts.convert_method_to_trt_engine(optimized_model, "forward", **compile_spec)

File /usr/local/lib/python3.8/dist-packages/torch_tensorrt/ts/_compiler.py:241, in convert_method_to_trt_engine(module, method_name, inputs, device, disable_tf32, sparse_weights, enabled_precisions, refit, debug, capability, num_avg_timing_iters, workspace_size, dla_sram_size, dla_local_dram_size, dla_global_dram_size, truncate_long_and_double, calibrator)
    222     raise TypeError(
    223         "torch.jit.ScriptFunctions currently are not directly supported, wrap the function in a module to compile"
    224     )
    226 compile_spec = {
    227     "inputs": inputs,
    228     "device": device,
   (...)
    238     "truncate_long_and_double": truncate_long_and_double,
    239 }
--> 241 engine_str = _C.convert_graph_to_trt_engine(
    242     module._c, method_name, _parse_compile_spec(compile_spec)
    243 )
    245 import io
    247 with io.BytesIO() as engine_bytes:

RuntimeError: [Error thrown at core/compiler.cpp:305] Expected conversion::VerifyConverterSupportForBlock(g->block()) to be true but got false
Not all operations in graph are supported by the compiler

I converted this ViT model using the trtexec command and everything worked as it should
I assume you might have used ONNX-TRT for this. However, this is not the case with Torch-TRT.

The example you provided uses dynamic shapes for VIT model. This is currently not supported in Torch-TRT. ViT graph has aten::size layer which gets passed to other layers. We recently added experimental support for ShapeTensors using --allow-shape-tensors where aten::size layer can now emit ShapeTensors instead of static values (in the case of static shaped inputs). However, not all converters support handling of ShapeTensors and in the case of ViT with dynamic shapes, there are a few converters which would fail when they receive ShapeTensors as inputs (coming from an aten::size layer).

Seems like the debug logs are not getting logged which is strange.

@peri044 Any updates?


[DARGA] Fix error on Orchestration Stacks detail page

Purpose or Intent
Fixes a Page Does Not Exist error when clicking on the breadcrumb in Compute > Cloud > Stacks > Stack Instance
Links
https://bugzilla.redhat.com/show_bug.cgi?id=1362704

@miq-bot add_label ui, bug

looks good.

View from Darga branch:
$ git log
commit ca45e712bf1763ddbe43ab6a4b5f695d86ea39f4
Merge: 5352c4b 547344a
Author: Oleg Barenboim<EMAIL_ADDRESS>Date:   Tue Aug 23 17:02:26 2016 -0400

    Merge pull request #10361 from bmclaughlin/page-does-not-exist-on-stacks

    [DARGA] Fix error on Orchestration Stacks detail page


Fix Start page design and features

As referenced in previous issues e.g. https://github.com/loklak/loklak_webclient/issues/92 and partly implemented before, please fix start page after login similar to twitter.

Currently I get this one

Also, there was a settings option with links and possibility to logout already. Now disappeard.

Compare to:

Moving to M2.5 and assigning to @fuksi

@fuksi Center following stream is missing at the moment. Please add it back.

On settings area "view profile" should direct to loklak user page not to twitter.

Done straight on master. Now will direct to home view, which is the current loklak user page.

@fuksi Please check the different between home page and user page on twitter and implement it in the same way. The user page is not the same.

I am closing this issue as settings and profile pages a quite a big feature and can be discussed separately. https://github.com/loklak/loklak_webclient/issues/283


Support for type: http and scheme basic or bearer

Hello,
After the support for openapi 3.0, the HTTP type with Scheme bearer or basic have been forgotten in headers.
cf: https://swagger.io/specification/#securitySchemeObject

@lagonnebula Ah, thanks for fixing this!


SDL error on a debian pc

Hello
i have install EmulationStation on my pc with a debian 7 x64 and i have an SDL error
Creating config directory "/root/.emulationstation"
lvl0:   Error initializing SDL!
No available video device
lvl0:   Renderer failed to initialize!
lvl0:   Window failed to initialize!
Which are the possible causes
ty

same on my raspberry p2 (archlinux)

I am also having trouble with this, I have tried using both the deb package and building from source and I get the same thing. I have tried running the program with --debug but it doesn't give me any more information. I never had an issue running emulationstation on the pi. Where can I look or what can I do to provide better information?

Alrighty so I I'm here feeling a little bit silly, but after installing debian on another computer and building emulation station there, I ran into the same problem. What I didn't say in my initial post was that I was trying to run emulation station from the terminal without a desktop environment. At this point, I'm not really sure if running ES from the command line without a DE is possible or is even supposed to be possible, but after installing LXDE out of frustration and trying emulationstation there, it actually runs fine.
So I suppose my question now is - is it possible to run ES outside of the desktop environment like I was trying to before? Or is that simply not realistic. Previously before I started what I am working on right now, I did play with retropi for a while and I was under the assumption that you could launch ES from the terminal without a DE going - or even through SSH for that matter, but maybe I'm misunderstanding something. Anyone mind helping a linux noob out?

Just logged in to say: THANK YOU! It works with lxde... weird


CUDA error: operation not permitted when stream is capturing

Hi, I tried to use the latest version nvshare with ollama v0.4.7 and the model llama3.2 1b, but I got the cuda error in ollama server.
[NVSHARE][DEBUG]: Found NVML
[NVSHARE][DEBUG]: NVSHARE_POD_NAME = ollama-6b46976479-zbbb9
[NVSHARE][DEBUG]: NVSHARE_POD_NAMESPACE = ollama-xuejingjie039
[NVSHARE][DEBUG]: Sent REGISTER
[NVSHARE][DEBUG]: Received SCHED_ON
[NVSHARE][INFO]: Successfully initialized nvshare GPU
[NVSHARE][INFO]: Client ID = 3184d652b19ed992
ggml_cuda_init: GGML_CUDA_FORCE_MMQ:    no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init: found 1 CUDA devices:
  Device 0: NVIDIA GeForce RTX 4060 Ti, compute capability 8.9, VMM: yes
[NVSHARE][DEBUG]: real_cuMemGetInfo returned free=15949.69 MiB, total=16073.88 MiB
[NVSHARE][DEBUG]: nvshare's cuMemGetInfo returning free=14537.88 MiB, total=16073.88 MiB
llm_load_tensors: ggml ctx size =    0.14 MiB
[NVSHARE][DEBUG]: real_cuMemGetInfo returned free=15949.69 MiB, total=16073.88 MiB
[NVSHARE][DEBUG]: nvshare's cuMemGetInfo returning free=14537.88 MiB, total=16073.88 MiB
[NVSHARE][DEBUG]: cuMemAlloc requested<PHONE_NUMBER> bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated<PHONE_NUMBER> bytes at 0x7f9b30000000
[NVSHARE][DEBUG]: Total allocated memory on GPU is 1252.42 MiB
llm_load_tensors: offloading 16 repeating layers to GPU
llm_load_tensors: offloading non-repeating layers to GPU
llm_load_tensors: offloaded 17/17 layers to GPU
llm_load_tensors:        CPU buffer size =   266.16 MiB
llm_load_tensors:      CUDA0 buffer size =  1252.42 MiB
[NVSHARE][DEBUG]: Received LOCK_OK
llama_new_context_with_model: n_ctx      = 8192
llama_new_context_with_model: n_batch    = 2048
llama_new_context_with_model: n_ubatch   = 512
llama_new_context_with_model: flash_attn = 0
llama_new_context_with_model: freq_base  = 500000.0
llama_new_context_with_model: freq_scale = 1
[NVSHARE][DEBUG]: cuMemAlloc requested 268435456 bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated 268435456 bytes at 0x7f9bbe000000
[NVSHARE][DEBUG]: Total allocated memory on GPU is 1508.42 MiB
llama_kv_cache_init:      CUDA0 KV buffer size =   256.00 MiB
llama_new_context_with_model: KV self size  =  256.00 MiB, K (f16):  128.00 MiB, V (f16):  128.00 MiB
llama_new_context_with_model:  CUDA_Host  output buffer size =     1.99 MiB
[NVSHARE][DEBUG]: cuMemAlloc requested 570429440 bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated 570429440 bytes at 0x7f9b96000000
[NVSHARE][DEBUG]: Total allocated memory on GPU is 2052.42 MiB
llama_new_context_with_model:      CUDA0 compute buffer size =   544.00 MiB
llama_new_context_with_model:  CUDA_Host compute buffer size =    20.01 MiB
llama_new_context_with_model: graph nodes  = 518
llama_new_context_with_model: graph splits = 2
time=2024-12-06T03:20:28.768Z level=INFO source=server.go:598 msg="llama runner started in 0.75 seconds"
[GIN] 2024/12/06 - 03:20:28 | 200 |  925.353981ms |       <IP_ADDRESS> | POST     "/api/generate"
[NVSHARE][DEBUG]: Pending Kernel Window is 2.
[NVSHARE][DEBUG]: Pending Kernel Window is 4.
[NVSHARE][DEBUG]: Pending Kernel Window is 8.
[NVSHARE][DEBUG]: Pending Kernel Window is 16.
[NVSHARE][DEBUG]: cuMemAlloc requested 1024 bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated 1024 bytes at 0x7f9bb8200000
[NVSHARE][DEBUG]: Total allocated memory on GPU is 2052.42 MiB
[NVSHARE][DEBUG]: cuMemAlloc requested 131072 bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated 131072 bytes at 0x7f9bb8200400
[NVSHARE][DEBUG]: Total allocated memory on GPU is 2052.55 MiB
[NVSHARE][DEBUG]: cuMemAlloc requested 8388608 bytes
[NVSHARE][DEBUG]: cuMemAlloc allocated 8388608 bytes at 0x7f9bb8400000
[NVSHARE][DEBUG]: Total allocated memory on GPU is 2060.55 MiB
[NVSHARE][DEBUG]: Pending Kernel Window is 32.
[NVSHARE][DEBUG]: Pending Kernel Window is 64.
[NVSHARE][DEBUG]: Pending Kernel Window is 128.
[NVSHARE][DEBUG]: Pending Kernel Window is 256.
[NVSHARE][DEBUG]: Pending Kernel Window is 512.
[NVSHARE][WARN]: cuCtxSynchronize returned CUDA_ERROR_STREAM_CAPTURE_UNSUPPORTED: operation not permitted when stream is capturing
[NVSHARE][DEBUG]: Pending Kernel Window is 1024.
ggml_cuda_compute_forward: SOFT_MAX failed
CUDA error: operation not permitted when stream is capturing
  current device: 0, in function ggml_cuda_compute_forward at ggml-cuda.cu:2403
  err
ggml-cuda.cu:132: CUDA error
SIGSEGV: segmentation violation
PC=0x7f9c90224c47 m=0 sigcode=1 addr=0x206603fd8
signal arrived during cgo execution

other informations:

Ubuntu 22.04
Cuda 12.4
GPU driver: Nvidia 550

To me, it seems to be a problem in the interplay between nvshare and CUDA Graphs [1].
Try disabling them by setting the environment variable GGML_CUDA_DISABLE_GRAPHS=1 [2] before launching your program.
[1] https://developer.nvidia.com/blog/cuda-graphs/
[2] https://github.com/ollama/ollama/blob/aed1419c64748f31e66fe04875a6696b70761038/llama/ggml-cuda.cu#L2570C65-L2570C89

THX @grgalex

[2] https://github.com/ollama/ollama/blob/aed1419c64748f31e66fe04875a6696b70761038/llama/ggml-cuda.cu#L2570C65-L2570C89

According to the ollama source code, it seems that it needs to be re-compiled by unsetting the macro USE_CUDA_GRAPH. I'll try it.
In fact , I modified the nvshare code, removed the real_cuCtxSynchronize in the function cuLaunchKernel, and it seems worked.
CUresult cuLaunchKernel(CUfunction f, unsigned int gridDimX,
	unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX,
	unsigned int blockDimY, unsigned int blockDimZ,
	unsigned int sharedMemBytes, CUstream hStream, void **kernelParams,
	void **extra)
{
	CUresult result = CUDA_SUCCESS;

	/* Return immediately if not initialized */
	if (real_cuLaunchKernel == NULL) return CUDA_ERROR_NOT_INITIALIZED;

	continue_with_lock();
	result = real_cuLaunchKernel(f, gridDimX, gridDimY, gridDimZ, blockDimX,
		blockDimY, blockDimZ, sharedMemBytes, hStream, kernelParams, extra);
	cuda_driver_check_error(result, CUDA_SYMBOL_STRING(cuLaunchKernel));

	true_or_exit(pthread_mutex_lock(&kcount_mutex) == 0);

	/*
	 * Dynamic kernel submissing rate control.
	 *
	 * Some applications like to submit a huge amount of kernels in a short
	 * period of time.
	 *
	 * For nvshare, this means that they would still have pending kernels
	 * on the GPU when asked to relinquish the GPU lock.
	 *
	 * Since we sync the CUDA context before releasing the lock, this
	 * would mean we would hold the lock for much longer than TQ seconds,
	 * as that sync could possible take a very long time.
	 *
	 * To alleviate this source of unfairness, try to keep the completion
	 * time of submitted kernels to within 5 seconds, while simultaneously
	 * trying to maintain a good throughput rate for smaller kernels.
	 */
	kern_since_sync++;
	// if (kern_since_sync >= pending_kernel_window) {
	// 	struct timespec cuda_cuda_sync_start_time = {0, 0};
	// 	struct timespec cuda_sync_complete_time = {0, 0};
	// 	struct timespec cuda_sync_duration = {0, 0};
	// 	true_or_exit(clock_gettime(CLOCK_MONOTONIC, &cuda_cuda_sync_start_time) == 0);
	// 	result = real_cuCtxSynchronize();
	// 	cuda_driver_check_error(result, CUDA_SYMBOL_STRING(cuCtxSynchronize));
	// 	true_or_exit(clock_gettime(CLOCK_MONOTONIC, &cuda_sync_complete_time) == 0);
	// 	timespecsub(&cuda_sync_complete_time, &cuda_cuda_sync_start_time, &cuda_sync_duration);

	// 	/*
	// 	 * Possibly a series of huge kernels. We cannot risk to
	// 	 * simply fall back to previous window. Fall back to
	// 	 * the initial window of 1.
	// 	 */
	// 	if (cuda_sync_duration.tv_sec >= KERN_SYNC_DURATION_BIG)
	// 		pending_kernel_window = 1;

	// 	/*
	// 	 * Intermediate situation, don't be too harsh. Rein the
	// 	 * rate in.
	// 	 */
	// 	else if (cuda_sync_duration.tv_sec >= KERN_SYNC_WINDOW_STEPDOWN_THRESH)
	// 		pending_kernel_window = max(pending_kernel_window/2, 1);

	// 	/*
	// 	 * Max window size is simply a heuristic.
	// 	 */
	// 	else pending_kernel_window = min(pending_kernel_window*2,
	// 			                 KERN_SYNC_WINDOW_MAX);

	// 	kern_since_sync = 0;
	// }
	log_debug("Pending Kernel Window is %d.", pending_kernel_window);

	true_or_exit(pthread_mutex_unlock(&kcount_mutex) == 0);
	return result;
}

But I'm not sure how harmful it to be, or any other advice you can make.

Thanks for your advice, I'll try it. :)

Thx @grgalex I tried to use the environment variable GGML_CUDA_DISABLE_GRAPHS=1 in the new version ollama.It worked fine 👍


[BUG]: Youtube data collector "Failed to locate a transcript for this video!"

How are you running AnythingLLM?
Docker (remote machine)
What happened?
Trying to collect transcript from Youtube transcript data connector
i have a local installation on MacOs that collect the transcript, while the docker instance on Ubuntu gives the error:
Failed to locate a transcript for this video!
The video link is the same, so the video is not the problem (tried with different videos, same result).
i got the same LLM model, same llm Agent in desktop app and docker instance
Docker instance is started with --cap-add SYS_ADMIN
I can scrape websites through data collector smoothly in the docker instance.
the only problem is collecting transcripts from youtube
Are there known steps to reproduce?
No response

The IP your ubuntu instance is on is probably being blocked by Google from reaching https://www.youtube.com/watch URLs, as that is the only thing that would prevent this. Since it works on other platforms and you can scrape sites in general.
It is also possible that when accessing the video from the Ubuntu IP the video is blocked in that geography associated with the IP.

It's not a geo restriction, tried with different videos.
I can reach the video from terminal using curl and using lynx, so it seems youtube is not blocking my ip
ubuntu@instance-2024xxx-xxx:~$ curl -I https://www.youtube.com/watch?v=ugpFyDQexlA
HTTP/2 200
content-type: text/html; charset=utf-8
x-content-type-options: nosniff
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: Mon, 01 Jan 1990 00:00:00 GMT
date: Fri, 08 Nov 2024 07:13:56 GMT
content-length: 920191
x-frame-options: SAMEORIGIN
strict-transport-security: max-age=31536000
origin-trial: AmhMBR6zCLzDDxpW+HfpP67BqwIknWnyMOXOQGfzYswFmJe+fgaI6XZgAzcxOrzNtP7hEDsOo1jdjFnVr2IdxQ4AAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlkjlkjòlkjòlkjkjkzE5OSwiaXNTdWJkb21haW4iOnRydWV9
report-to: {"group":"youtube_main","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/youtube_main"}]}
content-security-policy: require-trusted-types-for 'script'
cross-origin-opener-policy: same-origin-allow-popups; report-to="youtube_main"
permissions-policy: ch-ua-arch=*, ch-ua-bitness=*, ch-ua-full-version=*, ch-ua-full-version-list=*, ch-ua-model=*, ch-ua-wow64=*, ch-ua-form-factors=*, ch-ua-platform=*, ch-ua-platform-version=*
p3p: CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it for more info."
server: ESF
x-xss-protection: 0
set-cookie: YSC=-SoXXU7Xipk; Domain=.youtube.com; Path=/; Secure; HttpOnly; SameSite=none
set-cookie: __Secure-YEC=CgtZdkZXSlFtNUjfsjdksdjhsjkdhfkjhsjdhjfdjhwYGRobHB0eHw4PIBAREiEgEg%3D%3D; Domain=.youtube.com; Expires=Mon, 08-Dec-2025 07:13:55 GMT; Path=/; Secure; HttpOnly; SameSite=lax
set-cookie: VISITOR_PRIVACY_METADATA=CgJJVBIcEhgSFhMLhjjhgljhbvjhvjhHB0eHw4PIBAREiEgEg%3D%3D; Domain=.youtube.com; Expires=Mon, 08-Dec-2025 07:13:57 GMT; Path=/; Secure; HttpOnly; SameSite=none
set-cookie: VISITOR_INFO1_LIVE=; Domain=.youtube.com; Expires=Sat, 12-Feb-2022 07:13:57 GMT; Path=/; Secure; HttpOnly; SameSite=none
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

So any Youtube video does not work on this instance?

exactly, tried 10 different videos from different regions. it works on the desktop app, not on the docker instance on Oracle VM

When viewing the docker logs and attempting a collection do we see a [collector] line item that shows any more information about that error besides the user facing one?
Hoping this error fires
https://github.com/Mintplex-Labs/anything-llm/blob/890fb29464d4d571f714855ef1d9725a5b2011fc/collector/utils/extensions/YoutubeTranscript/YoutubeLoader/youtube-transcript.js#L91

this is the docker log after 3 tries
[backend] info: [EncryptionManager] Loaded existing key & salt for encrypting arbitrary data.
[collector] info: -- Working YouTube https://www.youtube.com/watch?v=L1RMd96eHgo --
[backend] info: [EncryptionManager] Loaded existing key & salt for encrypting arbitrary data.
[collector] info: -- Working YouTube https://www.youtube.com/watch?v=eyVDMJN0sa8 --
[backend] info: [EncryptionManager] Loaded existing key & salt for encrypting arbitrary data.
[collector] info: -- Working YouTube https://www.youtube.com/watch?v=eyVDMJN0sa8 --

so, for me
curl -L -4 is working fine though (returns the html), and curl -L -6 returns curl: (7) Couldn't connect to server
i cannot ping ipv6
ubuntu@instance-20241107-1421:~$ ping6 youtube.com
ping6: connect: Network is unreachable

while ipv4

ubuntu@instance-20241107-1421:~$ ping youtube.com
PING youtube.com (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from mil04s24-in-f14.1e100.net (<IP_ADDRESS>): icmp_seq=1 ttl=117 time=8.07 ms
64 bytes from mil04s24-in-f14.1e100.net (<IP_ADDRESS>): icmp_seq=2 ttl=117 time=8.03 ms
64 bytes from mil04s24-in-f46.1e100.net (<IP_ADDRESS>): icmp_seq=3 ttl=117 time=8.02 ms
64 bytes from lhr48s23-in-f14.1e100.net (<IP_ADDRESS>): icmp_seq=4 ttl=117 time=8.06 ms


Adds in CSS for 0 results state suggestions

Adds CSS for zero result state suggestion text
Ticket: https://trello.com/c/RDI7f8mf/539-add-zero-results-state

Will need to bump VERSION.txt here as well. Probably just a patch bump is fine.


fix(runtime-core/scheduler): should also flush the preFlushCbs when needed

close: #2730

This PR has made some ambiguities, that is, a pre-flush cb is not actually executed before rendering.

@evan this change would allow a normal, pre mode watch() on a template ref to work properly. Do you see any potential issues with this?

Re-review this, I think it is unreasonable.

Is it better to queue a flush after flushJobs?
if (pendingPreFlushCbs.length) {
  queueFlush()
} else if (queue.length || pendingPostFlushCbs.length) {
  flushJobs(seen)
}

I believe this has now been implemented: https://github.com/vuejs/vue-next/commit/b57e995edd29eff685aeaf40712e0e029073d1cb.


Too difficult to reproduce training results with tuner

It would be nice, if one could conveniently save the hyperparameters used to train a model. In other words, if there was a function to create custom hyperparameter templates so to speak
So right now I am using either model.describe() or the hyperparameter tuning logs to extract the best hyperparameters and merge them together with the fixed hyperparameters. It would be nice, if there was a function to just extract a dictionary with all of the parameters the same way they are saved for the hyperparameter templates.

You are right to note that the hyper-parameters used to train a model are not saved in the model (YDF separate clearly the learner and the model concepts).
The hyper-parameters are available in the learner's hyperparameters method.
In addition, if the model was trained with a tuner, the tested hyper-parameters (and their respective scores) are available in a UI (model.describe) and programmatically (model.hyperparameter_optimizer_logs).
For example, here is the dictionary of hyper-parameters used to train a model with a tuner:
logs = model.hyperparameter_optimizer_logs()
top_score = max(t.score for t in logs.trials)
selected_trial = [t for t in logs.trials if t.score == top_score][0]
print(selected_trial.params)  # This is a dictionary

Thanks for the reply and help! ````logs = model.hyperparameter_optimizer_logs()
top_score = max(t.score for t in logs.trials)
selected_trial = [t for t in logs.trials if t.score == top_score][0]
print(selected_trial.params)  # This is a dictionary``
this is exactly what I have been looking for. It would be really nice, if it was possible to get this dictionary easier! I also got the parameters from the describe UI but that was slow. I didn't figure out a fast way to get the dict like you posted. One of the reasons is that I had no idea logs was a list of objects! I thought it was simply a string! (I guess I could have checked it, but I didnt). It would be nice if that was a hint in the documentation.


Crate Usage

Attempting to use the crate gives me this error:
error: failed to select a version for the requirement fatfs = "^0.4" candidate versions found which didn't match: 0.3.5, 0.3.4, 0.3.3, ... location searched: crates.io index
Changing to "0.3.5" gives me an error regarding missing core_io.
I could manually include core_io, but it seems like it should be in the Cargo.toml in this crate.

Version 0.4 has not been released yet. If you want to use it you must use Git URL in your Cargo.toml. The latest version available at crates.io is 0.3.5: https://crates.io/crates/fatfs
You don't need core_io unless you build with no_std support (e.g. for embedded device). In such case you should enable core_io feature for this crate (core_io is an optional dependency so it is not enabled by default and requires a feature request, note that when std is available this crate is using std::io module). See crates.io page for more information about usage of version 0.3.5.
I hope this explanation will help. Feel free to ask more questions if needed :)

I see! I didn't realize core_io was hidden behind a feature. My application is embedded. Thank you for the explanation (:


[tf][apps] un-commenting overwrite option in ssm param

to: @jacknagz
cc: @airbnb/streamalert-maintainers
size: small
resolves N/A
Background

Prior to v0.1.0 of Terraform, there was not support for overwriting an aws_ssm_parameter resource with a new value. We now use a newer version that supports this, so this is to enable config overwriting for apps.

Changes

Un-commenting the previously commented out overwrite = true property for the apps config stored in ssm.
This is necessary to update the config from the cli with new values (ie: when rate is changed).

Testing

Deployed a new rate with this change.

Coverage remained the same at 94.748% when pulling 549183e10690c985046a48807409f9ec2c78b0f5 on ryandeivert-tf-ssm-overwrite-fix into 10fc046d071722bbac8c4bf31a335af372d44a98 on master.

Coverage remained the same at 94.748% when pulling 549183e10690c985046a48807409f9ec2c78b0f5 on ryandeivert-tf-ssm-overwrite-fix into 10fc046d071722bbac8c4bf31a335af372d44a98 on master.

Coverage remained the same at 94.756% when pulling 622d4d19bbd049e1a8dccce1338c037e627380ad on ryandeivert-tf-ssm-overwrite-fix into 6e5a4dcebde9ac3ef18b691c30140fee0290cdd9 on master.


[docs] Added .htaccess for static on Apache

Once I build the project using @sveltejs/adapter-static and upload it on an Apache server, at first it works fine, but when I visit nested pages that aren't compiled, it will throw a 404 error since the page or the file doesn't exist in the project directory.
The .htaccess will load the app.html if the file doesn't exist in the project directory.
#6594 diff: Moved the doc into the adapter-static README.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[ ] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

awesome, thank you so much!

Thank you @Rich-Harris for the merge, and sorry I meant I updated the .htaccess file on the server. Since I'm open for other fixes if there are, sorry about that.
Here is the .htaccess
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /

  # /folder/index.html > /folder/
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
  RewriteCond %{THE_REQUEST} /(.*)(index|index.html) [NC]
  RewriteRule ^(.*)(index|index.html)$ /$1 [R=302,L]

  # /page.html > /page
  RewriteCond %{THE_REQUEST} (.*)\.html [NC]
  RewriteRule ^(.*)\.html$ /$1 [R=302,L]

  # /page (static)
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f
  RewriteRule . /%{REQUEST_URI}.html [L]

  # Fallback page (dynamic)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /200.html [L]

</IfModule>


Allows polls that accept multiple votes from a single user

This change will allow users to select an "Allow Multiple Choices" option when creating polls - allowing multiple votes per person.
Note - this is my first time using GitHub and contributing to open source in general, so be gentle :)

Thanks for this. Will be starting the next round of changes for MVCForum and will look at pulling this in.

Decided not to put this in, back thanks for the pull request.


cppcheck reports Variable 'remain' is assigned a value that is never used.

https://github.com/mjansson/mdns/blob/ce2e4f789f06429008925ff8f18c22036e60201e/mdns.h#L1079
which looks like it is a correct warning?

The warning is correct, that line is dead code at the moment (until support is added for multiple text records, then it will be needed)

Fixed, thanks for the report

Thanks


enable handling selectors

Per our gitter discussion, duplicate keys with selectors present special challenges.

Hi @beckermr ,
I remember that you sent a link to a python notebook with some examples, I can't find it, sorry
Could you please add the link to it here?

https://gist.github.com/beckermr/870414e5f168d3aec7f0d9e1c91adccf

Here is a concrete example of weird selector behavior spacy, from ~3.2.0/3.3.0
https://github.com/conda-forge/spacy-feedstock/pull/121#issuecomment-1113368269

This issue was fixed I believe. Please feel free to open another one or reopen this one if not.


Override .cautious table cell background color

Another quickie! I'm colorblind and have a tough time distinguishing between the green and orange "available" column colors. Submitted a suggestion to YNAB directly, but you gave me the idea to just do it with this! Awesome! Have never done anything with Chrome extensions -- seems pretty powerful.
Used one of their "blue" theme colors, but might be neat to be user-definable.
Thanks for starting such a cool project! Was/am planning to stay on YNAB4 for now, but this just may prompt me to shell out the $5/month so I can watch not only nYNAB's progress, but watch/contribute to the progress of this as well :)
Cheers!

Already found 1 bug -- it seems to override the master's "Available" number's background, if that cell goes into 'cautious' too... hmm. Should probably have a hover color as well.

Thank you!
I added an options panel and such while you were working, so I put colour blind mode into the new structure with ae15fe2ff8f19f69f03d820f4c23ac58ffbef315.
Give it a whirl and let me know how you go! If you're happy I'll push it up to the web store.

Looks great! Changed one more cell bg color in the inspector to match.

Thanks!


automatically start read servers

This PR addresses issue #266.
Added an option (which defaults to true) to start read_servers automatically.
When antidote is meant to be run in a cluster, this has to be set to false, and start the read servers afterwards.
This is the best idea I could come up with that does not penalize the interactive coordinator and, therefore, all transactions.
A more definitive and automatic way of solving this issue should be envisioned (maybe by more enlightened people ;).

@bieniusa Can you have a look at this and merge? It would be important for testing things locally, for example using the Docker image.

Can we have a systest that tests this code?

It is hard to test with our system tests. I created another pull request with an alternative way to test it ( #270 )


Add HTML dashboard for describe/validation report

Work on #1058. Contains #1059.

Hi @calina-c, I need to review this a bit more... my only comment and I didn't think about this enough is that we're still focusing on #1000 and the epic.
Improving validation + describe CLI commands are needed for us to debug + fix the issues.
Moving this stuff to the app, is a nice-to have.
The key thing we need to focus on is fixing data quality.
This means debugging the data pipeline and solving issues that can cause duplication.

Hi @calina-c, I need to review this a bit more... my only comment is that I didn't think about this enough, and that we're still focusing on #1000 and the epic...

Sure, take your time. I will present some arguments here, point by point.

this flows here, is not what we're trying to do here... which is all on the CLI.

Firstly, this PR does not impact other work done on the CLI. This is just data presentation, not data manipulation, as can be observed through the read_only argument. Actually, that part is also a bug fix. During development, I encountered a serious testing issue where the read_only argument was mixed in tests and never corrected. Please consider at least merging some bugfixes related to that param.

Thus i feel that: CLI/Improvements PR I prepared (that's now merged here) is needed for us to debug + fix the issues. Serving this data to the app right now, is a nice-to have.

Secondly, while this is a nice to have, it is also a debugging tool in itself. Visualising the data is difficult on the CLI and I think this code can help the debugging process in #1000 by clearly showing the content and validation issues that Lake has. As a person with some attention-related issues, I found it difficult to debug without a proper visualisation tool. The CLI results fill a lot of space and are difficult to browse.
Btw. my first thought was just to publish a basic html report instead of a dashboard, where I could at least Ctrl+F through it, but given that the dependency for Dash already exists, it was actually faster to develop this way.

I just want to still raise the focus on the engine-level work. More so, we need to stop adding code to duckdb-pr that's not required to go in there and get it out the door.

Thirdly, regarding the code that "is ready", this is just an experimental debugging tool and not meant as a serious data inspection DBeaver alternative. It doesn't necessarily have to be perfect, just functional enough for us to be able to debug. This is also in reference to my first point, where it is not breaking anything related to the ETL code itself. The "experimental" nature only applies to the dashboard itself, where (in my opinion) we can afford the risk of being bold and experimental.
Fourthly, I agree there are structure changes as well, where parts of the validation was moved to LakeInfo. I agree that might seem like an architecture change but since you inherited LakeInfo on LakeValidate the changes make a lot of sense.

Fixing the data pipeline and SQL queries is the name of the game right now. 🙌

I do think the info presented as such will help with debugging the pipeline and it will be also easy to add other specific information we need for debugging, whereas the CLI result itself has reached a bottleneck of UX (or, rather, developer X... 😅 ) right now.

I have read everything you said, and I agree with it all.
I want to be clear: "I love the work you're doing"
I'm just particularly focused on getting the duckdb update out the door in a very good, reliable state.

Ran everything locally

One other thing I noticed is that you need to type --html true rather than --HTML like the other implementations.

I documented how to run describe --html in the comments

I updated the code to use --HTML as the parameter to trigger the html/dash site


GPS tracker Simulator

For info,
I wrote a GpsTracker simulator, that hopefully could be useful to others. The concept is pretty simple,

you create a GPX route with a navigation plotter like OpenCPN, a real GPS device, or one line with http://www.visugpx.com/editgpx
you start the simulator and ask to push/server data to your server/client.

The simulator generate intermediary point depending on requested speed and tic time. The output flow is NMEA but if needed it could easily be change to something else.  This simulator is shipped as a part of a bigger project, but it works in standalone independently of the rest of the project. It uses node.js and can be downloaded from:
https://www.npmjs.org/package/gpsdtracking
Note: I developed this simulator for my own test of my gpsdtracking. While I started with traccar, I choose to shift to something more lightweight. Hosting Java apps is not as easy as it should for me.

Closing. Feel free to post this information on the official forum, if you want.


Absolute file paths

There is now the ability to declare alias in the package.json so that absolute file paths can be constructed. I've added the src folder by default to expose the pattrn.

Sorry but we won't be accepting this in its current form. The official solution currently is to use NODE_PATH=src, if you'd like to accomplish this another way, you must eject; sorry!
Please search for previous issues and pull requests for context.
Thanks for your contribution!

Can you provide context? All I'm finding is people complaining about this not being a feature, getting the NODE_PATH=src answer, then people explaining why that's NOT good enough and then the issue being closed. It's coming off more as ignoring the complaints than actually giving a good answer as to why.

Webpack resolving alias provides us the ability to alias directory to '@src' / '~src' with special symbols that we easily distinguish some package is comes from project root path or relative path.

@Timer is there any ability to reconsider this? It seems like there is quite a bit of demand to not pin everything to src

This would be a great addition. And not just for aliasing /src, but any other, deeper nested, folders as well, which may be of interest, and for which setting NODE_PATH isn't an answer. Aliases are very useful for writing clean code, and I hope this can get included.

@Timer
I'm trying to npm link a component with styled-components in it. As I understand it the only way is to eject and add an alias. So adding a feature like this would be really helpful. I'm not sure if you want developers to eject or if you don't see why people struggle with this. My understanding is that ejecting should be avoided but maybe I'm wrong?
This is the situation I'm in where the conclusion is that it is "...appropriate to say that npm-linking will not work with create-react-app/react-scripts and styled-components unless you "eject" create-react-app and add that configuration".
https://github.com/styled-components/styled-components/issues/1770
What I want to know is if ejecting is the only solution today and there won't be a solution within CRA to avoid ejecting in the future.

@rahmen86 does this tutorial help? It uses CRA with styled components and redux https://gitconnected.com/courses/learn-react-redux-tutorial-build-a-hacker-news-clone

I did some additional testing and I realized that I can actually run npm link and run the webpack in production mode (webpack --mode production --watch). So whenever I update my npm package locally it will rebuild and update the package and the main application will notice the change and update. If I run webkit in development mode (webpack --mode development --watch) I get this error:
Uncaught ReferenceError: require is not defined

So my problem is actually solved. And it seems like the comment in https://github.com/styled-components/styled-components/issues/1770 is at least partly wrong:

So would it be appropriate to say that npm-linking will not work with create-react-app/react-scripts and styled-components unless you "eject" create-react-app and add that configuration?
Otherwise, outside of npm-linking, styled-components should work fine with create-react-app?

I'm running CRA with npm link on a styled-components package. But as I mentioned - in production mode only.
I'm not sure I'm writing in the correct thread - but if someone else follows the same path I hope that this post helps.

@Timer is there any ability to reconsider this? It seems like there is quite a bit of demand to not pin everything to src

@treyhuffine
You could add multiple entries to NODE_PATH.
Unix
NODE_PATH="src:server"
Windows
NODE_PATH="src;server"

I just looked over @treyhuffine 's PR's for this. What an awesome contribution this is would be! I am completely baffled as to why this approach was rejected in favor of assigning to NODE_PATH.  :-(


Stratified KFold CV for Regression

Hi,
I want to create a Stratified KFold with a flag variable which values are 0 and 1. Then I want to use xgb.cv with this custom fold instance. If I create any KFold instance and use it as a fold in xgb.cv parameters it works without any problem but when I want to use Stratifed KFold I got IndexError: list index out of range error. When using KFold folds = KFold() is enough. For Stratified one need to define split argument with y. So I’m trying with folds = StratifiedKFold().split(X,y) and get index error. I can use lightgbm with that way without any problem. Is there any proper way to use it? Thanks in advance.
ps: Also I asked the same question on discuss.xgboost.ai

Let's continue discussion at https://discuss.xgboost.ai/t/stratified-kfold-cv-for-regression/554


CI: fix issues causing failures on release branches

CI jobs were previously failing when run as part of PRs or
push builds against any release branches, because the image
tags in the YAML files were not "main", but rather a specific
release version.
Moves manifest image verification of "main" tag pull policy to
a separate workflow that runs only on PRs and pushes to main.
Also modifies load-image.sh and reset-image.sh to replace any
existing image tag in the manifest with the desired tag. Also
fixes E2E upgrade tests to look for the correct Contour image
tag.
Closes #169.
Closes #289.
Signed-off-by: Steve Kriss<EMAIL_ADDRESS>

Success: https://github.com/projectcontour/contour-operator/actions/runs/850860095

#360 cherry-picks this into the release-1.15 branch, just as a demonstration that it fixes CI on release branches. I have gotten at least one successful run there.

@skriss thanks for working on the fix for this issue. https://github.com/projectcontour/contour-operator/pull/360 passes CI... yay!


Update installation guide

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Update documentation (for installation):

Replace docker compose with docker compose since docker compose will be deprecated soon:

From the end of June 2023 Compose V1 won’t be supported anymore and will be removed from all Docker Desktop versions.
from here

Update repo url
Beautify Readme a bit (e.g. MaMpf logo header)

Please check if the PR fulfills these requirements

[ ] E2E Tests for the changes have been added  via Cypress
[ ] Meaningful rspec tests have been added
[X] Docs have been added / updated

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No

Other information:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

changed base branch from main to mampf-next to really stick to our own guidelines ;)


Download link not working

Hello,
Dropbox link is down. Can you provide an alternative download linke for COMETA corpus?
Thanks

I couldn't find link to download COMETA corpus.. @fredymad did you manage to find it?

Hi both, I've updated the download links to also include a google drive one. Let me know if it still doesn't work. Thanks.

It is working, thank you so much @komi786 @hardyqr