Window, viewer and layer API

Here is a mockup for what the viewer and layer api should look like (roughly):
Create a window:
window = gui.newwindow(name, ...other options...)
Note: We should distinguish the concept of 'window' and 'viewer'.
you can have several viewers in a window, organised either as tabs
or side by side, etc... Tabs are probably the best way to do it.
Create or removes a viewer in a window:
viewer = window.addviewer(name=None, ...other options...) %optional name
viewer = window.removeviewer()
Most of the time we just want a viewer straight away:
viewer = gui.newviewer()
This creates the window on the fly...
Even more often, we want an image displayed in a viewer inside of a window, in a one-liner:
viewer = gui.imshow(...list of numpy arrays..., rgb=None)
semi-internal api for adding/removing a layer of a given type:
viewer.addlayer(ImageLayer(... list of numpy arrays ...))
viewer.removelayer(name or index of layer)
convenience api for common layers:
viewer.addimages(... list of numpy arrays ...)
viewer.addpoints(... list of points as nparray ...)
viewer.addlines(... list of lines as nparray  ...)
etc...
get a layer from a viewer:
layer = viewer.getlayer(...index or name of layer...)
set the viewer sliders on a given layer:
layer.setposition( tuple of ints )
Note this must be a complete tuple that also includes the displayed dims!
for simplicity we should also have:
layer.setposition(dimindex,position )
Different layers have different available properties, for example:
layer.cmap = ...
layer.opacity = ...
etc...
In the case of image viewers, we have an api for the different layout modes etc...
We can always retrieve the reference to the data that the layer represents:
data = layer.data
for example the numpy array, etc...
And force the layer to refresh itself and reflect any change of the data:
layer.refresh()
Note: we don't have yet a mechanism to know when numpy arrays have changed
their content for example...

I have many comments. =P

I suggest we try to mimic the matplotlib (and related) APIs as much as possible. First things first: I don't want window creation to be (in general) a public facing thing. And we should make using the viewer super super quick. I don't want to have to create a window then add a viewer to that window then add layers to that viewer. I want to say window = napari.show_slices(arr). This creates the window, viewer, etc. for me. The returned window object should then have accessible all the remaining objects in the hierarchy. (@royerloic I just saw upon rereading that you propose this... That should be front and center. I also think that we should not use imshow. It's a little too confusing with existing libraries. Let's come up with a name that has no baggage. I like show_slices, ndshow, ndview...

Also, until we see that we really need it, I would like to keep these objects super simple, almost dataclasses. For example, instead of window.addviewer, I would prefer window.viewers.append(), where viewers is a good ol' Python list, as well as viewer.layers.append()

Maybe the above is not the public API, but it should be an option. Specifically, I want this because it will force us to keep all the objects simple. I really don't want to end up where Qt is, which is a nauseating, insanely deep inheritance hierarchy.

Most specifically, layer = viewer.getlayer(...index or name of layer...) I really dislike: arr = viewer.layers[index] seems much more Pythonic to me.

I think a very cool feature would be viewer.link_to(otherviewer), where viewers of the same dimension end up linked. This means the sliders end up linked and which dimensions are sliders are also linked. That would be a killer feature imho.

I am undecided between viewer.add_points(arr), viewer.show(Points(arr)), and viewer.show_points(arr). The second one seems more transparently extensible.

"And force the layer to refresh itself and reflect any change of the data: layer.refresh() Note: we don't have yet a mechanism to know when numpy arrays have changed their content for example..." I think there's a library called traits or traitlets that lets you deal with this, but I have never grokked it. But it seems like we should look into it for this. =)

At any rate, yes, having an issue where we look at Napari from an API perspective is super important, so thanks for bringing it up! =)
Something not addressed at all here: how do I say: apply plugin "whatever" to layers x, y, z? Actually this is a very critical question that also drives us to simplicity: if we want to be able to record "reasonable" Python when running analysis in Napari, we can't have the code look like
viewer.addlayer(plugins.skimage.apply_watershed(viewer.layers[0], viewer.layers[1]))

Instead, it should be
watershed = skimage.segmentation.watershed(image, seeds)

Which becomes harder and harder to get back down to as the layers get more and more complex.
Going back to my mockup, how does each action there map to code?
Finally, regarding the windowed/tabbed/docked layout options, I also think that we should keep this stuff super simple to begin with. Although I understand the concern about window explosions in Fiji, I think we should only have three options: add a layer, add a tab, and add a viewer/window. And I'd maybe even forgo tabs in the beginning, with just the idea that maybe we want to add them later.

Incidentally, the repo structure is already getting way too complex I think...

Great feedback Juan, thanks.
Some comments:
1a) I agree with matplotlib, we should match existing conventions as long as they make sense to us. I am not sure that I like all aspects of matplotlib though. We should see on this goes item per item...
1b) The API right now does not distinguish between private or public, right now we need to make sure that even the  eventually private API is well designed too. The window stuff is there anyway so I wanted to make it more elegant and possibly usefull to a wider audience. Of course, as you noticed, there is no need to deal with windows if you don't want, but you can if you want. Nick yesterday showed us his 11 Napari windows open and he mentioned that he would not be unhappy to have a bit more control...

I am fine with that, as long as we can intercept the changes to teh kist to be able to trigger the side-effects required for managing the UI... @kne42 is that possible? I guess yes.

Yes. I believe in a solid, clear, and self-consistent core API with a flexible convenience layer that sits on top and provides shortcuts. You want both to get a good architecture that does not turn into a code salad and something that provides one liners for common code paths. In any case, the python-way of doing things should be pushed, so when relevant and appropriate we should go for functional interfaces, properties, annotations... I trust @kne42 and @jni  to keep us on the good path here.

I agree, much better. I like operators.

Definitely!! I was also thinking about that! synced viewers are going to be very important, and we should have an easy  way to link that up. @jni : can you create an issue and suggest an API for it?

We need both, the one that takes the object is generic and supports the layer extension mechanism that we are setting up with @kne42 which lets anyone design new layer types and ho to display them. But we need convenience methods for the common layer types such as images, points, etc...

We discussed this during the meeting, we decided to have refreshing done manually until we have a  solid and transparent way of doing it automatically. We can always have a property that controls this behaviour... We should definitely explore solutions for that. But the priority is quite low for now considering the more pressing features that need implementing...

Mockup: we should indeed revisit that in light of the code, and revisit the ode in light of the mockup.

'Applying plugins' : That's a tough one that is going to require some creative thinking. One approach is to somehow intercept the creation of new arrays and append them as layers. But there is no way we can completely hide the calls to the viewer/layer API in the general case. I also think it is dangerous to start hiding things from users as this would lead to a mismatch between what the code says and what actually happens. It would also get very complicated, possibly brittle, and unmaintainable.

I would suggest this for 'generated code' for each operation:
result = plugins.skimage.apply_watershed(viewer.layers[0], viewer.layers[1]) viewer.addlayer(result)
if the user generates the code to start with, they are free to do a bunch of computations,
and then have a bunch of calls to display it. Any additional processing done in the ui would
simply be appended...

Yes, window, viewer(possibly as tab), layer, this is what we are aiming for right now with @kne42 and @AhmetCanSolak .

I suggest we try to mimic the matplotlib (and related) APIs as much as possible.

I totally agree!

I also think that we should not use imshow. It's a little too confusing with existing libraries. Let's come up with a name that has no baggage. I like show_slices, ndshow, ndview...

I think that it helps a lot with intuition. Since MPL is the standard, shouldn't we use imshow, wouldn't that be people's go-to for showing images?

I would like to keep these objects super simple, almost dataclasses. For example, instead of window.addviewer, I would prefer window.viewers.append(), where viewers is a good ol' Python list, as well as viewer.layers.append()

Yeah, I like this idea as well! However, instead of traditional Python lists, we'd need to use classes based off of collections.UserList so that we can insert listeners for when the list updates. At least if this is the public-facing API.

I really don't want to end up where Qt is, which is a nauseating, insanely deep inheritance hierarchy.

Definitely. Simplicity & elegance is the best way to go.

Most specifically, layer = viewer.getlayer(...index or name of layer...) I really dislike: arr = viewer.layers[index] seems much more Pythonic to me.

Agreed.

I think a very cool feature would be viewer.link_to(otherviewer), where viewers of the same dimension end up linked. This means the sliders end up linked and which dimensions are sliders are also linked. That would be a killer feature imho.

Sure, but idk how much of a priority it should be.

I am undecided between viewer.add_points(arr), viewer.show(Points(arr)), and viewer.show_points(arr). The second one seems more transparently extensible.

I think that the idea behind this is that viewer.show(Points(arr)) is how we're going to make everything extensible and viewer.add_points(arr) is a convenience method. I'd like to, using __getattr__ and __dir__, dynamically add registered layer types to go under viewer.add_*.

I think there's a library called traits or traitlets that lets you deal with this, but I have never grokked it. But it seems like we should look into it for this. =)

Sweet! I'll look into this :)

Something not addressed at all here: how do I say: apply plugin "whatever" to layers x, y, z? Actually this is a very critical question that also drives us to simplicity: if we want to be able to record "reasonable" Python when running analysis in Napari, we can't have the code look like
viewer.addlayer(plugins.skimage.apply_watershed(viewer.layers[0], viewer.layers[1]))

Instead, it should be
watershed = skimage.segmentation.watershed(image, seeds)

Which becomes harder and harder to get back down to as the layers get more and more complex.
Going back to my mockup, how does each action there map to code?

I see what you're getting at here. Sometimes plugins will be forced to wrap actual library functionality so we can't map it 1-1 for registered functions to what functions are displayed in the autogenerated code. I'm actually not really sure what to do about this and I think we should open a new issue to discuss this topic.

Hi all,
Really like the way this conversation is taking shape, and agree with a lot of the sentiment around intuitive pythonic api's. The fact right now that I can just call gui.imshow(data) and it pops up an image in a window was really compelling to a python novice that I showed napari to the other day. That low barrier to entry is really important.

XREF: https://github.com/Napari/napari-gui/pull/12#issuecomment-431540278

Also might be nice to be able to create an empty window, could be with something like window = gui.imshow()
Another thing that might be nice is if you pass a list of images window = gui.imshow([A, B]) then you get two layers with A and B inside them respectively
Also is it worth including the concept we talked about on thursday where if we call window=gui.imshow(A, layers=[2,3]) where dim(A)=5 say, then we'd get a collection of 3D images all as different layers. I guess an argument against this is that a simple reshape and list comprehension would generate a list of arrays that could then be passed to imshow if the behaviour in the above point is supported. A pro though is this is something people might want to do often for color-channel dimensions and it could be a convenience to do it inside imshow. I can really see it both ways.
Also unclear to me why window.add_image(image, meta) and gui.imshow(image, meta=None, multichannel=None, **kwargs) take different inputs, it would seem to me that they should take the same, and that we might as well have window.add_image(image, meta=None, multichannel=None, **kwargs)

this has been closed by #290


Design issue on longer routes

Some routes can get super long. We need to account for those. Maybe just truncate it after a certain length?

This is still an issue if your route has a ton of query params. We have this method in Lucky url_without_query_params https://github.com/luckyframework/lucky/blob/1f28e05534a046dff4e76bc9a789f522269aab78/src/lucky/routable.cr#L251 what might be good here is a new path_without_query_params method. https://github.com/luckyframework/breeze/blob/a70b633ee56f8c6b70e7c136bba2cb21195f8c01/src/breeze/components/breeze/badge.cr#L9
We can either build one manually and update later after Lucky gets that method, or wait for Lucky to get it...


High error rate with Arabic finetuning

I spent a lot of time toying with the parameters and retraining tesseract, and I am stuck, that's why I am contacting you.
I would appreciate a help or hint, if possible. Thank you in advance.
Here is the description of the issue:
I followed the documentation . I prepared 350 one line Arabic images (xx.png) and their transcript (xx.gt.txt) and starting training with START_MODEL=ara.
make training MODEL_NAME=elda START_MODEL=ara TESSDATA=data/ara_best

I am getting 100% as an error rate.

Thanks again for your help,

Please see https://github.com/tesseract-ocr/tesstrain/blob/master/Makefile#L89
you need to set the correct language type for RtL languages.

Thanks, that solved a problem.
Another question: I finetuned the model on 96 images. I started from a model that I finetuned on a specific font (START_MODEL=font_model).
I got very good results on images that are similar to the training set (error rate 0.06) . But the performance of the model over other images decreased.
I trained model on images like these:

The model performed well over these images.
An example of a prediction that got worse:

Finetuned model
Font model (START_MODEL)

عدالد
عد اله

--
--

I suggest that you post in the official tesstrain repo (under the tesseract-ocr) project. That will ensure good RTL/Arabic support for all tesseract users and you may get better feedback and resolutions to your problems.
I had done this training only as an experiment.

https://github.com/tesseract-ocr/tesstrain

Okay, Thank you Shreeshrii!


support layer4?

Please describe your use case / problem.
i want to expose layer4 service such as myql , how to do ? is ambassador now support layer4 proxy?

This is resolved in 0.51.


Support configuration of timeouts for es plugin

This PR should be reviewed once this PR has been merged -> https://github.com/Netflix/ndbench/pull/65  (as it builds on that PR).
DETAILS
Support configuration of timeouts for es plugin.  Default timeout value will reduce number of annoying timeouts occuring in ES benchmarks.
Also, provides end user with configuration knobs to tweak timeout settings on underlying http client connection.

i resolved readme conflict


Upgraded to Flutter 2.0 & Runner.xcworkspace appears empty

I'm trying to get my app working since upgrading to flutter 2.0. I'm getting an error saying my app can't find GoogleService-Info.plist but when I open Xcode to reconfigure it, xcode looks totally empty?
This is an app that is a production flutter app already available on the App Store so has all been working correctly previously. Having said that I have upgraded to Big Sur since which could have had something to do with it?
Any help would be much appreciated.
Thanks

Flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.2, on macOS 11.2.3 20D91 darwin-x64, locale
    en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version
    29.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.6)
[!] IntelliJ IDEA Ultimate Edition (version 2017.2)
    ✗ Flutter plugin version 15.1 - the recommended minimum version is
      16.0.0
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

@jimmyff
Did you also see same behavior before upgrading to BigSur ? I am not sure if that'd be the factor though.
Do you also see this if you create a new app and open ios/Runner.xcworkspace ?

Can you attach ios/Runner.xcodeproj/project.pbxproj?  Your project file looks corrupted.


Library for generating IstioOperator CR

Description
Implement library that can be used in istio operator controller as well as in istio reconciler. It should accept Istio CR and IstioOperator CR and return IstioOperator CR ready for Istio installation.
Reasons
Modularisation of kyma components
Attachments
part of: https://github.com/kyma-project/kyma/issues/15865
DoD:

[ ] provide documentation
[ ] provide unit tests
[ ] test on SKR
[ ] verify Get started guides
[ ] verify resource limits
[ ] followup issue

PR

https://github.com/barchw/istio/pull/1


[AutoPR containerinstance/resource-manager] ACI new Py path

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6071

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/5422


Fix uninstantiated codecell visuals

thanks that's better but i am only seeing 2 lines of text and a scrollbar.
if it can show all the text without scrolling then this will be good.

I agree that would be very nice, the textarea node does not have the ability to grow in height dynamically without using javascript to calculate the height and dynamically resize it via JS.
So that being said, to implement dynamic heights, we would need some JS to be bound and run on uninstantiated codecells on load, which will come with a perf hit.

refs:
http://www.jacklmoore.com/autosize/
https://github.com/javierjulio/textarea-autosize
http://stackoverflow.com/questions/15844868/can-i-make-a-textarea-grow-with-text-to-a-max-height
thoughts?

how about using a div until it's instantiated and then switching it go a textarea just before instantiation?
that might be even faster since the div doesn't support editing at all, and so might be simpler and faster.

sure thing!

:shaved_ice: woot multiline support :white_check_mark:
great idea @scottdraves !!


Correct typo on useSWEffect

Id suggest adding that to the README or updating it in GitHub's settings


Update logic for electrical demand in sector studies

Feature Request
More of an issue for the sector coupling studies, but when applying demand it can be hard to determine what is actually included in the electrical demand. For example, when applying the EFS electrical demand, it includes future projections for meeting transport and heating through electrification options. In sector coupling studies, this demand should be treated separately, as the model should be choosing how to meet it.
Suggested Solution
May be nice in the demand module to set up a datastructure that can filter by sector and demand type. Then the "business" logic can be how to add these demands together for electrical vs. sector studies.
This probably deserves a bigger discussion tho! :)
Additional Info
No response

Definitely... you'll see a line in my code for EFS demand data where I throw out all the great data on end-uses:
https://github.com/PyPSA/pypsa-usa/blob/1ef05ce3625de68512b2321f187caceec03780ce/workflow/scripts/add_electricity.py#L842C1-L854C1


Resduce size of compiled Javascript by factoring "this" when it is massively ued in function

Currently, if I compile:
function hello() {
  this.test1();
  this.test2();
  this.test3();
  this.test4();
  this.test5();
}
hello();

Closure compiler generate:
function hello(){this.test1();this.test2();this.test3();this.test4();this.test5()}hello();
It can be optimized like this where there are more than 4 this in a function:
function hello(){var t=this;t.test1();t.test2();t.test3();t.test4();t.test5()}hello();
I see a function where "this" is used 95 times...

We'll be happy to entertain a PR to implement this, but it is unlikely to become a priority for us.

This is unnessecary and even increases output size as the compiler assumes you use gzip.

Closure Compiler assumes that you are using gzip compression.

(https://github.com/google/closure-compiler/wiki/FAQ#closure-compiler-inlined-all-my-strings-which-made-my-code-size-bigger-why-did-it-do-that)

We had an "alias keyword" pass once before, but it did more harm than good.
It tended to undermine optimizations done by the JS engines.


feat: Add Executor for faster and reliable evalutions

[ ] make ascore() for scoring in singles
[ ] async coroutine executor that executes tasks with checks and retries - add tests
[ ] evaluator has an async=True flag that scores these as tasks
[ ] executor has Threads support - it can now evaluate threads also
[ ] make sure langsmith is working properly - fix langfuse issues

finished with v0.1


List of issues (Kiera version) so far

Tags link work as normal when accessed from homepage. However, it breaks when accessed from anywhere else. Same goes for categories.
Posts created from ‘Create Post’ addin in Rstudio is saved in a different folder (“Post” folder instead of “Posts” folder). The ‘Posts’ link on the homepage directs you to the “Posts” folder, meaning every post you created from the ‘Create Post’ function cannot be viewed normally unless accessed through ‘Tags’ or ‘Categories’.

Granted, I am only a newbie programmer who only experimented with this template for 6 hours, the issues might already have solutions to it.

@niaahmaa this version of the theme is no longer actively maintained. Can I recommend you try this fork as some of these issues may already be resolved.
Also, you may find good help on the hugo forum...especially with your second question.


Datagen from bucket not working

I downloaded the training, validation, and test data from the google storage and put it in my
google cloud bucket.
I also changed the MAESTRO_TFRECORD_PATHS in score2perf.py
'train': 'gs://vinnbucket/v1.0.0/maestro-v1.0.0_train.tfrecord',
'dev': 'gs://vinnbucket/v1.0.0/maestro-v1.0.0_validation.tfrecord',
'test': 'gs://vinnbucket/v1.0.0/maestro-v1.0.0_test.tfrecord'

When i run the t2t_datagen, it seems to be working well, but the size of the generated files are different. It doesn't match the size of data generated from the original MAESTRO_TFRECORD_PATHS, directly from
'train': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_train.tfrecord',
'dev': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_validation.tfrecord',
'test': 'gs://magentadata/datasets/maestro/v1.0.0/maestro-v1.0.0_test.tfrecord'

tfrecords generated from bucket

tfrecords generated from google storage
The file generated from test and dev are the same, but data generated from test gives less than 200mb, where the generation from the original path gives up to 1gb. I want to know if there is something wrong in my method. Is it a bug?

That's very strange; I would have expected identical data (other than possibly using a different number of shards, but that doesn't seem to be what's going on as the file sizes are very different).  Are you absolutely sure nothing else was different between the two runs?  I tried running based on TFRecord files copied to my own bucket but my output was roughly the correct size.

i only changed the tfrecords path and the data_dir where it stores the newly generated outputs
but it gives the same result.
But it does seems that there is some kind of mistake that i made, since your runs seem normal.
If I find out the problem i will update. Thank you!


Updated README.md

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@2e0d800). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             master        #4   +/-   ##
==========================================
  Coverage          ?   100.00%
==========================================
  Files             ?         9
  Lines             ?       225
  Branches          ?        23
==========================================
  Hits              ?       225
  Misses            ?         0
  Partials          ?         0

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 2e0d800...eea0805. Read the comment docs.


Use Base instead of Core

Base is a subset of Core which is more portable (runs on Windows for instance).
Might be good to switch to this once it reaches a stable version.
Environment set up instructions and exercises will need to be updated (I don't anticipate significant code change apart from Makefiles & open directives).

I failed to run it on Windows.
"opam install core" fails.
Makefile / tests also failed.

The repo as a whole depends on core, though many of the exercises do not.
We'll switch to base, which does work on Windows, once it is stable. At the moment I believe it is missing int64 implementations which are needed for one exercise at least.

I think this is broadly a good idea, although just to provide a bit of pushback, there are certain things in Core that are not available in Base, even though they don't depend on Unix (well, the date/time functions do, but I thought I'd list them anyway since they seem important).
Data structures and algorithms: Bag, Deque, Doubly_linked, Heap, Rope, Union_find
Date/time: Date, Day_of_week, Ofday, Time
Misc: Memo, String_id, Tuple, Tuple2, Tuple3, Typerep, Univ, Uuid

Since there's nothing preventing users from simply importing Core when they need one of the above modules, I suppose the change should go through regardless, but I just thought I'd make a note here.

Moved the build to jbuilder.
Moved most exercises to using Base.
Meetup uses Core_kernel.
The exercises using Maps/Sets in their interfaces have been left using Core_kernel too - I don't think the new interface to these modules is well documented yet.
Will close.


Commit 8df75c3

The latest variable change has caused the "new" button to no longer function as expected. Will need to update to dump everything. Currently it is reattempting to create variables and assigning the same values to them which throws an error.

updated with new source


Transition tree support

This request includes data structures for Petri nets with data (DPN), transition trees, a generalised notion of control-flow alignments called "matching", and guards (used in Petri nets with data and transition trees). All of these structures enable me to propose "data-aware" conformance checking, which is the focus of the request.
The main additions in this request are in two sub-modules: models and conformance.
In the models sub-module, DPNs are introduced as a natural extension in petrinet.py, transition trees are included in transitiontree.py, and the handling of guards for models is included in guards.py.
In the conformance sub-module, an algorithm to generate executable traces from a Petri net is included in tokenreplay.py,
the construction of matching from these executable traces of a model is found in matching.py, and finally, the proposed data-aware conformance checking for a DPN and a log is included in dataaware.py.
However, to efficiently compute these additions, the request adds the following required libraries:

pyparsing which follows for the parsing of boolean expressions from pnml
and joblib which is a standard and well-accepted library for multiprocessing

Example Usage

FWIW, in a big patch like this, it's conventional to squash the commits.


feat: add go-to-k/delstack

go-to-k/delstack: CLI tool to force delete the entire AWS CloudFormation stack, even if it contains resources that fail to delete by the CloudFormation delete operation
$ aqua g -i go-to-k/delstack

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output
$ delstack --help
NAME:
   delstack - A CLI tool to force delete the entire CloudFormation stack.

USAGE:
   delstack [global options] [arguments...]

VERSION:
   1.0.4

GLOBAL OPTIONS:
   --stackName value, -s value  CloudFormation stack name
   --profile value, -p value    AWS profile name
   --region value, -r value     AWS region
   --interactive, -i            Interactive Mode (default: false)
   --help, -h                   show help
   --version, -v                print the version

Reference

README.md

https://github.com/go-to-k/delstack/blob/main/README.md

Blog (Japanese)

https://go-to-k.hatenablog.com/entry/delstack

Thank you!

v4.48.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.48.0


refactor: DRYify query code

Closes #10

Great catch. I removed all of the asyncs in one commit rather than accepting all of your suggestions one at a time.


iOS barcode scanner error

Hello, I've done the everything as its written and it was working a few days ago. Now when I try to make scan I can't do it.
Here is my code
import { Component, OnInit } from "@angular/core";
import { NavController } from "@ionic/angular";
import { BarcodeScanner } from "@capacitor-community/barcode-scanner";
import { ScooterDataService } from "../services/scooter-data.service";

@Component({
  selector: "app-qr-scan",
  templateUrl: "./qr-scan.page.html",
  styleUrls: ["./qr-scan.page.scss"],
})
export class QrScanPage implements OnInit {
  constructor(
    private route: NavController,
    private scooterService: ScooterDataService
  ) {}

  ngOnInit() {
    this.startScan();
  }
  async startScan() {
    await BarcodeScanner.checkPermission({ force: true });
    BarcodeScanner.hideBackground();

    const result = await BarcodeScanner.startScan(); // start scanning and wait for a result

    if (result.hasContent) {
      console.log(result.content); // log the raw scanned content
      this.scooterService.addServerQr(result.content);
      this.stopScan();
      this.route.navigateRoot(["./unlocking"]);
    }
  }
  stopScan() {
    BarcodeScanner.showBackground();
    BarcodeScanner.stopScan();
    document.querySelector("body").classList.remove("scanner-active");
  }
}

here is ios Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>CFBundleDevelopmentRegion</key>
		<string>en</string>
		<key>CFBundleDisplayName</key>
		<string>Electra</string>
		<key>CFBundleExecutable</key>
		<string>$(EXECUTABLE_NAME)</string>
		<key>CFBundleIdentifier</key>
		<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
		<key>CFBundleInfoDictionaryVersion</key>
		<string>6.0</string>
		<key>CFBundleName</key>
		<string>$(PRODUCT_NAME)</string>
		<key>CFBundlePackageType</key>
		<string>APPL</string>
		<key>CFBundleShortVersionString</key>
		<string>$(MARKETING_VERSION)</string>
		<key>CFBundleVersion</key>
		<string>$(CURRENT_PROJECT_VERSION)</string>
		<key>LSRequiresIPhoneOS</key>
		<true />
		<key>UILaunchStoryboardName</key>
		<string>LaunchScreen</string>
		<key>UIMainStoryboardFile</key>
		<string>Main</string>
		<key>UIRequiredDeviceCapabilities</key>
		<array>
			<string>armv7</string>
		</array>
		<key>UISupportedInterfaceOrientations</key>
		<array>
			<string>UIInterfaceOrientationPortrait</string>
			<string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string>
		</array>
		<key>UISupportedInterfaceOrientations~ipad</key>
		<array>
			<string>UIInterfaceOrientationPortrait</string>
			<string>UIInterfaceOrientationPortraitUpsideDown</string>
			<string>UIInterfaceOrientationLandscapeLeft</string>
			<string>UIInterfaceOrientationLandscapeRight</string>
		</array>
		<key>UIViewControllerBasedStatusBarAppearance</key>
		<true />
		<key>NSLocationWhenInUseUsageDescription</key>
		<string>Uygulamanın konumunu kullanabilmesi için izin vermeniz gerekmektedir.</string>

	</dict>
</plist>`

And here is the error
⚡  [error] - ERROR Error: Uncaught (in promise): Error: "BarcodeScanner.checkPermission()" is not implemented on ios
CapacitorException@capacitor://localhost/default-node_modules_capacitor_core_dist_index_js.js:125:10
@capacitor://localhost/default-node_modules_capacitor_core_dist_index_js.js:263:41
onInvoke@capacitor://localhost/vendor.js:80931:39
@capacitor://localhost/polyfills.js:271:53
@capacitor://localhost/polyfills.js:1428:41
onInvokeTask@capacitor://localhost/vendor.js:80918:43
@capacitor://localhost/polyfills.js:316:61
drainMicroTaskQueue@capacitor://localhost/polyfills.js:734:46
@capacitor://localhost/polyfills.js:631:44
invokeTask@capacitor://localhost/polyfills.js:1829:28
globalCallback@capacitor://localhost/polyfills.js:1860:41
⚡  To Native ->  CapacitorGoogleMaps onResize 53707492
⚡  TO JS undefined

I am using the latest version I guess, I searched on internet but I couldn't find the solution. Can you please help me?

Hi how do you fix this?

Uninstall the mlkit scanner, I don't know how it installed but it was the source of this problem


Elasticsearch export failing

https://github.com/NixOS/nixos-search/runs/5344749187?check_suite_focus=true
ping @ysndr as I have no clue what's going on

Ah, now the nixpkgs export is failing too with the same error. Maybe we need to garbage collect previous indexes?
ping @garbas

Yes looks like the elastic search space is running out.
I cant really do anything, but ping again on matrix.
Thank you for reporting

@ncfavier @ysndr thank you for reporting.
It doesn't look like we are running out of space

But just in case i'm going to garbage collect old indexes

I've removed all indices with version 25 and lower.

I just triggered a workflow, let's see how it goes

Seems to work now


feat(dark-mode): Add dark mode chrome extension

Dark Mode Extension

For issue #25
An extension for toggle dark mode in any website. This extension has a minimalistic design and is very easy to use interface.
Screenshots

@ridsuteri pls review and merge

thanks


Model Vertex Compression

Changes models to use packed normals/tangents.  This reduces the size of model vertices from 52 to 32 bytes (~40%).
There's a new sn10x3 DataType that can be used in buffers (similar to the existing un10x3 type).  Note that this format is not supported on the Quest 1!
Shaders have new packSnorm10x3 and unpackSnorm10x3 helpers, and the animation compute shaders unpack/repack the normals and tangents.
Still gotta profile to see if runtime cost is significant, especially for animation.

Rendering models on mobile GPUs seems to be significantly faster now (I was testing an animated model with ~65k vertices and saw 25% faster GPU timestamps for the render pass, which seems pretty crazy).  No perf change was measured on desktop.


[BUG] Apply damage from spells with damage per pt to targets with DR

When you take "all the damage" computed for a spell which does damage per point (e.g. fireball) and drag it onto a target with DR, the DR subtracts from each die individually, rather than from the total amount of damage.  It looks like it basically treats each die as a separate damage allocation rather than grouping it together into one single allocation of damage (so it has the behavior you'd want for something like a gun with RoF 2+, but not for a spell like fireball).

@rjdejonghe The feature is meant to resolve multi-shot weapons such as automatic firearms or shot guns, where each die roll represents a separate projectile hitting the target. For those attacks, subtracting the DR per roll is the correct rule. We don't have a shortcut yet for spell-like damage, where you get (for example) 1d burn damage per energy point and the intent is to sum all the damage before subtracting DR once.
In the very near future look for a way to accumulate dice of damage for things like these spells.


Chapter 5: etherpad won't run on new AMI due to node version conflict

After deploying etherpad on elasticbeanstalk and going to the address of the application, i get 'bad gateway' error.
I check the log and in the first few lines:

npm ERR!     npm owner ls etherpad-lite
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /var/app/current/npm-debug.log

etherpad-lite@ start /var/app/current
bin/run.sh

You're running a wrong version of node, or io.js is not installed. You're using v6.10.0, we need v0.8.x, v0.10.x, v0.11.x or v0.12.x
npm ERR! Linux 4.4.44-39.55.amzn1.x86_64

A quick solution is downgrading the environment to an older version of the AMI on the web mangement interface. I used the v2015 one.

We recently fixed something in the example. When did you run the commands?

I were working on the chapter today. The problem is with version 2016 of the AMI.

you need to run:
aws elasticbeanstalk create-application --application-name etherpad

aws elasticbeanstalk create-application-version --application-name etherpad --version-label 1.5.2 --source-bundle S3Bucket=awsinaction,S3Key=chapter5/etherpad.zip

aws elasticbeanstalk list-available-solution-stacks --output text --query "SolutionStacks[?contains(@, 'running Node.js')] | [0]"

# replace $SolutionStackName with the output from above
aws elasticbeanstalk create-environment --environment-name etherpad --application-name etherpad --option-settings Namespace=aws:elasticbeanstalk:environment,OptionName=EnvironmentType,Value=SingleInstance --solution-stack-name "$SolutionStackName" --version-label 1.5.2

I successfully ran the app. but when I go the CNAME (http://etherpad.9s8gyiik3w.us-east-1.elasticbeanstalk.com/), its taking me to a Node.js landing page:
"Congratulations
Your first AWS Elastic Beanstalk Node.js application is now running on your own dedicated environment in the AWS Cloud"
What could possibly be wrong? My environment output is below:
{
"Environments": [
{
"ApplicationName": "etherpad",
"EnvironmentName": "etherpad",
"VersionLabel": "1.6.2",
"Status": "Ready",
"EnvironmentArn": "arn:aws:elasticbeanstalk:us-east-1:520104956268:environment/etherpad/etherpad",
"EnvironmentLinks": [],
"PlatformArn": "arn:aws:elasticbeanstalk:us-east-1::platform/Node.js running on 64bit Amazon Linux/4.4.0",
"EndpointURL": "<IP_ADDRESS>",
"SolutionStackName": "64bit Amazon Linux 2017.09 v4.4.0 running Node.js",
"EnvironmentId": "e-qs3znpu2cp",
"CNAME": "etherpad.9s8gyiik3w.us-east-1.elasticbeanstalk.com",
"AbortableOperationInProgress": false,
"Tier": {
"Version": "1.0",
"Type": "Standard",
"Name": "WebServer"
},
"Health": "Green",
"DateUpdated": "2017-12-16T22:31:20.197Z",
"DateCreated": "2017-12-16T22:27:09.908Z"
}
]

The output I'm receiving from:
aws elasticbeanstalk list-available-solution-stacks --output text --query "SolutionStacks[?contains(@, 'running Node.js')] | [0]"
is "64bit Amazon Linux 2017.09 v4.4.0 running Node.js"
Is this the $SolutionStackName  ?????

dahhh! I fixed it! no idea how. but i redid, and its working :)


support pfadd and pfcount command for redis HyperLogLog in redis filter

Commit Message:
now redis filter do not support pfadd and pfcount ,which is very useful as a counter. this pull request solve the problem.
Additional Description:
Risk Level:
Low
Testing:
manual
Docs Changes:
none
Release Notes:
none

@Agent-Tao thanks for your contribution! However, I think you need to fix DCO: https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#fixing-dco. Also, this is the general guideline on how to submit a PR: https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#submitting-a-pr.
And do you think we can add tests for your changes?

@Agent-Tao thanks for your contribution! However, I think you need to fix DCO: https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#fixing-dco. Also, this is the general guideline on how to submit a PR: https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#submitting-a-pr.
And do you think we can add tests for your changes?

hi，I fix dco and squash the commit. but I can not find a way to add test to verify these command, do you have any suggestions?

@dio @Agent-Tao looks like there are several parameterized test suites in command_splitter_impl_test that should cover some basic functionality. Not sure if something else is desired.
@HenryYYang is the redis expert at Lyft, Henry do you mind chiming in if you'd like to see something else?

hi @junr03 ，these new commands are in Common::Redis::SupportedCommands::simpleCommands() ,  the command_splitter_impl_test looks  test these simpleCommands already.

Yep, exactly that is what I meant above. Not sure if @dio was looking for additional testing.

Cool. Sorry I was not aware of that. LGTM.

LGTM

hi @junr03 @dio , If there are no further questions，could you help me to review and merge this pr?  thanks

@junr03 hi, could you approve this pr? thanks.

@dio thanks for your approve. but merging is still blocked, cause I'm not  authorized to merge this pull request.could you help to merge it ?


How can I connect to Gmail

Hey Guys
I just managed to install SuperAGI and it's working as it should.
I was thinking of testing a a case where I can write personalized job application emails with my Gmail. Is there any way to connect SuperAGI with gmail?

We are building a tool for connecting Gmail. You can refer the roadmap

It is planned as part of v0.0.2

I created a goal for SuperAGI to check my emails for and act upon emails sent from a certain domain. It accesses my gmail mailbox correctly, but appears to read only the first few emails over and over. It can't move on to the older emails lower in the inbox. Is this a bug or am I possibly doing something wrong?

I created a goal for SuperAGI to check my emails for and act upon emails sent from a certain domain. It accesses my gmail mailbox correctly, but appears to read only the first few emails over and over. It can't move on to the older emails lower in the inbox. Is this a bug or am I possibly doing something wrong?

Can you let me know the goal that you entered and also the gpt model used.

I created a goal for SuperAGI to check my emails for and act upon emails sent from a certain domain. It accesses my gmail mailbox correctly, but appears to read only the first few emails over and over. It can't move on to the older emails lower in the inbox. Is this a bug or am I possibly doing something wrong?

Hi, Can you let me know the agent goal you entered and also gpt model used

Closing this as this is done.


Add CHANGES_AST switch to plugin API so that AST breaking plugins can disable the equality check

Ping @chrisjsewell you might wanna have a look at this one?

Heya, can we make this a core CLI option? i.e. rather than hard-code the initial value of changes_ast = False, have something like:
parser.add_argument(
        "--skip-validation", action="store_true", help="Do not ensure the output Markdown produces the same HTML.")

This would be very useful for debugging issues.
Just the other day, I'd made a mistake in updating mdformat-tables, and so was just getting the message "The formatted Markdown renders to different HTML than the input Markdown.", which is not particularly helpful.

Sure, I made an issue https://github.com/executablebooks/mdformat/issues/50
I'm not a huge fan of adding functionality for developers in general (the tool is intended for users), but I think this could be possibly be useful for users as well.

I'm not a huge fan of adding functionality for developers in general (the tool is intended for users)

You realise this is to help you out as well. The rest of that error message reads:

The formatted Markdown renders to different HTML than the input Markdown.
This is likely a bug in mdformat. Please create an issue report here:
https://github.com/executablebooks/mdformat/issues

So basically, anytime a plugin has a bug like this, there is going to be a bunch of people opening an issue here, quoting this message, and you will have no easy way to debug it.

Sure thing, but if they can provide the input, it should be very simple to reproduce (might be a good idea to add a note about that in that print).

Sure thing, but if they can provide the input, it should be very simple to reproduce (might be a good idea to add a note about that in that print).

Well sure you will be able to reproduce the error message, how is that going to help you debug it?
Comparing to black: that provides the actual diff in the error message: https://github.com/psf/black/blob/283d999c3f89e2204cbf5a61242665bedd6887ef/src/black/init.py#L6258-L6260, and also provides the --fast argument (which I presume is why you suggest it in #50) https://github.com/psf/black/blob/283d999c3f89e2204cbf5a61242665bedd6887ef/src/black/init.py#L423-L427

Well sure you will be able to reproduce the error message, how is that going to help you debug it?

With a debugger :smile:

Comparing to black: that provides the actual diff in the error message:

Yeah adding the diff would be even better.

Btw, totally unrelated, lol, but I got a first working build of the toc generator plugin https://github.com/hukkinj1/mdformat-toc
Tried it out for the README here https://github.com/hukkinj1/typenv and seems to be working fine, though I don't fully trust it yet (enough to add a link on mdformat README for instance).
:smile: Thought you might be interested

yeh looks good 👍
The key part of this though is the slugify function, which is unfortunately not standardised across all renderers.
Currently, you only supply one slugify functions, which is not documented where it came from or what render it can be used with.
As suggested before, It would be ideal to either integrate this with:
https://github.com/executablebooks/markdown-it-py/blob/master/markdown_it/extensions/anchors/index.py, or provide a separate, shared package that provided some slugify functions for the different renderers.
Examples of integration with markdown-it-anchor are https://www.npmjs.com/package/markdown-it-table-of-contents and https://www.npmjs.com/package/markdown-it-toc-done-right


should see the "code" used to select the POI and the name of the owner of the map

I've taken a run on an already existing map (recycling glass).
There is a sub-page on the left to select or not POI.
Should it be possible to show the "code" used to display the POI
(more details : I don't see the glass container in my town.
After a check on a "valid" selected POI, I see that the owner has choosen to display recycling:glass=yes.
But for me - in general - it should be recycling:glass_bottles=yes)
In place of writing a ticket to MapContrib, i prefer to contact the owner of the map for these details

currently, it is not possible to contact the owner. You can create your own theme if you prefer.
but recycling: glass_bottles = yes it's ONLY for bottles
recycling: glass = yes implie recycling: glass_bottles = yes
http://wiki.openstreetmap.org/wiki/Tag:amenity%3Drecycling
so perhaps it's better to put both :)

I suggest to close this issue as it's a duplicate of the issue #57. Do you agree with it?

ok to close the ticket. Thanks you for the answer(s).


Update install instructions in README

We might also want to update the outdated gif

@sywhb I will try to update the GIF. Yours is pretty good though!


Local environment setup step 3 causes step 4 to fail

If step 3 is followed and an ipykernel installed prior, pip install azureml-sdk[notebook,automl] fails:

first with missing cmake error, solved via conda install cmake
now pip install fails with this error: ERROR: Could not find a version that satisfies the requirement onnxruntime==1.0.0

Skipping step 3 caused absolutely no issues. Not even the missing cmake error.

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

ID: 955b2d92-2d6a-787e-6612-d226e09b9a9a
Version Independent ID: 734d767b-f22d-2ba6-aabf-98b07bf5abfc
Content: Set up a Python development environment - Azure Machine Learning
Content Source: articles/machine-learning/how-to-configure-environment.md
Service: machine-learning
Sub-service: core
GitHub Login: @rastala
Microsoft Alias: roastala

@HarshUpadhyay-MSFT we will review your feedback and get back to you shortly. Thanks.

@rastala please can you review the code for Local environment? Thanks.

@HarshUpadhyay-MSFT can you try updating conda using the following command?
conda update -n base -c defaults conda

Conclusions from offline follow up with @HarshUpadhyay-MSFT :
This issue was caused from a version incompatibility. Currently, Python 3.8 does not have the full package dependency chain. Try a different version of Python (we recommend 3.7 for now) to resolve the issues.
#please-close

Yup I tried with 3.7.0 and it works. Thanks for helping :)


[stable/prometheus-operator] incorrect rules labels

Is this a BUG REPORT or FEATURE REQUEST?: Bug report
Version of Helm and Kubernetes:
➜  ~  helm version
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
➜  ~  kubectl version
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-28T15:18:13Z", GoVersion:"go1.11", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.6-gke.6", GitCommit:"d1d4d355f9364d164ca6e485cea3e60e0fa913ca", GitTreeState:"clean", BuildDate:"2018-09-28T00:40:25Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}

k8s cluster is GKE
Which chart:
stable/prometheus-operator v0.1.14
What happened:
Labels set for alert:
alertname="KubeJobCompletion"
endpoint="http"
instance="<IP_ADDRESS>:8080"
job="kube-state-metrics"
job_name="some_job-1537981200"
namespace="dev-env"
pod="prometheus-kube-state-metrics-69db7f65dc-t7nz9"
service="prometheus-kube-state-metrics"
severity="warning"

Alert annotation:
message
    Job /kube-state-metrics is taking more than one hour to complete.

What you expected to happen:
Alert annotation:
message
    Job dev-env/some_job-1537981200 is taking more than one hour to complete.

How to reproduce it (as minimally and precisely as possible):
Deploy chart in a quick way and fail a job, you'll see wrong alert annotation message as above.
Anything else we need to know:
prometheus-rules.yaml coreos file, imported by name of all-prometheus-rules.yaml here have misconfigured labels.
Following should be redefined:
{{ $labels.job }} -> {{ $labels. job_name }}
{{ $labels.namespaces }} -> {{ $labels.namespace }}

Interesting thing is what labels.namespace is already used in part of alerts.
@gianrubio, can I fix it in coreos/prometheus-operator? Or it's intentional and should (or should not) be fixed only in this repo?

Please read and follow the instructions on https://github.com/coreos/prometheus-operator/pull/2096
and them make a PR here with the changes

If I understand correctly, in the end we want import rules and dashboards directly from https://github.com/kubernetes-monitoring/kubernetes-mixin, without touching coreos/prometheus-operator.
What should i do here after https://github.com/coreos/prometheus-operator/pull/2096 will be merged? Sync everything somehow? Or fix only current issue and work on proper sync solution at https://github.com/helm/charts/issues/8749?


logwriter: needs peer review

I created a new tag for these kinds of issues.
In the process of fixing #1617 I found the logwriter package a bit unclear. It would be great to pair on this and add documentation/refactor/simplify this package.
Current questions/concerns:

is Close necessary? it's never called outside of tests.

is the buffered writer appropriate here? the flush method is called every time a request calls the write method. So why not just call write on the file directly?

Should the logWriter wrap the lumberjack initialization and expose a ...Option which allows configuring the options from: https://github.com/kolide/fleet/blob/7577c1e3b4f386fea1b0b923acdf1c5f2462b61f/server/service/service.go#L54-L60

Should there be a debug logger added as a config param?

@zwass want to pair on this sometime?

For (2) on top of #1693 one of the things I would like to do is to decouple of the
writing of the log data from SubmitLogs handler.
Perhaps having periodic flushing for remotes, and direct writes for local (file) ?
Exposing the config for (3) would be easy to add as well.


Handle 'DeleteAutoScalingGroup operation: AutoScalingGroup name not found' errors

Fixes https://github.com/capitalone/cloud-custodian/issues/249

lgtm, thanks


fix(transaction-details): remove fiat amount for tokens other than ae

...

Bug was fixed. Now no fiat amount can be seen for the tokens both on the confirmation screen and transaction details.


Add bulk actions (enhancement) (#356)

Extended admin.py  to add bulk actions to

Publish/unpublish selected posts
Enable/disable comments for selected posts
Enable/disable liveblog for selected posts (only if liveblog app is installed)

Attention: This pull requests adds strings which need to be localized
Fix #356

Nice and needed actions

Codecov Report

Merging #358 into develop will decrease coverage by 0.67%.
The diff coverage is 55.55%.

@@            Coverage Diff             @@
##           develop    #358      +/-   ##
==========================================
- Coverage    92.37%   91.7%   -0.68%
==========================================
  Files           25      25
  Lines         1443    1470      +27
  Branches       184     188       +4
==========================================
+ Hits          1333    1348      +15
- Misses          58      69      +11
- Partials        52      53       +1

Impacted Files
Coverage Δ

djangocms_blog/admin.py
80.58% <55.55%> (-3.78%)
:arrow_down:

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 dabe9c0...13ac239. Read the comment docs.

Process question: Can I add enhancements of #357 to the same pull request or should I create a new one?

@fsbraun definitely a new PR for #357

Coverage decreased (-0.8%) to 95.177% when pulling 92780aa4b089bcb77cf3fb773d116f548055c63c on fsbraun:develop into dabe9c01d010dc0dd775635bba34ee99557e3418 on nephila:develop.

Implemented requested changes.
Not sure why I get a red flag form coveralls and codecov though ...

@fsbraun as the new methods have no test, the coverage has decreased. I'll ponder a bit on the best way to test them

@yakky anything I can do at this point?

Sorry @fsbraun I completely missed this. LGTM, merging
Thanks for your contribution!


NIFI-9628: Added a uiOnly flag when requesting Controller Service det…

…ails and the list of Controller Services. This allows us to return much less data when retrieving these resources.

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Enables X functionality; fixes bug NIFI-YYYY.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

Thanks for reviewing @mcgilman . I pushed a new commit that I believe addresses all of the above.


Add Garrys Mod mounted content support

To be used for https://wiki.facepunch.com/gmod/Mounting_Content_on_a_Dedicated_Server
I'll be putting up a PR for the gmod egg as well shortly

Redundant now that I've been informed that mounts exist.


Dataprotection ModuleNotFoundError 'azure.mgmt.resourcegraph'

I understand that of course I could just install this missing module via pip3 as a hotfix. But, I also think this is not how this extension should behave in the first place.
Is there maybe something missing during installation of the extension? Didn't experience any ModuleNotFoundErrors before.
Find below the 'az feedback --verbose' output with the list of my installed extensions, I manually noted which of them is a preview version.
Extension name (the extension in question)
dataprotection
Description of issue (in as much detail as possible)

ModuleNotFoundError: No module named 'azure.mgmt.resourcegraph'
command: az dataprotection backup-instance --help

This is autogenerated. Please review and update as needed.
Describe the bug
az feedback --verbose
Command Name
az dataprotection backup-instance
Errors:
The command failed with an unexpected error. Here is the traceback:
No module named 'azure.mgmt.resourcegraph'
Traceback (most recent call last):
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 583, in execute
    parsed_args = self.parser.parse_args(args)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/parser.py", line 261, in parse_args
    return super().parse_args(args)
  File<EMAIL_ADDRESS>line 1821, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/parser.py", line 284, in parse_known_args
    self._namespace, self._raw_arguments = super().parse_known_args(args=args, namespace=namespace)
  File<EMAIL_ADDRESS>line 1854, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File<EMAIL_ADDRESS>line 2045, in _parse_known_args
    positionals_end_index = consume_positionals(start_index)
  File<EMAIL_ADDRESS>line 2022, in consume_positionals
    take_action(action, args)
  File<EMAIL_ADDRESS>line 1931, in take_action
    action(self, namespace, argument_values, option_string)
  File<EMAIL_ADDRESS>line 1210, in __call__
    subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/parser.py", line 284, in parse_known_args
    self._namespace, self._raw_arguments = super().parse_known_args(args=args, namespace=namespace)
  File<EMAIL_ADDRESS>line 1854, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File<EMAIL_ADDRESS>line 2045, in _parse_known_args
    positionals_end_index = consume_positionals(start_index)
  File<EMAIL_ADDRESS>line 2022, in consume_positionals
    take_action(action, args)
  File<EMAIL_ADDRESS>line 1931, in take_action
    action(self, namespace, argument_values, option_string)
  File<EMAIL_ADDRESS>line 1210, in __call__
    subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/parser.py", line 284, in parse_known_args
    self._namespace, self._raw_arguments = super().parse_known_args(args=args, namespace=namespace)
  File<EMAIL_ADDRESS>line 1854, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File<EMAIL_ADDRESS>line 2063, in _parse_known_args
    start_index = consume_optional(start_index)
  File<EMAIL_ADDRESS>line 2003, in consume_optional
    take_action(action, args, option_string)
  File<EMAIL_ADDRESS>line 1931, in take_action
    action(self, namespace, argument_values, option_string)
  File<EMAIL_ADDRESS>line 1095, in __call__
    parser.print_help()
  File<EMAIL_ADDRESS>line 2551, in print_help
    self._print_message(self.format_help(), file)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/parser.py", line 195, in format_help
    super(AzCliCommandParser, self).format_help()
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/parser.py", line 248, in format_help
    self.cli_help.show_help(self.prog.split()[0],
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/_help.py", line 165, in show_help
    else self.group_help_cls(self, delimiters, parser)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/help.py", line 253, in __init__
    child.load(options)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/_help.py", line 303, in load
    loader.versioned_load(self, options)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/_help_loaders.py", line 154, in versioned_load
    super(CliHelpFile, help_obj).load(parser)  # pylint:disable=bad-super-call
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/help.py", line 198, in load
    description = getattr(options, 'description', None)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/knack/parser.py", line 241, in __getattribute__
    self.description = self._description() \
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 133, in description_loader
    op = self.get_op_handler(self.op_path)
  File "/usr/local/Cellar/azure-cli/2.32.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 59, in get_op_handler
    handler = import_module(mod_to_import)
  File<EMAIL_ADDRESS>line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/NJ62KD/.azure/cliextensions/dataprotection/azext_dataprotection/custom.py", line 20, in <module>
    raise e
  File "/Users/NJ62KD/.azure/cliextensions/dataprotection/azext_dataprotection/custom.py", line 15, in <module>
    from .manual.custom import *  # noqa: F403
  File "/Users/NJ62KD/.azure/cliextensions/dataprotection/azext_dataprotection/manual/custom.py", line 17, in <module>
    from azure.mgmt.resourcegraph.models import \
ModuleNotFoundError: No module named 'azure.mgmt.resourcegraph'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

install extension via first use (implicit) or via  az extension add -n dataprotection (explicit). Both ways led to the same outcome.
az dataprotection backup-instance -h or any az dataprotection backup-instance subcommand.

Expected Behavior
Shows help output.
Environment Summary
macOS-12.2.1-x86_64-i386-64bit, Darwin 21.3.0
Python 3.10.1
Installer: HOMEBREW

azure-cli 2.32.0 *

Extensions:
front-door 1.0.16
alertsmanagement 0.1.1
logic 0.1.5 (manual note: preview)
resource-graph 2.1.0
sentinel 0.1.1
ssh 1.0.0 (manual note: preview)
dataprotection 0.2.0
application-insights 0.1.14 (manual note: preview)

Dependencies:
msal 1.16.0
azure-mgmt-resource 20.0.0

Additional Context

To my surprise hotfix via pip and pip3 install azure-mgmt-resourcegraph did not work.

route to CXP team

@HansZimmer5000 Thanks for reaching out to us and proving the current update. Please let us know if you are still facing any issues while running the az dataprotection backup-instance now after importing the above module using Python3. Awaiting your reply.

@HansZimmer5000 I wanted to do quick follow-up to check if you had a chance to look at my above comment. Please let me know if you are still facing the same issue. Awaiting your reply.

Let me clarify 2 things:

python3's import won't work because Azure CLI runs in an isolated virtual env, meaning it doesn't share system's python packages.
Each python3's execution is a separate process, so even you can do import with python3, this import statement only affects the current python3 process, so it doesn't affect other python3 executions like az dataprotection backup-instance.

I am also able to reproduce this issue on Windows:
> az extension add -n dataprotection
> az dataprotection backup-instance -h
...
  File "C:\Users\name\.azure\cliextensions\dataprotection\azext_dataprotection\manual\custom.py", line 17, in <module>
    from azure.mgmt.resourcegraph.models import \
ModuleNotFoundError: No module named 'azure.mgmt.resourcegraph'

Cause
Even though https://github.com/Azure/azure-cli/pull/13163 added the support to load azure.mgmt from extension installation folder:
https://github.com/Azure/azure-cli/blob/e2f55ec7de8ff0b19c05e082d408992ac1a1139c/src/azure-cli-core/azure/cli/core/extension/operations.py#L501-L521
def add_extension_to_path(extension_name, ext_dir=None):
    ext_dir = ext_dir or get_extension(extension_name).path
    sys.path.append(ext_dir)
    # If this path update should have made a new "azure" module available,
    # extend the existing module with its path. This allows extensions to
    # include (or depend on) Azure SDK modules that are not yet part of
    # the CLI. This applies to both the "azure" and "azure.mgmt" namespaces,
    # but ensures that modules installed by the CLI take priority.
    azure_dir = os.path.join(ext_dir, "azure")
    if os.path.isdir(azure_dir):
        import azure
        azure.__path__.append(azure_dir)
        azure_mgmt_dir = os.path.join(azure_dir, "mgmt")
        if os.path.isdir(azure_mgmt_dir):
            try:
                # Should have been imported already, so this will be quick
                import azure.mgmt
            except ImportError:
                pass
            else:
                azure.mgmt.__path__.append(azure_mgmt_dir)

it is not used in core's extension loading process (but in other modules like network):
https://github.com/Azure/azure-cli/blob/af0c73a37ca3f540cb0b3f0b18e0f362932ab191/src/azure-cli-core/azure/cli/core/__init__.py#L351
                    ext_dir = ext.path or get_extension_path(ext_name)
                    sys.path.append(ext_dir)

We can show what azure really is at this time:
import azure
print(azure.__path__)

['d:\\cli\\azure-cli\\src\\azure-cli-telemetry\\azure', 'D:\\cli\\py310\\lib\\site-packages\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-core\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-testsdk\\azure']

Because azure has already been loaded, adding ext_dir won't affect existing azure module.
Solution
The common practice is to put SDKs in a vendored_sdks folder, instead of installing from PyPI.
To my surprise, this extension was added by #3459 (Jun 3, 2021) but this bug is never discovered.

This problem also happens in a virtual env, but not Azure CLI installed with MSI or DEB:
I tested with a sample script:
import sys

import azure
print(azure, azure.__path__)

sys.path.append(r'C:\Users\username\.azure\cliextensions\dataprotection')

import azure
print(azure, azure.__path__)

import azure.mgmt
print(azure.mgmt, azure.mgmt.__path__)

import azure.mgmt.resourcegraph
print(azure.mgmt.resourcegraph, azure.mgmt.resourcegraph.__path__)

System python:
> & "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe" D:\cli\testproj\main.py
<module 'azure' (namespace)> _NamespacePath(['C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\CLI2\\lib\\site-packages\\azure'])
<module 'azure' (namespace)> _NamespacePath(['C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\CLI2\\lib\\site-packages\\azure'])
<module 'azure.mgmt' (namespace)> _NamespacePath(['C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\CLI2\\lib\\site-packages\\azure\\mgmt', 'C:\\Users\\username\\.azure\\cliextensions\\dataprotection\\azure\\mgmt'])
<module 'azure.mgmt.resourcegraph' from 'C:\\Users\\username\\.azure\\cliextensions\\dataprotection\\azure\\mgmt\\resourcegraph\\__init__.py'> ['C:\\Users\\username\\.azure\\cliextensions\\dataprotection\\azure\\mgmt\\resourcegraph']

Virtual env python:
> & "D:\cli\py310\Scripts\python.exe" D:\cli\testproj\main.py
<module 'azure' from 'd:\\cli\\azure-cli\\src\\azure-cli-telemetry\\azure\\__init__.py'> ['d:\\cli\\azure-cli\\src\\azure-cli-telemetry\\azure', 'D:\\cli\\py310\\lib\\site-packages\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-core\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-testsdk\\azure']
<module 'azure' from 'd:\\cli\\azure-cli\\src\\azure-cli-telemetry\\azure\\__init__.py'> ['d:\\cli\\azure-cli\\src\\azure-cli-telemetry\\azure', 'D:\\cli\\py310\\lib\\site-packages\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-core\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli\\azure', 'd:\\cli\\azure-cli\\src\\azure-cli-testsdk\\azure']
<module 'azure.mgmt' (<_frozen_importlib_external._NamespaceLoader object at 0x0000025B0E2DA7A0>)> _NamespacePath(['D:\\cli\\py310\\lib\\site-packages\\azure\\mgmt'])
Traceback (most recent call last):
  File "D:\cli\testproj\main.py", line 14, in <module>
    import azure.mgmt.resourcegraph
ModuleNotFoundError: No module named 'azure.mgmt.resourcegraph'

In a virtual env which installs Azure CLI from source code, under azure and azure/mgmt folders, there are __init__.py files containing one line:
__path__ = __import__("pkgutil").extend_path(__path__, __name__)

These files make azure and azure.mgmt normal (non-namespace) packages, preventing Python from looking up additional library folders.

@HansZimmer5000 Apologies for the late reply. Could you please refer this comment and follow the workaround suggested there? Please let me know if you face any issues. Awaiting your reply.

@HansZimmer5000 Could you please let me know if you have any follow-up question on this ?

@HansZimmer5000 Please let me know if you had a chance to look at the above comments. Awaiting your reply.

@HansZimmer5000 We will now proceed with closure of this github issue. Once you have an update and need any further assistance on this issue, please feel free to reopen this thread. We would be happy to help.

Solution
The common practice is to put SDKs in a vendored_sdks folder, instead of installing from PyPI.

Good day!
Please excuse my late response. Thank you very much for the detailed debugging.
What are the steps to realize your solution? Tried to figure it out myself, sadly I don't have more time for tinkering.
Tried to remove azure('brew remove az' + rm -rf ~/.azure) and install it again (brew install az + 'az extension add --name dataprotection') with now change.
fyi: In python3 your import azure.mgmt.resourcegraph and print(azure.mgmt.resourcegraph, azure.mgmt.resourcegraph.__path__) showed no error for me.

The __init__.py in source code make it's possible to load the azure folder in extension folder if azure-cli is installed in develop mode.
Although we encourage extension to use vendered_sdks instead of azure-xxx in dependency, I still prefer to use the modern find_namespace_package way to create namespace package and remove __init__.py.


Add Net::SSH::Exception to list of caught SSH errors

Based on issue #50 , I added Net::SSH::Exception to the list of caught errors in WaitForSSH. I've been having the same issues when running ami_spec in CodeBuild, where no matter what I set the retries to, it would intermittently error out with a Net::SSH::ConnectionTimeout error. I updated the test to check for this kind of error in addition to the Errno::ECONNREFUSED error.

Released this in version 1.7


[Question]: Should RunningMeanStd more general than RunningStat ?

I am wondering why there exists two classes for both RunningStat and RunningMeanStd as the latter is more general with online estimating mean and std with batched data.

that seems to be an artifact of two classes coming from different subprojects... Thanks for pointing that out, we can remove one and replace its usage with the other


At Sea UNK

Please move all search records recorded against UNK At Sea to OVF At Sea and remove the UNK Gazetteer entry.

Completed
Geoff


CompactionTask: Reject empty intervals on construction.

They don't make sense anyway, and it's better to fail fast.

I switched to Intervals.of.


Add comment that integration time is only trustworthy with an SET

This was something that we ran into in sigstore-go, that the timestamp was used regardless if the signature over the timestamp was verified. This comment is meant to couple these fields together.

Summary

Release Note

Documentation

LGTM, although out of curiosity: does the signed checkpoint count as an alternative source of time? In other words, is the requirement:
inclusion_promise OR rfc3161_timestamp

or is it:
inclusion_promise OR signed_checkpoint OR rfc3161_timestamp

I ask because we might have a similar gap in sigstore-python: we require a signed checkpoint and verify the inclusion promise if the latter is present, but the latter is not currently mandatory.
(I think the ambiguity here originally came from the fact that signed checkpoints included timestamps in their ancillary data, but I'm not clear on whether this is still true...)

It is inclusion_promise OR rfc3161_timestamp. A signed_checkpoint is not sufficient because it has no timestamp (and you're right, it used to, but that got removed because that timestamp was unrelated to time of inclusion).
In sigstore-go, we have verification of Rekor-related metadata and verification of RFC3161 timestamps. For the former, we a) verify an inclusion proof and signed checkpoint if present, b) verify an inclusion promise if present AND return integrated_time. We then verify RFC 3161 timestamps. Then we gather all verified timestamps together and try to verify the certificate with those timestamps.

Got it, thanks! This change makes sense to me, then, and it sounds like I need to strengthen the inclusion promise requirement within sigstore-python.


New Stable Version

This is a draft I prepared @erik-wramner to merge master into stable when you're ready.
Before we merge this into stable, I would like to find out why the /elk build is still there, seeing that it should have been deleted with #1614.
Furthermore, @erik-wramner I saw that stable is 57 behind, but also 2 commits ahead of master. Is this just the default merge commit when merging from <insert branch name here>?

@aendeavor the reason for stable being 2 commits in front of master is the build environment. As I can't trigger a build from Docker hub the only way to publish the branch if the build fails is to push again to trigger a new build. Irritating as the build fails from time to time due to the unstable tests, but there you are.


Key error

Excellent work, very interesting.
While running the Swin-UMambaD from pre-trained weights, I faced the issue of key error in: https://github.com/JiarunLiu/Swin-UMamba/blob/50eecc895fe7377676f09ba45f28855a18153336/swin_umamba/nnunetv2/nets/SwinUMambaD.py#L669.
Possibly the checkpoint doesn't have the "config" key?
It would be great to have your valuable feedback in this regard.
Best,
Atik

Hi, @Atik-Ahamed. Thanks for your feedback. VMamba has updated their released checkpoint file and removed the config from it. You can try to update the codes as follows:
# line 669 in SwinUMambaD.py
if "patch_embed" in k and ckpt['model']["patch_embed.proj.weight"].shape[1] != num_input_channels:

We will update our code release later.

Thanks a lot for your help and prompt reply.


reading labeled data

Hello all,
The flow of "dataset => batch => batch with data" is understood. "next_batch" can be called with an arbitrary batch_size.
My question is while loading the "target" component in "batch with data" how I can extract the same indices from the larger labeled data file?
e.g. consider the following
eds = EcgDataset(path="*.hea")
batch = eds.next_batch (batch_size = 8)
batch_with_data = batch.load (fmt="wfdb", components = ["signal", "meta"]
Now, suppose I have totally 1000 .hea files and a csv file with 1000 outcome labels. How do I fetch exactly those 8 labels in "batch_with_data" that correspond to same indices as files in the batch from this larger 1000 labels array?
thanks
~anoop

There are many ways to do that.

Load batch_with_data.load(fmt='csv', src='/path/to/labels.csv', components='labels', index_col=0)

Load labels into a dataframe first with pandas.read_csv and then batch_with_data.load(src=df_with_labels, components='labels')

Put labels directly - batch_with_data.labels = df_with_labels['labels'][batch_with_data.indices]

For this to work ensure that CSV is indexed with eds.indices, i.e. the first column of the table contains the same elements as dataset indices.

thank you! got it working with (2) type syntax.
best regards,
~anoop


Fix bug where the URL being sent and being signed is different

Description
Fix for https://github.com/opensearch-project/opensearch-py/issues/833.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Much better! Get CI to pass.
I tested this using https://github.com/dblock/opensearch-python-client-demo.
osx ~/source/dblock/opensearch-python-client-demo/async (main)$ git diff example.py
diff --git a/async/example.py b/async/example.py
index 2360ebf..1754609 100644
--- a/async/example.py
+++ b/async/example.py
@@ -55,19 +55,23 @@ async def main():

   try:
     # index data
+    id = 'id@local'
     document = {'director': 'Bennett Miller', 'title': 'Moneyball', 'year': 2011}
-    await client.index(index=index, body=document, id='1')
+    await client.index(index=index, body=document, id=id)

     # wait for the document to index
     sleep(1)

+    doc = await client.get(index=index, id=id)
+    print(doc)
+
     # search for the document
     results = await client.search(body={'query': {'match': {'director': 'miller'}}})
     for hit in results['hits']['hits']:
       print(hit['_source'])

     # delete the document
-    await client.delete(index=index, id='1')
+    await client.delete(index=index, id=id)
   finally:
     # delete the index
     await client.indices.delete(index=index)

osx ~/source/dblock/opensearch-python-client-demo/async (main)$ git diff Pipfile
diff --git a/async/Pipfile b/async/Pipfile
index f2923c4..35cb795 100644
--- a/async/Pipfile
+++ b/async/Pipfile
@@ -4,10 +4,10 @@ verify_ssl = true
 name = "pypi"

 [packages]
-opensearch-py = "2.4.1"
+opensearch-py = {git = "git+https://github.com/nathaliellenaa/opensearch-py.git", ref = "python-client-bug"}
 boto3 = "*"

 [dev-packages]

 [requires]
-python_version = "3"
\ No newline at end of file
+python_version = "3"

Failed with 2.4.1 and worked great with your changes.

Failed with 2.4.1 and worked great with your changes.
Do you know why it fails on some specific versions?

Failed with 2.4.1 and worked great with your changes.

Do you know why it fails on some specific versions?

Looks like legit test failures that have to do with the changes to URL encoding.
=========================== short test summary info ============================
FAILED test_opensearchpy/test_client/test_utils.py::TestMakePath::test_handles_unicode - AssertionError: '/some-index/type/%E4%B8%AD%E6%96%87' != '/some-index/type/中文'
- /some-index/type/%E4%B8%AD%E6%96%87
+ /some-index/type/中文

Looks like legit test failures that have to do with the changes to when URLs get encoded.
=========================== short test summary info ============================
FAILED test_opensearchpy/test_client/test_utils.py::TestMakePath::test_handles_unicode - AssertionError: '/some-index/type/%E4%B8%AD%E6%96%87' != '/some-index/type/中文'
- /some-index/type/%E4%B8%AD%E6%96%87
+ /some-index/type/中文

Yes, do I need to modify this test since the behavior of the _make_path function has been modified?

Yes, do I need to modify this test since the behavior of the _make_path function has been modified?

Correct.

Tested with samples from #857.
osx ~/source/opensearch-project/opensearch-py/dblock-opensearch-py/samples (nathaliellenaa-python-client-bug)$ poetry run python aws/search_urllib3_async.py
INFO:Found credentials in environment variables.
INFO:GET https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/ [status:200 request:0.314s]
opensearch: 2.7.0
INFO:PUT https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies [status:200 request:0.576s]
INFO:PUT https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies/_doc/foo%40bar [status:201 request:0.188s]
INFO:POST https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/_search [status:200 request:0.102s]
{'director': 'Bennett Miller', 'title': 'Moneyball', 'year': 2011}
INFO:DELETE https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies/_doc/foo%40bar [status:200 request:0.116s]
INFO:DELETE https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies [status:200 request:0.153s]
osx ~/source/opensearch-project/opensearch-py/dblock-opensearch-py/samples (nathaliellenaa-python-client-bug)$

poetry run python aws/search_urllib3_sync.py
INFO:Found credentials in environment variables.
INFO:GET https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/ [status:200 request:0.321s]
opensearch: 2.7.0
INFO:PUT https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies [status:200 request:0.445s]
INFO:PUT https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies/_doc/foo%40bar [status:201 request:0.179s]
INFO:POST https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/_search [status:200 request:0.100s]
{'director': 'Bennett Miller', 'title': 'Moneyball', 'year': 2011}
INFO:DELETE https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies/_doc/foo%40bar [status:200 request:0.099s]
INFO:DELETE https://search-dblock-test-opensearch-27-xwd6xrwtykennk3q7uu7t7dtpi.us-west-2.es.amazonaws.com:443/movies [status:200 request:0.149s]


Feature/get values

Description

Created the VariableChange and LinearVariableChange interfaces;
Fixed the compiling failure resulting from removal of VariableChange in JEDI;
The interface facilitates variable refactoring;

Hi Zhichang, do you have a getvalues.yml that works with UCLDAS, or is that still a work in progress? I think we need that before we go about merging this branch into develop

Hi Andy, that's still a work in progress. Yes, we need that before merging
the branch. I think I issued the PR too early. Thanks!
On Thu, Jan 6, 2022 at 2:20 PM Andy Fox @.***> wrote:

Hi Zhichang, do you have a getvalues.yml that works with UCLDAS, or is
that still a work in progress? I think we need that before we go about
merging this branch into develop
—
Reply to this email directly, view it on GitHub
https://github.com/JCSDA-internal/ucldasv2/pull/3#issuecomment-1006857672,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AROLKKU5ZOZP6PO3XXVBU2DUUXTNRANCNFSM5LLPIGMA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were assigned.Message ID:
@.***>

Closing in order to archive repository


Remove unused method_exists test

method_exists is testing an array for a method which will always be false. Looking at the code coverage for this code path there are no tests that exercise this path.

Fixed in PortPHP, thanks!
https://github.com/portphp/doctrine/commit/bbee21252a8dcd3fcac842b8d23ec372fc4efee6


Resubmissions Required for MA

The following files need to be resubmitted to MA following the SSHJ-caused outage. These do not require any corrections. They just need to be resent.
69224983-55f2-419f-b61a-785f127f9bdc	2022-06-03T11:41:09.35974-04:00
d6da8841-b33d-482b-8eea-0c22fbbef9b0	2022-06-04T11:42:05.396931-04:00
6410c092-9adc-4713-a179-94e4c5354cc2	2022-06-05T11:42:02.041143-04:00

Files were resubmitted to MA at 15.03 ET today. @anshulkumar-usds @Adrian-Brewster @sarahnw


Return helpful response if any required header is missing

follow up to https://github.com/probot/adapter-aws-lambda-serverless/pull/63
/cc @axel3rd  I think that would have saved you a lot of headache.

Yes 🤯 ^^, but could be part of #60

yes I agree. I'm just not sure how pointing to https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html would be helpful?

I'm just not sure how pointing to https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html would be helpful?

IMO, the CloudWatch logs is easy to access from Monitoring Tab (and not sure than Lambda Insight can be relevant here).
Using Probot log can do the job (log.debug for input event, log.error in the error catch).

so in case of an error response, shall we include a JSON key such as
{
  "error": "...",
  "documentation_url": "https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html"
}


Sending emails with full name does not work

When sending emails, the email address in the envelope needs to be stripped from the full name. So, if the sender or reciepient is given as "Jim Jack<EMAIL_ADDRESS>only<EMAIL_ADDRESS>should be given to the envelope. Otherwise, postfix won't send the email.

@swerter Thank you so much and sort about the huge delay!


@xstate/fsm: npm pkg missing es module

Description

The package.json lists "module": "es/index.js" but that file seems to be missing from the final build: https://unpkg.com/browse/<EMAIL_ADDRESS>Expected Result

ES Module included on NPM
Actual Result

Missing file
Additional context

@xstate/fsm: 1.0.3

Released as 1.1.0


Bounding Box material update to match the shell. Transparent body on grab/manipulation.

Overview
Bounding Box becomes opaque black on grab/manipulation. It is prominent on MRC captures.
Adjusted Bounding Box's material color.
Changes

Fixes: #6403

/azp run


⚠ Bofrost.de has degraded performance

In 706df3d, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1260 ms

Resolved: Bofrost.de performance has improved in fdae9b2 after 6 minutes.


request: make all i18n keys camelCase

Is your feature request related to a problem? Please describe.
Klasa's convention is to have all keys upper-case, however in i18next, the convention is to have them camelCase (with the occasional _snake for plural rules).
Describe the solution you'd like
Change all keys from SCREAMING_SNAKE_CASE to camelCase
Describe alternatives you've considered

Leaving it be? Feels weird to not follow the language standards.
Do this while we switch? Might increase development cost by a lot.

Additional context
N/a.

Important: This also requires modifications to https://github.com/skyra-project/klasa and https://github.com/skyra-project/settings-gateway!


[XLA] Fix subcomputation unification not adjusting conditionals

When the subcomputation unification finishes, it calls into the module to adjust any instructions which have had their computation parameters invalidated.
the conditional instruction was missing from this function.

Note that the good reviewers for this change are out for the next couple days, so expect a slow response.

no problem.  i'm not in a hurry.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

ah yes - i noticed that it had been added from elsewhere.  I will abandon the change all-together.  simpler.


Diff command

Command Name
Diff
Git Command(s)
git diff -w
git diff -w {file}
Dialog Input (if applicable)

file: currently open file

Input Validation

File is saved

Are you looking to see the diff for a changed line?

@UziTech no Atom already does that in the gutter, but a diff of the whole file in a separate window, like Sublime does

seems like git-time-machine would be more useful
Or are you looking to just get the diff so you can copy it somewhere else?

are you looking for something like this:

Yes something like that

I added a diff branch with the command if you want to check it out before it is released.


NoopLogger

Should we move the NoopLogger from core to api as we have with other noop implementations ?

Logging is an implementation detail of the SDK. The API has no bearing on it. The SDK internals could be changed to have different logging levels or behaviors with no difference in the public API.

Logging is an implementation detail of the SDK. The API has no bearing on it. The SDK internals could be changed to have different logging levels or behaviors with no difference in the public API.

but then we keep other noop implementations in api. Simple example: To avoid duplications if I want to implement a new plugin or anything else based only on api, I cannot define a default NoopLogger without using SDK, and because it is not in api I will have to import nooplogger from sdk or create a new one. This is jsut wrong and imho api should provide a default implementation for that.

Is this fixed? I see #1540 actually exports the NoopLogger as part of the api.
When registering a NodeTraceProvider should one use the NoopLogger from the api or from core?

@obecny looks like we have a NoopLogger in the API and SDK. I'm going to close this, but open a new issue to remove the core NoopLogger


JSON file won't load

Awesome node, thanks for building this.  It is exactly what I was looking for.
I have one JSON file that will not load.  It is the sdxl_styles_fooocus.json file that is attached.  I have put other JSON files in the same directory that have successfully loaded into the node.  For some reason I cannot determine, this file will not load.
Is there a name length limit or something else I am missing?
Thank you!

Probably some formatting issue in the file. If you can attach it or reference it from the source I can have a look.

Sorry, forgot to attach.
sdxl_styles_fooocus.json

First entry has a missing entry for the positive prompt.
If you add this it after the first name row it should just pass your positive through.
"prompt": "{prompt}",

That solved the problem.  Thank you!
On Wed, Jan 3, 2024 at 3:47 PM twri @.***> wrote:

First entry has a missing entry for the positive prompt.
If you add this it after the first name row it should just pass your
positive through.
"prompt": "{prompt}",
—
Reply to this email directly, view it on GitHub
https://github.com/twri/sdxl_prompt_styler/issues/19#issuecomment-1876073827,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASZPETVH335ENEEVBTI3WGTYMXNWZAVCNFSM6AAAAABBMBSNFWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZWGA3TGOBSG4
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add gre and qinq protocols

Add support for basic GRE (generic routing encapsulation RFC1701).
Add support for QinQ ethernet subtype (IEEE 802.1ad).
Add some useful packet stack definitions

thanks! looks good.
just one questions: what about the ethertype? I thought that QinQ just adds another 0x8100 ethertype (which would be somewhat annoying to handle when parsing :/). I just read a little bit about QinQ and it seems like there isn't a standard followed by everyone :/
At least 0x88a8 (standard) and 0x9100 (juniper?) also seem to be used.
You are adding a cisco-specific ethertype as a constant, but your code later uses 0x8100 (hardcoded) default for both tags. Maybe add an option to make it configurable?
Can you please elaborate on your test setup: what devices did you test this with?
(I've luckily never had to use qinq and the last time I touched GRE is also a few years ago, we've migrated everything to vxlan :))

I agree that QinQ should just add another 0x8100 ethertype, but there is no clear standard, just some "suggested" values.
It looks like only the ethertype of the outer 802.1Q header is variable.
I think the best option here is to remove the cisco-specific constant (I can't find where it came from in the first place anyway, I think it just turned up in a packet trace) and make the ethertype of the outer 802.1Q configurable. Is it worth extending this to the inner 802.1Q header too, even though it's not technically correct?
The downside here is you lose the ability to detect ethernet subtype automatically by checking ethertype against the list of constants.
As for the test setup, I'm afraid I can't go into specifics as it's an active project, but it does use some Cisco systems, hence the Cisco-specific ethertype

thanks!
@scholzd will have a look at type-detection/parsing


Fixes issues with basedir restrictions

Hi, I used this plugin today and noticed that there are errors when basedir restrictions are in place. This change should change the temporary file location from "/tmp" to "DOCUMENT_ROOT/tmp"

I just researched a bit more and there is a php function named sys_get_temp_dir(); so I think the code should be
        $tmpDir = tempnam(sys_get_temp_dir(), 'pdf');

@MauritzFunke thanks, can you update the PR with the code from your comment?

I meant this

Can you replace the latter occurance of $tmpFile with $tmpDir as well.

I added it myself now.
I will make a new release after i mgrated to github actions.

@MauritzFunke released as 2.2.1 for PHP 7.1 - 7.3
and https://github.com/ivoba/silverstripe-simple-pdf-preview/releases/tag/2.3.0 for PHP 7.4 and 8.0


Support $2a$ bcrypt prefix

golang.org/x/crypto/bcrypt, generate $2a$ bcrypt prefix, it would be logical to authenticate against this prefix as well !?

That's done, thanks...

This was fixed in PR #86. This issue can be closed.


Informative comparison functions

Include methods for Image objects, or extend imageCompare, to give more detailed feedback on how exactly are the images not equal. E.g., it could return an optional string (passing by reference?) that specifies if the images are not equal but proportional, not equal in only few % of pixels, not equal but with a tolerance of a certain % of the image mean, etc. (some of these are maybe bad ideas). This would displace code to the library, enabling one stable implementation and well tested sentences that are clear and concise.
Example to check for normalization:
// function that checks if there is a normalization error between img1 and img2
function is_normalization_error(img1, img2){
    var c = null
    // Iterate through image
    for( var x = 0; x < img.nx; x++){
        for( var y = 0; y < img.ny; y++){
            // Initialize proportionality constant
            if (c == null && img1.getPixel(x,y) != 0 && img2.getPixel(x,y) != 0){
                   c = img1.getPixel(x,y) / img2.getPixel(x,y);
            }
            // If only one is 0, not proportional
            if ((img1.getPixel(x,y) == 0) ^ (img2.getPixel(x,y) == 0)){
                return false;
            }
            // Check proportionality constant, if both are not 0
            if (img2.getPixel(x,y) != 0){
                if (img1.getPixel(x,y)/img2.getPixel(x,y) != c){
                    return false;
                }
            }
        }
    }
    return true;
}

I recently discovered console.table() and I think it could help us with either displaying matrices (substitute for the current visualize) or comparing results to correct ones.