Point voila-gallery.org to a floating IP

IIRC, currently voila-gallery.org is pointed at the public IP of a single instance.
Instead, we should use a floating IP that can then be associated with any instance as needed. This will let us do failovers when necessary, and give us a lot of flexibility.
It should be easy to migrate as well:

Create a floating IP
Point it to current instance, while keeping current instance's public IP
Point domain to floating IP

This would make sure we don't have a failure during DNS switchover period.

That's a good point, especially if we keep running a single instance of the gallery but would like to tear it down and up at will.

Trying to follow this guide to setup the floating IP from the command line:
openstack router create myrouter

Gives the following error:
ConflictException: 409: Client Error for url: https://network.compute.gra5.cloud.ovh.net/v2.0/routers, Quota exceeded for resources: ['router'].

I have opened a support ticket on OVH.

Received a reply for the support ticket today:

The floating ip service being in beta, we have no information to support.
If you have any problems or specific needs regarding this service, I invite you to contact the people managing this beta.


Whatsnew for v1.11.0

Proposed whatsnew for v1.11.0 release.

Ping @marqh and @dkillick ... I'm keen to release v1.11 today!

looks good to go to me, thanks @bjlittle
last call for comments........


Clean up API error-distinguishing logic

This is what I ended up with after my comment https://github.com/zulip/zulip-mobile/pull/4754#pullrequestreview-705680950 :

[The] existing code [in apiErrors] should change, I think, to handle this properly. I'll sketch out a version of how that could look, and either push some draft commits to this branch or send a PR.

It was kind of a tangle, and now I hope it's clearer. In particular, I think it's now a lot more straightforward to think of the set of possible errors on an API request as completely partitioned into meaningful subcategories, and to write conditionals on those.
The isClientError predicate goes away in this branch, replaced by a direct instanceof check at its former callsite. I think the same thing can be done with isServerError and isNetworkRequestFailedError in #4754; they can become instanceof checks referring to the new error classes added here.
The last few commits in this branch are some cleanups to the API result types, which aren't needed for anything else in this branch. I wrote those on the way toward trying to make interpretApiResponse return an ApiSuccessResponse instead of mixed, but the change to actually do that is still a draft.
This inherits P1 priority from #4754 .

Thanks for the review! Merged, with those changes.


Old versions in API reference

Description
We would like to integrate all 4.* versions and the last stable one of prior major releases in the API reference for improving the documentation.
Checklist

[x] Regenerate documentation of version 4.2.0.
[x] Integrate version 4.1.0.
[x] Integrate version 4.0.1.
[x] Integrate version 4.0.0.
[x] Integrate version 3.2.0.
[x] Integrate version 2.0.0.
[x] Integrate version 1.3.1.

Done.

We should document this change in the CHANGELOG.


stuck on payumoney logo

try use payumoney on flutter clone but code is not working and also when upgrade its navigate to payumoney logo and app are stuck tere add surl furl and merchant key everything those i am working on android code but in flutter its not working

kindly reach out to<EMAIL_ADDRESS>


Add test queries for UNION with hidden columns.

We have added a new test function for UNION queries with hidden columns. This was done to create test cases for hidden columns. Relevant: https://github.com/facebook/presto/commit/522d0562405e990608c07dc848392dcd49e11a70

@rschlussel @cawallin

looks good

looks good


IAsyncEnumerable support

I have created a converter to add support for IAsyncEnumerable<T> to Newtonsoft.Json. I explored doing this directly in the Newtonsoft.Json codebase, but because it targets much older framework versions, I deemed this to be infeasible. Instead, I have created a separate library that contains a converter that can be registered to provide bidirectional conversion. As a separate library, it can target .NET Standard 2.0 and use C# 8 and not have to worry about the older framework versions that the main library supports (implementing IAsyncEnumerable is impossible in pretty much everything in the list other than netstandard2.0).
I think it would be good to publish this as an easily-discoverable NuGet package, e.g. with the name Newtonsoft.Json.AsyncEnumerable. Is there any chance that it might be accepted into the Newtonsoft.Json codebase in order that it be published in this way?
If not, what would the etiquette be around publishing a NuGet package with that ID under my own ownership? Making it perfectly clear of course in all descriptions & documentation that I was not affiliated with James Newton-King or the .NET Foundation.

A note on the rationale behind this: ASP.NET Core currently has a work-around for serializers not supporting IAsyncEnumerable<T>, and its work-around is to buffer the entire enumeration in-memory before passing it to the serializer as a List<T> instead. Apart from being inefficient, this work-around also has a problem if you create a stream that has no logical end, which is something I bumped into; I made an ASP.NET Core endpoint that streams status updates for as long as the client chooses to stay connected. Using IAsyncEnumerable<T>, it never sends any data, because ASP.NET Core thinks it can find the end of the sequence. I want to help ASP.NET Core get rid of this work-around, and in order to do that, at least the two core formatters it comes bundled with support for are going to need to support IAsyncEnumerable<T>.
I have an API proposal to this effect in for System.Text.Json, just waiting to hear back on that, and I have proofed my proposal with a working implementation.
Newtonsoft.Json is the other standard fromatter supported by ASP.NET Core.

I have searched for other NuGet packages where someone other than the original developer has contributed a package to the ecosystem sharing the same base name. It is not super common, but there definitely seems to be precedent. Would anybody get upset if I published a Newtonsoft.Json.AsyncEnumerable package with a description explaining clearly that it was developed and maintained independently?

@JamesNK If I could draw your attention to this issue specifically -- if I get no response I will eventually come to the understanding that it is just fine to publish my Newtonsoft.Json.AsyncEnumerable and will proceed to do so. I just want to make sure that if for whatever reason you don't think I should do this, you have had the opportunity to let me know. :-)
https://github.com/logiclrd/Newtonsoft.Json.AsyncEnumerable

You're welcome to publish your own package. You'll need to choose a different name though, as only official packages can start with "Newtonsoft" prefix.

I feel that this would best serve the community by being as discoverable as possible. Is there any possibility of getting my package accepted into the main Newtonsoft.Json codebase, as a contribution rather than a stand-alone project, and published alongside other Newtonsoft.Json packages?

Further background information: I have decided I want to get ASP.NET Core to a point where it no longer automatically buffers all outbound IAsyncEnumerable values it sees. The reason it buffers them is that the JSON converters don't support it. I am independently looking into System.Text.Json changes to support IAsyncEnumerable natively. It seems to be that it is basically impossible to make Newtonsoft.Json directly support IAsyncEnumerable because of the wide range of older framework versions it explicitly targets. Based on that, my proposal is to provide a converter that can be easily added to Newtonsoft.Json's serializer settings during initialization. But, I have a feeling that ASP.NET Core isn't going to consider it a solved problem if there is a completely independent third-party library providing the solution.

The Newtonsoft.Json serialize is synchronous. Sync over async leads to a number of problems. I don't want to make it an official feature.

Then I fear ASP.NET Core will never properly support IAsyncEnumerable. :-( I'll have to think about whether there might be some architecture to make it discoverable whether a formatter properly supports IAsyncEnumerable.

I just Googled this, and found a site outlining the following scenario:

The thread pool has a limited number of threads. On my system this limit is not tiny (4K for my memory/architecture) but it is nevertheless quite finite.
With sync over async, the thread initiating the operation might itself be a thread pool thread. Each new operation that comes in pulls a thread from the pool.
It invokes the async operation, which sets up an underlying I/O and then returns. When that I/O is completed, it queues up a thread pool action to process it.
While the async operation is running, the sync part at the top has to wait for it, which means blocking that thread pool thread it is occupying.
If you manage to get as many overlapping I/O operations as there are thread pool threads, then the entire thread pool will be occupied by those sync top ends blocking on the completion of the underlying I/O operations. When those I/O operations complete, their continuations won't ever get scheduled because there are no free threads.

Thus, a deadlock arises.
So, my converter is only a band-aid -- it works in constrained testing scenarios, but wouldn't be a reliable scenario in a service scenario.


Is there a problem with the update method that uses the  wizard?

Perhaps I'm mistaken or misunderstand the article, but I think there's a problem with the approach given for using the Template Wizard. It seems to say that a new project should be created using the old template, the changes should be made, then the wizard should be used to create a new template. It seems to me that once the new project name is entered, all the parameter replacements will be done. Any project created with the new template will no longer do the replacements specified in the original template.
A method that worked for me is to:
Unzip the template file.
Delete the VSTemplate file.
Move the .ico file out of the project folder.
Load the project.
Make the project changes.
Create a new template with the wizard, selecting the ,.ico file as the icon.

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

ID: 1a66fd5d-897c-586b-898d-9bd45fd5cd41
Version Independent ID: 68bde99b-a3d1-bb5d-055f-07d2b74ee787
Content: Update existing project item templates - Visual Studio (Windows)
Content Source: docs/ide/how-to-update-existing-templates.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @TerryGLee
Microsoft Alias: tglee

Turkeys.
On Wednesday, November 2, 2022 at 06:15:21 PM MDT, github-actions[bot]<EMAIL_ADDRESS>wrote:

Thanks for sharing your feedback. We apologize for our delayed response. Due to the sheer volume of feedback in our repo, we have decided to prioritize the newest issues and are automatically closing our oldest issues with an Issues bot. If you believe your feedback is still actionable, then either respond directly in this issue or open a new documentation issue and we’ll review. If no activity occurs in the next 14 days, this issue will be closed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Thank you for your worthless response.
Sincerely,Michael Wilson
On Wednesday, February 1, 2023 at 05:12:30 PM MST, github-actions[bot]<EMAIL_ADDRESS>wrote:

Thanks for sharing your feedback. We apologize for our delayed response. Due to the sheer volume of feedback in our repo, we have decided to prioritize the newest issues and are automatically closing our oldest issues with an Issues bot. If you believe your feedback is still actionable, then either respond directly in this issue or open a new documentation issue and we’ll review. If no activity occurs in the next 14 days, this issue will be closed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

#reassign:@mikejo5000

@GitHubMJW Looking at this. It appears that maybe the first subheading should be changed from Use the Export Template Wizard to Create a custom template from a project. It looks like the second procedure (Manually update...) would be used to edit the custom template. In your example, are the changes to the .ico file required or just an example of a customization?

@GitHubMJW
I tried the steps for modifying an existing template, using a Windows Forms project where I'd put in a substitution parameter of $safeprojectname$ for the Form class name in Form1.vb and Form1.Designer.vb. When I export the template for the second time, I see that the $safeprojectname$ is preserved in the exported template.
It sounds like you're seeing something different, but the question is what specific circumstances lead to a situation where the template is not exported in a way that preserves the substitutions. Are you using custom substitutions? Is it specific to certain types of substitutions?

For now I'll close this issue, but if you get a chance to investigate further to see what substitutions are being lost, we can take a closer look. Thanks!


Bump time bounds

This allows building with GHC 8.8.1
(I guess there should be a hackage revision as well)

@vmchale: Thank you!  I published a new revision


Moving multiple nodes at the same time

Is it possible to move several nodes (with a specific tag or id) at the same time?

Only by javascript https://github.com/jerosoler/Drawflow/issues/112
The UX https://github.com/jerosoler/Drawflow/issues/50 not implemented.

I solved the multiselect/move problem with this little simple but very powerful library Selectables.
Watch the DEMO.
alt+click for select/deselect
double click in an empty space for clear selection

WoW! 👍

@Granduca thank you for pointing me in the direction of the Selectables library. I haven't started playing with it yet, but I did notice in your demo that when I select a few items, including the "Save log file" element, and start moving the elements around, that particular element doesn't move. Is that just me, or is there something in particular I should be keeping in mind when I start working with the Selectables library that perhaps you omitted for your demo?

@Granduca thank you for pointing me in the direction of the Selectables library. I haven't started playing with it yet, but I did notice in your demo that when I select a few items, including the "Save log file" element, and start moving the elements around, that particular element doesn't move. Is that just me, or is there something in particular I should be keeping in mind when I start working with the Selectables library that perhaps you omitted for your demo?

There is no problem with the Selectables library here.  I made my demo very quickly and maybe a little carelessly.  Because of this, similar problems can be observed.  However, in a personal project, everything works fine for me!  I'm sure you can easily figure out how to implement this functionality for your project.

Thank you for your help, I have now fully implemented a multi-select, multi-drag feature, that also allows you to hold the ctrl key to add or remove individual nodes. It works very well. There is one problem that I have yet to be able to resolve though, at zoom 1.0, everything works well. As soon as I start zooming in our out, the Selectables library struggles. Your demo suffers from the same. Any ideas on how I can get around it?

To fix this problem you need to override the static method in the Selectables library:
const editor = new Drawflow("...");

//Add `editor.zoom` to that function:
let cross = function (a, b) {
    let aTop = offset(a).top, aLeft = offset(a).left, bTop = offset(b).top, bLeft = offset(b).left;
    return !(((aTop + a.offsetHeight) < (bTop)) || (aTop > (bTop + b.offsetHeight * editor.zoom)) || ((aLeft + a.offsetWidth) < bLeft) || (aLeft > (bLeft + b.offsetWidth * editor.zoom)));
};

If you want to leave the library itself unchanged, then you can do in your code like this:
var dr = new Selectables({
//your prefs
})

let rb = function () {
    return document.getElementById('s-rectBox');
};

let cross = function (a, b) {
    let aTop = offset(a).top, aLeft = offset(a).left, bTop = offset(b).top, bLeft = offset(b).left;
    return !(((aTop + a.offsetHeight) < (bTop)) || (aTop > (bTop + b.offsetHeight * editor.zoom)) || ((aLeft + a.offsetWidth) < bLeft) || (aLeft > (bLeft + b.offsetWidth * editor.zoom)));
};

let offset = function (el) {
    let r = el.getBoundingClientRect();
    return {top: r.top + document.body.scrollTop, left: r.left + document.body.scrollLeft}
};

dr.select = function (e) {
    let a = rb();
    if (!a) {
        return;
    }
    delete(dr.ipos);
    document.body.classList.remove('s-noselect');
    document.body.removeEventListener('mousemove', dr.rectDraw);
    window.removeEventListener('mouseup', dr.select);
    let s = dr.options.selectedClass;
    dr.foreach(dr.items, function (el) {
        if (cross(a, el) === true) {
            if (el.classList.contains(s)) {
                el.classList.remove(s);
                dr.options.onDeselect && dr.options.onDeselect(el);
            } else {
                el.classList.add(s);
                dr.options.onSelect && dr.options.onSelect(el);
            }
        }
        setTimeout(function () {
            el.removeEventListener('click', dr.suspend, true);
        }, 100);
    });
    a.parentNode.removeChild(a);
    dr.options.stop && dr.options.stop(e);
}

@Granduca this is fantastic. I implemented the first option and it works like a charm. Thanks again for your guidance!

Multiple Select with ShiftKey native.
https://user-images.githubusercontent.com/30957047/169560995-c02d0fd7-b286-48d8-a1d6-1996e6b2d80b.mp4
<!DOCTYPE html>

  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jerosoler/Drawflow/dist/drawflow.min.css"/>

@jerosoler Hello, i'm using your library in my angular project and it's very useful. Isn't the multiselect + drag packaged in the library already? If it's not will it be in the future? Thank you.

Hello, @koufounak
It would not be included in this library.
I am preparing a new library. But it is still in development.

Wait, what? New library? Tell me more! :-D

@jerosoler Wait, what? New library? Tell me more! :-D


Performance when tracking

Hi,
Since the ZED is not yet ready for OPTv2, I've continue to test it with 2 Kinects.
My setup constist of two computer
Slave    : Detection with 1 Kinect v2
Master : Detection with 1 Kinect v2 + Tracking
During my testing sessions, I kept an eye on the performance window and I realize that :
When nobody was tracked the CPU on both computer shown 80% of it's maximum capacity
When somebody is tracked ( 1 person or more ) my CPU jumps to 100%
Both computers has an Intel - Core i7-7700K 4.2GHz and an NVIDIA GeForce GTX 1070
With that kind of hardware I was hoping to drive two imagers with one computer or combining the tracking calculation and an imager.
Are those results normal ?
First image      : Slave ( Two people were tracked in the begining and left the scene at the end )
Second image : Master ( Two people were tracked towards the end of the graph )

Thanks !
-Dage

Alexandre,
Sorry that the Zed’s not working for you yet.
This CPU utilization is not consistent with what we’ve seen on similar and less powerful CPU/GPU combinations. The load seems high.
Can you send info on GPU utilization as well? I think nvidia-smi should provide
Jeff
From: Alexandre Dagenais<EMAIL_ADDRESS>Reply-To: OpenPTrack/open_ptrack_v2<EMAIL_ADDRESS>Date: Thursday, April 5, 2018 at 11:31 AM
To: OpenPTrack/open_ptrack_v2<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [OpenPTrack/open_ptrack_v2] Performance when tracking (#16)
Hi,
Since the ZED is not yet ready for OPTv2, I've continue to test it with 2 Kinects.
My setup constist of two computer
Slave : Detection with 1 Kinect v2
Master : Detection with 1 Kinect v2 + Tracking
During my testing sessions, I kept an eye on the performance window and I realize that :
When nobody was tracked the CPU on both computer shown 80% of it's maximum capacity
When somebody is tracked ( 1 person or more ) my CPU jumps to 100%
Both computers has an Intel - Core i7-7700K 4.2GHz and an NVIDIA GeForce GTX 1070
With that kind of hardware I was hoping to drive two imagers with one computer or combining the tracking calculation and an imager.
Are those results normal ?
First image : Slave ( Two people were tracked in the begining and left the scene at the end )
Second image : Master ( Two people were tracked towards the end of the graph )
[Image removed by sender. vor002_tracking_2_peoples_performance_slave]https://user-images.githubusercontent.com/16769795/38384394-0a4c1166-38dd-11e8-9e73-1a94e26f33b0.png
[Image removed by sender. vor002_tracking_2_peoples_performance_master]https://user-images.githubusercontent.com/16769795/38384395-0a5b8916-38dd-11e8-825f-989c9aac93b3.png
Thanks !
-Dage
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/OpenPTrack/open_ptrack_v2/issues/16, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAZTR-X7578NRnHWWCDr80wXwEo64Q7Yks5tlmLZgaJpZM4TI8fw.

Hey Jeff, Unfortunately, I'm not near my OPTv2 setup, but I'll send hose result as soon as I can!

Hey Jeff,
have you had a chance to review this issue ?
Thanks

Sorry, not yet – we will look this week.
Best,
Jeff
From: Alexandre Dagenais<EMAIL_ADDRESS>Reply-To: OpenPTrack/open_ptrack_v2<EMAIL_ADDRESS>Date: Monday, May 14, 2018 at 10:58 AM
To: OpenPTrack/open_ptrack_v2<EMAIL_ADDRESS>Cc: Jeff Burke<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [OpenPTrack/open_ptrack_v2] Performance when tracking (#16)
Hey Jeff,
have you had a chance to review this issue ?
Thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/OpenPTrack/open_ptrack_v2/issues/16#issuecomment-388907107, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAZTR4LAsCS0kxh-4suyTThUWCgMhOVwks5tycWRgaJpZM4TI8fw.

Hello,
i make a fresh install on ubuntu 16.04 with two big config computer :
client :
1060 gtx 6gb vram
cpu i5 3.30GHZ x 4
memory 16GB
server :
1080 gtx
cpu i7 3.60GHZ x 8
memory 16GB
and when I am running :
roslaunch detection detection_node_kinect_02.launch
I am getting this message "skipping rgb packet !"

I am digging your project and lot of issue on github and I read that it can be a performance issue
And indeed my cpu run this with 100% usage
result :

Is it normal ?
how can i improve/optimize this ?
how can i be sure that i am using all my gpu performance ?
And if it's normal how can i disable feature to optimize this ?
thanks

Any update on that issue ?

Does it still detect and track ?
I do get the same RGB packet error regularly (especially with usb 3.0
extender) yet I am still able go detect and track reliably.
I'm on an i7 w 16GB ram
On Tue, Oct 23, 2018, 1:19 PM Alexandre Dagenais<EMAIL_ADDRESS>wrote:

Any update on that issue?
Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/OpenPTrack/open_ptrack_v2/issues/16#issuecomment-432361466,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD-doDcecsRSu3v5WBW0viAuuv795hRks5un13IgaJpZM4TI8fw
.

No response for ~1 yr. Closing issue.


Closes #478: Adding the Qwen family of models

Description
Adds support for Qwen, a family of peformant strongly bilingual LLMs to aid our MATS research on exploring model refusal circuits. Adds:

Qwen 1.8b, 7b and 14b.
Qwen-Chat 1.8b, 7b, 14b.

The models above have been tested for numerical accuracy between the transformer lens and huggingface implementations.
TODO:

[ ] Qwen 72b: was not tested since it was too big.
[ ] Implement Qwen's log scaling windowed attention. Currently turned off.
[ ] Implement Qwen's dynamic NTK-aware interpolation. Currently turned off.
[ ] Test all quantized versions of Qwen: This could be out of scope for this PR.

Type of change

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have not rewritten tests relating to key interfaces which would affect backward compatibility

Thanks a lot for this!

Is there a reason you guys use float16 in your demo?
According to HF the model uses bfloat16?
https://huggingface.co/Qwen/Qwen-7B-Chat?show_tensors=true

Is there a reason you guys use float16 in your demo?
According to HF the model uses bfloat16?
https://huggingface.co/Qwen/Qwen-7B-Chat?show_tensors=true

Good point, I don't think we thought about it too hard.
When dtype is not specified, Qwen has logic to decide which dtype to use:

Use bf16 if available
Otherwise use fp16 if available
Otherwise use fp32

bf16 isn't available on all devices - on the particular device I was just checking this on (RTX 8000), torch.cuda.is_bf16_supported() returns False, and so Qwen converts to fp16 automatically:
The model is automatically converting to fp16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32=True to "AutoModelForCausalLM.from_pretrained".

I'd probably recommend using bf16 if available, else fp16 (in accordance with the Qwen logic).

Makes sense. So long as you aren't getting nan's it shouldn't matter.


Table to list all tools

It would help if we have a table listing all the tools with a brief description. Currently people have to go the entire page to list the tools we have.

Should be resolved with #40 . This pull request adds a Table of Contents to the README.


Crash with Dynamic Trees 1.18.2 0.11.0 Beta1

DynamicTreesPlus (0.1.0 Alpha1) is not compatible with the newest update for the 1.18 Dynamic Trees.
Crash/Latest Logs: https://pastebin.com/vkNBGfgU

Fixed in beta 1


Cache busting: the demo -- can't run index.pt

Hi Michael,
I'm following along in the Cache busting lesson and I'm getting some unexpected behavior from PyCharm when I run index.pt.
In the video, you run index.pt in PyCharm and a link appears in a terminal, and when you click the link, a browser opens, displaying the minimally-styled webpage.
When I try running the file (on Windows with the free version of PyCharm),  index.pt pops up as a 'Save As' download in my default browser (Chrome). (see img below)

I tried opening it after I downloaded it but Windows was confused as to which application to use. I saw your tip in the video to hit Shift + F10, but no action happens when I do that.
Any help is appreciated, thanks!

 This is summarized in the video:
https://training.talkpython.fm/player/course/python-for-entrepreneurs-build-and-launch-your-online-business/lecture/50410
You're running the Community Edition, not Professional (although there is a 3-month free license through the course, look under your account) so there might be some differences between what you see in the video, PyCharm documentation, and my comment below.
First you need to edit your run configuration, and create a new run configuration.
Enter the appropriate values. Here's a screenshot of mine for a later chapter. You'll need to adjust the paths for Config file, Python interpreter, and Working directory.

Then click the run button, and your app should run.

Hi Steve,
Thanks for the help, I upgraded PyCharm (thanks for that, i didn't see the 3 mo free previously) and created a new run config, subbing in my own paths in the fields you specified.
I got a small improvement in that the browser didn't launch the .pt file as a download, but I got a run error instead that I can't quite interpret, see below:
C:\Users\imonat\blueyellowpy\Scripts\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pycharm\pycharm_load_entry_point.py" C:\Users\imonat\Desktop\Python_Scripts\PyForEnt\python-for-entrepreneurs-course-demos\2-web-starter\blue_yellow_app\development.ini
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pycharm\pycharm_load_entry_point.py", line 12, in
sys.exit(f())
File "C:\Users\imonat\blueyellowpy\lib\site-packages\pyramid\scripts\pserve.py", line 40, in main
return command.run()
File "C:\Users\imonat\blueyellowpy\lib\site-packages\pyramid\scripts\pserve.py", line 222, in run
app_spec, name=app_name, relative_to=base, global_conf=vars)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 271, in loadobj
global_conf=global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 296, in loadcontext
global_conf=global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 320, in _loadconfig
return loader.get_context(object_type, name, global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 454, in get_context
section)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 476, in context_from_use
object_type, name=use, global_conf=global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 406, in get_context
global_conf=global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 296, in loadcontext
global_conf=global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 328, in loadegg
return loader.get_context(object_type, name, global_conf)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 620, in get_context
object_type, name=name)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\paste\deploy\loadwsgi.py", line 640, in find_egg_entry_point
pkg_resources.require(self.spec)
File "C:\Users\imonat\blueyellowpy\lib\site-packages\setuptools-18.1-py3.5.egg\pkg_resources_init.py", line 952, in require
File "C:\Users\imonat\blueyellowpy\lib\site-packages\setuptools-18.1-py3.5.egg\pkg_resources_init.py", line 839, in resolve
pkg_resources.DistributionNotFound: The 'blue-yellow-app' distribution was not found and is required by the application
Process finished with exit code 1

This sounds like you did not run the setup.py task to install the app. You can do this by either:

In the project browser, select the parent directory of development.ini, and select Run setup.py task..., and enter develop.
In a terminal session, navigate to the directory in which development.ini is contained, and enter python setup.py develop. In the latest version of PyCharm, the terminal session activates the virtual environment automatically, so it should find your Python. If not, then you can run the same command as /path/to/my/python setup.py develop.

Hi Steve, I figured out what I was doing wrong and got the file from the Designable Web lesson (aka the Cache busting lesson) to run as expected. I see what I was doing wrong now, thanks so much for the help.


HADOOP-17367. Add InetAddress api to ProxyUsers.authorize

NOTICE
Please create an issue in ASF JIRA before opening a pull request,
and you need to set the title of the pull request which starts with
the corresponding JIRA issue number. (e.g. HADOOP-XXXXX. Fix a typo in YYY.)
For more details, please see https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 52s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s

No case conflicting files found.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:

0m  0s
test4tests
The patch appears to include 3 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
15m  7s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
24m 38s

trunk passed

+1 :green_heart:
compile
23m 55s

trunk passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
18m  8s

trunk passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+1 :green_heart:
checkstyle
2m 45s

trunk passed

+1 :green_heart:
mvnsite
2m 57s

trunk passed

+1 :green_heart:
shadedclient
21m 24s

branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
2m 28s

trunk passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
2m 55s

trunk passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+0 :ok:
spotbugs
0m 55s

Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
4m  1s

trunk passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 27s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 45s

the patch passed

+1 :green_heart:
compile
19m 33s

the patch passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

-1 :x:
javac
19m 33s
/diff-compile-javac-root-jdkUbuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>.txt
root-jdkUbuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS> with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS> generated 10 new + 2050 unchanged - 0 fixed = 2060 total (was 2050)

+1 :green_heart:
compile
17m 17s

the patch passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

-1 :x:
javac
17m 16s
/diff-compile-javac-root-jdkPrivateBuild-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10.txt
root-jdkPrivateBuild-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10 with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10 generated 10 new + 1945 unchanged - 0 fixed = 1955 total (was 1945)

-0 :warning:
checkstyle
2m 39s
/diff-checkstyle-root.txt
root: The patch generated 3 new + 136 unchanged - 17 fixed = 139 total (was 153)

+1 :green_heart:
mvnsite
2m 58s

the patch passed

+1 :green_heart:
whitespace
0m  0s

The patch has no whitespace issues.

+1 :green_heart:
shadedclient
14m 55s

patch has no errors when building and testing our client artifacts.

-1 :x:
javadoc
1m  3s
/patch-javadoc-hadoop-common-project_hadoop-common-jdkUbuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>.txt
hadoop-common in the patch failed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>.

-1 :x:
javadoc
1m 36s
/diff-javadoc-javadoc-hadoop-common-project_hadoop-common-jdkPrivateBuild-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10.txt
hadoop-common-project_hadoop-common-jdkPrivateBuild-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10 with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10 generated 6 new + 0 unchanged - 0 fixed = 6 total (was 0)

+1 :green_heart:
findbugs
4m 26s

the patch passed

_ Other Tests _

-1 :x:
unit
9m 39s
/patch-unit-hadoop-common-project_hadoop-common.txt
hadoop-common in the patch passed.

+1 :green_heart:
unit
1m 12s

hadoop-dynamometer-workload in the patch passed.

-1 :x:
unit
0m 44s
/patch-unit-hadoop-tools_hadoop-dynamometer_hadoop-dynamometer-infra.txt
hadoop-dynamometer-infra in the patch passed.

+1 :green_heart:
asflicense
0m 56s

The patch does not generate ASF License warnings.

201m 14s

Reason
Tests

Failed junit tests
hadoop.util.TestMachineList

hadoop.tools.dynamometer.TestDynamometerInfra

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2449

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 9b1d41fc9324 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 1ea3f742462

Default Java
Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/1/testReport/

Max. process+thread count
3461 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra U: .

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/1/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.1.3

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 29s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:

0m  0s
test4tests
The patch appears to include 3 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
15m 54s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
20m 32s

trunk passed

+1 :green_heart:
compile
20m  9s

trunk passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
compile
17m 21s

trunk passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+1 :green_heart:
checkstyle
2m 48s

trunk passed

+1 :green_heart:
mvnsite
2m 54s

trunk passed

+1 :green_heart:
shadedclient
20m 58s

branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
2m 26s

trunk passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
2m 56s

trunk passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+0 :ok:
spotbugs
0m 55s

Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
4m  3s

trunk passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 26s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 45s

the patch passed

+1 :green_heart:
compile
19m 28s

the patch passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javac
19m 28s

the patch passed

+1 :green_heart:
compile
17m 20s

the patch passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+1 :green_heart:
javac
17m 20s

the patch passed

+1 :green_heart:
checkstyle
2m 42s

root: The patch generated 0 new + 136 unchanged - 17 fixed = 136 total (was 153)

+1 :green_heart:
mvnsite
2m 53s

the patch passed

+1 :green_heart:
whitespace
0m  0s

The patch has no whitespace issues.

+1 :green_heart:
shadedclient
14m 58s

patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
2m 25s

the patch passed with JDK Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS>

+1 :green_heart:
javadoc
2m 57s

the patch passed with JDK Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

+1 :green_heart:
findbugs
4m 23s

the patch passed

_ Other Tests _

+1 :green_heart:
unit
9m 35s

hadoop-common in the patch passed.

+1 :green_heart:
unit
1m 15s

hadoop-dynamometer-workload in the patch passed.

-1 :x:
unit
0m 44s
/patch-unit-hadoop-tools_hadoop-dynamometer_hadoop-dynamometer-infra.txt
hadoop-dynamometer-infra in the patch passed.

+1 :green_heart:
asflicense
0m 56s

The patch does not generate ASF License warnings.

192m 19s

Reason
Tests

Failed junit tests
hadoop.tools.dynamometer.TestDynamometerInfra

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2449

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux<PHONE_NUMBER>be 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 9a9ab5b48e3

Default Java
Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.9+11-Ubuntu-0ubuntu<IP_ADDRESS> /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_272-8u272-b10-0ubuntu1~18.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/2/testReport/

Max. process+thread count
2727 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra U: .

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/2/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.1.3

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

hadoop.tools.dynamometer.TestDynamometerInfra is failing on trunk from Nov 9th. It cannot find tar file.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
31m 37s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:

0m  0s
test4tests
The patch appears to include 3 new or modified test files.

_ trunk Compile Tests _

+0 :ok:
mvndep
14m 50s

Maven dependency ordering for branch

+1 :green_heart:
mvninstall
23m 20s

trunk passed

+1 :green_heart:
compile
21m 40s

trunk passed with JDK Ubuntu-<IP_ADDRESS>+1-Ubuntu-0ubuntu1.18.04

+1 :green_heart:
compile
18m 11s

trunk passed with JDK Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

+1 :green_heart:
checkstyle
2m 49s

trunk passed

+1 :green_heart:
mvnsite
2m 34s

trunk passed

+1 :green_heart:
shadedclient
22m 47s

branch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
2m  0s

trunk passed with JDK Ubuntu-<IP_ADDRESS>+1-Ubuntu-0ubuntu1.18.04

+1 :green_heart:
javadoc
2m 29s

trunk passed with JDK Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

+0 :ok:
spotbugs
0m 46s

Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
3m 41s

trunk passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 22s

Maven dependency ordering for patch

+1 :green_heart:
mvninstall
1m 40s

the patch passed

+1 :green_heart:
compile
21m 33s

the patch passed with JDK Ubuntu-<IP_ADDRESS>+1-Ubuntu-0ubuntu1.18.04

+1 :green_heart:
javac
21m 33s

the patch passed

+1 :green_heart:
compile
18m 13s

the patch passed with JDK Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

+1 :green_heart:
javac
18m 13s

the patch passed

+1 :green_heart:
checkstyle
2m 49s

root: The patch generated 0 new + 136 unchanged - 17 fixed = 136 total (was 153)

+1 :green_heart:
mvnsite
2m 32s

the patch passed

+1 :green_heart:
whitespace
0m  0s

The patch has no whitespace issues.

+1 :green_heart:
xml
0m  1s

The patch has no ill-formed XML file.

+1 :green_heart:
shadedclient
16m 58s

patch has no errors when building and testing our client artifacts.

+1 :green_heart:
javadoc
2m  0s

the patch passed with JDK Ubuntu-<IP_ADDRESS>+1-Ubuntu-0ubuntu1.18.04

+1 :green_heart:
javadoc
2m 28s

the patch passed with JDK Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

+1 :green_heart:
findbugs
4m  7s

the patch passed

_ Other Tests _

-1 :x:
unit
9m 38s
/patch-unit-hadoop-common-project_hadoop-common.txt
hadoop-common in the patch passed.

+1 :green_heart:
unit
1m  4s

hadoop-dynamometer-workload in the patch passed.

-1 :x:
unit
0m 35s
/patch-unit-hadoop-tools_hadoop-dynamometer_hadoop-dynamometer-infra.txt
hadoop-dynamometer-infra in the patch passed.

+1 :green_heart:
asflicense
0m 47s

The patch does not generate ASF License warnings.

230m 20s

Reason
Tests

Failed junit tests
hadoop.security.TestRaceWhenRelogin

hadoop.tools.dynamometer.TestDynamometerInfra

Subsystem
Report/Notes

Docker
ClientAPI=1.40 ServerAPI=1.40 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2449

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient xml findbugs checkstyle

uname
Linux 211fd3f19f63 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 0d3155a687f

Default Java
Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-<IP_ADDRESS>+1-Ubuntu-0ubuntu1.18.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_275-8u275-b01-0ubuntu1~18.04-b01

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/3/testReport/

Max. process+thread count
1393 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-infra U: .

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2449/3/console

versions
git=2.17.1 maven=3.6.0 findbugs=4.0.6

Powered by
Apache Yetus 0.13.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.


Match wheel tags against Requires-Python major-minor

Summary
Given Requires-Python: ">=3.12.3", we were rejecting wheels like dearpygui-1.11.1-cp312-cp312-win_amd64.whl, since 3.12.0 is not included in >=3.12.3. We instead need to test against the major-minor version of Requires-Python.
The easiest way to do this, I think, is the use the RequiresPython struct, which has a single bound that we can truncate the major-minor. This also means that we now allow dearpygui-1.11.1-cp312-cp312-win_amd64.whl for specifiers like Requires-Python: "==3.10.*". This is incorrect on the surface, but it does match our semantics for Requires-Python elsewhere: we treat it as a lower bound.
Closes https://github.com/astral-sh/uv/issues/5287.

This also means that we now allow dearpygui-1.11.1-cp312-cp312-win_amd64.whl for specifiers like Requires-Python: "==3.10.*"

For warehouse with ==3.11.*, this increases the lockfile from 4161 lines to 4466 lines (+7%).

For warehouse with ==3.11.*, this increases the lockfile from 4161 lines to 4466 lines (+7%).

Yeah, unfortunately I think we kinda have to do this, unless we want to change our Requires-Python semantics. But we should do that holistically if so.

The most correct solution is probably computing an upper bound the same way we compute the lower bound, incl. widening to the next full major-minor version/discarding the patch version, and then only applying the lower bound for matching dependencies' requires-python, but applying the lower and the upper bound for selecting their wheels. (Giving us requires-python semantic #3, i think).
Improving this isn't schema-breaking or badly breaking backwards compatibility (the wheels can never be selected anyway), so we can move this post-release-ready.


Wrap_up_plot fails when it has to handle unsuccessful runs

wrap_up_plot fails to vstack elements because some columns have dtype utf-8 instead of f64: these columns are created when the corresponding run fails, so it's caused by the poor handling of failed runs.
    161 def wrap_up_plot(exp_name, task="regression", variable_of_interest=None):
    162     """Prepare and save the plots relevant to the task under consideration.
    163     If the task is `regression`, plot `r2score`, if the task is `classification`,
    164     plot `f1score`.
   (...)
    169         `classification`. Defaults to "regression".
    170     """
--> 171     df_raw = read_logs(exp_name=exp_name)
    173     if task == "regression":
    174         current_score = "r2score"

File ~/work/benchmark-join-suggestions/src/utils/logging.py:75, in read_logs(exp_name, exp_path)
     73 for f in path_agg_logs.glob("*.log"):
     74     logs.append(pl.read_csv(f))
---> 75 df_agg = pl.concat(logs)
     77 return df_agg

File ~/mambaforge/envs/bench-repro/lib/python3.10/site-packages/polars/functions/eager.py:170, in concat(items, how, rechunk, parallel)
    168 if isinstance(first, pl.DataFrame):
    169     if how == "vertical":
--> 170         out = wrap_df(plr.concat_df(elems))
    171     elif how == "vertical_relaxed":
    172         out = wrap_ldf(
    173             plr.concat_lf(
    174                 [df.lazy() for df in elems],
   (...)
    178             )
    179         ).collect(no_optimization=True)

ShapeError: unable to vstack, dtypes for column "time_join_train" don't match: `f64` and `str`

Related to: #4

Function removed in 3b5cc5629611f18e57df9f5578623afdc0f62609


Update Domain Tool (WLST online mode) can not update appDeployment by updating the SourcePath file

I want to update an appDeployment by updating the war file and running the Update Domain Tool (WLST online mode)
e.g.
Deploy an application "test.war" using Create or Update Domain Tool and then modify test.war and deploy again using Update Domain Tool
Model is:
appDeployments:
  Application:
    testapp:
      SourcePath: "/mypath/pf-appl/dist/test.war"
      Target: "CLUWDT"

With Create or Update Domain Tool, I have deployed the application first time and now I want to modify it by changing the "/mypath/pf-appl/dist/test.war" file and running Update Domain Tool (WLST online)
but I get this message:
####<Jun 30, 2021 3:15:57 PM> <INFO> <ApplicationDeployer> <remove_app_from_deployment> <WLSDPLY-09311> <testapp has already been deployed, it will not be redeployed since the binary file has not changed>
although the test.war has changed and that means the  binary file has changed.
It works if the file name changes  e.g. SourcePath: "/mypath/pf-appl/dist/test2.war", so by updating with model and changing the war file name
appDeployments:
  Application:
    testapp:
      SourcePath: "/mypath/pf-appl/dist/test2.war"
      Target: "CLUWDT"

Thank you for the Tip (undeploy and redeploy)

WDT checks to see if a file has changed by creating a hash from the old and new deployments

Sorry, I could not understand:

hash of old deployment: hash of which file exactly?
hash of new deployment: hash of which file exactly?

In my understanding, once you have deployed with SourcePath: "/mypath/pf-appl/dist/test.war" and by changing this file content for updateDomain,  then hash of old "test.war" content vs hash of new "test.war" content (what I am trying to do)

Unfortunately since it is an absolute path, and not in the archive file, the new file is in the same location as the old file and there is nothing to compare. I could guess you might assume that the file is new. Let me talk it over with the group and see what the consensus is on how to handle this situation.

We are going to assume if a file is in the same location as the old file, that a redeploy is required. (We have nothing to to check to see if the new app has changed). Would that satisfy your needs?


CDR API

As a developer, I want full access to the Kazoo CDR API.

https://2600hz.atlassian.net/wiki/display/APIs/CDR+API


Feature request: Make material import optional

As mentioned in #53, material files may not have the same name. Moreover, in my case, I don't have any .mtl files paired to my obj. files. I just want to use the parser to import vertexes, normals, and faces to my script.
Solution:
Make a keyword argument that takes file path for .mtl files. Also add a secondary keyword argument that is a bool for skipping material import. Use a default material (grey?) for rendering if material skip is set to True.

Do you have a real life example of materials names and usemtl statements?

If you just want to use the parser to import vertexes, normals, and faces you can use the create_materials=True parameter so everything will use a default materal instead? (assuming you have no mtl files)

Do you have a real life example of materials names and usemtl statements?

No


Clickable footnotes

Description
Footnotes should be clickable in the PDF to get to the bottom of the page, also there should be a link back to the number so you can jump back to the content you where reading easily.
Use Case
When I'm reading a document and I see a footnote I can click it to go read the footnote and then click an arrow to get back to what I was reading.

also there should be a link back to the number so you can jump back to the content you where reading easily

Most pdf readers have a shortcut that returns you to the place you came from

This is already implemented 🤔
The small number on the page is clickable to jump to the bottom and the small number at the bottom is clickable to jump back to the top.
Only the number is the link as the footnote might also contain other links and it might clash, otherwise. It also depends on your viewer how exactly they scroll a link destination into view (although the file also has a say in this).

Closing this as it's already implemented. If you meant something else, please comment and we can reopen.


"Encountered "  "create """ when trying to create a user with console.sh

OrientDB Version: 3.0.0m2
Java Version: then one in Docker image 3.0.0m2
OS: Ubuntu 16.04
Expected behavior
In the console.sh I want to create a user with the following command:
CREATE USER myuser IDENTIFIED BY userpass ROLE admin

Actual behavior
I've got the following error:
	Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:

	     ^
	Encountered " <CREATE> "create "" at line 1, column 1.
	Was expecting one of:
	    <IF> ...
	    <FOREACH> ...
	    ";" ...
	    <IF> ...

		DB name="db"
		Error Code="1"
		DB name="db"

Steps to reproduce
As explained here, in terminal 1, run the following:
docker run -it --name orientdb -p "2424:2424" -e ORIENTDB_ROOT_PASSWORD=rootpass orientdb:3.0.0m2

In terminal 2, run the following:
docker run -it --rm --link orientdb:orientdb orientdb:3.0.0m2 /orientdb/bin/console.sh

Then create the db:
CREATE DATABASE remote:orientdb/db root rootpass PLOCAL

And try to create the user:
CREATE USER myuser IDENTIFIED BY userpass ROLE admin

Hi @anthony-o
I just pushed a fix on develop branch, now it should work fine
Thanks
Luigi

@luigidellaquila , thank you very much.
Nevertheless, I'm now having another message when trying to create the user:
Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:
create USER myuser IDENTIFIED BY userpass ROLE admin
     ^
Encountered " <CREATE> "create "" at line 1, column 1.
Was expecting one of:
    <LET> ...
    <EXPLAIN> ...

	DB name="db"
	Error Code="1"
	DB name="db"

Here is the OrientDB version I used OrientDB Server is active v3.0.0-SNAPSHOT (build 50d83b81407462cd92fcc8c4c3413efa148f24db, branch branches/develop/workspace/core).

Hi @anthony-o
How are you getting the snapshot? That version seems to be two days old...
If you are using maven, probably cleaning the cache will help, otherwise you can try this:
https://oss.sonatype.org/content/repositories/snapshots/com/orientechnologies/orientdb-community/3.0.0-SNAPSHOT/orientdb-community-3.0.0-20171124.061803-992.tar.gz
Thanks
Luigi

I used mvn dependency:get -Ddest=./ -DremoteRepositories=sonatype-nexus-snapshots::::https://oss.sonatype.org/content/repositories/snapshots -Dartifact=com.orientechnologies:orientdb-community-gremlin:3.0.0-SNPASHOT:tar.gz to retrieve the version I tested, I will try orientdb-community instead, thank you.

I'm now running v3.0.0-SNAPSHOT (build dfba28275fa4db515ef43342b5c3ade7b60d7984, branch branches/develop/workspace/core) and facing that other issue:
Error: com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:
create USER my-user IDENTIFIED BY userpass ROLE admin
              ^
Encountered " "-" "- "" at line 1, column 16.
Was expecting:
    <IDENTIFIED> ...

	DB name="db"
	Error Code="1"
	DB name="db"

(I have a - in my user's name, this was working with console.sh v2.2.30 talking to a 3.0.0m2 version)

It worked with
create USER `my-user` IDENTIFIED BY userpass ROLE admin

Thank you!

Oh yeah, the user name is an identifier, you have to quote it if you use non-alphanumeric characters
Thanks
Luigi


Add recursive schema option support

This PR introduces recursive schema option support. This is an edge case in schemalang where the following is valid schema.
type Recursive {
	option<Recursive> opt = 1;
}

type TypeA {
	option<TypeB> opt = 1;
}

type TypeB {
	option<TypeA> opt = 1;
}

To support this edge case, we detect when a field is recursive (i.e. - cyclical) and change the type from Option<T> to Option<Box<T>>.
To enable this, we add another schema container RecursiveOptional<T> which is almost identical to Optional<T> except it has an additional trait bound ObjectField since only types can be optional and the RustType alias has the additional Box.

For the above schema this change should now generate:
struct Recursive {
	pub opt: Option<Box<Recursive>>
}

struct TypeA {
	pub opt: Option<Box<TypeB>>
}

struct TypeB {
	pub opt: Option<Box<TypeA>>
}

Are options the only place where we need to support recursive types? I like not having to box the inner values if the type isn't recursive, but I worry that that's going to be difficult to support robustly if arbitrary types can be recursive.

Yup options are the only place where we have to special case them. 😄


Add SqlOptions to set command timeout, type etc.

An attempt to address #15 by introducing the SqlOptions class, which can specify CommandTimeout and other optional parameters to Dapper's execution methods.
I am not super happy about the name SqlOptions, maybe CommandOptions is better (and in line with CommandTimeout, etc.?).
Happy to add XML docs and other polish if you like the idea.

@perliedman Thanks, looks good, I'm just underwater with other projects at the moment.  I'll try to get to it over the next few days.

This was just released in 0.4.2-beta.  Thanks again!


Have issue installing

When i install the haxm I can't only passed the
VMX supported no.
I tried all of suggestion on google.
What else i can do?
OS: Window10 home
CPU: Ryzen5 3500
Install step: github source

Hi @asherworld, so far HAXM only supports Intel CPUs, so your AMD CPU could not install HAXM as expected.


Unresponsive cells after viewing variable in data viewer

Issue Type: Bug
-run cells
-select: show variable
-go back to the the tab with the .ipynb code
-click on a different cell
-now there is two cursors blinking in two different cells taking no keyboard input

-to type again i have to select another tab and go back to this one
-then i can finally type i again
Not a huge issue but quite annoying.
Extension version: 2021.6.832593372
VS Code version: Code 1.56.2 (054a9295330880ed74ceaedda236253b4f39a335, 2021-05-12T16:45:26.313Z)
OS version: Linux x64 5.10.41-1-MANJARO

Also running github theme, latex workshop, live share, python, pylance extensions
System Info

Item
Value

CPUs
AMD Ryzen 5 1600 Six-Core Processor (12 x 3692)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.59GB (8.90GB free)

Process Argv
--no-sandbox --unity-launch --crash-reporter-id 1ef437d3-6074-4443-91e4-2c5484053672

Screen Reader
no

VM
0%

DESKTOP_SESSION
xfce

XDG_CURRENT_DESKTOP
XFCE

XDG_SESSION_DESKTOP
xfce

XDG_SESSION_TYPE
x11

@pyr-kaboosh I can't replicate the behavior you describe (though I'm on Windows)--does this happen every time for you? Are there any additional steps you have to take in order for this to occur? (It might be simpler to provide a screen recording using software like gifcap.dev)

@pyr-kaboosh, We believe that this has been fixed in the latest versions of notebooks in VS Code. These are available by installing VS Code Insiders. Can you check to see if that works for you? If so, this will be addressed in an upcoming release.

It seems difficult to replicate and doesn't always happen. There must be some other reason as well that triggers it. IF it happens again I'll make sure to document it better. But apparently it has been fixed.


HHH-5757 - OneToOne SQL missing parameter

https://hibernate.atlassian.net/browse/HHH-5757

@gbadner would you like to review this PR? @dreab8 and I think it's fine, but we'd love if you could take a look on it and let us know if there's something we might miss.


Popup not working after second open

Hello Framework7 community,
What i did:

git clone https://github.com/nolimits4web/Framework7-Vue.git
cd Framework7-Vue
npm i
npm run dev
Press Modals
Press Popup
Press Close
Press Popup again
Press Close
Press Popup again (and it's not working anymore)

There is a problem inside f7-vue-webpack template too. Close button not working: https://github.com/nolimits4web/Framework7-Vue-Webpack-Template/issues/7
So there is a some problems in popup component i think.

Note: I using popup in my app currently. This problem about kitchen-sink, i think it's not related with popup component.


Marked hledger-iadd not broken

haskellPackages.leveldb-haskell: unbreak
haskellPackages.selda: unbreak
haskellPackages.scat: unbreak
haskell.compiler.ghc96: hadrian patch fix for fully_static
haskellPackages.lens-sop: fix build
fix Spock-core haskellPackage
haskellPackages: build with RTS -A64M options
haskell.compiler.ghc948: fix expression file name
haskell.compiler.*: calculate tool path using common function
Marked hledger-iadd as no longer broken

Description of changes
hledger-iadd builds and runs successfully on the latest haskell-updates branch,
so I marked it as not broken. I ran nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD",
but it's taking forever, and this is such a minor change so I decided to end up
submitting this.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I think I messed up this PR, because 17 other commits got added to this, I'm not sure what I did. I'm not a developer.

You were targetting master instead of haskell-updates.

Thank you!

Please change the commit message so it conforms with CONTRIBUTING.md, e.g. "haskellPackages.hledger-iadd: Remove broken flag"
Please remove hledger-iadd from the corresponding broken.yaml file.
Also the hydraPlatforms = lib.platforms.none; also needs to be removed.
Alternativey to manually editing hackage-packages.nix just change the broken.yaml file and then run the regenerate-hackage-packages.sh in the maintainers directory.

Going to retry in a new PR

Thank you!
* Please change the commit message so it conforms with CONTRIBUTING.md, e.g. "haskellPackages.hledger-iadd: Remove broken flag"

* Please remove hledger-iadd from the corresponding broken.yaml file.

* Also the `hydraPlatforms = lib.platforms.none;` also needs to be removed.

* Alternativey to manually editing hackage-packages.nix just change the broken.yaml file and then run the regenerate-hackage-packages.sh in the maintainers directory.

In which file do a remove hydraPlatform = lib.platforms.none; since the hackage2nix file isn't meant to be edited?

I meant the line in hackage-packages.nix
If you edit the broken.yaml and run the regeneration script that line will also be removed.


Add _WD_FindElement_ByRegExp

Pull request
Proposed changes
Addition of a new function called _WD_FindElement_ByRegExp to match elements with regular expressions.
Checklist
Put an x in the boxes that apply. If you're unsure about any of them, don't hesitate to ask. We are here to help!
This is simply a reminder of what we are going to look for before merging your code.

[x] I have read and noticed the CODE OF CONDUCT document
[x] I have read and noticed the CONTRIBUTING document
[x] I have added necessary documentation or screenshots (if appropriate)

Types of changes
Please check x the type of change your PR introduces:

[ ] Bugfix (change which fixes an issue)
[x] Feature (change which adds functionality)
[ ] Code style update (formatting, renaming)
[ ] Refactoring (functional, structural)
[ ] Documentation content changes
[ ] Other (please describe)

System under test
N/A - Generic - Universal - Agnostic

+1

Thanks for the submission. A few questions / comments for you --

Does this return an array when multiple matches exist?
You should add __WD_Error to your Return statement for consistent logging
Renaming this to _WD_GetElementByRegExp or something similar would work better IMO

I will take a look in the comming weekend.

Does this return an array when multiple matches exist?

Take a look on:
Fetch a list of all elements
This is WIP not checked yet.

for example I have such element
SOME TEXT

It is not always ctl00$ContentPlaceHolder1$klauzula_8441556$AddExecutionButton sometimes it is ctl00$ContentPlaceHolder1$nakaz_11231433$AddExecutionButton
My usage is:

_WD_FindElement_ByRegExp($_ESAD__WD_SESSION, 'id', '(?i)ctl00_ContentPlaceHolder1_[klauzulanakaz]*?_\d+_AddExecutionButton', 'i')

and it returns:
string that represents value of ID attribute ctl00$ContentPlaceHolder1$klauzula_8441556$AddExecutionButton or ctl00$ContentPlaceHolder1$nakaz_11231433$AddExecutionButton

My usage is:
_WD_FindElement_ByRegExp($_ESAD__WD_SESSION, 'id', '(?i)ctl00_ContentPlaceHolder1_[klauzulanakaz]*?_\d+_AddExecutionButton', 'i')

the code was WIP status as we have doing migration form IE to WD and as so far we do all our changes in the background without checking !!!
So today after
matched element description fix
i made a correction to my code
Func _WD_FindElementID_ByRegExp($sSession, $sRegEx, $sRegExFlags = "")
	Local $sElement = _WD_FindElement_ByRegExp($sSession, 'id', $sRegEx, $sRegExFlags, False)
	If @error Then Return SetError(@error, @extended, $sElement)

	Local $sElement_ID = _WD_ElementAction($sSession, $sElement, 'ATTRIBUTE', 'id')
	Return SetError(@error, @extended, $sElement_ID )
EndFunc   ;==>_WD_FindElementID_ByRegExp

the code was WIP status as we have doing migration form IE to WD and as so far we do all our changes in the background without checking !!!

In the comming weekend I need to do all the test so the WIP status will be verified.

Should this sufix be _ByRegExp or rather _ByRegExI mean withpor withoutp` on the end.

@mlipok I think we should use the same scheme as the official AutoIt functions.

So as I understand you say that the current name  _WD_FindElement_ByRegExp is fine as we have

StringRegExp()
StringRegExpReplace()

Yes. I think that was my motivation when I decided to use this name, but I don't really remember now.

Still waiting on responsed to the following items 😉 --
Does this return an array when multiple matches exist?
You should add __WD_Error to your Return statement for consistent logging
Renaming this to _WD_GetElementByRegExp or something similar would work better IMO

I just now taking a look and going to make an example script

Func _WD_FindElementName_ByRegExp
Func _WD_FindElementID_ByRegExp

@mlipok Curious about your use/case for these? What do you intend to do with the name or ID once you retrieve it?

Wondering why this following JS works
\/danp2.*[0-9]+\/commits_list_item
but not this one
\/danp2.*\d+\/commits_list_item

Not sure, but I don't believe either xpath is correct since a commit hash can also contain some alpha characters. You probably need to check for [0-9a-f]

You probably need to check for [0-9a-f]

already checked \/danp2.*[0-9]+\/commits_list_item and as I said it works.

Func _WD_FindElementName_ByRegExp
Func _WD_FindElementID_ByRegExp

@mlipok Curious about your use/case for these? What do you intend to do with the name or ID once you retrieve it?

for compability with some project that I have in InternetExplorer.
I need them to make "easy" migration.

already checked \/danp2.*[0-9]+\/commits_list_item and as I said it works.

It may have returned a result, but they were incomplete. Try it with the new option I posted and you'll see that more results are returned.

already checked \/danp2.*[0-9]+\/commits_list_item and as I said it works.

It may have returned a result, but they were incomplete. Try it with the new option I posted and you'll see that more results are returned.

checking

I incorporate this change: JS refactoring to not use arguments
Because as a result in console you get:

btw.
This following usage:
	$sRegExpPattern = '/danp2.*\d+/commits_list_item$'
	$vResult = _WD_GetElementByRegEx($sSesion, 'data-url', $sRegExpPattern, 'i', True)

did not work with WebDriver.
I get in console:
1653514246004   webdriver::server       DEBUG   -> POST /session/620caa86-56f8-4334-a5d1-01722329cc9b/execute/sync {"script":"return _JS_FindElementByRegExp('data-url', '/danp2.*\\d+/commits_list_item$', 'i', true) || '';function _JS_FindElementByRegExp(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}", "args":[]}
1653514246039   webdriver::server       DEBUG   <- 200 OK {"value":[]}

but using this:
return _JS_FindElementByRegExp('data-url', '/danp2.*\\d+/commits_list_item$', 'i', true) || '';function _JS_FindElementByRegExp(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}

in Browser console I get:

As I said before this following did not work:
$sRegExpPattern = '/danp2.*\d+/commits_list_item$'
$vResult = _WD_GetElementByRegEx($sSesion, 'data-url', $sRegExpPattern, 'i', True)

this following works well:
$sRegExpPattern = '/danp2.*[0-9]+/commits_list_item$'
$vResult = _WD_GetElementByRegEx($sSesion, 'data-url', $sRegExpPattern, 'i', True)

\d (fails) vs [0-9] (works)

I suspect that this issue is due to the escaping of the backslash character. I tried disabling the escape mechanism, but then I got this --
1653578054710   webdriver::server       DEBUG   -> POST /session/c1104011-b051-4beb-a899-60a651b38ea0/execute/sync {"script":"return _JS_FindElementByRegExp('data-url', '/danp2.*\d+/commits_list_item$', 'i', true) || '';function _JS_FindElementByRegExp(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}", "args":[]}
1653578054710   webdriver::server       DEBUG   <- 400 Bad Request {"value":{"error":"invalid argument","message":"Failed to decode request as JSON: {\"script\":\"return _JS_FindElementByRegExp('data-url', '/danp2.*\\d+/commits_list_item$', 'i', true) || '';function _JS_FindElementByRegExp(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}\", \"args\":[]}","stacktrace":"Syntax error at :1:65"}}

'/danp2.*\d+/commits_list_item$'

This gets passed to the webdriver as '/danp2.*\\d+/commits_list_item$', but by the time it is process by Javascript it looks like /danp2.*d+/commits_list_item$, which is why it is failing.
When I change the regex to '/danp2.*\\d+/commits_list_item$', it gets passed to the webdriver as /danp2.*\\\\d+/commits_list_item$, and Javascript sees it as /danp2.*\d+/commits_list_item$, and the search is successful.
This can be resolved by adding this line to the function --
 	sRegExPattern = StringReplace(sRegExPattern, '\', '\\')

Nicely done:
_WD_GetElementByRegEx: Revise function header

'/danp2.*\d+/commits_list_item$'

This regex doesn't work in regex101.com because of:

unescaped forward slashes
$ symbol

I understand the issue with forward slashes. Why are you including the dollar sign in this regex?

Why are you including the dollar sign in this regex?

$ asserts position at the end of a line
This following example will explain what I'm checking for
https://regex101.com/r/bASVYk/1
I have similar scenario in my cases.

This can be resolved by adding this line to the function --
 sRegExPattern = StringReplace(sRegExPattern, '\', '\\')

Thanks again for this fix.
Please take a look:
$sRegExPattern backslashes fix

I've reviewed the final code, LGTM :)
I've requested the final review from @Danp2 before the merge! Thanks to @mlipok for refining the function and helping it get upstreamed :+1:

@TheDcoder I fixed one issue here. The one remaining item I see has to do with return error codes --

$_WD_ERROR_NoMatch isn't documented in function header
I wonder if it would make more sense to return a single error code (ie: $_WD_ERROR_InvalidExpression) instead of whatever is returned by _WD_ExecuteScript

@Danp2 Thanks for fixing the bug.

I wonder if it would make more sense to return a single error code (ie: $_WD_ERROR_InvalidExpression) instead of whatever is returned by _WD_ExecuteScript

I don't think this makes sense because "failure" can only occur when the request isn't processed properly, most RegEx will be valid even though it might not be what the user wants, it's hard to make an invalid expression regex involuntarily so I don't think we need to have a return code for this.
So realistically the failure can only happen in two cases:

No match, we are already returning the no match error code here if I recall correctly
Something else, i.e an error from ExecuteScript :)

So realistically the failure can only happen in two cases:
No match
Something else, i.e an error from ExecuteScript :)

Ok, but is the error code from _WD_ExecuteScript meaningful in the context of _WD_GetElementByRegEx? For example, this is the output I received when supplying an invalid regex flag --
__WD_Post: URL=HTTP://<IP_ADDRESS>:4444/session/46c0591f-dbb4-4728-9ee7-a003c03f3627/execute/sync; $sData={"script":"return _JS_GetElementByRegEx('data-url', '/danp2.*\\\\d+/commits_list_item$', 'aaai', true) || '';function _JS_GetElementByRegEx(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}", "args":[]}
__WD_Post ==> Webdriver Exception (10) HTTP status = 500 : ResponseText={"value":{"error":"javascript error","message":"SyntaxError: invalid regular expression flag a","sta...
_WD_ExecuteScript ==> Webdriver Exception (10) HTTP status = 500 :  : Response={"value":{"error":"javascript error","message":"SyntaxError: invalid regular expression flag a","sta...
_WD_GetElementByRegEx ==> Webdriver Exception (10) HTTP status = 500

Are there other return codes that might better describe the scenario than  Webdriver Exception?

@Danp2 Oops, didn't realize that this could happen. But there is an easy fix, we can simply catch the error in JavaScript and return no match :smile:
I'll work with @mlipok to get a fix implemented.

checking

@mlipok Can you replace the outer return statement in JavaScript with this?
try {
	return _JS_GetElementByRegEx('%s', '%s', '%s', %s) || '';
} catch (e) {
	return '';
}

It will simply return an empty string if the RegEx constructor throws an error.

@TheDcoder That would work, but the end result is that the user will be told there wasn't a match. An alternative would be to make the change in __WD_DetectError, so that an error still occurs but one more appropriate than Webdriver Exception.

@Danp2 That's technically true because an invalid RegEx doesn't match anything :wink:
In any case, I'm not familiar with __WD_DetectError, so maybe you or mLipok can look into this, I have no objections for such a change. You're the best people for this kind of stuff anyway :)

An alternative would be to make the change in __WD_DetectError, so that an error still occurs but one more appropriate than Webdriver Exception.

Please provide this fix.

__WD_DetectError updated so that "javascript error" now translates to $_WD_ERROR_InvalidExpression. If desired, this can be changed if you don't like using that error code. We could add a new code for this specific error, but I was trying to avoid that if possible.
Here's the updated log --
__WD_Post: URL=HTTP://<IP_ADDRESS>:4444/session/74e92f63-1e7a-491a-a200-26a3d6947aaf/execute/sync; $sData={"script":"return _JS_GetElementByRegEx('data-url', '/danp2.*\\\\d+/commits_list_item$', 'aaai', true) || '';function _JS_GetElementByRegEx(mode, pattern, flags = '', all = false) {   var regex = new RegExp(pattern, flags);   var elements;   elements = document.querySelectorAll(`[${mode}]`);   return Array.prototype[all ? 'filter' : 'find'].call(elements, x => regex.test(x.getAttribute(mode)));}", "args":[]}
__WD_Post ==> Invalid Expression (11) HTTP status = 500 : ResponseText={"value":{"error":"javascript error","message":"SyntaxError: invalid regular expression flag a","sta...
_WD_ExecuteScript ==> Invalid Expression (11) HTTP status = 500 :  : Response={"value":{"error":"javascript error","message":"SyntaxError: invalid regular expression flag a","sta...
_WD_GetElementByRegEx ==> Invalid Expression (11) HTTP status = 500

according to: Response={"value":{"error":"javascript error",
please change $_WD_ERROR_InvalidExpression >>> $_WD_ERROR_JavaScript

please change this name: $_WD_ERROR_InvalidExpression >>> $_WD_ERROR_JavaScript

@mlipok So you are saying that you want to add a new error code to represent the javascript error?

@mlipok So you are saying that you want to add a new error code to represent the javascript error?

Exactly.

but..... there can be cases when $_WD_ERROR_InvalidExpression will fit better.
For example with this response: Response={"value":{"error":"javascript error","message":"SyntaxError: invalid regular expression flag a
I mean this is "error":"javascript error" and at first glance it is $_WD_ERROR_JavaScript
but message contains invalid regular expression so this should be $_WD_ERROR_InvalidExpression
but in case when there is no expression error then it should report $_WD_ERROR_JavaScript
But isn't this a broader change (beyond the reach of this PR) and doesn't it require a separate PR?


Write inline tables?

Using tinytoml to write a toml document, I am wondering if it is possible to specify that a nested table should be inline? Tinytoml has absolutely no problem reading inline tables, but in the following example it would be desirable to have it write size = { width = 800, height = 600 }
std::ofstream ofs(path);
toml::Table root;

toml::Table sceneValue = toml::Table();
sceneValue["name"] = scene.name;
// would be nice to have this table written inline
toml::Table sizeValue = toml::Table();
sizeValue["width"] = scene.width;
sizeValue["height"] = scene.height;
sceneValue["size"] = sizeValue;
root["scene"] = sceneValue;

ofs << root;
ofs.close();

So the desired output is:
[scene]
name = "Main Menu"
size = { width = 800, height = 600 }

toml::Value does not have any flag that the table is inline or not. After parsing toml file, we don't have any way to distinguish inline table or usual table. We might be able to have a new value type (INLINE_TABLE) or add a flag to specify the table is inline in toml::Value, though.
This will require some work.
Anyway, how should we specify the table is inline? Unfortunately toml::Table is std::map<std::string, toml::Value>, so we cannot have flag for this. We might be able to add setInlineTable() in toml::Value. However, in this case, the API won't be intuitive so much. (If you can come up with a good API, please tell me.)
Excuse: As of toml v0.2, there was no inline table, and write() method was written when the toml version was v0.2. So probably we have more issues for writing a toml value.

I was thinking about this some today and I knew why it's difficult before posting. Our scene reader is actually still doing just fine reading the saved toml file, which is "semantically" correct. So don't beat yourself up too much, tinytoml rocks! Another idea to consider would also be creating a toml::InlineTable that simply wraps the toml::Table type. But I think the way you mention of adding setInline(bool) is better.
Going back to the official spec though, inline tables should not have line breaks in them, and it says if you feel that urge you should just use a regular table. From that I got the idea that possibly tinytoml could just automatically wrap the contents and insert newlines to a user specified (initialized to a default, say 100 characters) number of characters for each line. So if the outputted table would go past that limit, tinytoml would automatically write it as a normal table instead of an inline table. However, it would probably have to be another parameter to write() which I could do not get working because I am using ofstream instead of ostream. Only the << operator worked for me with an ofstream.
Also, from our actual scene file which we manually edited, we format it like this:
[[scene.entity]]
position = { x = 100.0, y = 250.0 }

And currently it writes as:
[[scene.entity]]

[scene.entity.position]
x = 100.000000
y = 250.000000

So it would also be nice if the solution made it simply position instead of scene.entity.position as well. I will keep thinking if I can come up with a better solution and post back.

After #15 I now get the following:
[scene]
name = "scene"

[scene.size]
height = 600
width = 800

I still think additional formatting options would be nice.


scheme-relative is absolute?

https://github.com/sindresorhus/is-absolute-url/blob/master/test.js#L9
I'd think that it should be false.

Why?

Because //url.com/ means nothing without a base. If its base is http, then it's an http url. If its base is hops, then it's an https url. It's a relative url.

Unless you're referring to //path/ where // denotes a host. In which case, such logic should be toggle-able.

Hmm, good question. You could argue both ways for it. Yes, it's protocol-relative, but it's still an URL that resolves to an absolute resource, not a relative path.
// @kevva @shinnn @floatdrop @stevemao Thoughts?

Seems to be an absolute to me but @stevenvachon has a very good argument..

Personally I'd go for false but it's just a feeling of mine. Both are valid arguments.

I expect is-absolute-url to return true in this case.
A new option meets both requirements?
// Just a casual idea

isAbsoluteUrl('//github.com', {includeProtocolRelative: false}); //=> false
isAbsoluteUrl('//github.com', {includeProtocolRelative: true}); //=> true

Also, just look at the name: protocol-relative, scheme-relative.

All URLs resolve to absolute when they have a base URL.

//github.com resolves to http in the browser because of the page it's on is used as a base. Taken out of that context, how would it know to resolve to http or https, or even anything else?

@stevenvachon It's absolute in the sense that it's not a relative path. What's your use-case needing it to be something different? I think the current behaviour is the most sensible, and unless you have a good use-case, I would say it only needs doc clarification.

Parsing URLs in HTML for example wouldn't know whether to use http or https unless url.resolve() were used.

Hmm...
From Python docs:

If url is an absolute URL (that is, starting with // or scheme://)

But then from StackOverflow:

A relative URL must be either a scheme-relative URL, an absolute-path-relative URL

I guess it makes more sense to follow the latter as it's from the URL Standard.

The URL Standard is split across HTML and URL specs. It's kinda messed up.

Both is correct here imo, but I would expect // to be absolute.

Maybe this could return undefined?

No.

// isAbsolute(url, slashesDenoteHost);

isAbsolute("//localhost/"); //-> fase
isAbsolute("//google.com/", true); //-> true

Boolean arguments is nasty.

isAbsolute("/google.com/"); //-> isAbsolute.RELATIVE === 0
isAbsolute("http://google.com/"); //-> isAbsolute.ABSOLUTE === 1
isAbsolute("//google.com/"); //-> isAbsolute.PROTOCOL_RELATIVE === 2

also pretty nasty

I was thinking maybe the return value couldn't be a simple true or false but a enum. So I kinda like @stevenvachon 's solution.

Consider this situation.

// denotes a protocol-relative URL, also called as network-path reference in the spec. Absolute begins with / and relative without slash character.
See my comments at nodejs/io.js#1790

So, conclusion is that it shouldn't be treated as a absolute URL?

The spec says that
express a URI reference relative to the name space of another hierarchical URI

What happens when there is no another hiararchical URI is not specified. I personally, and in case of Node environment would parse it as local file path; meaning that is actually is badly formatted but functionally valid absolute path (at least in POSIX environments).
But when used with url.resolve it most definitely is not absolute if the spec is followed.

If singular //something is treated as file path, it is not actually valid as it has double slashes, but those are ignored by most OS's.
For reference I just tested with Python os.path.isabs and it also considers //something/something paths as absolute local file paths by returning True
So // has dual nature depending on the context, with a base URL it is not absolute, but without a base URL it can be interpreted as an absolute local path.

The intent of this repo is to check if an URL is absolute so in this case we should return false.

Exactly.

Do not however, that local file paths can also be URL ;)

So if this library chooses it can treat URLs without protocol given as being file:, http:; what ever is the most appropriate. This depends on the environment I think.
For example browsers default to http(s) and local environments often to file.
And then there is the option is to demand a specific protocol for all inputs and fail if its not provided.

@stevenvachon Would you be able to do a doc update for #3?