using python and 3d image

Hi,
I install all using python (3.10)
The widget launch, I select the image (tiff ) 3d,
then :
Downloading file 'vit_b_lm' from 'https://zenodo.org/records/10524791/files/vit_b_lm.pth?download=1' to 'C:\Users\m197816\AppData\Local\micro_sam\micro_sam\Cache\models'.
Precompute Image Embeddings: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 27/27 [02:14<00:00,  4.97s/it]
Traceback (most recent call last):
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\window.py", line 14, in <module>
    from napari._qt import Window
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\_qt\__init__.py", line 77, in <module>
    from napari._qt.qt_event_loop import get_app, gui_qt, quit_app, run
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\_qt\qt_event_loop.py", line 15, in <module>
    from napari._qt.dialogs.qt_notification import NapariQtNotification
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\_qt\dialogs\qt_notification.py", line 29, in <module>
    from napari._qt.qt_resources import QColoredSVGIcon
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\_qt\qt_resources\__init__.py", line 4, in <module>
    from napari._qt.qt_resources._svg import QColoredSVGIcon
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\_qt\qt_resources\_svg.py", line 8, in <module>
    from qtpy.QtSvg import QSvgRenderer
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\qtpy\QtSvg.py", line 13, in <module>
    from PyQt5.QtSvg import *
ImportError: DLL load failed while importing QtSvg: The specified procedure could not be found.

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

Traceback (most recent call last):
  File "C:\Users\m197816\.conda\envs\ucrosam38\Scripts\micro_sam.annotator-script.py", line 9, in <module>
    sys.exit(main())
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\micro_sam\sam_annotator\annotator.py", line 506, in main
    annotator()
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\micro_sam\sam_annotator\annotator.py", line 492, in annotator
    annotator_3d(show_embeddings=False, **config_dict["args"])
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\micro_sam\sam_annotator\annotator_3d.py", line 302, in annotator_3d
    v.window.add_dock_widget(prompt_widget)
  File "C:\Users\m197816\.conda\envs\ucrosam38\lib\site-packages\napari\window.py", line 27, in __getattr__
    raise type(err)(
ImportError: An error occured when importing Qt dependencies.  Cannot show napari window.  See cause above

I remove and reinstalled pyqt but still ... same error .
Any ideas how to solve the problem ?
Thanks,

This looks like some windows issue loading the DLLs.
I had a quick look at a related stack overflow: https://stackoverflow.com/questions/42863505/dll-load-failed-when-importing-pyqt5.
From browsing through this:

the easiest solution might be to just reboot your machine.
if that does not work: can you activate the conda environment and try to just start napari? Just type napari in the console and hit enter. Does that open the napari gui, or does it also throw an error?

Napari runs when I launched it but the plugin is only available for embeddings (and cache), the dock widgets are not available.
I will reboot in a sec and let you know,
thanks a lot,

I would suggest to use the dev branch instead: https://github.com/computational-cell-analytics/micro-sam/tree/dev
(Just switch to the branch where you cloned the git repo)
Then the plugins will be available in napari. (We will also release this version soon, but we need to document a bit more before this.)

Ok great !
Super helpful :) , looking to use it a lot, especially for 3d nucleus, annotations are a pain  and take forever using Labkit ...
My 3d model is pretty good working to make a refined model, hence the idea to run inferences using my model then using your plugin for refinements, then training a refined model (if metrics are good) .
That will save me a lotttttttttttttttttttttttttttttttttttttt of time :)
thanks
antho

Error is gone :)
But using the point_prompts in 3d the automatic segmentation doesnt give any outputs ?
I did add positive/negative prompts click on auto segment , no output ..?
Using a tiff file, am I doing something wrong ?
Thanks

Thinking, do images needs any pre -filters ? something to normalize the images or else ?
I have the same using a 2d image ... (DAPI staining) ?
Thanks

I've always had better results with the box prompts, than the point prompts. Maybe you could try that?

Ok thanks,
I tried the automatic without any prompts as in the video :
"You either haven't provided any prompts or invalid prompts. The segmentation will be skipped."
Trying with some points now,
thanks

Seems ok in 3D, but the masks diffuse too much on the out of focus (mask are getting larger toward the end / beginning),
Once i found out how to reduce the diffusion , then it will be useful :).

Ok, thanks for the feedback! Will follow up on this next week. (We have seen this issue to, it should be possible to fix it by updating some parameters, will share details as soon as I can).

Does the automatic segmentation is available in 3D or not yet ?
Or I need to do one by one ?

It's implemented, but there are different versions of this and not everything is fully tested. I will follow up next week.

Thanks, looking for the update :)
Enjoy your time off :D ,
great support !
antho


Remove Uppercase conversion

I just realised that some BBC BASIC programs rely on lowercase letters for variable definitions.
This means forcing uppercase is no longer valid. The 'ConvertToUppercase' routine needs to be removed.

Incorporated into the v1.0 branch. It seems to make garbled nonsense on the LCD, so I'll hold off on pushing to the main branch for now.

Ok it turns out you can use all uppercase just fine. Closing this for now.


deploy(helm): fix nodeplugin security context referencing controllerplugin config

nodeplugin security context was incorrectly pulling from the controllerplugin config, this PR corrects the typo in the nodeplugin daemonset template.

Merging without review given that this is a small change of an obvious typo and I want to release an rc of this so I can carry on with the selinux work that this issue is blocking.
fyi: @rochaporto, @strigazi


conductor: remove GossipNetwork from Driver

see discussion here: https://github.com/astriaorg/astria/pull/106#discussion_r1234511611
these may also be relevant:

addition of Exclusive to sync: https://github.com/rust-lang/rust/pull/97629
rust internals discussion: https://internals.rust-lang.org/t/what-shall-sync-mean-across-an-await/12020

With #325 deciding not to implement gossipnet, this is no longer necessary. The new work to connect to sequencer should likely be done outside of Driver.


Add report feature

Signed-off-by: ArisZZZ<EMAIL_ADDRESS>Add report feature
The ideal effect is shown in figure

@ArisZZZ any update abount this PR?


Bug: Linking error due to one or more multiply defined symbols found for wxueImage() function

Description:

I have a solution where two distinct wxUiEditor projects are involved, even though I don't think two distinct projects matter.
Anyway, these two projects generate the function wxImage wxueImage(const unsigned char* data, size_t size_data) into two different cpp files.
This leads in a linking error ...

In my opinion the function wxueImage should be generated using the class name as its prefix; in my case:
wxImage wxhKeyDialogDesigner_wxueImage(const unsigned char* data, size_t size_data)
wxImage CKeyboardDesigner_wxueImage(const unsigned char* data, size_t size_data)
or as it was before, the function should be created as an inline member
inline wxImage wxueImage(const unsigned char* data, size_t size_data)

Unfortunately, using the inline keyword on a function requires a C++17 compiler. At one point I added a compiler_standard project property (PR #661) which then closed #657 which is essentially the same problem you are reporting. This resulted in non-compilable code for the standard gcc compiler that comes with Ubuntu 20.04 as well as the standard gcc compiler that comes with WSL2 on Windows 11. That resulted in issue #1285 closed by PR #1298 which removed the inline keyword.
The partial solution would be to re-enable the compiler version property, and if C++17 is enabled, the inline keyword would be used. The default would be C++11 since the inline isn't needed if there is only one project (for wxFormBuilder, this would mean importing all the projects into a single wxUiEditor project).
Unless C++17 was required, this solution still doesn't solve the problem for repositories like KiCad where even combining wxFormBuilder projects would still result in multiple wxUiEditor projects in multiple directories. Duplicate functions and duplicate data strings could still be created when the generated code from multiple wxUiEditor projects is compiled and linked into a single executable.
Ideally, wxUiEditor would know whether a single or multiple project's is going to used for a single executable. For a single project, that works today, with wxUiEditor itself being a good example (roughly 200 bitmaps, most which are used in more than one form). For multiple projects, the inline keyword would be a partial solution, and either class members or a static keyword (for both functions and bitmap data strings) used if C++17 isn't available.

Well, I understand ... but now I can't compile my projects because of an elementary issue.
I can't avoid to share code among different executables, no one could achieve it.

The partial solution would be to re-enable the compiler version property, and if C++17 ...
Why don't you create wxueImage() function with a prefix using the class name where the function is used.
Or in my opinion, you should avoid to mix C style functions in object orientred code ... another chance is to create wxueImage() as private member of the class wxUiEditor is going to create.
These two option could solve forever this issue without involving neither C++ standard nor compiler.

Ideally, wxUiEditor would know whether a single or multiple project's is going to used for a single executable ...
Excuse me but it exist the shared code, often contained in custom libraries shared among different executables.
In this case how could wxUiEditor recognize the presence of multiple projects in the same solution; following this aim the problem won't be solved.

Am I correct in assuming that for your projects, you are using a C++17 compliant compiler? If so, I'll add the inline keyword right away -- for older compilers, I want to think more about potential solutions that don't end up bloating the executable with duplicate images and functions.

Thank you @KeyWorksRW
Yes, I've been using inline since the C++11 standard.
Nowadays still C++11 is the standard used for my applications I build with GCC
Only for MSW executables, I build applications using C++14 standard.
GCC

Visual Studio

... please during your considerations, I pray you to keep in mind the opportunity, largely used by programmers, to create shared code among executables.
Because this is the main reason your actual vision, regarding the use of wxueImage() function, fails.
If I were you, I'd keep the suggestions I gave you above, or I'd try to create options to keep the user free to decide.

... I want to think more about potential solutions that don't end up bloating the executable with duplicate images and functions.

The suggestions I gave you won't' duplicate images, but only the functions to generate them.
I can't imagine any other chance to permit shared code ...

Simply removing inline to avoid older compiler problems was a significant mistake on my part, and I'm sorry I ended up breaking your compiles -- and quite probably anybody else that doesn't use a single project. 😢
I want to provide a solution that solves your current scenarios while at the same time automatically supporting the updated functionality of the inline keyword in C++17 (potentially reducing executable size). I do not want to require you to have to use wxUiEditor to regenerate the files if the compiler changes.
The solution for the functions is to generate the following in every translation unit that calls the function:
#ifdef __cpp_inline_variables
inline wxImage wxueImage(const unsigned char* data, size_t size_data)
#else
static wxImage wxueImage(const unsigned char* data, size_t size_data)
#endif
{
    // body of function
}

For C++14 and earlier, that means every module with this will have a unique copy of the function added to the executable. For C++17 and later, the linker will create a single function that all modules will call.
For the images themselves, the same applies, but now the defintion has to appear before it is used, so it will be at the top of the file instead of at the end of the file. The generated code will look like this:
namespace wxue_img
{
#ifdef __cpp_inline_variables
    inline const unsigned char normal_png[508] {
#else
    static const unsigned char normal_png[508] {
#endif

    // data goes here
    };
}

Like functions, if the same image is used in different classes, the data gets duplicated in the executable for C++14 and earlier. For C++17 and later, the linker will create a single copy of the data.
The unfortunate part of this is having that array of numbers at the top of the source file. It's not bad for dialogs, but for something like a ribbon panel like what wxUiEditor uses, that means dozens of image definitions to scroll through before you get to the actual function.
This will not be the case for the Image List node. The main purpose of that file is to place most if not all of your images in a single source file, which means that neither the functions or the image data can be defined as static, though it would be fine to define them as inline. That means you could only combine multiple projects with multiple image lists unless you either use a C++17 compliant compiler or you only place unique uses of an image in one of the Image List files.

Thank you @Randalphwa and please no worries.
I had only to modify manually the generated source code, in the meanwhile you can implement whatever you think would be useful; regarding the C++ standard, as I see it, it is not a problem for us to use the C++17 standard.
Perhaps even images definition couldn't be a big deal as nowadays IDE tools permit to fold code within a namespace.
What it is really important is to find a solution based on which you can implement your vision of things without breaking the "real world", which needs flexibility.
I would like to suggest a different style for the generated code you shared ...
#ifdef __cpp_inline_variables
    #define WXUE_FNC_ATTRIBUTE inline
    #define WXUE_IMG_ATTRIBUTE inline const
#else
    #define WXUE_FNC_ATTRIBUTE static
    #define WXUE_IMG_ATTRIBUTE static const
#endif

WXUE_FNC_ATTRIBUTE wxImage wxueImage(const unsigned char* data, size_t size_data)
{
    // body of function
}

namespace wxue_img
{
    WXUE_IMG_ATTRIBUTE unsigned char normal_png[508]
    {

    // data goes here
    };
}

I build the wxWidgets library using the C++17 standard since wxWidgets 3.3 supports std::string_view if using C++17. For all of my own code including wxUiEditor, I require a C++20 compiler. Because I'm writing public facing code that anyone can read, I want to make the code as readable as possible, and I find that C++20 gives me the most options for writing concise code which might work the same as code written for older compilers, but is easier to read/understand. Or at least it is for someone familiar with C++20. I do have to be a bit careful -- I've already had one person who couldn't compile wxUiEditor because they are using a slightly older version of MSVC that had a bug that couldn't compile something I was using because that version of MSVC wasn't fully C++20 compliant. I'd also dearly love to use std::Format() -- but that requires gcc12 and a version of MSVC that is fully C++20 compliant.
Duplication of data or functions has been a problem for decades. For example, every time you #include a *.xpm file you are creating a unique copy of that data. Include it in more than one source file, and you get duplicates. The conflict is avoided because the data string is declared static. The change to the inline keyword was done to provide an exception to the "one definition rule" allowing you to include the same data and code into multiple source files while still only having a single version in the executable. My understanding is that the only way to avoid duplication prior to C++17 was to use global functions/data. The Image List in wxUiEditor essentially does that by moving all the functions and potentially all of the data into globals that any module can access by include the image file's header. However, that's useless if you are sharing generated code between different projects.
On Tuesday, December 5th, 2023 at 5:14 AM, KeyWorksRW @.***> wrote:

Am I correct in assuming that for your projects, you are using a C++17 compliant compiler? If so, I'll add the inline keyword right away -- for older compilers, I want to think more about potential solutions that don't end up bloating the executable with duplicate images and functions.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

That's a really good idea for using the #defines to eliminate the conditionals -- thanks!

There's a lot of code changes involved with this issue. I'm outlining the underlying assumptions here that the changes are revolving around:

At code generation time wxUE does not know what compiler is being used -- compiler conditionals are used instead (via conditional macros). That means no compiler property (previously added, then removed).
Each generated file needs to be self-contained unless there is an Images List file which contains one or more images that the generated file needs to reference.
If C++17 is available, functions and image data will be marked as inline to prevent duplication if they are used elsewhere.
If the compiler is C++11 or C++14 then wxueImage(), wxueBundleSVG() and wxueAnimation() will be marked as static and added to every generated file that needs them (including the Images List file).
The wxue_img::bundle...() functions in the Images List file will not be marked as static or inline. These functions are in a namespace and are considered global -- any class include the Images List header file will be able to use these functions irregardless of what compiler is being used.

If an image is added to the Images List file, then any class that uses that image will #include the Images List file and access the image via the wxue_img::bundle...() functions. Classes that need to be completely self contained should not place any images that they need to access in an Images List file. Creating an Images List assumes you want multiple classes within a project to use it (or you simply want all the images to be generated in a different file).
In terms of code changes, the following have either been made or are planned to be made:

image location will no longer be tracked -- images will be duplicated rather than being referenced from a different class. The unfortunate side effect is that now all projects compiled with C++11 or C++14 will potentially have duplicate functions and image data in their executable. Previously, this did not happen, but the generated files were not interchangeable between C++ projects, and it assumed a single wxUE project per C++ project. Compiling with C++17 will prevent the duplication.
Images defined in a source file will now appear at the top rather than the bottom of the file. That's required for the images to be declared as static. For any class with a toolbar or ribbon bar, this now means a lot of data to scroll through to get to where the class is actually created.
Now that tracking where an image is going to be generated is no longer used to avoid duplication, updating the Image List to support auto_add and collect_all properties should be fairly straightforard to finish implementing. When using a single wxUE project for a C++ project, this will effectively make the source files look the same as they are before these changes.
While you still can place an animation file into an Images List, the wxueAnimation() function will only be used in the file with the animation control.

So the problem I ran into today is that this breaks one of my side projects, because I can no longer access either the bitmap or the function. C++17 doesn't help because you have to define the entire data array in the source file where you are using it. I can't do that in a non-generated file, because if the artwork ever changed, the copy of the generated data array would be wrong. For this project, I can make the data arrays in the Image List file non-static and they'll work fine. But for a user that didn't create an Image List file, derived classes can no longer access the data array in the generated class. So effectively, by making these data arrays static or inline, no user-created code can safely access them because you can no longer use an extern to reference them. It also means that if I drop in the planned changes, it will potentially break existing code that worked fine before the change (which I've now experienced myself).

Kind @Randalphwa ... check mate!
This is a case where things must happen to understand the way must be taken :)
Let me express my opinion, for what it worth, it's only an opinion and unfortunately no one else is participating at this discussion, but ...
I think the approach regarding resources in general, actually only images, is a bit wrong concerning the used programming style.
Mainly for the following reasons, as I see it:
1st) which is the minor ...
Why should I define an image in a class called CMyDialog1 and then use it in another class completely different called CMyFram2; I'm forcing the programmer to write a bad engineered code because I'm using CMyDialog1 as it was a resource dispenser globally visible, but it's only a kind of workaround to share resources.
2nd) which is indeed a bit dangerous
Generally speaking, mixing C style code in Object Oriented language is a bad habit, it can work of course, but it's a signal I'm doing something wrong.
Indeed I could solve my aim using a global object with static members instead of using functions defined everywhere which no one knows where they are defined; for what I learned using C++, when I feel like to use extern it's the signal I have to stop and start thinking something different.
The more the C++ standard will increase the more we should forget such habits I think.
Other case is when it is necessary to port an old code to a new one written with modern tools, but it is not your case.
The "list file" is something which is close to that scenario, perhaps it is not the final solution ...
3rd) which is a bit incomprehensible to me
you want to create a RAD tool which creates as few files as you can.
OK a certainly approach based on which I could try to reduce such file could be good, but it could become a sort of cage.
For example what it's wrong with an object containing all projects' resources shared among classes for each wxUE projects.
You are doing a great job with wxUiEditor, stop for a while thinking how to handle resources using an Object Oriented style instead of insisting with functions defined randomly within the code.
For sure it will potentially break existing code, but the benefit for the future would be great, in my opinion, and users will be able to understand it and they will modify their code.
For sure, you can't wait for years, but it should be something to be known for users, and your priority for the next weeks.
Regarding the existing code, you could leave things at they are, cimply using an option based on wich the user is free to generete code with inline functions or not, otherwise with the current development version no one is able to share code among projects as you know, and it is no acceptable at all

The Image List file uses a namespace rather than a class, but essentially does the same thing -- with the exception of wxueImage() and wxueBundleSVG(), all functions and images within it are in the wxue_img namespace and it can be shared with any other class. In fact for wxWidgets 3.2, you don't even need those two functions -- you can just use the wxue_img::bundle...() functions for all SVG and bitmap images (PNG, JPEG, TIFF, etc.).
Using the Image List eliminates the problem with your 1) and 2) paragraph above -- if your dialog's images are placed into the Image List, then they become an external resource shared with any other form that needs them. For wxWidgets 3.2, you don't even need to know whether you are dealing with a single image or multiple images bundled together, and you don't need to know the size of the image data arrays. You simply call wxue_img::bundle...() and it returns a wxBitmapBundle and the caller doesn't need to know anything about the image data. If the image changes, only the Image List needs to be updated. There's only one module that contains the image data and the functions needed to access them. wxUiEditor forces that node to be at the top of your project to make it easy to preview the images as well as information about them.
There are extern statements in the Image List header file, but that's only for wxWidgets 3.1 users or for cases where a dev stores the image data in the Image List but isn't going to use it as a wxBitmapBundle. Typically this if for GIF files which might be used for wxAnimation, but they could also be used in a wxImage or wxBitmap. An ICO file is probably going to be used for wxIcon, but it could just as easily be used as a wxBitmap.
It's currently disabled, but there is code in place so that when you first create an Image List for a project, it asks if you want to move all of your images into the Image List. After that, any time you add an image to any form in your project, it is automatically added to the Image List file, and code generation will call a function in the wxue_img namespace to retrieve the wxBitmapBundle or wxImage. Neither the image data or the function definition will be in your form's class, nor will there by any image extern statements in your form's header file. There will be extern statements in the source file, but those are only there in case you need to access the image data directly (or you just want to know what images are being used by that form).
Short term I'm going to toss all the code I wrote this week (😱) and start over with a focus on fixing the problems with the function conflicts for projects not using an Image List, and changing the two functions in the Image List so that they are part of the wxue_img namespace. Until the alternate_name image property is finished, I can't really avoid image conflicts if you try to use the same image in two different wxUiEditor projects. If I make it static, it can break existing code -- same reason I can't make the data arrays in the Image List static. With alternate_name you could add the class name as a prefix to ensure the image name is unique (at the cost of duplicating the data array in the executable which is what happens now in all the other wxWidgets RAD tools).
Just as a note, the Image List is essentially a global resource as we've discussed a bit in #1269 -- though it doesn't yet do as much as you've suggested. It still needs a bunch of work which is why finding it is still a bit obscure (I'd be willing to bet that very few people even know it exists 😄 ).

The Image List file uses a namespace rather than a class, but essentially does the same thing

... you just don't like a single class :)
It would be very useful to keep away from troubles and for implementing future features.
This is my idea, in short ...
Instead of  wxBitmapBundle bundle_mybitmap_png(); a user should have something who permits to call
wxUeResources::GetBitmap("mybitmap");
wxUeResources::GetImage("mybitmap");
wxUeResources::GetBundle("mybitmap1", "mybitmap2", "mybitmap3", "mybitmap4", "mybitmap5", .... );
wxUeResources::GetBitmapFromSVG("mysvg", wxSize(48, 48));   ( in this case, with the opportunity to specify a size )
....
wxUeResources::Getxxxxxxxx("resource_name");
where xxxxxxxx is whatever you will be able to add as resource in the neasr future.
All resources, divided by kind of resource, images, SVG, sounds, etc ... are contained in different lists of same kind objects, reachable using their names.

It's currently disabled, but there is code in place so that when you first create an Image List for a project

I think it's time to restore that function :)

... I can't really avoid image conflicts if you try to use the same image ...

As I see it, it is up to the user avoid it

With alternate_name you could add the class name as a prefix to ensure the image name is unique (at the cost of duplicating the data array in the executable which is what happens now in all the other wxWidgets RAD tools).

It is not a big deal to me, indeed a nice opportunity for those who need it.

Just as a note, the Image List is essentially a global resource as we've discussed ...

Yes, but now it is detached by its potential consumers within the wxUE project, that's why probably it is not well known or used.

... you just don't like a single class :)

I expect a class to contain an object, not just a bunch of variables and functions. In this case the class would have no constructor or destructor since there is no object to create/destroy/modify/access. To me, creating a class that has no object is confusing for someone reading the code. Using a namespace makes it clear that it's just to avoid name conflicts. I.e., having a class wxUeResources would imply that you can create an instance of it via wxUeResources my_resources; which would definitely not be the case, again because there is no object to create.

wxUeResources::GetBundle("mybitmap1" "mybitmap2", "mybitmap3", "mybitmap4", "mybitmap5", .... );

That won't work. You have to specify the variable name, not the string name and you have to specify the size of the array. The function declaration would actually be:
wxBitmapBundle wxUeResources::GetBundle(const unsigned char* mybitmap1, size_t size_mybitmap1, const unsigned char* mybitmap2 = nullptr, size_t size_mybitmap2 = 0, const unsigned char* mybitmap3 = nullptr, size_t size_mybitmap3 = 0, const unsigned char* mybitmap4 = nullptr, size_t size_mybitmap4 = 0, const unsigned char* mybitmap5 = nullptr, size_t size_mybitmap5  = 0);
Versus the current:
wxBitmapBundle wxue_img::bundle_mybitmap1();
Granted the shorter form assumes you are following either of the two wxWidgets naming conventions for multi-dpi images.

Yes, but now it is detached by its potential consumers within the wxUE project

On the long-term list of things to look into is adding the ability to link an Image List as well as forms to a different wxUE project, sort of like the way sub modules work in github. You could then choose to generate your own copy of the code, or just assume you already have it to link to. You could potentially modify it (ala sub-modules style) after you confirmed multiple times that you are sure, really sure, and absolutely positively certain that you want to modify that external project. 😁

Adding the PR comments that changes this below. I'm leaving the issue open for now, since wxWidgets 3.1 code generation around images is still broken, and further testing is needed before I move the PR into the 1.2 branch for the next release. It should be in the 12/10 daily build. Use at your own risk...
This PR changes how the Image List file is generated, and how images are loaded with or without the existence of an Image File.
No Images List file
wxueImage() and wxueBundleSVG() will be generated in any file that needs them whether or not that file actually contains the image data array. A conditional is now used to mark the functions as inline if compiling under C++17 or later, or static if compiling under C++14 or earlier. For C++17, only one copy of the function will be linked into the executable, and for older compilers that static will prevent name conflicts, though it does mean the function body will be added multiple times to the executable.
Each image data array is still unique to the project, and where it gets defined still depends on the order of the forms in the project. Each form's generated source file will have externs declared for any image that is needed. These are no longer generated in the header file, since the file containing the image definition could change any time the user changes form position.
Images List file
The wxueImage() and wxueBundleSVG() functions have been removed from this file. In their place are get_image() and get_bundle_svg() which are within the wxue_img namespace. Normally, these will not be used by a dev, since there are both bundle_...() and image_...() functions for loading any image added to the list that can be loaded into a wxBitmapBundle or wxImage.
By default, the header file only contains the namespace and all of the available functions. A add_extern property has been added to the Images List node -- and if checked, extern declarations will be added to the header file after all of the function declarations.
wxWidgets 3.1 code generation
This is still broken around images, and this PR probably makes it worse. A second branch is active with 3.1 code generation fixes, and after this PR is merged into it, work will continue on that branch. Chances are, if you mark your project as using wxWidgets 3.1, you will not be able to compile it.


Am I misunderstanding how to capture Leaflet events?

According to the Vue2Leaflet docs:
"Most of our components do not emit events but all the components pass down listeners for leaflets events. It's possible to bind to them by simply writing @leafletEventName"
I'm not seeing that happen with the popup. I checked the Leaflet docs and there is an event that Popups have inherited from Layer called popupclose. Whenever I listen for that event, I don't get any reaction.
Live Demo
https://jsfiddle.net/wishinghand/scpder2x/1/
Steps to Reproduce

Add a popup close event listener to a popup: <l-popup @popupclose="testEvent">
Log to the console in the function
Open a popup, then close it
Notice that any console.logs have not appeared

Expected Results
for @popupclose to emit an event
Actual Results
No event is emitted
Browsers Affected

[ ] Chrome
[ X ] Firefox
[ ] Edge
[ ] Safari 9
[ ] Safari 8
[ ] IE 11

Versions

Leaflet: v1.5.1
Vue: v2.5.22
Vue2Leaflet: v2.2.1

@wishinghand Ehi! I think leaflet docs are not super clear but popupclose is emitted by the map, or the layer where is bound :) not the popup itself!
https://leafletjs.com/reference-1.5.0.html#map-popupclose
here is the fixed fiddle:
https://jsfiddle.net/odymch9s/1/

Ah, I see. I got it working. Thanks!


Above mentioned, thank you !

+1

@ruffiem can you pls close?


Fix pattern for system basic tests

As part of package rename done in #4073 the pattern for system basic tests was incorrectly set to              "org/apache/openwhisk/testEntities/system/basic/** instead of system/basic/**. As the package name for system basic test was not changed this PR reverts the change in pattern there
Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[x] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[x] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Should we instead move the tests?

Not sure if those tests are used downstream or not. So better to keep the current structure for tests

Codecov Report

Merging #4138 into master will decrease coverage by 4.49%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #4138     +/-   ##
=========================================
- Coverage   86.16%   81.66%   -4.5%
=========================================
  Files         151      151
  Lines        7272     7272
  Branches      468      468
=========================================
- Hits         6266     5939    -327
- Misses       1006     1333    +327

Impacted Files
Coverage Δ

...core/database/cosmosdb/RxObservableImplicits.scala
0% <0%> (-100%)
:arrow_down:

...core/database/cosmosdb/CosmosDBArtifactStore.scala
0% <0%> (-95.54%)
:arrow_down:

...sk/core/database/cosmosdb/CosmosDBViewMapper.scala
0% <0%> (-92.6%)
:arrow_down:

...whisk/core/database/cosmosdb/CosmosDBSupport.scala
0% <0%> (-83.34%)
:arrow_down:

...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala
0% <0%> (-62.5%)
:arrow_down:

...in/scala/org/apache/openwhisk/common/Counter.scala
40% <0%> (-20%)
:arrow_down:

...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala
92% <0%> (-4%)
:arrow_down:

...che/openwhisk/core/database/CouchDbRestStore.scala
73.73% <0%> (+0.5%)
:arrow_up:

...enwhisk/core/loadBalancer/InvokerSupervision.scala
96.55% <0%> (+0.68%)
:arrow_up:

...pache/openwhisk/core/invoker/InvokerReactive.scala
82.24% <0%> (+0.93%)
:arrow_up:

... and 4 more

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 a183b3e...11d9bb7. Read the comment docs.


[WIP] Pauli measure instruction

In the spirit of the recently added Pauli gate instruction (#5153), I want to add a Pauli measurement instruction. For example,
circ.pauli_measure([0, 3], [0, 1], 'ZX')

will measure qubit 0 in the X basis and qubit 3 in the standard basis. Such a measurement, when provided as a single instruction, can be optimized in the Aer simulator.
I'm aware that, with #5153, there has been a discussion about the drawback in adding a new instruction to the already long list of instructions, as opposed to adding a circuit to the circuit library, and other alternatives. There is a decision, for now, to nevertheless add a new instruction, because currently the alternatives do not support assembling to qobj. This discussion applies here too.
This work-in-progress PR shows what I've done so far. In order to be able to continue, I would like some guidance. Someone to review the incomplete code and approve that it makes sense, and to answer several questions:

Are there any parts of the code that need to know that the circuit contains a measurement operation? Any requirement for example to update the transpiler about it?
How to test the code?
Should it really be a new instruction, or just add usage to the currently unused parameters of the existing measurement instruction?
If a new instruction: in the PR, I wrote a new class PauliMeasure, which inherits directly from Instruction. Maybe it would be better to inherit from Measure, or to make Measure and PauliMeasure inherit from the same intermediate class.
Location of the new file pauli_measure.py.
I'm not sure about the correctness of _define - if the quantum and classical registers and their indices are handled correctly.

We discussed this before with but put it on hold #4024. The code works though and also takes care of visualizations. If we decide to move forward you can maybe recycle that one.

Going to open a new pull request, based on #4024


bug, IJ1: contours and ROI manager

reported originally outside:

Problem when closing the RoiManager
When uncheck “Add to Roi” SAMJ doesn’t generate a outline of the segmentation

The issue with the latter is that contours are driven through the ROI manager, so if one disables adding new contours into the manager, the new ones don't get displayed... we have to explicitly draw them via IJ1 API (non ROI manager API).

Hello @xulman I already implemented a fast temporal fix (roi manager cannot be unchecked lol).
I think this issue is a little bit deeper and that we need to figure out what behaviour we actually want from the ROI manager, because now it is really not defined.


Search bar for pods / containers in DevSpace UI

First of all: we just started using DevSpace, and are excited to get going and making our DX better :smile:.
Is your feature request related to a problem?
Yes, when you have lots of pods running, you have to use a browser's 'find in page' to look for the right pod / container to select,
Which solution do you suggest?
Would be great to have an interactive search bar below the KubeContext and Namespace select boxes, to search in all running pods and/or containers names by directly filtering on the given search string.
Which alternative solutions exist?
Using the browser's 'find in page' functionality.

/kind feature

@hvt thanks for reporting this issue! Yes, sounds like a good idea, I'll add it to the todo list

@hvt Implemented in v5.0.1


Question: Typeclass to provide a default value for a type?

Problem
Too many times I find myself creating an empty object based on an interface.
Example in typescript
interface User {
  id: string
  firstName: string
  lastName: string
  age: number
}

const initialStateUser: User = {
  id: "0",
  firstName: "roger",
  lastName: "liftman",
  age: 45
}

I mainly need this as a default value in react useState hook like the following
const [user, setUser] = React.useState<User>(initialStateUser)

I can lose type safety using type assertion like
const user: User = {} as User

but honestly I don't want to.
Question
Is there a way to achieve something like GDefault does in purescript?

What about modeling this state with Option<User>? So that it correctly represents the fact that at the beginning of time there's no valid user to work with

Possible? Yes. However, unlike in PureScript, you must pass the instances by hand, see the getStructDefault function (no compiler help here)
import * as R from 'fp-ts/lib/Record'
import { pipe } from 'fp-ts/lib/function'

export interface Default<A> {
  readonly def: A
}

export const defaultString: Default<string> = {
  def: ''
}

export const defaultNumber: Default<number> = {
  def: 0
}

export function getStructDefault<A>(defaults: { [K in keyof A]: Default<A[K]> }): Default<A> {
  return {
    def: pipe(
      defaults as Record<string, Default<any>>,
      R.map((d) => d.def)
    ) as any
  }
}

interface User {
  id: string
  firstName: string
  lastName: string
  age: number
}

const defaultUser = getStructDefault<User>({
  id: defaultString,
  firstName: defaultString,
  lastName: defaultString,
  age: defaultNumber
})

const initialStateUser = defaultUser.def

It makes sense to me, sadly typescript lack of a bit of magic like purescript or haskell. That said I think I'll create a default value for every type in js, then I'll expose something like that
export const def = {
  type: getStructDefault,
  string: defaultString,
  number: defaultNumber,
  boolean: defaultBoolean,
  object: defaultObject
}

and then
const User = def.type<User>({
  id: def.string,
  firstName: def.string,
  lastName: def.string,
  age: def.number
})

Anyway thank you!

I'd go for Option or the empty of the Monoid, depends on the situation.


Spoolman wont run, at all

Have tried installing "normally", in Docker, and the integration to Mainsail.
Only Docker version would run, but screwed up other features.
When attempting to start it says:
./start.sh
Starting Spoolman...
[FileNotFoundError]: [Errno 2] No such file or directory:
'/home/biqu/spoolman/.venv/bin/uvicorn'
Add '-v' to see the detailed traceback
But the file is there... Do i need to chmod it or...?
Also, in the initial step after "pdm sync --prod", i get:
Cloning into 'Spoolman'...
remote: Enumerating objects: 3769, done.
remote: Counting objects: 100% (991/991), done.
remote: Compressing objects: 100% (287/287), done.
remote: Total 3769 (delta 684), reused 860 (delta 649), pack-reused 2778
Receiving objects: 100% (3769/3769), 1.15 MiB | 2.33 MiB/s, done.
Resolving deltas: 100% (2517/2517), done.
created virtual environment CPython3.9.2.final.0-64 in 1265ms
creator CPython3Posix(dest=/home/biqu/spoolman-env, clear=False, no_vcs_ignore                                          =False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle                                          , via=copy, app_data_dir=/home/biqu/.local/share/virtualenv)
added seed packages: Mako==1.2.4, MarkupSafe==2.1.3, PyMySQL==1.1.0, Pygment                                          s==2.16.1, SQLAlchemy==2.0.20, aiomysql==0.2.0, aiosqlite==0.19.0, alembic==1.11                                          .3, anyio==3.7.1, asyncpg==0.28.0, blinker==1.6.3, cachecontrol==0.13.1, certifi                                          ==2023.7.22, charset_normalizer==3.3.1, click==8.1.7, distlib==0.3.7, exceptiong                                          roup==1.1.3, fastapi==0.103.0, filelock==3.13.0, findpython==0.4.0, greenlet==2.                                          0.2, h11==0.14.0, httptools==0.6.0, idna==3.4, importlib_metadata==6.8.0, instal                                          ler==0.7.0, markdown_it_py==3.0.0, mdurl==0.1.2, msgpack==1.0.7, packaging==23.2                                          , pdm==2.10.0, pip==20.3.4, pip==23.3.1, pkg_resources==0.0.0, platformdirs==3.1                                          0.0, psycopg2_binary==2.9.7, pydantic==1.10.12, pyproject_hooks==1.0.0, python_d                                          otenv==1.0.0, requests==2.31.0, requests_toolbelt==1.0.0, resolvelib==1.0.1, ric                                          h==13.6.0, scheduler==0.8.4, setuptools==44.1.1, setuptools==68.1.2, shellingham                                          ==1.5.4, sniffio==1.3.0, spoolman==0.13.1+editable, sqlalchemy_cockroachdb==2.0.                                          1, starlette==0.27.0, tomli==2.0.1, tomlkit==0.12.1, typeguard==4.0.0, typing_ex                                          tensions==4.6.3, unearth==0.12.1, urllib3==2.0.7, uvicorn==0.22.0, uvloop==0.17.                                          0, virtualenv==20.24.6, websockets==11.0.3, wheel==0.34.2, zipp==3.16.2
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,Pyt                                          honActivator,XonshActivator
fatal: not a git repository (or any of the parent directories): .git
Requirement already satisfied: pip in /home/biqu/spoolman-env/l

What distro are you running?

Looks like PDM is using virtualenv instead of venv like I expect it to. I haven't made the script support virtualenv so that could be the reason.
Please redo the standalone install instructions, first removing your existing Spoolman. Before you run the install_debian.sh script though, first run pdm config venv.backend venv, make sure it succeeds, then run in the install_debian.sh script.

Seems like it still does it?

Installs like this, but no luck in accessing client, and Mainsail is stuck on Initializing:
biqu@BTT-CB1:~$ pdm config venv.backend venv
biqu@BTT-CB1:~$ cd Spoolman-0.13.1/
biqu@BTT-CB1:~/Spoolman-0.13.1$ bash ./scripts/install_debian.sh
Python 3.9 or later is installed (Current version: 3.9.2)
Updating pip...
Installing Spoolman backend and its dependencies using PDM...
python.use_venv is on, creating a virtualenv for this project...

Downloading Spoolman web client v0.13.1...
.env file not found. Creating it...
Do you want to install Spoolman as a systemd service? This will automatically start Spoolman when your server starts. (y/n)
y
Spoolman systemd service has been installed and Spoolman is now starting.
Spoolman will soon be reachable at http://:7912
You can start/restart/stop the service by running e.g. 'systemctl --user stop Spoolman'
You can disable the service from starting automatically by running 'systemctl --user disable Spoolman'
You can view the Spoolman logs by running 'journalctl --user -u Spoolman'
Spoolman has been installed successfully!
If you want to connect to an external database, you can edit the .env file and restart the service.

That's great, what does it say if you run
systemctl --user status Spoolman
?

biqu@BTT-CB1:~$ systemctl --user status Spoolman
● Spoolman.service - Spoolman
Loaded: loaded (/home/biqu/.config/systemd/user/Spoolman.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2023-10-31 07:08:50 UTC; 47s ago
Process: 2027 ExecStart=/home/biqu/Spoolman-0.13.1/scripts/start.sh (code=exited, status=203/EXEC)
Main PID: 2027 (code=exited, status=203/EXEC)
CPU: 3ms
Oct 31 07:08:50 BTT-CB1 systemd[1894]: Spoolman.service: Scheduled restart job, restart counter is at 5.
Oct 31 07:08:50 BTT-CB1 systemd[1894]: Stopped Spoolman.
Oct 31 07:08:50 BTT-CB1 systemd[1894]: Spoolman.service: Start request repeated too quickly.
Oct 31 07:08:50 BTT-CB1 systemd[1894]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 07:08:50 BTT-CB1 systemd[1894]: Failed to start Spoolman.

biqu@BTT-CB1:~$ journalctl --user -u Spoolman
-- Journal begins at Tue 2023-10-31 06:53:11 UTC, ends at Tue 2023-10-31 07:10:39 UTC. --
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 06:54:10 BTT-CB1 systemd[1232]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1232]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 1.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 06:54:10 BTT-CB1 systemd[1296]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1296]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 2.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 06:54:10 BTT-CB1 systemd[1352]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1352]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 06:54:10 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 3.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 06:54:11 BTT-CB1 systemd[1357]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:11 BTT-CB1 systemd[1357]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 4.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 06:54:11 BTT-CB1 systemd[1361]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:11 BTT-CB1 systemd[1361]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman/scripts/start.sh: No such file or directory
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 06:54:11 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:12 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 5.
Oct 31 06:54:12 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 06:54:12 BTT-CB1 systemd[1195]: Spoolman.service: Start request repeated too quickly.
Oct 31 06:54:12 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 06:54:12 BTT-CB1 systemd[1195]: Failed to start Spoolman.
Oct 31 07:02:46 BTT-CB1 systemd[3510]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman-0.13.1/scripts/start.sh: Permission denied
Oct 31 07:02:46 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 07:02:46 BTT-CB1 systemd[3510]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman-0.13.1/scripts/start.sh: Permission denied
Oct 31 07:02:46 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 07:02:46 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 1.
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Stopped Spoolman.
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Started Spoolman.
Oct 31 07:02:47 BTT-CB1 systemd[3512]: Spoolman.service: Failed to locate executable /home/biqu/Spoolman-0.13.1/scripts/start.sh: Permission denied
Oct 31 07:02:47 BTT-CB1 systemd[3512]: Spoolman.service: Failed at step EXEC spawning /home/biqu/Spoolman-0.13.1/scripts/start.sh: Permission denied
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Spoolman.service: Main process exited, code=exited, status=203/EXEC
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Spoolman.service: Failed with result 'exit-code'.
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Spoolman.service: Scheduled restart job, restart counter is at 2.
Oct 31 07:02:47 BTT-CB1 systemd[1195]: Stopped Spoolman.

Ok, looks like the start script doesn't have proper permissions.
Run chmod +x start.sh when you have cd into the scripts dir.

IT WORKS!!!!!
Thank you sooo much for quick assistance.
Can't wait to get started.
Will make sure to sponsor your hard work.

Nice, no problem :)


Sync XMLHttpRequest deprecated

[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/. in external.js:151
🙂

See https://github.com/janschoepke/reveal_external#async
Tanks!


SGDW optimizer

What is the paper refenrence for sgdw?

@hiyyg just the old decoupled decay paper that covered AdamW https://arxiv.org/abs/1711.05101
Been running some weight decay experiment runs on the side and seems sgdw cam be worthwhile...


tmodloader: add desktop item

Simple change, adds a desktop item for tModLoader, which I forgot to do last time.
Was hoping to also get rid of steam-run, but even with necessary dependencies added the logger fails to initialize outside a FHS env despite placing the logs in the runtime directory.
Tested build, haven't tested if desktop item works.

Please test the desktop item when you got the time.

How?

Override the nix-gaming input in your flake, add tmodloader to the list of packages, rebuild, try searching it in your app launcher.


fix: MD037/no-space-in-emphasis

Spaces inside emphasis markers

Docs Build status updates of commit c690250:
:clock10: Full build: the average full build time is 8 min(s) 57 sec(s), this is based on the last 8 build(s) for this repository.
:warning: This is a FULL build due to a recent Docs Build service upgrade, normally no action is required on your part. In the result you find subsequent builds still performing full builds, please contact your repository admin to manually perform a full build on the 'master' branch. For more detailed info, please click here.

Docs Build status updates of commit c690250:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

biztalk/core/walkthrough-flat-file-disassembly-using-a-header-and-trailer.md
:white_check_mark:Succeeded
View

biztalk/esb-toolkit/install-and-configure-the-microsoft-biztalk-esb-toolkit.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Use robot configuration

Use the robot configuration to setup the sensors

The commit 3c78c33297896856c2452f67b4c247682425483b fixed this issue. The robot configuration will now be used to add the robot sensors (color/ultrasonic/touch-sensor) which have a similar layout to Open Roberta Lab.


Core Admin Dashboard Permissions

In gitlab by @CalumTowers on Jul 31, 2016, 17:02
The permission that allows people to use the "more info" links on the dashboard does not work. Allocating the permission still results in a 401 error.

In gitlab by @CalumTowers on Aug 1, 2016, 16:14
https://core.vatsim-uk.co.uk/adm/mship/account/all
https://core.vatsim-uk.co.uk/adm/mship/account/active
https://core.vatsim-uk.co.uk/adm/mship/account/division
https://core.vatsim-uk.co.uk/adm/mship/account/nondivision

In gitlab by @A-Lawrence on Aug 1, 2016, 16:22
Status changed to closed by commit 2a1b552dff964ab89569105ec82a71f17cf53f8b

In gitlab by @A-Lawrence on Aug 1, 2016, 16:22
mentioned in commit 2a1b552dff964ab89569105ec82a71f17cf53f8b


Positional parameter cannot be found error for OriginalName with spaces when using -Verbose

While doing the tutorial with azcmagent from the documentation, I ran into the issue that when one of the generated cmdlets was executed with the -Verbose switch, I got an error:
Write-Verbose: A positional parameter cannot be found that accepts argument 'Files\AzureConnectedMachineAgent\azcmagent.exe'.

This is because in the Crescendo configuration file, OriginalName is specified as
OriginalName = "c:/program files/AzureConnectedMachineAgent/azcmagent.exe"
Note the space between program and files.
The Export-CrescendoModule function (or more specifically the GetInvocationCommand method of the Command class) handles this by wrapping OriginalName in double quotes - except for this line:
https://github.com/PowerShell/Crescendo/blob/8a30182fed41c4374461f13c3acbe23baceee5f1/Microsoft.PowerShell.Crescendo/src/Microsoft.PowerShell.Crescendo.psm1#L467

See pr #130 for a proposed change to add double quotes for this line, too.

Thank you @FH-Inway for the pr -- pr accepted.


feat: Introduce QA Acceptance Test Spreadsheet

Generator to handle the use cases for integrating an OpenPaygo Token
enabled device on Angaza.

This was premature - we wanted to internally test this. Closing for now.


add psnr dashboard support

@virtuacoplenny can you take a look?

Other than linting, maybe add info to the readme about how to get the repo going? I understand it's wip, and this is just the first commit, so I think the most important things left out now would be linting to avoid future style hassles and a short blurb on what the repo is and how to use it.

linting will happen before merging, just getting the common lint rule repo set up first.  i'll add a readme as well.


More comprehensive star-import fixer thing.

Basically the title.
This basically implements https://github.com/myint/autoflake/issues/30

Any updates on this? For a lot of scientific python code, this would be perfect because they're full of star imports thanks to an overstuffed utils.py file, but I've never seen one that uses any fancy runtime binding that could break this tool.

@Alok - Check out the file, point it at your code, and see what it does. Worst case, you'll have to revert.
In my limited use, it seemed to do what I needed, though it has issues with not being sure the correct library path things should be imported from sometimes.
Basically:
library_1
 (contains *thing*)

   +    +
   |    |
   |    +>library_2
   |     (from library_1 import thing
   |        +
   |        |
   v        v
Target script
from library_1 import *
from library_2 import *

Since the tool sees "thing" in both library_1 and library_2, it may replace
references to "thing" with "library_2.thing". This will function, though it
can be confusing.
Either way, it's something of an improvement.

it may be better to use https://github.com/davidhalter/jedi

@graingert - If that doesn't rewrite your code to fix thing, it's not meaningfully similar.

I know but you can use it to determine the available imports

Yeah, but the whole point of this project, as far as I'm aware, is to fix things automatically.

Yes I was suggesting you use Jedi here as a library
On Fri, 19 Apr 2019, 03:53 Connor Wolf<EMAIL_ADDRESS>wrote:

Yeah, but the whole point of this project, as far as I'm aware, is to
fix things automatically.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/myint/autoflake/pull/31#issuecomment-484751541, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AADFATCWBWYMGOVFSQFWKMLPREXZNANCNFSM4ENQVM4A
.

Needed to use this again. It turns out it can be dumb and override loop variables that are the same name as an imported package (why would you do that).
from thing.thing_2 import lvar

for lvar in range(1,10):

got turned into
import thing.thing_2

for thing.thing_2.lvar in range(1,10):

Which is actually kind of funny, really (it can wind up causing some bizarre issues by clobbering symbols in an imported module).
Other then that, it continues to be damn handy, and realistically masking imported modules with local variable names is so terrible a practice that I kind of think anyone who did that deserves the weird bugs.

More patches for multiple subscript operators. Also I created https://github.com/fake-name/PyDeStar so I'm closing this.


docs(glossary): export in barrels

The example is about exports, so import statements are wrong here, I suppose

How did I blow that? Good catch. Thanks


"Move to Project" shortcut (v) no longer works for projects with sections

When attempting to move a task to a project that has sections within it using the v shortcut, the move fails completely.
In the past, moving a task to a section-filled project with v would open a secondary menu where the project's sections were made available to choose from. Now, nothing happens when v is used to move a task to a project with sections--the task is not moved anywhere.

Hi, this is a bug with Todoist not with todoist-shortcuts.  It also doesn't work when I use the mouse or disable the extension.  I have reported this bug via the form here: https://get.todoist.help/hc/en-us/requests/new

Leaving the issue open for now to remind me to try this out once it's resolved upstream.

Looks like this is fixed on beta.todoist.com


foundation-free swift 2.0 version?

I'd like to leave this is as a feature suggestion. Without knowing the details of the open source swift 2.0 release, it might be helpful to attempt a swift 2.0 port that doesn't make use of features outside the swift language itself. I suspect that any objc features in linux swift will depend on GNUStep, which might be an unnecessary dependency.
I've been meaning to learn swift, and swift 2.0 is the perfect catalyst to do so. Given enough time I'd like to take a look at this myself, but I would be learning the language features from scratch. Might be fun. :smile:
Note: the "upgrade project to swift 2.0" feature in xcode 7 doesn't end up producing a working library. Some of the issues make some sense (though i don't know why it wanted to rename x.left to x.count in one place), while others make none at all (simply failing to link with no useful error message). I'm guessing the failure to link is due to only some things working in swift 2.0 when running on 10.10. After a full backup, i'll try again on 10.11 DP3. ;)

successful swift 2.0 update here: https://github.com/ttilley/docopt.swift/commit/aef1910ca095000bf396dda87fb23c0ebfcec8fc
removing use of Foundation will be a lot more complicated than I initially thought. considering there is no native regex functionality without importing from Foundation.

well, here's hoping the linux port includes a decent objc runtime and at least some of Foundation...

This looks really cool! :+1:
How about a pull request? :)


why not use the bright prefixes

https://github.com/gdamore/tcell/blob/master/color.go#L45
Why
const (
	ColorBlack Color = iota
	ColorMaroon
	ColorGreen
	ColorOlive
	ColorNavy
	ColorPurple
	ColorTeal
	ColorSilver
	ColorGray
	ColorRed
	ColorLime
	ColorYellow
	ColorBlue
	ColorFuchsia
	ColorAqua
	ColorWhite
)

Instead of names like ColorMagenta and ColorBrightMagenta? These seem to be much more common and changing them is confusing.
Are they are named like that because of true color support? Even then, its still kinda confusing.

Actually, the color names are hard to lock down -- the "Bright" colors are used in some places but actually ANSI doesn't identify the bright colors.  See this: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
Worse, the ANSI "codes" actually don't provide real meaningful values for the RGB, so that its up to the implementation to guess at what the color is.  Worse, there is bad confusion between color names and values used on e.g. Windows palettes and Xterm palettes.
So what I've done instead is map specific RGB values, and used W3C based names, which are standardized.  They are also a much closer match to X11 colors.  (There are a few differences, but mostly they are the same.)  This may be confusing for some folks working with ECMA-48/ANSI type colors, but remember that tcell is designed to support rendering to other terminal types as well, where colors can mean different things.
By using specific color names and concrete RGB values, we can actually offer a "true" true-color value for applications that are very sensitive about colors.  And, it helps avoid me having to choose between XTerm and Windows non-standard names, instead deferring to the W3C standards body for color naming.
I strongly suspect the set of people familiar with HTML and W3C color names exceeds those familiar with ECMA-48 or Windows color names and RGB values, as well.


[Bug]: apache_beam.examples.cookbook.bigtableio_it_test.BigtableIOWriteTest.test_bigtable_write is flaky

What happened?
(from postCommitIT-df-py39)
Error Message
concurrent.futures._base.TimeoutError: Operation did not complete within the designated timeout.
Stacktrace
target = functools.partial(<bound method PollingFuture._done_or_raise of <google.api_core.operation.Operation object at 0x7f01330a1f10>>)
predicate = <function if_exception_type.<locals>.if_exception_type_predicate at 0x7f010e26bca0>
sleep_generator = <generator object exponential_sleep_generator at 0x7f0132a917b0>
deadline = 10, on_error = None

    def retry_target(target, predicate, sleep_generator, deadline, on_error=None):
        """Call a function and retry if it fails.

        This is the lowest-level retry helper. Generally, you'll use the
        higher-level retry helper :class:`Retry`.

        Args:
            target(Callable): The function to call and retry. This must be a
                nullary function - apply arguments with `functools.partial`.
            predicate (Callable[Exception]): A callable used to determine if an
                exception raised by the target should be considered retryable.
                It should return True to retry or False otherwise.
            sleep_generator (Iterable[float]): An infinite iterator that determines
                how long to sleep between retries.
            deadline (float): How long to keep retrying the target. The last sleep
                period is shortened as necessary, so that the last retry runs at
                ``deadline`` (and not considerably beyond it).
            on_error (Callable[Exception]): A function to call while processing a
                retryable exception.  Any error raised by this function will *not*
                be caught.

        Returns:
            Any: the return value of the target function.

        Raises:
            google.api_core.RetryError: If the deadline is exceeded while retrying.
            ValueError: If the sleep generator stops yielding values.

        Args:
            timeout (int):
                How long (in seconds) to wait for the operation to complete.

        This is the lowest-level retry helper. Generally, you'll use the
        higher-level retry helper :class:`Retry`.

        Args:
            target(Callable): The function to call and retry. This must be a
                nullary function - apply arguments with `functools.partial`.
            predicate (Callable[Exception]): A callable used to determine if an
                exception raised by the target should be considered retryable.
                It should return True to retry or False otherwise.
            sleep_generator (Iterable[float]): An infinite iterator that determines
                how long to sleep between retries.
            deadline (float): How long to keep retrying the target. The last sleep
                period is shortened as necessary, so that the last retry runs at
                ``deadline`` (and not considerably beyond it).
            on_error (Callable[Exception]): A function to call while processing a
                retryable exception.  Any error raised by this function will *not*
                be caught.

        Returns:
            Any: the return value of the target function.

        Raises:
            google.api_core.RetryError: If the deadline is exceeded while retrying.
            ValueError: If the sleep generator stops yielding values.

        Args:
            timeout (int):
                How long (in seconds) to wait for the operation to complete.
                If None, wait indefinitely.
        """
        if self._result_set:
            return

        retry_ = self._retry.with_deadline(timeout)

        try:
            kwargs = {} if retry is DEFAULT_RETRY else {"retry": retry}
            retry_(self._done_or_raise)(**kwargs)
        except exceptions.RetryError:
>           raise concurrent.futures.TimeoutError(
                "Operation did not complete within the designated " "timeout."
            )
E           concurrent.futures._base.TimeoutError: Operation did not complete within the designated timeout.

../../build/gradleenv/-1734967050/lib/python3.9/site-packages/google/api_core/future/polling.py:112: TimeoutError

Issue Priority
Priority: 1
Issue Component
Component: io-py-gcp

~recently added in https://github.com/apache/beam/pull/16751

is >       operation.result(timeout=10) reasonable?

should there be a retry with a back-off?

May be root cause of #23560


Fix event error del to is_engine_running always true (#286)

Thanks for your contribution! Can you provide a more detailed description of what this PR is for?
BTW, I believe the concurrency issue here can be ultimately solved via #880

Close this PR since #880 should have fixed this.


chore(master): release 1.2.2

:robot: I have created a release beep boop
1.2.2 (2024-03-20)
Performance Improvements

adjust internal discord cache parameters (#170) (ec36c25)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/ssilve1989/ulti-project/releases/tag/v1.2.2 :sunflower:


flake with overlay for cln

This isn't fully right, but if you want to use a different version of CLN in your repo, you would use an overlay like this. Basically, you change the src attribute of the nixpkgs clightning package to point to lisa's onchain-notif branch and create a package and devshell from there. I can't seem to get the eachDefaultSystem thing to work correctly but this should get you started.

How can I recreate this?
I can't seem to get the eachDefaultSystem thing to work correctly but this should get you started.
I'm actually not seeing any errors now since my fix.

cleaned up some stuff and been hitting my head against a wall with this overlay -- it works but it's not pulling the right CLN version from nifty's fork and I have no clue why. I'm fairly sure this is the right syntax...

What's still left to do on this?
Also I noticed that the build isn't working anymore without openssl, can you add that back?

todo:

figure out why the overlay doesn't work: the devshell currently provides the nixpkgs version of clightning (v23.05.2) instead of the nifty's fork version we're attempting to overlay.
remove the template boilerplate (default.nix, shell.nix)
include CI to test different platforms
add nix tests that include the plugin (integration tests btw cln and smaug)

i get it now --  this has been working fine actually. I was just checking the version of the binary it output via the command line. the version is a set string in the upstream / nixpkgs clightning/default.nix expression, so it stayed the same with the overlay. We need to override it as well. see prev commit

Yep, builds! It was building before for me too, but now it has the version you added. Not sure if we should stick with this since the version is actually a special commit on a special fork, but it's definitely closer than before!
I added bitcoind to the dev shell so that we can immediately run source contrib/startup_regtest.sh from the lightning repo (currently you need to have this checked out... any way we can add it to the smaug repo here without duplicating the source for the bash script?)
This is very close to being done!

Another thing I'd like to add if possible is a cargo build of smaug itself, and a command to start the plugin, possibly with our own override of startup_regtest.sh... what do you think?

Perhaps the dev should be expected to run cargo build? so maybe just the l1-cli plugin start bash alias?

Another thing I'd like to add if possible is a cargo build of smaug itself

nix develop then cargo build

possibly with our own override of startup_regtest.sh

so contrib/startup_regtest.sh lives in the clightning repo. It should be possible to copy the script file by modifying its buildPhase or something but i haven't figured it out yet.

thanks to @samrose for the assist


4th instruction in Waypoint: Override Class Declarations with Inline Styles

Challenge http://freecodecamp.com/challenges/waypoint-override-class-declarations-with-inline-styles has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
When the page loads the fourth instruction description is NULL. When you complete the challenge, the instruction appears (when the button jumps with excitement). I guessed the instruction and it worked.

I'm not seeing this can you post a screen shot. Also what you'r browser os combo?

I can't replicate it since I have completed the waypoint. I tried to remove the code but it didn't remove the description and replace with NULL (sorry).
Windows 7 Enterprise Service Pack 1
Chrome Version 44.0.2403.155 m

Hmm i think it was just a once off error. I'm going to close this issue but if you see it again try get a screen shot, open a new issue and feel free to @ me in it! Thanks for keeping an eye out for issues!


Contour skeleton

Coverage decreased (-5.1%) to 27.66% when pulling 7feb4db4a83cddce6c183476ed2208932da58864 on corinnebosley:contour_skeleton into 48458afe8de43290ea9d4bce45f155376231d134 on SciTools:master.

@bjlittle You got time to take a look at this for me?

@corinnebosley Hang tight, I'll get on it asap ...
Shame our test coverage has taken a nose dive :hankey:

@bjlittle I have merged the refactoring that Mark and I have just done into this pull request, if you fancy having a peek.
See you Friday.

Will do, thanks!

Coverage increased (+1.5%) to 34.286% when pulling dc7b339f1bc9568951bc38f3dfc1908e17984652 on corinnebosley:contour_skeleton into 48458afe8de43290ea9d4bce45f155376231d134 on SciTools:master.


Reduce manifest workflow runtime and separate os/osd runners

Signed-off-by: Peter Zhu<EMAIL_ADDRESS>Description
Reduce manifest workflow runtime and separate os/osd runners
Issues Resolved
#1978
Check List

[x] Commits are signed per the DCO using --signoff

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.

Codecov Report

Merging #1979 (1d451c6) into main (e9da2ed) will increase coverage by 5.58%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##               main     #1979      +/-   ##
=============================================
+ Coverage     94.41%   100.00%   +5.58%
=============================================
  Files           187         6     -181
  Lines          3742       105    -3637
  Branches         29        19      -10
=============================================
- Hits           3533       105    -3428
+ Misses          203         0     -203
+ Partials          6         0       -6

Impacted Files
Coverage Δ

src/manifests_workflow/component_opensearch_min.py

src/manifests_workflow/input_manifests.py

src/assemble_workflow/bundles.py

...st_workflow/bwc_test/bwc_test_runner_opensearch.py

src/ci_workflow/ci_input_manifest.py

src/jenkins/TestManifest.groovy

src/ci_workflow/ci_args.py

...sts/jenkins/jobs/ArchiveAssembleUpload_Jenkinsfile

src/ci_workflow/ci_test_manifest.py

...ts_workflow/component_opensearch_dashboards_min.py

... and 171 more

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 e9da2ed...1d451c6. Read the comment docs.


Provide general-purpose config units on embulk/embulk-plugin-units.git

To provide a set of general-purpose config units as libraries would be helpful for Embulk plugin developers. Reusing such config units enables keeping plugins' source code compact. For example, HttpProxy (https://github.com/embulk/embulk-input-s3/pull/48) and TimestampParam (https://github.com/embulk/embulk/pull/465) config units can be reused by several input/output plugins.
These config units' repo should be separated from embulk/embulk.git by several reasons:

They are different release cycle with Embulk itself.
Their version could be managed by each plugin. Input and output plugins can use different version of them.

As chatted f2f, I'd personally suggest to follow existing library naming conventions like:

https://github.com/embulk/embulk-input-s3/tree/master/embulk-util-aws-credentials
https://github.com/embulk/embulk-base-restclient/tree/master/embulk-util-retryhelper-jaxrs
(embulk-base-restclient is base because it is not just a util, but a base classes of plugins.)

How about embulk-util-config-units or -types? (-types sounds more straightforward to me, imho.)

Sounds good. What do you think embulk-util-config? In this case, the package name is org.embulk.util.config.

Looks good. The library may contain more than types in the future. :)

Created https://github.com/embulk/embulk-util-config
I'm closing this.


Documentation

Where did you find the documentation for the serial protocol.
I own a SFT060N020 but without any documentation.
The python script crashes at the Q command response evaluation.
Can you add a PDF of the serial protocol to the repository ?

Hi! Thanks for your message. I am very sorry to reply so late to your issue. You probably have already solved the issue, but as it might possibly help other people in the future, I'll still answer to it. The serial protocol was provided in the documentation we received from Glassman together with the HV device itself. Unfortunately I am not able to share any documentation about the serial protocol because I do not have access to it anymore (I changed workplace). I can only advice to contact Glassman to get further information about it.
I can't tell much about the script crashing, but I can still add that this Python tool was designed for Glassman FJ series so there can be some specifications that differ with other device series and explain the crashing.


Add a v7 upgrade handler

Description
Add v7 upgrade handler

For contributor use:

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Codecov Report

Merging #822 (ad264f6) into main (efe2853) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head ad264f6 differs from pull request most recent head 7a0de88. Consider uploading reports for the commit 7a0de88 to get more accurate results

@@           Coverage Diff           @@
##             main     #822   +/-   ##
=======================================
  Coverage   20.00%   20.00%
=======================================
  Files         189      189
  Lines       24549    24549
=======================================
  Hits         4910     4910
  Misses      18783    18783
  Partials      856      856

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 efe2853...7a0de88. Read the comment docs.

Yeah, migration logic for superfluid does have to be added. At the moment it will do superfluid.InitGenesis(superfluid.DefaultGenesis()).
This should be fixed in a separate PR though

Thanks for the quick review!


Share Contact button in group

❓ Support Question

<--
❗ NEVER put your Telegram API key or any other private details here. (like passwords, user IDs, etc.)
Substitute them like <API_KEY> or <USER_ID> etc.
-->
Required Information

?
!

Operating system
WIndows 7

PHP version
5.5.12

Update Method
Webhook

Self-signed certificate
no

RAW update (if available)
{...}

Summary

setRequestContact button seems not working in group. Survey command is running ok in private chat but not working in group. It stucks on share location (not showing any button), is there any way to get it working?

Available in private chats only

https://core.telegram.org/bots/api#keyboardbutton


Load icons again

This adds a magic helper to load icons for us. Any time you want an icon, just do this:
<Border Width="16"
        Height="16"
        Margin="4,4,4,4">
    <Interactivity:Interaction.Behaviors>
        <cmdpalUI:LoadIconBehavior Source="{x:Bind ViewModel.PrimaryAction.Icon, Mode=OneWay}"/>
    </Interactivity:Interaction.Behaviors>
</Border>

And that'll magically give us a border filled with the icon, and updating with the binding.
I believe it'll also work with IRandomAccessStreamReferences, but I didn't actually test that with #151 yet.
I didn't actually implement the "caching" bit of this yet. That'll involve doing some locking per-key inside the factory and I didn't want to futz with that in this initial PR to restore icons

Icons:

Icons in the ...

Icons on the Tags

(icons in the Details doesn't work on this branch, because Details weren't implemented in this branch)


pallet-staking: Expose missing consts

Title in docs should be separated by empty /// for better html output ^^^

bot merge

bot merge

Head SHA has changed since merge was requested; aborting merge.

intelligent bot :D

bot merge


add constraints for new framework

Current coverage is 42.77% (diff: 100%)

Merging #94 into master will increase coverage by 0.57%

@@             master        #94   diff @@
==========================================
  Files            29         29
  Lines         10863      10863
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           4584       4647    +63
+ Misses         5159       5078    -81
- Partials       1120       1138    +18

Powered by Codecov. Last update ea4b8b1...d71f319

LGTM but still have room for improvement.

LGTM


Add OAUTHBEARER/OIDC support

Add OAUTHBEARER / OpenID Connect (OIDC) support as described in KIP-768. This is the authentication mechanism used by the GCN/TACH Kafka broker.

The SASLMethod enum gets a new member, OAUTHBEARER.
The SASLAuth constructor gets a new optional keyword argument, token_endpoint.
The presence of the token_endpoint keyword argument causes the default SASL method to change to OAUTHBEARER and the oauthbearer method to change to oidc, because this option is required for OpenID Connect and ignored for all other auth methods.
In OIDC mode, the username and password positional arguments are interpreted as the client ID and client secret.

I'm having a bit of a tough time testing this. I've been able to set up a local broker which allows unsecured OAUTHBEARER mechanism, but this patch and the new OIDC method appears not to actually be compatible with that, and I'm not sure what it will take to run a broker with full OIDC.
Aside from that, I had a lot of trouble with getting a new enough version of librdkafka to support this. As far as I can tell, this is not yet in the latest release (1.8.2). I got it working (to the point that my client can try to use it) by building the current trunk of librdkafka, but we certainly can't expect hopskotch users (or other consumers of adc-streaming if there are any) to do that typically. Am I missing something here?

Correct. These features are in Apache Kafka 3.1.0 (recently released) but they are still just in master for librdkafka and should debut in version 1.9.0 which will be released any day now. I agree with you, and I don't advocate pushing a release of adc-streaming with this in it until it's fully supported upstream in releases of librdkafka and confluent-kaka-python. But hopefully you're OK with getting most of the code review done in advance?
For the very near term, you can test using development wheels that I have built:
pip install --extra-index-url https://asd.gsfc.nasa.gov/Leo.Singer/pypi confluent-kafka==1.8.3+bleeding.edge

I will try setting up full OIDC auth in Kafka, since I would really like to do the due-diligence of running this successfully myself, but if push comes to shove if you've been able to run it against some broker, that shouldn't hold up accepting the PR.

librdkafka uses Magnus Edenhill's own trivup for bringing up test Kafka brokers. I think it already has OIDC support.
I certainly have been able to run this against our broker. To test it, you are going to need not just a Kafka broker but also an OIDC provider.

SCiMMA already has an OIDC provider (COmanage) through which I can provision clients as needed, so that's not an obstacle. However, it does look like trivup has support, so if nothing else I may be able to learn from it how to do the configuration correctly.

SCiMMA already has an OIDC provider (COmanage) through which I can provision clients as needed, so that's not an obstacle. However, it does look like trivup has support, so if nothing else I may be able to learn from it how to do the configuration correctly.

Here are the relevant parts of our Kafka broker configuration. (Note that we are using SASL_PLAINTEXT rather than SASL_SSL because we have a load balancer external to Kafka doing the TLS termination.)
# Server Basics
broker.id=${MyId}

# Socket Server Settings
listeners=INTERNAL://:${InternalBrokerPort},EXTERNAL://:${ExternalBrokerPort0}
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
inter.broker.listener.name=INTERNAL
advertised.listeners=INTERNAL://:${InternalBrokerPort},EXTERNAL://${LoadBalancer}:${ExternalBrokerPort}

# Authentication
sasl.enabled.mechanisms=OAUTHBEARER
listener.name.external.oauthbearer.sasl.server.callback.handler.class=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerValidatorCallbackHandler
listener.name.external.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;
sasl.oauthbearer.jwks.endpoint.url=https://${IdentityProviderDomain}/.well-known/jwks.json

I've been able to test that this (in combination with the hop-client patch) works for me. If librdkafka's builtin.features is exposed to pyton in any way, I can't find it, which is a shame, but we can live without the feature check.

There isn't, but we can check confluent_kafka.libversion(). I think the check should occur right before connection, not at configuration. Do you agree?

Indeed, there's no reason to complain if the user doesn't happen to touch on this feature by actually requesting to make a connection using it.

Indeed, there's no reason to complain if the user doesn't happen to touch on this feature by actually requesting to make a connection using it.

OK, done. Please review.

@cnweaver, since upstream is taking longer than I expected to do a release of librdkafka, I wrote a pure Python implementation of the OIDC auth that will work with the current stable release of confluent-kafka-python. Please take a look.

Thank you! When do you anticipate doing a release?

This morning was my plan.

Hold off a bit please. This was working yesterday but I am having some problems with it.

I already made https://github.com/astronomy-commons/adc-streaming/releases/tag/v2.1.0 , but I do not have the capability to publish to PyPI or Conda, so it isn't yet on those. If necessary we can make a 2.1.1 patch release. I did have to add a fix yesterday; if what you're seeing is a KeyError when not using SASL.OAUTHBEARER that would be taken care of.

No, I'm hitting some obscure bug in librdkafka: https://github.com/edenhill/librdkafka/issues/3263#issuecomment-1069319913.
I think that the reason that I missed this is that I tested the callback itself but not the Consumer.consume() method, assuming foolishly that oauth_cb would just work.

FYI, this is reportedly fixed in librdkafka master, to be included in the next release. https://github.com/edenhill/librdkafka/issues/3263#event-6329159390


fix(toast-notification): accept non string content

Description:
The changes are comprised of update of the below components -

ToastNotification

accept both string & non-string content
a callback to handle clicks on the toast message

AlertBanner

remove left & right margin

The full description of the changes made in this request.
Links
Links to relevent resources.

Why do you need a callback on click to the text?

Why do you need a callback on click to the text?

@torgeadelin - This is required to deal with a scenario where we want to open the chat panel in case of clicking on the in-meeting-chat notification.


release v0.1

Codecov Report

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

@@           Coverage Diff           @@
##           master       #4   +/-   ##
=======================================
  Coverage   70.97%   70.97%
=======================================
  Files           7        7
  Lines         348      348
  Branches       29       29
=======================================
  Hits          247      247
  Misses         91       91
  Partials       10       10

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 ae23c13...85214a1. Read the comment docs.


Mark wich part of the window is A and B

It would improve the usability if the area which is covert by A or B in the composite views.
Even if the mapping is static an i.e. light grey borde and an overlay which says A / B would make it much more intuitive for untrained users. Of course this should be an config option of the ui.

With the introduction of the Scene-Buttons #29 there won't be A and B anymore in the GUI

i cant disagree more :-( please stop closing things without discussion

Maybe just making the composite-Buttons bigger might already help with decyphering which color/letter is which area. We would have to check how this can be achieved on the quite-small mixer-notebook screens tough.


Linux tool_integration_tests_1_4 flakes on observatory_port_test timeout

(part of https://github.com/flutter/flutter/issues/97036)
These data is based Q4 2021 flakes that happened from 10/01/2021 to 01/13/2022
1 observatory_port_test.dart flake (2517)
22:11 +39 -1: test/integration.shard/observatory_port_test.dart: flutter run --dds-port [E]
  TimeoutException after 0:15:00.000000: Test timed out after 15 minutes.
  dart:isolate  _RawReceivePortImpl._handleMessage

Launching lib/main.dart on Flutter test device in debug mode...

topLevelFunction

topLevelFunction

topLevelFunction

topLevelFunction

@zanderso Same as #97160, there is one test flakes on Linux tool_integration_tests_1_4. Please help take a look and feel free to close if the issue has been addressed. Thanks!

I don't think it's feasible to track down a flake that happened once a couple months ago. If this happens again, then we can re-open and engage with the dds maintainers.


[BOT PR] to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: istio-testing
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: ldemailly
Assign the PR to them by writing /assign @ldemailly in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
75d7f1a22f02099b7fd00b80ab5cf0d3aec1bc05
link
/test istio-unit-tests

prow/istio-presubmit.sh
75d7f1a22f02099b7fd00b80ab5cf0d3aec1bc05
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Disable macos build

It's just way too slow. A full rebuild (when dependencies-only build is not
in cachix for whatever reason) can easily timeout on 30 minutes limit.

Codecov Report

Merging #471 (46579e1) into master (2d53e36) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #471   +/-   ##
=======================================
  Coverage   74.09%   74.09%
=======================================
  Files          83       83
  Lines       10583    10583
=======================================
  Hits         7841     7841
  Misses       2742     2742

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Codes seperate permissions.

So i wanted to make it where players rankup like this "Supporter Nick with colors, Supporter+ Nick with colors and codes, Patron Nick with colors, codes, and hex" But there isn't a seperate permission for &l &o etc
So i think there should be a permission like hexnicks.code.bold or hexnicks.code.italic etc

That functionality exists. See here


Try giving a list of potential stars that are leading to a given frequency spike

Use the individual pixel periodograms to find likely locations and then use astroquery to search SIMBAD and find some likely candidates

Need to flip the way the pixels are read into the wcs...
if the argwhere returns [48, 62] what we need to put into the pixel_to_world is (62, 48)
If I do "tess_wcs.pixel_to_world(*np.fliplr(solutions[0])).icrs" I get the correct thing, but if there are multiple solutions and I do:
tess_wcs.pixel_to_world(*np.fliplr(solutions)).icrs
then its wrong again....

Ah gotcha so the (x, y) is just backwards? Perhaps we just need *query_pixels.T[::-1] in that case (which will reverse the x-y axes)

I tried that as well... but that reverses the entire array, not the individual pairs


Add Windows acceptance tests

Pull Request Checklist

Description

Add Windows acceptance tests
Support Windows 2016
Handle absence of os.architecture fact for Windows
Related Issue

Migrated from https://github.com/sensu/sensu-puppet/pull/1052

Added appveyor to my namespace and it's failing because this module defaults to gem provider for sensu-plugin install and the rubygems version on appveyor is 3.0.2 which has no support for --no-ri and --no-rdoc that get executed by gem provider.
Defaulting all operating systems to sensuclassic_gem seems like the right move but is a breaking change as we'll be changing the default.  For now I'm updating the acceptance tests to change the default.

Using sensuclassic_gem seems to end up using system Ruby and causes issues with appveyor tests using Ruby 2.5.  Am trying to downgrade rubygems to 2.x in appveyor to avoid rubygems 3.x.

We don't want to change the code to support appveyor. Appveyor should allow us to run against the ruby versions we need.

We can but the pre-installed Ruby all have latest rubygems and latest rubygems breaks Puppet gem provider.  This wasn't an issue a few months ago when I did first appveyor tests but I think that's because rubygems 3.x wasn't released that drops support for --no-ri and --no-rdoc.  For now I'm just downgrading rubygems in appveyor installed Ruby.  Looks like Puppet hasn't been updated to support latest rubygems: https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/gem.rb#L131

Successful build: https://ci.appveyor.com/project/treydock/puppet-module-sensuclassic/builds/23267606

I think I've got appveyor turned on now. Can you try pushing to a new branch or something to trigger it?

Amended commit and forced push seems to have triggered appveyor.

@treydock could you please rebase this

Rebased

Released in v3.1.0  Thank you!