Repeater field type

Is your feature request related to a problem? Please describe.
We are looking to build forms where you can have multiple participants, each with a name, email and other user defined fields. Currently I can't see a way to achieve this.
Describe the solution you'd like
I would like to be able to use the Repeater field from core (with min/max options etc) to allow me to add multiple participants to my form submission.
Describe alternatives you've considered
An alternative would be to allow sections to be multi-filled, again with min and max options.

we do have "Dynamic Textbox" with bolt pro:
https://demo.larazeus.com/bolt/bolt-pro
but it only have one field, I may add the repeater later this year to bolt pro
also you can add any field you want:
https://larazeus.com/docs/bolt/v3/advanced/add-fields

Yeah I did see that, but as you said it's only one field, whereas we would want multiple fields to be repeatable.
I looked into making a custom field, but as the options then require sub options I couldn't see a way of doing it.

its doable:
<?php

namespace LaraZeus\BoltPro\Fields;

use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\TextInput;
use Filament\Tables\Columns\Column;
use Filament\Tables\Columns\TextColumn;
use LaraZeus\Accordion\Forms\Accordion;
use LaraZeus\Accordion\Forms\Accordions;
use LaraZeus\Bolt\Facades\Bolt;
use LaraZeus\Bolt\Fields\FieldsContract;
use LaraZeus\Bolt\Models\Field;
use LaraZeus\Bolt\Models\FieldResponse;
use LaraZeus\Bolt\Models\Response;

class Repeater extends FieldsContract
{
    public string $renderClass = \Filament\Forms\Components\Repeater::class;

    public int $sort = 103;

    public function title(): string
    {
        return __('Dynamic Textbox');
    }

    public function icon(): string
    {
        return 'tabler-text-wrap';
    }

    public function description(): string
    {
        return __('add multiple text values');
    }

    public static function getOptions(): array
    {
        return [
            Accordions::make('check-list-options')
                ->columns()
                ->accordions([
                    Accordion::make('general-options')
                        ->label(__('General Options'))
                        ->icon('iconpark-checklist-o')
                        ->schema([
                            // add a repeater to defined the fields
                            TextInput::make('options.minItems')->default(1)->numeric(),
                            TextInput::make('options.maxItems')->default(1)->numeric(),
                            TextInput::make('options.defaultItems')->default(1)->numeric(),
                            self::required(),
                            self::htmlID(),
                        ]),
                ]),
        ];
    }

    public static function getOptionsHidden(): array
    {
        return [
            self::hiddenHtmlID(),
            self::hiddenRequired(),
            Hidden::make('options.minItems'),
            Hidden::make('options.maxItems'),
            Hidden::make('options.defaultItems'),
        ];
    }

    // @phpstan-ignore-next-line
    public function appendFilamentComponentsOptions($component, $zeusField, bool $hasVisibility = false)
    {
        parent::appendFilamentComponentsOptions($component, $zeusField, $hasVisibility);

        $fieldOptions = $zeusField['options'];

        if (filled($fieldOptions['minItems'])) {
            $component->minItems($fieldOptions['minItems']);
        }

        // render the repeater here with the schema from the fields in the $fieldOptions

        if (filled($fieldOptions['maxItems'])) {
            $component->maxItems($fieldOptions['maxItems']);
        }

        if (filled($fieldOptions['defaultItems'])) {
            $component->defaultItems($fieldOptions['defaultItems']);
        }

        $repeatedField = TextInput::make('title');

        if (filled($fieldOptions['is_required'])) {
            $repeatedField->required()->default('');
        }

        $component
            ->simple($repeatedField)
            ->reorderableWithDragAndDrop(false)
            ->reorderableWithButtons()
            ->cloneable()
            ->addActionLabel(__('Add'))
            ->default(['']);

        return $component;
    }

    public function getResponse(Field $field, FieldResponse $resp): string
    {
        $responseValue = (filled($resp->response) && Bolt::isJson($resp->response)) ? json_decode($resp->response) : [$resp->response];

        return view('zeus::filament.fields.repeater')
            ->with('resp', $resp)
            ->with('responseValue', $responseValue)
            ->with('field', $field)
            ->render();
    }

    public function TableColumn(Field $field): ?Column
    {
        return TextColumn::make('zeusData.' . $field->id)
            ->label($field->name)
            ->badge()
            ->getStateUsing(function (Response $record) use ($field) {
                return json_decode($record->fieldsResponses->where('field_id', $field->id)->first()->response);
            })
            ->toggleable();
    }
}

this is the simple repeater code and you can adjust it to be with multiple.

remember all the entries of the form (repeater or not) will be stored in one row in the responses table
so keep in mind the performance
I recommend not to do it like this and go with separate models you can also use the extensions
https://larazeus.com/docs/bolt/v3/advanced/extension

Thanks for sharing the code. Yes that sets the min/max, but it doesn't let you define the schema of the repeating block per form, which is where I've been struggling.
Using an extension wont work in this instance as the repeating fields need to be user definable.

did you see the comment
// add a repeater to defined the fields
you can render a repeater here as per filament docs
and it will be saved to the db
then
// render the repeater here with the schema from the fields in the $fieldOptions
to render the saved items in another repeater
read the code and try to understand it how it works, since I dont think I am gonna add the repeater till after the summer/early winter.

Sorry, yeah I see what you mean now. Ok - I'll see how we get on with that.

feel free to comment or reopen if more assistant needed :)


Remove execute bit on systemd unit file

This change just switches the systemd unit file permissions from 0744 to 0644, as the execute bit for the owner can cause the warning to be logged Configuration file <path-to-haproxy.service> is marked executable. Please remove executable permission bits. Proceeding anyway.

Hi @shanemadden this looks good to me. I have ran an adhoc and it ran successfully:

Adhoc results

Thanks for your contribution!


JOSS review feedback

Hello pygsflow team! I'm a reviewer for your submission to JOSS tracked here. I'll use this issue to track my feedback on the paper and software -- feel free to split out my comments into separate issues if that helps your workflow.
README.md

[x] #13

Paper

[ ] Lines 48-49 in the paper have a duplicated expression "binds them into a single integrated model instance"
[ ] Paragraph starting on line 62: since you mention external sensitivity analysis software, it could be useful for readers to cite the calibration software typically used in GSFLOW applications

Jupyter notebooks

[x] #15
[x] #16
[x] #17
[x] #14
[x] Just wanted to say that the plots in the stream vector notebook are really nice looking!

Accidentally closed wrong issue.

openjournals/joss-reviews#3852

@jlarsen-usgs thanks for addressing these requests so quickly! A couple more small items:

[ ] Could you elaborate a little bit more in the summary of pygsflow at the top of the README.md? This would be to satisfy the review requirement that there is a "Statement of Need" as part of the documentation (can be similar to what you have in the paper).
[ ] Can you add a section to the README.md describing how to run the automated tests?


'reference/12435 minor update in the text for the highlighted section as code'

Fixed #12435

[x] Used double backticks everywhere on wagtail/wagtail/models/_init_.py so that text appears highlighted as code.

@Srishti-j18 thank you for giving this a go. There are a lot more changes here than your PR description suggests. Please take a moment to review your own submission before opening a pull request, or mark it as draft if you’re not sure.

Hi @thibaudcolas,
I raised two pull requests for this issue and completed the other five tasks in that separate pull request (https://github.com/wagtail/wagtail/pull/12437).

I raised two pull requests for this issue and completed the other five tasks in that separate pull request (#12437). I created a separate pull request for the sixth task because it may require some changes if needed.

If that's the case, then the branches should be completely separate, i.e. the branch for this PR should not contain the changes for that other PR. It looks like the changes in this PR can be applied separately from that other one, so it should be possible to make this branch independent.

I raised two pull requests for this issue and completed the other five tasks in that separate pull request (#12437). I created a separate pull request for the sixth task because it may require some changes if needed.

If that's the case, then the branches should be completely separate, i.e. the branch for this PR should not contain the changes for that other PR. It looks like the changes in this PR can be applied separately from that other one, so it should be possible to make this branch independent.

My bad, I have removed the changes from this PR that overlapped with the other PR.
Kindly review both my PRs: #12437 and #12438 for the issue: #12435.
Apologies for the confusion.

@Srishti-j18 thanks for this, I will rebase and merge with a few fixes.
Please note that the format for the Python DocStrings is RST, and adding double backticks is important for formatting values as pre text.
however, your PR included a lot of additional double backticks for things such as
:meth:``
:attr:``

This is incorrect, and will actually break the formatting.
I know it's a bit confusing compared to Markdown, but in the future be sure to build your docs locally and check your changes before preparing a PR.
Thank you though for getting this updated, I will clean up and merge shortly.

Apologies for not checking it before making the PR. In the future, I'll keep that in mind.


Kubelet's maxPods should be configurable

Is this a BUG REPORT or FEATURE REQUEST?:
/kind feature
What happened:
While running scale tests against a 100-node cluster, scale would terminate at 11,000 pods. Kubernetes enforces a default maxPods of 110.
What you expected to happen:
kubo-release should expose a parameter to set the maxPods in the Kubelet's config.
How to reproduce it (as minimally and precisely as possible):
Try to deploy more than 110 pods to a single node.
Anything else we need to know?:
Kubelet config schema - maxPods
Environment:

Deployment Info (bosh -d <deployment> deployment):

service-instance_697bbc1f-6a17-44fd-957d-c12e65c0acdf  bosh-dns/1.6.0                     bosh-vsphere-esxi-ubuntu-trusty-go_agent/3586.24  pivotal-container-service-ce87e078e9a56bea5a0f  latest
                                                       bpm/0.6.0
                                                       cfcr-etcd/1.3.1
                                                       docker/32.0.0
                                                       kubo/0.17.0
                                                       pks-helpers/28.0.0
                                                       pks-nsx-t/0.21.0
                                                       pks-telemetry/0.9.0
                                                       pks-vrli/0.3.0
                                                       syslog-migration/11.1.1
                                                       wavefront-proxy/0.6.0

Environment Info (bosh -e <environment> environment):

Name      p-bosh
UUID      cb207720-532a-44c5-b3b2-dd0a316c0098
Version   265.2.0 (00000000)
CPI       vsphere_cpi
Features  compiled_package_cache: disabled
          config_server: enabled
          dns: disabled
          snapshots: disabled
User      ops_manager

Kubernetes version (kubectl version): v1.10.3
Cloud provider (e.g. aws, gcp, vsphere): all.

It is configurable now. Thanks Travis!


AWS CloudFront deployment guide setup is more complicated than needed

📚 Subject area/topic
S3 Deployment
📋 Page(s) affected (or suggested, for new content)
https://docs.astro.build/en/guides/deploy/aws/#s3-setup + all translations
📋 General description or bullet points (if proposing new content)
Current state
The guide says: Unfortunately, CloudFront does not support multi-page sub-folder/index routing by default
This is probably true, however it assumes the origin is a S3 bucket. Earlier in the guide, the user is guided through setting up S3 bucket website hosting. Using the S3 website hosting endpoint as the origin, the CloudFront Functions hack is not required because index.html etc are all resolved correctly. This is also recommended by CloudFront, see:

Proposal

Keep the S3 static website hosting section as is.
Remove S3 with CloudFront > S3 setup
Remove CloudFront Functions setup
Change S3 with CloudFront > CloudFront setup to use the S3 bucket website hosting origin

🖥 Reproduction in StackBlitz (if reporting incorrect content or code samples)

Hi! Thank you for pointing this out! If you'd like to make a PR with your suggestions to simplify this guide, we will take a look at it! Otherwise, we are in the process of migrating our docs site to Starlight and are not making large content changes ourselves right now, while we are focusing on a smooth transition.
So I will close this issue as it is not something we are looking to update right now, but would welcome a PR in the future!


Feature/issue 778 math includes

Summary
Clean up the stan/math.hpp includes, which had files too high up the file hierarchy.
Intended Effect:
Rationalize the includes so that including functions, matrix, etc. does the right thing.
How to Verify:
The current unit tests and model build tests should suffice.
Side Effects:
Anyone using Stan directly from C++ may have to change some includes if they included parts of math.hpp.
Documentation:
Nothing user facing.
Reviewer Suggestions:
Daniel --- he loves this kind of re-org!

It looks like the constants and rep_* tests were removed. I think they should be moved to the right level and included.
@bob-carpenter, I can take care of it.

I thought I moved them in Git, but they don't seem to have gotten
added.  I just pushed the versions that should have the right names.
I ran all the unit tests and header tests here.
The reason I missed it is that I'm now getting tons of false positives
in git status from .cpp versions in test-models/good.  I'll try to clean
them out by hand and hope they don't come back.

Bob

On Jan 3, 2015, at 2:13 PM, Daniel Lee<EMAIL_ADDRESS>wrote:
It looks like the constants and rep_* tests were removed. I think they should be moved to the right level and included.
@bob-carpenter, I can take care of it.
—
Reply to this email directly or view it on GitHub.


How to upgrade your MySQL Single Server - source server's .NET client driver version to 8.0.32

[Enter feedback here]
under Limitations section, first bullet point says
If your source Azure Database for MySQL Single Server has engine version v8.x, ensure to upgrade your source server's .NET client driver version to 8.0.32 to avoid any encoding incompatibilities post migration to Flexible Server.
how will customers, have access to a PaaS server ?
how can they find what is Source Server's .NET client driver version?
will customers, need to file support tickets to validate this point?

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

ID: f6794a5f-24d3-e0cd-1d63-cc18e3eb378a
Version Independent ID: 91d67707-f0e9-170a-f22a-0bc3ffbb2a6c
Content: Migrate Azure Database for MySQL - Single Server to Flexible Server using Azure MySQL Import CLI
Content Source: articles/mysql/migrate/migrate-single-flexible-mysql-import-cli.md
Service: mysql
Sub-service: flexible-server
GitHub Login: @adig
Microsoft Alias: adig

@crprashant
Thanks for your feedback! We will investigate and update as appropriate.

Hi @adig,
Could you please look into this request, thanks.

@v-dirichards
Could you please review it.

@American-Dipper
Please review it.

@adig is the appropriate person to review this PR as they are the author

@kylejdoyle
Please review it.

#reassign: @adig

Article has been updated

#please-close


Upgrades go to 1.18

What
Upgrades go to v1.18 because go_buildpack: v1.9.42 removes support for 1.16
Also removes unused function and upgrades most dependencies
How to review

all go bits updated to v1.18
tests passing

Who can review
Not @nimalank7

Are we going to have to synchronize the rollout of this with the buildpack upgrade? Because it doesn't deploy on current main due to missing golang 1.18

Are we going to have to synchronize the rollout of this with the buildpack upgrade? Because it doesn't deploy on current main due to missing golang 1.18

That's a good point.
I think we will have to... or we'll have to do a 1.17 in between? 🤔

As said in slack, actually I think it will be fine because of the pipeline pinning the apps to appropriate versions.


multiple hosts

Is it possible to use this docker image to setup riak-cs cluster across several hosts?

It does not. There is a similar discussion going on in the docker-riak repository:

https://github.com/hectcastro/docker-riak/issues/10
https://github.com/hectcastro/docker-riak/issues/39


Adding the RSS feed in iTunes podcasts does not work

Hey :)
Can you think of a reason why adding the RSS feed URL in iTunes does not work ?
By that I mean iTunes does not find any episode to download.
Cheers,

Hi,
The links in the RSS feed does not point to the podcast media itself. Rather, it points to the podcast show notes.
I'm planning to add a second RSS feed that links to the media directly. See #3.

Thanks :) I'm gonna subscribe to #3 then!


Clarify that there are actually 303 unique compounds, not 306

These 3 compounds are duplicated (but different broad_sample values)

pert_iname
n

BVT-948
2

dexamethasone
2

thiostrepton
2

In the case of BVT-948 (44483339 and 6604934) and Thiostrepton (16154490 and 101290202), it looks they may be different molecules with the same chemical name (They have different IUPAC names or Isomeric SMILES).
In the case of Dexamethasone, I am not sure how the two are different though there are two different entries on PubChem (5743 and 5702035).

In the case of BVT-948 (44483339 and 6604934) and Thiostrepton (16154490 and 101290202), it looks they may be different molecules with the same chemical name (They have different IUPAC names or Isomeric SMILES).
In the case of Dexamethasone, I am not sure how the two are different though there are two different entries on PubChem (5743 and 5702035).

My conclusion here is that given that they have the same molecular formula, we should treat them similar enough so as to always keep them in the same data split.
E.g. below, I can't have BRD-A22713669-PTPN1 in training and BRD-K68567222-PTPN1 in testing.

pert_iname
pert_id
target

BVT-948
BRD-A22713669
PTPN1

BVT-948
BRD-A22713669
PTPN11

BVT-948
BRD-A22713669
PTPN2

BVT-948
BRD-K68567222
PTPN1

BVT-948
BRD-K68567222
PTPN11

BVT-948
BRD-K68567222
PTPN2

dexamethasone
BRD-A10188456
ANXA1

dexamethasone
BRD-A10188456
NOS2

dexamethasone
BRD-A10188456
NR0B1

dexamethasone
BRD-A10188456
NR3C1

dexamethasone
BRD-A10188456
NR3C2

dexamethasone
BRD-K38775274
ANXA1

dexamethasone
BRD-K38775274
NOS2

dexamethasone
BRD-K38775274
NR0B1

dexamethasone
BRD-K38775274
NR3C1

dexamethasone
BRD-K38775274
NR3C2

thiostrepton
BRD-A20697603
FOXM1

thiostrepton
BRD-K58049875
FOXM1

data.frame(pert_iname = c("dexamethasone", "BVT-948", "thiostrepton")) %>% inner_join(drug_target_samples) %>% select(pert_iname, pert_id, target) %>% distinct(pert_iname, pert_id, target) %>% arrange(pert_iname, pert_id) %>% knitr::kable()

We need to figure this out so that others trying to create these plates know what to pick
Here's the metadata again for these compounds

broad_sample
pert_iname
pubchem_cid
target
InChIKey
smiles

BRD-A22713669-001-04-3
BVT-948
44483339
PTPN2
AJVXVYTVAAWZAP-UHFFFAOYSA-N
CC1(C)C2C(=NC1=O)c1ccccc1C(=O)C2=O

BRD-K68567222-001-01-2
BVT-948
6604934
PTPN2
LLPBUXODFQZPFH-UHFFFAOYSA-N
CC1(C)C(=O)NC2=C1C(=O)C(=O)c1ccccc21

BRD-K38775274-001-22-1
dexamethasone
5743
ANXA1
UREBDLICKHMUKA-CXSFZGCWSA-N
C[C@@H]1C[C@H]2[C@@H]3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO

BRD-A10188456-001-04-9
dexamethasone
5702035
ANXA1
UREBDLICKHMUKA-QCYOSJOCSA-N
C[C@@H]1CC2C3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO

BRD-K58049875-001-03-9
thiostrepton
16154490
FOXM1
NSFFHOGKXHRQEW-AIHSUZKVSA-N
CC[C@H](C)[C@@H]1N[C@@H]2C=Cc3c(cc(nc3[C@H]2O)C(=O)O[C@H](C)[C@@H]2NC(=O)c3csc(n3)[C@@H](NC(=O)[C@H]3CSC(=N3)\C(NC(=O)[C@@H](NC(=O)c3csc(n3)[C@]3(CCC(=N[C@@H]3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)[C@H](C)NC(=O)C(=C)NC(=O)[C@H](C)NC1=O)[C@@H](C)O)=C\C)[C@](C)(O)[C@@H](C)O)[C@H](C)O

BRD-A20697603-001-07-2
thiostrepton
101290202
FOXM1
NSFFHOGKXHRQEW-DVRIZHICSA-N
CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O

@niranjchandrasekaran said

In the case of BVT-948 (44483339 and 6604934) and Thiostrepton (16154490 and 101290202), it looks they may be different molecules with the same chemical name (They have different IUPAC names or Isomeric SMILES).
In the case of Dexamethasone, I am not sure how the two are different though there are two different entries on PubChem (5743 and 5702035).

In a separate conversation, we had some confusion about dexamethasone
https://github.com/jump-cellpainting/normalization/issues/3#issuecomment-824366920

Side note: I'm not sure how we ended up with these duplicates, but I think it was because we were using something other than pert_iname as identifiers when selecting (which is fine because its <1%).

So the main question is: what should we recommend to people trying to recreate this plate? I'll tag @dkuhn in case he has some insights given his comment in #24

I used https://github.com/jump-cellpainting/compound-annotator/blob/79596e411fc119b2b71970a8b698ce33658f55a6/StandardizeMolecule.py below
Prep data
wget https://raw.githubusercontent.com/jump-cellpainting/JUMP-Target/6db6edbc2360c2bb5dfd2d082459acd6055d209c/JUMP-Target-2_compound_metadata.tsv

grep -E 'thiostrepton|dexamethasone|BVT-948|pert_iname' ~/Downloads/JUMP-Target-2_compound_metadata.tsv  > ~/Downloads/JUMP-Target-2_compound_metadata-only-dups.tsv

Run JUMP standardizer
python StandardizeMolecule.py \
  run --num_cpu=8 \
  --input=/Users/shsingh/Downloads/JUMP-Target-2_compound_metadata-only-dups.tsv \
  --output=/Users/shsingh/Downloads/JUMP-Target-
2_compound_metadata-only-dups-std.tsv

Output:
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
Tautomer enumeration stopped at maximum 1000
6/6 [04:11<00:00, 41.93s/it]
/Users/shsingh/Downloads/JUMP-Target-2_compound_metadata-only-dups-std.tsv

cat /Users/shsingh/Downloads/JUMP-Target-2_compound_metadata-only-dups-std.tsv|csvcut -c SMILES_original|tail -n +2|sort|uniq -c
   1 CC1(C)C(=O)NC2=C1C(=O)C(=O)c1ccccc21
   1 CC1(C)C2C(=NC1=O)c1ccccc1C(=O)C2=O
   1 CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O
   1 CC[C@H](C)[C@@H]1N[C@@H]2C=Cc3c(cc(nc3[C@H]2O)C(=O)O[C@H](C)[C@@H]2NC(=O)c3csc(n3)[C@@H](NC(=O)[C@H]3CSC(=N3)\C(NC(=O)[C@@H](NC(=O)c3csc(n3)[C@]3(CCC(=N[C@@H]3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)[C@H](C)NC(=O)C(=C)NC(=O)[C@H](C)NC1=O)[C@@H](C)O)=C\C)[C@](C)(O)[C@@H](C)O)[C@H](C)O
   1 C[C@@H]1CC2C3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO
   1 C[C@@H]1C[C@H]2[C@@H]3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO

cat /Users/shsingh/Downloads/JUMP-Target-2_compound_metadata-only-dups-std.tsv|csvcut -c SMILES_standardized|tail -n +2|sort|uniq -c
   2 C=C(NC(=O)C(=C)NC(=O)c1csc(C2=NC3c4csc(n4)C4NC(=O)c5csc(n5)C(C(C)(O)C(C)O)NC(=O)C5CSC(=N5)C(=CC)NC(=O)C(C(C)O)NC(=O)c5csc(n5)C3(CC2)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC(=O)C(C(C)CC)Nc2ccc3c(c2O)NC(=CC3C(C)O)C(=O)OC4C)n1)C(N)=O
   2 CC1(C)C(=O)N=C2c3ccccc3C(=O)C(=O)C21
   2 CC1CC2C3CC=C4CC(=O)C=CC4(C)C3(F)C(O)CC2(C)C1(O)C(=O)CO

It seems like the first pair of compounds is a tautomer (PubChem CID as molecule label):
,
The second one has a difference in one stereocenter (stated v.s. not shown):

In the third, it seems like there's one SMILES with stereochemistry and one without:

Standardizing compounds with the ChEMBL standardizer didn't change the structures either, even after trying to get the parent structures for each of the compounds.
To reproduce the analysis:
from io import StringIO
from pubchempy import get_compounds
from chembl_structure_pipeline.standardizer import standardize_mol, get_parent_mol
from rdkit.Chem import Draw

data = """broad_sample	pert_iname	pubchem_cid	target	InChIKey	smiles
BRD-A22713669-001-04-3	BVT-948	44483339	PTPN2	AJVXVYTVAAWZAP-UHFFFAOYSA-N	CC1(C)C2C(=NC1=O)c1ccccc1C(=O)C2=O
BRD-K68567222-001-01-2	BVT-948	6604934	PTPN2	LLPBUXODFQZPFH-UHFFFAOYSA-N	CC1(C)C(=O)NC2=C1C(=O)C(=O)c1ccccc21
BRD-K38775274-001-22-1	dexamethasone	5743	ANXA1	UREBDLICKHMUKA-CXSFZGCWSA-N	C[C@@H]1C[C@H]2[C@@H]3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO
BRD-A10188456-001-04-9	dexamethasone	5702035	ANXA1	UREBDLICKHMUKA-QCYOSJOCSA-N	C[C@@H]1CC2C3CCC4=CC(=O)C=C[C@]4(C)[C@@]3(F)[C@@H](O)C[C@]2(C)[C@@]1(O)C(=O)CO
BRD-K58049875-001-03-9	thiostrepton	16154490	FOXM1	NSFFHOGKXHRQEW-AIHSUZKVSA-N	CC[C@H](C)[C@@H]1N[C@@H]2C=Cc3c(cc(nc3[C@H]2O)C(=O)O[C@H](C)[C@@H]2NC(=O)c3csc(n3)[C@@H](NC(=O)[C@H]3CSC(=N3)\C(NC(=O)[C@@H](NC(=O)c3csc(n3)[C@]3(CCC(=N[C@@H]3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)[C@H](C)NC(=O)C(=C)NC(=O)[C@H](C)NC1=O)[C@@H](C)O)=C\C)[C@](C)(O)[C@@H](C)O)[C@H](C)O
BRD-A20697603-001-07-2	thiostrepton	101290202	FOXM1	NSFFHOGKXHRQEW-DVRIZHICSA-N	CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O"""

def get_inchi(smi):
    mol = Chem.MolFromSmiles(smi)
    return Chem.MolToInchiKey(mol)

def get_info_from_pubchem(cid):
    cpds = get_compounds(cid)
    assert len(cpds) == 1, "More than one compound found"
    return cpds[0].to_dict(
        properties=["isomeric_smiles", "inchikey", "iupac_name", "synonyms"]
    )

def standardize_smiles(smi):
    mol = Chem.MolFromSmiles(smi)
    parent_mol = get_parent_mol(mol)[0]
    mol = standardize_mol(parent_mol, sanitize=True)
    return Chem.MolToSmiles(mol, isomericSmiles=True, canonical=True)

df = pd.read_csv(StringIO(data), sep="\t").assign(
    rdInChIKey=lambda x: x["smiles"].apply(get_inchi),
    std_smiles=lambda x: x["smiles"].apply(standardize_smiles),
)
pubchem_info = df.apply(
    lambda x: get_info_from_pubchem(x["pubchem_cid"]), axis=1, result_type="expand"
)
pubchem_info = pubchem_info.rename(
    columns={c: f"pubchem_{c}" for c in pubchem_info.columns}
)
df = pd.concat([df, pubchem_info], axis=1)

assert all(
    [
        (df["rdInChIKey"] == df["InChIKey"]).all(),
        (df["InChIKey"] == df["pubchem_inchikey"]).all(),
    ]
)

for name in df.pert_iname.unique():
    subset = df.query("pert_iname == @name")
    # plot the two molecules in a molecular grid
    mols = [Chem.MolFromSmiles(smi) for smi in subset["smiles"]]
    img = Draw.MolsToGridImage(
        mols,
        subImgSize=(300, 300),
        molsPerRow=2,
        returnPNG=True,
        legends=subset["pubchem_cid"].astype(str).tolist(),
    )
    display(img)

@David-Araripe
Thank you very much for your help! I spoke with @srijitseal and this has helped us conclude that we should indeed report this as 303, not 306 compounds.
I'll report back here closing this out

All set in #31
Thank you once again David and Srijit!

@srijitseal @David-Araripe -- sorry to reopen, but it appears that we might have 2 more "duplicates" as noted here https://github.com/jump-cellpainting/datasets/issues/80#issuecomment-1787924639
Is it possible for you to verify that these two additional cases are also isomers?

Hi @shntnu, here what I've observed:
ME-0328 seems to be indeed a duplicate, where one of the repeats doesn't have stereochemistry information:

quinine and quinidine are isomers:

The code for making the figures:
import pandas as pd
from rdkit import Chem
from rdkit.Chem import Draw

df = (
    pd.read_csv(
        "https://raw.githubusercontent.com/jump-cellpainting/JUMP-Target/09f11aefd6b550cfb2d2074e38a65c3be39ddc39/JUMP-Target-2_compound_metadata.tsv",
        sep="\t",
    )
    .query("pert_iname.str.contains('ME-0328|quinidine|quinine')")
    .assign(
        pubchem_cid=lambda x: x["pubchem_cid"].astype(int),
    )
)

for names in [["ME-0328"], ["quinidine", "quinine"]]:
    subset = df.query("pert_iname.isin(@names)")
    # plot the two molecules in a molecular grid
    mols = [Chem.MolFromSmiles(smi) for smi in subset["smiles"]]
    img = Draw.MolsToGridImage(
        mols,
        subImgSize=(300, 300),
        molsPerRow=2,
        returnPNG=True,
        legends=subset["pubchem_cid"].astype(str).tolist(),
    )
    display(img)

Hi David,
I think we still need to check for this one:
thiostrepton
On Tue, Oct 31, 2023 at 4:53 PM David Araripe @.***>
wrote:

Hi @shntnu https://github.com/shntnu, here what I've observed:
ME-0328 seems to be indeed a duplicate, where one of the repeats doesn't
have stereochemistry information:
[image: image]
https://user-images.githubusercontent.com/79095854/279512162-b848ac4b-b67c-492d-a256-afb7101172c0.png
quinine and quinidine are isomers:
[image: image]
https://user-images.githubusercontent.com/79095854/279512178-03c60289-ca3d-48c5-9903-9b9fcb345242.png
The code for making the figures:
import pandas as pdfrom rdkit import Chemfrom rdkit.Chem import Draw
df = (
pd.read_csv(
"https://raw.githubusercontent.com/jump-cellpainting/JUMP-Target/09f11aefd6b550cfb2d2074e38a65c3be39ddc39/JUMP-Target-2_compound_metadata.tsv",
sep="\t",
)
.query("pert_iname.str.contains('ME-0328|quinidine|quinine')")
.assign(
pubchem_cid=lambda x: x["pubchem_cid"].astype(int),
)
)
for names in [["ME-0328"], ["quinidine", "quinine"]]:
subset = @.***)")
# plot the two molecules in a molecular grid
mols = [Chem.MolFromSmiles(smi) for smi in subset["smiles"]]
img = Draw.MolsToGridImage(
mols,
subImgSize=(300, 300),
molsPerRow=2,
returnPNG=True,
legends=subset["pubchem_cid"].astype(str).tolist(),
)
display(img)
—
Reply to this email directly, view it on GitHub
https://github.com/jump-cellpainting/JUMP-Target/issues/9#issuecomment-1788019358,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN34ZTYU2HRY4MKJV76NDK3YCFQK3AVCNFSM4V2JF662U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCNZYHAYDCOJTGU4A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Again seems like the same but without stereochemistry information:

The smiles also seem to be broken? I see N with 7 bonds and C=O floating
around. Is it possible that it’s a fault of rdkit Draw.
If it’s not too late in your time zone, can you get the smiles from
pubchem/chembl/drugbank and draw that? See if that repairs it? If that does
repair, then we need to think about replacing the smiles with the proper
ones,
Best,
Srijit
On Tue, Oct 31, 2023 at 5:32 PM David Araripe @.***>
wrote:

Again seems like the same but without stereochemistry information:
[image: image]
https://user-images.githubusercontent.com/79095854/279520428-38c7b0d4-6494-4335-b11a-74243e39e377.png
—
Reply to this email directly, view it on GitHub
https://github.com/jump-cellpainting/JUMP-Target/issues/9#issuecomment-1788065969,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN34ZTYAYHAVSRMZR5EILPDYCFU5LAVCNFSM4V2JF662U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCNZYHAYDMNJZGY4Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

Here's the molecular drawing but made with the PubChem smiles instead:

I wanted to check the difference between the SMILES that are currently registered in the smiles column and the ones from PubChem so compared their Morgan fingerprints (ignoring chirality). Here's the code:
from io import StringIO
from rdkit.Chem import AllChem, DataStructs

data = """broad_sample	pert_iname	pubchem_cid	target	InChIKey	smiles
BRD-K58049875-001-03-9	thiostrepton	16154490	FOXM1	NSFFHOGKXHRQEW-AIHSUZKVSA-N	CC[C@H](C)[C@@H]1N[C@@H]2C=Cc3c(cc(nc3[C@H]2O)C(=O)O[C@H](C)[C@@H]2NC(=O)c3csc(n3)[C@@H](NC(=O)[C@H]3CSC(=N3)\C(NC(=O)[C@@H](NC(=O)c3csc(n3)[C@]3(CCC(=N[C@@H]3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)[C@H](C)NC(=O)C(=C)NC(=O)[C@H](C)NC1=O)[C@@H](C)O)=C\C)[C@](C)(O)[C@@H](C)O)[C@H](C)O
BRD-A20697603-001-07-2	thiostrepton	101290202	FOXM1	NSFFHOGKXHRQEW-DVRIZHICSA-N	CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O"""

df = pd.read_csv(StringIO(data), sep="\t")

def get_info_from_pubchem(cid):
    cpds = get_compounds(cid)
    assert len(cpds) == 1, "More than one compound found"
    return cpds[0].to_dict(
        properties=["isomeric_smiles", "inchikey", "iupac_name", "synonyms"]
    )

def get_morgan_fp(smi):
    mol = Chem.MolFromSmiles(smi)
    fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2, nBits=2048, useChirality=False)
    return fp

def check_same_fp(fp1, fp2):
    return DataStructs.FingerprintSimilarity(fp1, fp2)

pubchem_info = df.apply(
    lambda x: get_info_from_pubchem(x["pubchem_cid"]), axis=1, result_type="expand"
)
pubchem_info = pubchem_info.rename(
    columns={c: f"pubchem_{c}" for c in pubchem_info.columns}
)
df = pd.concat([df, pubchem_info], axis=1)

fp_JUMP_smiles = subset.smiles.apply(get_morgan_fp).tolist()
fp_pubchem_smiles = subset.pubchem_isomeric_smiles.apply(get_morgan_fp).tolist()
cids = subset.pubchem_cid.tolist()

for cid, fp1, fp2 in zip(cids, fp_JUMP_smiles, fp_pubchem_smiles):
    print(
        f"CID: {cid}, fingerprint similarity (JUMP v.s. PubChem): {check_same_fp(fp1, fp2)}"
    )

and the output
>>>CID: 16154490, fingerprint similarity (JUMP v.s. PubChem): 1.0
>>>CID: 101290202, fingerprint similarity (JUMP v.s. PubChem): 0.46788990825688076

So there seems to be something wrong with the smiles from BRD-A20697603-001-07-2 indeed. Maybe consider using the smiles from PubChem since the CIDs are already there? These would be the new smiles:
{
    "BRD-K58049875-001-03-9": "CC[C@H](C)[C@H]1C(=O)N[C@H](C(=O)NC(=C)C(=O)N[C@H](C(=O)N[C@]23CCC(=N[C@@H]2C4=CSC(=N4)[C@H]([C@H](OC(=O)C5=NC6=C(C=C[C@H]([C@@H]6O)N1)C(=C5)[C@H](C)O)C)NC(=O)C7=CSC(=N7)[C@@H](NC(=O)[C@H]8CSC(=N8)/C(=C/C)/NC(=O)[C@@H](NC(=O)C9=CSC3=N9)[C@@H](C)O)[C@@](C)([C@@H](C)O)O)C1=NC(=CS1)C(=O)NC(=C)C(=O)NC(=C)C(=O)N)C)C",
    "BRD-A20697603-001-07-2": "CCC(C)C1C(=NC(C(=NC(=C)C(=NC(C(=NC23CCC(=NC2C4=CSC(=N4)C(C(OC(=O)C5=NC6=C(C=CC(C6O)N1)C(=C5)C(C)O)C)N=C(C7=CSC(=N7)C(N=C(C8CSC(=N8)/C(=C\\C)/N=C(C(N=C(C9=CSC3=N9)O)C(C)O)O)O)C(C)(C(C)O)O)O)C1=NC(=CS1)C(=NC(=C)C(=NC(=C)C(=N)O)O)O)O)C)O)O)C)O"
}

Really helpful!
At this point, we should go back to the source of the metadata https://repo-hub.broadinstitute.org/repurposing to figure this out, because that may also resolve some of the other inconsistencies.
For example, here it is for the two samples of thiostrepton from repurposing_samples_20200324.txt:
broad_id	pert_iname	qc_incompatible	purity	vendor	catalog_no	vendor_name	expected_mass	smiles	InChIKey	pubchem_cid	deprecated_broad_id
BRD-A20697603-001-07-2	thiostrepton	0	42.09	MicroSource	1505111	THIOSTREPTON	"1,663.49"	CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O	NSFFHOGKXHRQEW-DVRIZHICSA-N	101290202
BRD-K58049875-001-03-9	thiostrepton	0	96.6	MedChemEx	HY-B0990	Thiostrepton	"1,663.49"	CC[C@H](C)[C@@H]1N[C@@H]2C=Cc3c(cc(nc3[C@H]2O)C(=O)O[C@H](C)[C@@H]2NC(=O)c3csc(n3)[C@@H](NC(=O)[C@H]3CSC(=N3)\C(NC(=O)[C@@H](NC(=O)c3csc(n3)[C@]3(CCC(=N[C@@H]3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)[C@H](C)NC(=O)C(=C)NC(=O)[C@H](C)NC1=O)[C@@H](C)O)=C\C)[C@](C)(O)[C@@H](C)O)[C@H](C)O	NSFFHOGKXHRQEW-AIHSUZKVSA-N	16154490	BRD-A89819812-001-02-8

We might as well just retrieve all these annotations over again from the source. Will report back here later, but all this info is super useful.
@David-Araripe Thank you again!

I think that's a great idea. I think in this particular case, the one with
the higher purity is better, but you can see that they are indeed the same
compound for ML purposes (same molecular weight as well). The second SMILES
has data on stereoisomers, the first doesn't.
I am happy to look at all 300+ molecules individually and then we can make
a call on what is the number of unique compounds (unique based on
chemistry/stereoisomers).
Best,
Srijit
ᐧ
On Wed, 1 Nov 2023 at 22:02, Shantanu Singh @.***>
wrote:

Really helpful!
At this point, we should go back to the source of the metadata
https://repo-hub.broadinstitute.org/repurposing to figure this out,
because that may also resolve some of the other inconsistencies.
For example, here it is for the two samples of thiostrepton from
repurposing_samples_20200324.txt:
broad_id	pert_iname	qc_incompatible	purity	vendor	catalog_no	vendor_name	expected_mass	smiles	InChIKey	pubchem_cid	deprecated_broad_id
BRD-A20697603-001-07-2	thiostrepton	0	42.09	MicroSource	1505111	THIOSTREPTON	"1,663.49"	CCC(C)C1NC2C=Cc3c(cc(nc3C2O)C(=O)OC(C)C2NC(=O)c3csc(n3)C(NC(=O)C3CSC(=N3)\C(NC(=O)C(NC(=O)c3csc(n3)C3(CCC(=NC3c3csc2n3)c2nc(cs2)C(=O)NC(=C)C(=O)NC(=C)C(N)=O)NC(=O)C(C)NC(=O)C(=C)NC(=O)C(C)NC1=O)C(C)O)=C/C)C(C)(O)C(C)O)C(C)O	NSFFHOGKXHRQEW-DVRIZHICSA-N	101290202
BRD-K58049875-001-03-9	thiostrepton	0	96.6	MedChemEx	HY-B0990	Thiostrepton	"1,663.49"	@.(C)[C@@H]1N[C@@@.@.(C)[C@@H]2NC(=O)c3csc(n3)[C@@@.3CSC(=N3)\C(NC(=O)C@@HC@(O)[C@@@.***(C)O	NSFFHOGKXHRQEW-AIHSUZKVSA-N	16154490	BRD-A89819812-001-02-8
We might as well just retrieve all these annotations over again from the
source. Will report back here later, but all this info is super useful.
@David-Araripe https://github.com/David-Araripe Thank you again!
—
Reply to this email directly, view it on GitHub
https://github.com/jump-cellpainting/JUMP-Target/issues/9#issuecomment-1789943146,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN34ZTYV5CTSIDKYFTGLGPLYCL5KLAVCNFSM4V2JF662U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCNZYHE4TIMZRGQ3A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Refer to /jump-cellpainting/datasets/issues/80 for detailed analysis.

There are 301 unique compounds in this dataset.
We found there are 5 compounds with duplicate entries, hence 301 and not 306 unique compounds. After standardization, we don't see this problem anymore In the original Target2 dataset, they seemed different because of the following.
1.0

It seems like the pair of compounds is a tautomer
2.0

This one has a difference in one stereocenter (stated v.s. not shown)
3.0

ME-0328 seems to be indeed a duplicate, where one of the repeats doesn't have stereochemistry information.
4.0

quinine and quinidine are isomers, we should keep both as "unique", they have different biological signal, so no data leak when using cell painting, but caution is advised when using ECFP, that would leak data as it cant differentiate stereochemistry.
5.0

For thiostrepton, connectivity is same, it seems stereochemistry is different


Add async calls

Add async call to arbitrary env functions

This is a bit buggy, fixing it now

Ok I fixed the bugs, but now there's a bit of an implementation issue. If you use the same request/response queue for arbitrary calls and steps/resets then it complicates the interface. Since the main evaluate function calls send() at the end of the loop, there is usually data sitting in the response queue until the next time evaluate() is called. This means that if you call async_call(), it will receive the observation data from the previous evaluate call instead of its own outputs, which inevitably leads to errors.
I think the best solution is to just create a separate call queue, but maybe there's a way to rewrite the evaluate code so that it doesn't leave data in the queues.


deploy contract on zetachain failed

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (7545c7a 2024-03-12T00:17:55.654014000Z)
What command(s) is the bug in?
forge script src/scripts/ZetaOfficialBridgeAdapter.s.sol:ZetaOfficialBridgeAdapter -vvvv --broadcast -g 500
Operating System
macOS (Apple Silicon)
Describe the bug
Here is part of script:
    function run() public {
        deploy();
    }
    function deploy() public{
        // deploy on zeta
        vm.createSelectFork(vm.envString("ZETACHAIN_RPC_URL"));
        vm.startBroadcast(deployer);

        console2.log("block.chainID", block.chainid);
        require(block.chainid == 7000 , "must be ZETA chain");

        ZetaChainAdaptorForZeta adapter = new ZetaChainAdaptorForZeta(address(xBridge), _routerList, feeto, _zetaOfficalBridge, ETH_ETH, BNB_BSC);
        console2.log("ZetaOfficialBridgeAdapter deployed on ZETA chain", address(adapter));

        vm.stopBroadcast();
    }

It can pass the simulation, but the final error is as follows：
==========================

Chain 7000

Estimated gas price: 20 gwei

Estimated total gas used for script: 5727215

Estimated amount required: 0.1145443 ETH

==========================
##
Sending transactions [0 - 0].
⠁ [00:00:02] [######################################################################################################] 1/1 txes (0.0s)##
Waiting for receipts.

Transactions saved to: .../broadcast/ZetaOfficialBridgeAdapter.s.sol/7000/run-latest.json

Sensitive values saved to: .../cache/ZetaOfficialBridgeAdapter.s.sol/7000/run-latest.json

Error:
Transaction Failure:0x.....(I omitted the actual tx)

I raised the gaslimit 50 times, but it's still the same mistake。This contract can be deployed normally using the hardhat framework.

if transaction landed on-chain and reverted, the tx hash would be helpful here

if transaction landed on-chain and reverted, the tx hash would be helpful here

Here is one of transactions.
https://zetachain.blockscout.com/tx/0x012a898d6b21bea261a65f426f90af90591e40e4b5eef60d130d8f0fcbf5f02f

if transaction landed on-chain and reverted, the tx hash would be helpful here

Here is one of transactions.
https://zetachain.blockscout.com/tx/0x012a898d6b21bea261a65f426f90af90591e40e4b5eef60d130d8f0fcbf5f02f

Zetachain doesn't support the PUSH0 opcode. View the call trace of the tx.
You need to compile with the EVM version that is supported by the chain you're deploying to.


Lukeshu/fix release push

Description
A few sentences describing the overall goals of the pull request's commits.
Related Issues
List related issues.
Testing
A few sentences describing what testing you've done, e.g., manual tests, automated tests, deployed in production, etc.
Todos

[ ] Tests
[ ] Documentation

Other

If this is a documentation change, please open the pull request at https://github.com/datawire/ambassador-docs instead.
Code changes should occur against master.

Another one where there's no point waiting for branch CI.


The renderComponentIntoRoot component encountered an error while loading.

Describe the Bug with repro steps
Create a blank workflow, use the Preview Designer
Add an HTTP Request trigger
Attempt to add an in-app SQL Server Execute Query action
Interface crashes with error:
{  "shellProps": {    "sessionId": "fd03ba7e70d14bd6bab95c45772febfb",    "extName": "Microsoft_Azure_EMA",    "contentName": "DesignerEditor.ReactView"  },  "error": {    "message": "The renderComponentIntoRoot component encountered an error while loading.",    "metadata": {      "area": "renderComponentIntoRoot"    },    "error": {      "data": {        "message": "The renderComponentIntoRoot component encountered an error while loading.",        "metadata": {          "area": "renderComponentIntoRoot"        },        "capturedErrors": [          {            "message": "{"message":"e.queryKey.some is not a function","stack":"TypeError: e.queryKey.some is not a function\n    at predicate (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:107:1023912)\n    at g (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:2:1175488)\n    at https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:105:28108\n    at Array.filter ()\n    at n.findAll (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:105:28070)\n    at t.isFetching (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:105:166081)\n    at l (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:105:171964)\n    at fP (https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:107:1023825)\n    at on (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:35636)\n    at Fn (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:42359)\n    at lc (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:110759)\n    at Nr (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:69837)\n    at Pr (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:69762)\n    at wr (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:66778)\n    at https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:23918\n    at unstable_runWithPriority (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:42:8274)\n    at Et (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:23627)\n    at Tt (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:23863)\n    at _t (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:23798)\n    at e.kr [as batchNotifyFn] (https://reactblade.portal.azure.net//Content/Dynamic/3KsPtNwXSeTh.js:43:67071)\n    at https://afd.hosting.portal.azure.net/ema/Content/Dynamic/kgMhxyx9QQkb.js:2:1869420","name":"TypeError"}: {"componentStack":"\n    in fP\n    in div\n    in LN\n    in FN\n    in Z\n    in IntlProvider\n    in ee\n    in l\n    in te\n    in l\n    in mx\n    in div\n    in div\n    in o\n    in FluentProvider\n    in div\n    in o\n    in ThemeProvider\n    in PN\n    in R\n    in RN\n    in div\n    in M\n    in l\n    in Unknown\n    in a\n    in renderComponentIntoRoot\n    in div\n    in t\n    in Styledt\n    in i\n    in div\n    in ThemeProvider\n    in Unknown"}",            "metadata": {              "area": "renderComponentIntoRoot"            }          }        ]      }    },    "code": null  }}
Workflow JSON
No response
Screenshots or Videos

Browser
Chrome Version 111.0.5563.147 (Official Build) (64-bit)
Additional context
No response

Thank you for reporting this, it is now fixed in the current release. You can test if you'd like at https://aka.ms/emastaging


CircleCI: find Python syntax errors and undefined names

Like #1375 but without GitHub Actions.  Find syntax errors and undefined names in Python code like the ones fixed in #1219.

Finally fails for the right reason!  Blocked by  #1377

Going to close this out as we've now on actions, the actions PR could be of value now 🙌


Reordering variants in beadplots

#58
#420
#376

Running the dev branch generates the following error:
Traceback (most recent call last):
  File "batch.py", line 157, in <module>
    result = make_beadplots(by_lineage, args, cb.callback, t0=cb.t0.timestamp())
  File "covizu/covizu/utils/batch_utils.py", line 246, in make_beadplots
    beaddict = beadplot.serialize_tree(ctree)
  File "covizu/covizu/beadplot.py", line 161, in serialize_tree
    while(not parents[id].labels):
KeyError: Clade(branch_length=0.0, confidence=1.0, name='')

Huh, I did not realize that unsampled nodes could act as roots—I just pushed a potential fix that should account for this! My test data set doesn't have an instance of this case so I haven't been able to explicitly test it, but it should hopefully solve the issue.

Running into problems with how unsampled lineages get rendered - update issue with this, including screen capture of example please!

Current algorithm results in a clumping of the unsampled variants in the middle of the beadplot. Unsampled variants are currently ordered with their first date being the first date of their parent and their last date being the first date of the earliest child. Several of the unsampled lineages share the same parent in the larger beadplots, leading to this issue:

temporarily disabled cron job
python3 setup.py install --user
module load openmpi/gnu
nohup python3 batch.py --dry-run > pr-432.log &

Checking the following:

[x] Search

[x] Search by accession number
[x] Search by lineage
[x] Search by country
[x] Search by country (with date filter)

[x] Tree filtering
[x] Download Time-scaled tree (nwk)
[x] Download Time-scaled tree (csv)
[x] Download Beadplot (svg)
[x] Download Beadplot (nwk)
[x] Beadplot cutoff slider
[x] Expanding Beadplot
[x] Translated pages
[x] Changing the colour of the tree based on divergence, collection date, etc.
[x] Left/Right arrow key to move between beads
[x] Tooltips


[WIP] - feat(media_control): allow mute/unmute video with Safari on mobile

Because of #1432 it is now possible to display at least the mute/unmute icon on media controls with Safari browser on mobile devices.
(for example, it allow user to unmute video if autoplayed with mute option to true).

Coverage decreased (-0.2%) to 73.383% when pulling 9a565b43d874c3d34c697e62063820a58a0c0ec8 on kslimani:safari-mobile-mute into 8cdc75922006c09b6e78d959ca2aabe7b09c1aca on clappr:master.

Do not merge yet, it work with iOS >=10 but not if lesser it seems.

Coverage increased (+0.01%) to 73.552% when pulling fdedf8152e056cb719b519a99afeae1df6f7ab47 on kslimani:safari-mobile-mute into 8cdc75922006c09b6e78d959ca2aabe7b09c1aca on clappr:master.

Added a browser version check. (mute player option has no effect with Safari iOS lesser than 10)

Coverage decreased (-0.03%) to 73.513% when pulling fdedf8152e056cb719b519a99afeae1df6f7ab47 on kslimani:safari-mobile-mute into 8cdc75922006c09b6e78d959ca2aabe7b09c1aca on clappr:master.


Moving all toast messages to messages.ts file

Added a function called createMessage to format the messages correctly. This way we will have a central way to review & update all messages being displayed to a user.

Pull Request Template
Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request.

Description

Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation
and context. List any dependencies that are required for this change.
if no issue exists, please create an issue and ask the maintainers about this first

Fixes #2797
Type of change

Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce.
Please also list any relevant details for your test configuration.

Manual

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

We can use Template literals instead of JS string formatting.. Making that change

We can use Template literals instead of JS string formatting.. Making that change

I did check out template literals but I couldn’t figure out how to use it in the generic function

Also just realising that util module is only available in node and not in all browsers.

Also just realising that util module is only available in node and not in all browsers.

I tested these changes on Firefox, Chrome & Safari. Do you know of any particular browser versions where this library won't work? I was under the impression that this library is meant to introduce functions that aren't available in the browser's environment by default.

Is something like https://www.npmjs.com/package/util worth adding or should we go with a more javascript-ey solution that looks like:
export const ERROR_ACTION_EXECUTE_FAIL = (actionName) => (`${actionName} action returned an error response`);

function createMessage(formatFn, ...args) {
  return formatFn(...args);
}

// Example usage:
createMessage(ERROR_ACTION_EXECUTE_FAIL, "Api1"); // Api1 action returned an error response

// Example 2:
ERROR_ACTION_EXECUTE_FAIL("Api1"); // Api1 action returned an error response

Even though Example 2 works, I prefer createMessage kind of solution because that makes it easier for us to add translation or letting dev user override the message text.

One use case I've come across is nested message.
In Oauth2 auth code error, we can have different error codes and the message can change based on the code.
REST_API_AUTHORIZATION_FAILED = {
    "appsmith_error" : "Appsmith encountered some error, please try again later.",
    "access_denied": "Check credentials.",
    "__fallback__": "Some generic fallback unknown error message.",
}

The issue seemed to be around importing the messages.ts file in the worker (validation.ts) file. This has issues with functions cause of the way CRA adds workers in dev mode. This problem can only be solved when we eject out of CRA. Till then, I have refactored to keep the message in the validation file itself


Revert "fix export for remote (#10934)"

This reverts commit 381a747b623f877db5f58970e2c72838c54691d1.

This PR addresses #11316

Coverage decreased (-0.01%) to 36.014% when pulling 49d8514250c2002c6ba9f555f03773d8de457c7a on bug/fixOpenFile into f109afb24221c3ede86f45815597df12ac76f316 on release/1.20.


Pressing stop button causes output to seem to disappear

Describe the bug
Pressing the stop button causes the output to disappear for at least 3-5 seconds--long enough to sometimes think it is gone forever
To Reproduce

Enter some instructions
Click the Continue button
Click the stop button (while output is still being generated)
Observe that output completely disappears for 3-5 seconds

Expected behavior
Existing output should always remain visible

Solved with a single extra await sdk.update_ui(), will be in next version


[WIP] Try larger delay

Codecov Report

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

@@           Coverage Diff           @@
##           master     #244   +/-   ##
=======================================
  Coverage   95.25%   95.25%
=======================================
  Files          13       13
  Lines         569      569
  Branches       33       33
=======================================
  Hits          542      542
  Misses         27       27

Impacted Files
Coverage Δ

src/dcos_e2e/cluster.py
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 587d24b...d61f88c. Read the comment docs.


fix: update dependencies

Error: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.

Have you removed node_modules and package-lock.json before doing npm install?


Search Filter Research

[ ] Research objectives
[ ] Research questions
[ ] Search filter examples

Round two of validating the viewer prototype (first round was pop up testing the week before.) First half of the sessions asked pp's about their search behaviour when looking for a particular time period; do they search by date, do they filter by date range, do they want estimated dates surfaced, order of results etc
3 participants but we can extend this by doing an online survey as the date filters are straight forward questions rather than needing a full 45 minute usability session.
draft questionnaire here (being worked on by Hayley and the data team to get the most use out of it) https://wellcomecloud.sharepoint.com/:w:/s/wcdigitalexperience/EQmS1SyZsY9GpnqnbCA7-QEBQmezQd9qbywPY2RVk7ATkw?e=5cZDHA


Support Map and Set

Could you add support for Map and Set, in nodejs since 0.12 and in iojs ?
Even more, support for Iterator (if [Symbol.iterator] exists ?) ?

Map and Set have forEach built in in 100% of their implementations - why would you need to use this module for it?
Similarly, any engine that supports Symbol.iterator will support for..of, and many of those will also support Array.from.

To be able to iterate no matter what the argument is ? But I understand your point of view :)

I think the challenge is that either for-each would have to be able to identify a Map or a Set - which is not a trivial matter (instanceof lies) - or, have generic iterable support, which is not a trivial amount of code to add.
I think that this library is best kept to its current small set of use cases, so I'm going to close this.

@christophehurpeau https://www.npmjs.com/package/iterate-value may be the library you're looking for :-)


Manber, Myers suffix array queries

LCP-LR construction and its usage for querying of suffix array in O(m + log n)

Thank you for the review! I have addressed the suggestions in the newest commits

Yes, I forgot, sorry about that. Everything should be ok now


fix(ground_segmentation): fix  non_ground segmentation missing

Signed-off-by: badai-nguyen<EMAIL_ADDRESS>Description
Scan_ground_filter misses some parts of non_ground segments in some cases like objects close to each other.

Related links

Tests performed

Notes for reviewers

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

lools good.
@miursh can you check the algorithm?


Update HackMaster_5E.css

Updated for new npc tabs
Changes / Comments
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

Wait did I do the pull request wrong?


[android] fix ReadableNativeMap.toHashMap() for nested maps and arrays

Commit https://github.com/facebook/react-native/commit/7891805d22e3fdc821961ff0ccc5c450c3d625c8 broke the previous behavior of ReadableNativeMap.toHashMap() for nested maps and arrays. Previously, all nested ReadableNativeMaps and ReadableNativeArrays were recursively converted to HashMaps and ArrayLists, but this is lost when only getLocalMap() is returned.
Test Plan

Call ReadableNativeMap.toHashMap() on a map with values of type ReadableNativeMap and ReadableNativeArray. Verify the returned hash map has these converted to HashMap and ArrayList, respectively.
Related PRs

Release Notes

[ANDROID] [BUGFIX] [ReadableNativeMap] - Fix toHashMap() for nested maps and arrays

Thank you for working on this PR @esamelson
We are unable to import your PR because of CLA permissions in your account. Could you email<EMAIL_ADDRESS>they will set the right permissions for your account.
Thank you


Use visualize option.

Why not use visualize option to determine wether to visualize?
If we always want to visualize the result, why setting the visualize option?

Okay I accidentally merged this but I revert this. The reason why is there is no reason to not visualize at the end of the training. After we finish training, visualize the result of the trained model should follow.


Add PUT API for updating a product

Please review new model in service/models.py for updating product information.

I updated DELETE in the readme file too

I also converted this PR to a draft so that we can individually review and approve it without merging it to the main branch.


Turn gossiperl_encryption into a behaviour

This will allow providing pluggable encryption modules. This will impact client libraries.

The only encryption algorithm available (and hard coded) is AES-256. This will become a configurable option with pluggable behaviours. Gossiperl will ship with configuration for AES-128, AES-192 and AES-256. Other algorithms can still be added and selected on per overlay basis.


Update warnAboutDeprecatedPostgres.groovy

Extending due to MS issue whilst attempting prod migration. Has been resolved but need to reschedule with release management
Resolves # . (This is applicable only if this pull request relates to a GitHub issue, delete the line otherwise)
Notes:
*
*
*

@willwatters is it possible if you can merge in this PR as I do not have the permissions to merge. Thanks


Handling custom licenses

I've been playing with monkeypatching an additional custom license location in. This seems to be working for me:
Licensee::License.class_eval do

    def self.add_custom_license_dir(dir)
      @custom_license_dir=dir
    end

    def self.custom_license_dir
      return @custom_license_dir
    end

    def self.license_files
      dir=license_dir()
      files ||= Dir.glob("#{license_dir()}/*.txt")
      files.concat(Dir.glob("#{custom_license_dir()}/*.txt"))
      return files
    end

    def path
       path ||= File.expand_path<EMAIL_ADDRESS>Licensee::License.license_dir
       unless(File.exist?(path))
         path = File.expand_path<EMAIL_ADDRESS>Licensee::License.custom_license_dir
       end
       return path
    end

end

Would you be interested in a patch that makes that more part of the API? I would probably make custom_license_dir an array rather than a single element. Given it has to spend time doing File.exist in path, it could go further and change the path API to return nil if the files don't exist.

Noting that I've added it to oss-dashboard:
https://github.com/amzn/oss-dashboard/commit/e744c8c3015b84e8999a225ec87c0a4212de2e90
https://github.com/amzn/oss-dashboard/commit/6b7896e7248e198515503f8c7288103f8b356450

@hyandell can you explain a bit more about what you're trying to do here?

Sure (sorry for the delay).
I'm using licensee on my own GitHub repositories. I want to support more licenses than the choosealicense or spdx repositories have, so I have a 2nd directory that contains my customer license files (in the same format as choosealicense/licensee).
The monkeypatching above splices that extra directory in so that licensee is looking at multiple paths for canonical licenses. Ideally I'd get that into the API as I'm sure the monkeypatching will bite me :)

I can see this being useful. It might be good to have an additional flag which directs whether licenses in the custom directory override the built-in ones. In the monkeypatch above, the custom licenses are just added to the built-in list, but the path returned is always the built-in one. I'm not sure what behavior would result in the case of a duplicate.
A use case for overriding might be some kind of self-testing in choosealicense.com, where licensee vendors its licenses from. Maybe I'll try writing a monkeypatch version over there to clarify.

Agreed, overriding as an option would be useful.  For duplicates, I'd be tempted to go with cascading style so that a later license file overrides the former one. That allows for overriding a single standard one rather than all at once.
I'll update if I get a patch together.

I had earlier proposed using LICENSE.spdx, in SPDX format, to allow an override.

@david-a-wheeler this issue is about adding to or overriding the set of license texts that licensee uses to match licenses, not about overriding license detection on a per-project basis if assertions can be found in the form of an SPDX file, which I understood your earlier proposal at https://github.com/benbalter/licensee/issues/85 to be about.
Am I missing something?

@mlinksva : Ah, you're right.  Thanks for the clarification!


Fix deletion of AML workspace

Resolves #2451
Remove outputs from uninstall action.

/test-force-approve

/test-force-approve


Bugs in gift section

I changed the currency from BTC to pound. The "insufficient balance" text vanished. It should remain when there is insufficient balance even in fiat!
When I changed currency from BTC to pound, still the text says, "Sats would be deducted from. " It should say, "Money would be deducted from"

"I changed the currency from BTC to pound. The "insufficient balance" text vanished. It should remain when there is insufficient balance even in fiat!"- this is still happening on dev app v2.0.80(485)

Verified this issue on dev app v2.0.80(486)


Google Analytics - more detailed tracking

interested in collecting more data around utilization of:

delete vs. undo
calculate
remove, replace (from palette)
next
tour
save vs. close
annotations: record vs. type

Completed.


Confluence secret scanner

Summary
It'd be great to have some implementation to scan secrets within Confluence :)

I found this crate which allow to access the Confluence API https://github.com/Nercury/confluence-rs.

Thanks guys! I will take a look at this and try to get some work done over the next few weeks. Currently I'm not sure if I have a test instance of confluence to work with, but it looks like I can "try it for free"

I pushed an update to master that includes a new hog, essex_hog. It works with my company's confluence instance, but I have no idea if it works with yours. Try building master and running it against yours and let me know if it works. I am hoping to polish documentation a bit more before calling it a release so I won't close this ticket until that's done.

I'm actually gonna close this, but feel free to open up additional issues / tickets if you see problems.

I tested with our confluence instance and it works. Thanks for implementing this!

@cutler-scott-newrelic you rock! Thanks!

Hello guys, got my hands on essex_hog (1.0.11) but can't make it run. Turning in circle there. Always ending up with followin error. Sounds ridiculous, but do you have a clue or an example of the command line with URL & user/password ? Thks
error: The following required arguments were not provided:


Exponential backoff

Is your idea related to a problem? Please describe.
When using awswrangler with millions of calls to databases, I am constantly receive throttling errors.  I have had to write an exponential backoff decorator in python and create wrappers for all of the wrangler functions I am using.
Describe the solution you'd like
Since throttling is quite a common issue, I suggest adding it internal to awswrangler.  (I can provide my code if needed)

HI @awspiv there is a retry with exponential backoff utility and corresponding decorator. I suggest to perhaps try change retry config?

Ah! Ok cool, let me try and I will close the issue on confirmation.


Update mini.doc to LuaCATS

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.doc
Description
LuaLS/lua-language-server is the most used implementation Language server for Lua. One of its features are annotations implemented as LuaCATS (Lua Comment And Type System). As stated in their docs:

LuaCATS annotations are no longer cross-compatible with EmmyLua annotations as of v3

The current implementation of mini.doc try to parse EmmyLua-like annotations. Compare to EmmyLua annoation, LuaCATS define a precise specification for annotation.
For instance, the mini.doc :help section mentions:

Hooks for sections which supposed to have "type-like" data ('@field',
'@param', '@return', '@type') automatically enclose first found
"type-like" word and its neighbor characters in '(<type>)' (expect
false positives). Algorithm is far from being 100% correct ...

Conversely, the @param annotation supported by LuaLS/lua-language-server is explicitly defined as:
---@param <name[?]> <type[|type...]> [description]

In this format, the type directly follows the parameter name, eliminating the need for heuristic searches for the type. Additionally, this format simplifies the integration of user-defined types into help.txt.

While I could develop my own hooks to adhere to the LuaCATS specification (skill permitting), I believe that aligning with a dominant and well-documented standard would be more advantageous for the community.

Thanks for the suggestion!
On first glance, this makes sense. Having some strict rules from 'lua-language-server' is good. I'll look into it (not very soon, I am afraid).

 Instead of manually parse annotations line (the one starting with ---) a viable approach is to use the json produce by the command for docs generation
./lua-language-server --doc=path/to/lua/workspace

I know that it's a bit against the mini.doc philosophy (few dependencies as possible, here we depend on lua LSP) but this should ensure perfect annotations parsing. So it "just" remains to convert json to proper vim documentation for :help

I know that it's a bit against the mini.doc philosophy (few dependencies as possible, here we depend on lua LSP) but this should ensure perfect annotations parsing. So it "just" remains to convert json to proper vim documentation for :help

No, that is definitely against 'mini.nvim' design. Everything will be parsed without external dependencies.

Let's use this as a tracking issue to gather other similar suggestions for 'mini.doc' improvements that are related to LuaCATS specifications.
In particular:

Omit ---@field private and ---@field protected fields in the output. See #668 for more info.
Support multiple ---@return statements to behave similarly to multiple ---@param and indicate several returned values (instead of currently suggested ...). For more info see #1027.
Make ---@module modify function name by replacing (where it makes sense) the returned variable name (usually M) with module name. For more info and examples see #1227.


[ONNX] Fix MatMul op for vec @ tensor multiplication

Fix MatMul implementation for cases where left hand side of operation is a vector.

TESTNOW

TEST NOW


[ci skip] adding user @RSchwan

Hi! This is the friendly automated conda-forge-webservice.
I've added user @RSchwan as instructed in #12.
Merge this PR to add the user. Please do not rerender this PR or change it in any way. It has [ci skip] in the commit message to avoid pushing a new build and so the build configuration in the feedstock should not be changed.
Please contact conda-forge/core to have this PR merged, if the maintainer is unresponsive.
Fixes #12

Thanks @RSchwan!


DOCSP-37601: university course link fix

JIRA: https://jira.mongodb.org/browse/DOCSP-37601
Staging: https://preview-mongodbcchomongodb.gatsbyjs.io/laravel/DOCSP-37601-fix-university-course-link/quick-start/
Also added a link to the release notes.
Checklist

[ ] Add tests and ensure they pass
[ ] Add an entry to the CHANGELOG.md file
[ ] Update documentation for new features

I'm having some trouble determining why it includes another commit (not mine) even though I had reset my local branch to the mongodb/laravel-mongodb remote using git reset --hard upstream/master prior to creating my branch. I'll recreate this PR to try to fix it.

The coding style fix is automatically applied by GitHub Action. https://github.com/mongodb/laravel-mongodb/pull/2765

The coding style fix is automatically applied by GitHub Action. #2765

Thanks -- it seemed strange because those were files that weren't part of my PR. Sorry for opening and closing all the PRs for this change. The final PR is here: https://github.com/mongodb/laravel-mongodb/pull/2764


I know, but I think it could be hidden behind a button maybe. I think it's good to have a clean About page.


Fix include paths in BUILD

Include paths should be specified through includes
rather than copts, so that they are handled correctly when
cpu_features is included in another project as an external repository.

Thx for the PR @pgavin !


Zebras: Add eq to TimeFrame.

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Please tag this pr with at least one of these labels to make our release process faster: BREAKING, new feature, bug fix, other change, dev setup

I think == behaving a-la numpy would give the least amount of surprise.


chore(infra): Use N4 for portal and N1 for tooling

Google has bumped out quotas so we can remove the multi-arch mess we had to workaround it.

Deployed, merging.


Fix typo (VELement -> VElement)

(at least I assume it's supposed to be VElement :) )

Thank you!


The extension's version number has been temporarily incremented to 0.17.2 to aid in filtering telemetry generated during debugging and testing.  It will be restored to 0.17.0 when this PR is ready for review.

Quantum

This PR was still in the system as a draft from my previous “tour of duty” as a Microsoft contract engineer in the Azure Quantum group.  It needs to be closed.  It was rendered moot by PR 7987


Output is Zero Byte Zip when passthrough trrntzip

when i pass the out put zip file through trrntzip the final output will be zero byte. not actually this program fault but output maybe non standard zip format ?

Not sure which trrntzip are you using, but I took latest code from https://sourceforge.net/p/trrntzip/code/HEAD/tree/ compiled it and it correctly re-zipped my zip files from pkg2zip output.
Maybe you are using old version of trrntzip that does not support zip64 format?

trrntzip_v02_win.zip i use this one. this is the lastest compiled version that i found

So this is not an issue with pkg2zip. Its abug in older trnntzip. I suggest finding better version that has fixed this bug.
Although I'm not sure why would you want to do this at all. Output produced by trnntzip will be worse than original zip file. The main disadvantage is that it compresses all files. Which is useless. Because Vita files are encrypted compression doesn't help much. In some cases it actually makes zip file larger. And much slower to extract.

torrentzip is use maximum compression and output will be identical by whoever create the file. useful for sharing in some application like torrent. although maximum compression might not be useful but for identical file creation would be very useful. maybe you can include trrntzip as a parameter. thanks in advance

Sorry, but you don't understand how compression works. When Vita pkg file is unpackaged to zip then all the files inside zip file are encrypted. And encrypted files cannot be compressed. Its information theory 101. That means after applying trnntzip in most cases the resulting zip file will be larger! Only with very few exceptions you'll get smaller zip file.
Here's an example with PCSG00582:

after running pkg2zip - size = 5,314,088,953.
after applying trnntzip - size =  5,315,495,772.

Another example with PCSG00714:

after pkg2zip - size =  4,078,608,071.
after trnntzip  - size = 4,079,749,697,

So not only you get larger zip files, but you also get much slower unpacking of zip files. pkg2zip doesn't compress any file which it puts inside zip. For example - after running pkg2zip on PCSG00582, I can unpack that ~5GB zip file in ~5.8 seconds. But unpacking trnntzip processed zip file takes ~13.6 seconds.
So what's the point of running trnntzip? You get larger zip files and slower unpacking.


Check if node exists without fail

Check if node exists without fail
TestBos2: virt

retest

@ramperher WDYT, Can we merge this changes and create a big refactor in new PR?

@ramperher WDYT, Can we merge this changes and create a big refactor in new PR?

That's fine for me, sure!


How to solve the problem of left sliding jam when the page becomes more and more complicated

Framework7 version: [v4..4.3]
React.js version: [v16.10.2]
Platform and Target: [iOS Cordova app]

Describe the bug
How to solve the problem of left sliding jam when the page becomes more and more complicated。

Do you want to ask a question? Are you looking for support? The Framework7 forum and Stack Overflow are the best places for getting support

Please, don't use GitHub issues for questions


MudOverlay: Fix Absolute property comment

Description
Fixes the documentation comment on Absolute property. Seems to be a copy and paste error.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Actually Im not sure I am right.
Set absolute positioning for the overlay?

So I adjusted the comment to the other bool properties in MudBlazor by prefixing it with If true - and I looked up the material ui documentation, which refers to use absolute positioning.

Great makes sense Thanks 🙏


unexpected keyword argument 'prepend'

Hi,
After loading a dataset, using CLIP. I try to save the initial captions but the error below happens:
TypeError: DatasetTagEditor.replace_tags() got an unexpected keyword argument 'prepend'
I tried with and without "prepend addition tags" checked.

@crackfoo
Really sorry for inconvenience!
I forgot replacing the argument name of the function...

thanks, it's no problem. I see you re-opened, as I was about to say it still happens even after the update.

thanks, it's no problem. I see you re-opened, as I was about to say it still happens even after the update.
I reopened in the meaning of adding test framework to avoid this kind of bug.
Still happen in ba5c22c1b0be4e35d6fac9f43579daf2d7ba2a2b?

I think webUI reloads only the script directly under script folders using restart button in Extensions tab.
The file causing problem is not, so the restarting webUI will fix the problem... I hope so.

now the images don't get displayed in the webUI. the cmd window says it's
loaded x # of images but nothing is showing up... and no error otherwise...
applied latest updates since last mention and restarted auto's webui
completely.
Total 26 files under the directory including not image files.
Loading Completed.
[image: image.png]
On Sat, Nov 12, 2022 at 11:19 PM toshiaki1729 @.***>
wrote:

I think webUI reloads only the script directly under script folders using
restart button in Extensions tab.
The file causing problem is not, so the restarting webUI will fix the
problem... I hope so.
—
Reply to this email directly, view it on GitHub
https://github.com/toshiaki1729/stable-diffusion-webui-dataset-tag-editor/issues/7#issuecomment-1312628869,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQC7YSR7CVLB6ZESQRTEELWIBM5ZANCNFSM6AAAAAAR6NUGNA
.
You are receiving this because you were mentioned.Message ID:
<toshiaki1729/stable-diffusion-webui-dataset-tag-editor/issues/7/1312628869
@github.com>

hrm it does load fine on sets I've done before.  I'll bang away at it and
see if I can find a reason the other one I was trying isn't loading... it
does have a lot more images but I had already did the initial CLIP
import of that set and saved the txt files so not sure why it's not loading
back atm.
On Sat, Nov 12, 2022 at 11:33 PM zpool zpool @.***> wrote:

now the images don't get displayed in the webUI. the cmd window says it's
loaded x # of images but nothing is showing up... and no error otherwise...
applied latest updates since last mention and restarted auto's webui
completely.
Total 26 files under the directory including not image files.
Loading Completed.
[image: image.png]
On Sat, Nov 12, 2022 at 11:19 PM toshiaki1729 @.***>
wrote:

I think webUI reloads only the script directly under script folders using
restart button in Extensions tab.
The file causing problem is not, so the restarting webUI will fix the
problem... I hope so.
—
Reply to this email directly, view it on GitHub
https://github.com/toshiaki1729/stable-diffusion-webui-dataset-tag-editor/issues/7#issuecomment-1312628869,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQC7YSR7CVLB6ZESQRTEELWIBM5ZANCNFSM6AAAAAAR6NUGNA
.
You are receiving this because you were mentioned.Message ID:
<toshiaki1729/stable-diffusion-webui-dataset-tag-editor/issues/7/1312628869
@github.com>

I found the Pillow Image.registered_extensions() returns only extension names related to PNG...
It will be redundant loading method but I will revert change in 73ed887e58114230fca0eb724e6925207b5663f8.

seems there must have been something in the txt file(s) of the dataset I was trying. I deleted them all and was able to re-generated and edit just fine afterwards.
thanks!


Fix viewer scale bar color update

References and relevant issues
Closes #6959
Description
Use node.parent.canvas instead of node.parent to get background color that affects scale bar color
A preview of the functionality:

Does this also solve #6961?

#6961

Yup! I just tested!


Update dev deps: cleanup folder

[x] darwin
[x] ios
[x] android
[x] Cleanup folders outside of widget view

Notes
Webpack > 4.8 is super messed up. It's treeshaking is doing something I can't figure out and there's no indicators why its doing this so we can't upgrade this in the short term (i tried 4.10 and 4.11 which just came out). https://github.com/webpack/webpack/issues/7425 . I tried a bunch of things but it still was acting weird and isn't worth the risk until this ticket is closed

@keybase/react-hackers this is ready


Start pyapi from backend using systemd

Proposal is to wrap systemd functions and add config to starting and monitoring the pyapi daemon.
Proposal config:
   container pyapi {
       description "Python API action daemon";
       leaf enabled {
          description "If set, start pyapi daemon";
          type boolean;
          default false;
       }
       leaf status {
          config false;
          description "True if pyapi daemon is running";
          type boolean;
       }
    }

Proposal systemd
[Unit]
Description=Starts and stops Clixon PyAPI
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
User=clicon
RestartSec=1
Restart=always
ExecStart=/usr/local/bin/clixon_server.py -F -P -d -m /usr/local/share/clixon/modules/
[Install]
WantedBy=multi-user.target

Invalid and closed: pyapi is now started as a sub-process to the backend.
(The backend itself may be started with systemd)


Support Permission Boundaries

I may be wrong, but I've yet to find a way to attach a permission boundary to my stack rendering this tool useless to me.

Hey @jcwrightson, you can set permission boundaries on a stack like this:
import * as iam from '@aws-cdk/aws-iam';

const boundary = new iam.ManagedPolicy(this, 'Boundary', {
  statements: [
    new iam.PolicyStatement({
      effect: iam.Effect.DENY,
      actions: ['iam:*'],
      resources: ['*'],
    }),
  ],
});

iam.PermissionsBoundary.of(this).apply(boundary);

Thanks for bringing this up! It just made me realize if we should add a helper function to help add permission boundaries on all stacks within an app. Something like:
app.setDefaultPermissionBoundary(boundary);

Either way, we need to do a better job at documenting this.

Added an example to the doc https://docs.serverless-stack.com/constructs/Stack#setting-permission-boundary

Cheers @fwang I tried that method initially but it did not work... I've also tried the cdk.Aspects.of(this).add.... to no avail. Is there a way to do the cdk synth so that I can see the CloudFormation?

Hey @jcwrightson, yeah, after running npm run build, you can find the templates in .build/cdk.out.
So my stack looks like this (ie. contains 1 API with permission boundary set)
import * as iam from '@aws-cdk/aws-iam';
import * as sst from "@serverless-stack/resources";

export class MainStack extends sst.Stack {
  constructor(scope: sst.App, id: string, props?: sst.StackProps) {
    super(scope, id, props);

    // Create Api
    const api = new sst.Api(this, "Api", {
      routes: {
        "GET /": "src/lambda.main",
      },
    });

    // Create Permission Boundary
    const boundary = new iam.ManagedPolicy(this, "Boundary", {
      statements: [
        new iam.PolicyStatement({
          effect: iam.Effect.DENY,
          actions: ["iam:*"],
          resources: ["*"],
        }),
      ],
    });
    iam.PermissionsBoundary.of(this).apply(boundary);

    this.addOutputs({
      Endpoint: api.url || "no-url",
      CustomEndpoint: api.customDomainUrl || "no-custom-url",
    });
  }
}

And if I inspect the CFN template, I see this block:
    "BoundaryEA298153": {
      "Type": "AWS::IAM::ManagedPolicy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": "iam:*",
              "Effect": "Deny",
              "Resource": "*"
            }
          ],
          "Version": "2012-10-17"
        },
        "Description": "",
        "Path": "/"
      },
      "Metadata": {
        "aws:cdk:path": "dev-playground-api/Boundary/Resource"
      }
    }

And it's applied to all IAM Roles in the stack like this:
    "ApiLambdaGETServiceRole210B6205": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "ManagedPolicyArns": [
          {
            "Fn::Join": [
              "",
              [
                "arn:",
                {
                  "Ref": "AWS::Partition"
                },
                ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
              ]
            ]
          }
        ],
        "PermissionsBoundary": {
          "Ref": "BoundaryEA298153"
        }
      },
      "Metadata": {
        "aws:cdk:path": "dev-playground-api/Api/Lambda_GET_--/ServiceRole/Resource"
      }
    },

Let me know if no luck on ur end. I can share a simple repo.

Yep thanks! That's all good but when configuring an S3 bucket's retention
property and choosing DELETE as the SST stack does, an IAM policy is
created without the boundary. I had the same issue with serverless
framework. My organisation forces all IAM entities to have an attached
permission boundary 🤷♂
Sent from my Android.
On Tue, 23 Nov 2021, 07:34 Frank, @.***> wrote:

Hey @jcwrightson https://github.com/jcwrightson, yeah, after running npm
run build, you can find the templates in .build/cdk.out.
So my stack looks like this (ie. contains 1 API with permission boundary
set)
import * as iam from @./aws-iam';import * as sst from @./resources";
export class MainStack extends sst.Stack {
constructor(scope: sst.App, id: string, props?: sst.StackProps) {
super(scope, id, props);
// Create Api
const api = new sst.Api(this, "Api", {
  routes: {
    "GET /": "src/lambda.main",
  },
});

// Create Permission Boundary
const boundary = new iam.ManagedPolicy(this, "Boundary", {
  statements: [
    new iam.PolicyStatement({
      effect: iam.Effect.DENY,
      actions: ["iam:*"],
      resources: ["*"],
    }),
  ],
});
iam.PermissionsBoundary.of(this).apply(boundary);

this.addOutputs({
  Endpoint: api.url || "no-url",
  CustomEndpoint: api.customDomainUrl || "no-custom-url",
});

}}
And if I inspect the CFN template, I see this block:
"BoundaryEA298153": {
  "Type": "AWS::IAM::ManagedPolicy",
  "Properties": {
    "PolicyDocument": {
      "Statement": [
        {
          "Action": "iam:*",
          "Effect": "Deny",
          "Resource": "*"
        }
      ],
      "Version": "2012-10-17"
    },
    "Description": "",
    "Path": "/"
  },
  "Metadata": {
    "aws:cdk:path": "dev-playground-api/Boundary/Resource"
  }
}

And it's applied to all IAM Roles in the stack like this:
"ApiLambdaGETServiceRole210B6205": {
  "Type": "AWS::IAM::Role",
  "Properties": {
    "AssumeRolePolicyDocument": {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": "lambda.amazonaws.com"
          }
        }
      ],
      "Version": "2012-10-17"
    },
    "ManagedPolicyArns": [
      {
        "Fn::Join": [
          "",
          [
            "arn:",
            {
              "Ref": "AWS::Partition"
            },
            ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
          ]
        ]
      }
    ],
    "PermissionsBoundary": {
      "Ref": "BoundaryEA298153"
    }
  },
  "Metadata": {
    "aws:cdk:path": "dev-playground-api/Api/Lambda_GET_--/ServiceRole/Resource"
  }
},

Let me know if no luck on ur end. I can share a simple repo.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/serverless-stack/serverless-stack/issues/1056#issuecomment-976224444,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEHNVNIVUOJDTZE7DTP7RODUNM7YDANCNFSM5IJX2ESQ
.
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.

Came across this thread https://github.com/aws/aws-cdk/issues/5925
Ppl seems to be setting the permission boundary manually on the IAM policy in this case, until CDK adds a proper fix.

I'm confused @jcwrightson - maybe you can help clarify - you set on IAM Permissions Boundaries on IAM Roles. With the above code examples, there are permissions boundaries set on all roles created (Aspects are used under the hood to ensure that). IAM policies, however, don't and can't have a permissions boundary set: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
Maybe you can post an error that you're getting?

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


Public Reviews

Not sure if I am doing it wrong. Registered 2 accounts, made a review with each account on the same item, went to settings and put public reviews on.
However, restarting service (running through docker), I only see the account's review. not the other reviews from other account. Anyone got any idea? thanks! Btw, awesome product! :)

I haven't implemented that feature yet, at the moment you can only see your own reviews