Speed up creadit card

Instead of usage of regexp and replaces use more optimal way

Codecov Report

Merging #928 (b00b981) into main (6f1bf54) will decrease coverage by 0.18%.
Report is 1 commits behind head on main.
The diff coverage is 89.65%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@             Coverage Diff              @@
##               main     #928      +/-   ##
============================================
- Coverage     92.32%   92.15%   -0.18%
- Complexity     2740     2745       +5
============================================
  Files           288      289       +1
  Lines          5433     5442       +9
  Branches        581      586       +5
============================================
- Hits           5016     5015       -1
- Misses          268      278      +10
  Partials        149      149

Files Changed
Coverage Δ

...ain/java/net/datafaker/idnumbers/EnZAIdNumber.java
90.19% <66.66%> (+11.34%)
:arrow_up:

...ain/java/net/datafaker/idnumbers/SvSEIdNumber.java
98.11% <87.50%> (-1.89%)
:arrow_down:

...ain/java/net/datafaker/providers/base/Finance.java
96.42% <94.11%> (-2.34%)
:arrow_down:

...c/main/java/net/datafaker/idnumbers/IdNumbers.java
100.00% <100.00%> (ø)

... and 4 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


⚠ Bofrost.at has degraded performance

In b7b6ea9, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1565 ms

Resolved: Bofrost.at performance has improved in 9b94434 after 6 minutes.


Counting Namenode Servers method

Method to count NN Servers (to determine if we have to enable HA) could be unsuitable in case we have several and all NN in the same group.
In the actual version, NN are counted by summing the number of groups with NAMENODE service:
# ansible-hortonworks/playbooks/set_variables.yml
set_fact:
  namenode_groups: "{{ namenode_groups }} + [ '{{ item.host_group }}' ]"
when: groups[item.host_group] is defined and groups[item.host_group]|length > 0 and 'NAMENODE' in item.services
with_items: "{{ blueprint_dynamic }}"
no_log: True

#ansible-hortonworks/playbooks/roles/ambari-blueprint/templates/blueprint_dynamic.j2
# Check if we have multiple NN servers:
namenode_groups|length > 1

The things is that we can have 2 Namenodes in the same Group (if both servers are hosting exactly the same services).
Example :
  - role: hdp-namenode-1
    clients: "{{ hdp_namenode_1_client }}" # not relevant here
    services:
      - NAMENODE
      - ZKFC
      - JOURNALNODE
      - RESOURCEMANAGER
      - ZOOKEEPER_SERVER
      - METRICS_MONITOR
   […]

To suit this case, we need to change:
The method of counting NN:

    - name: Initialize the control variables
      set_fact:
        namenode_groups: []
        namenode_count: 0
   [...]

   - name: Populate the namenode groups list
      set_fact:
        namenode_groups: "{{ namenode_groups }} + [ '{{ item.host_group }}' ]"
        namenode_count: "{{ namenode_count | int + groups[item.role]|length }}"
      when: groups[item.host_group] is defined and groups[item.host_group]|length > 0 and 'NAMENODE' in item.services
      with_items: "{{ blueprint_dynamic }}"
      no_log: True

And so the methods to check if we have at least 2 NN:

"xasecure.audit.destination.hdfs.dir" : "hdfs://{% if namenode_count | int > 1 %}{{ hdfs_ha_name }}{% else %}{{ hostvars[groups[namenode_groups.0]|sort|list|first]['ansible_fqdn'] }}:8020{% endif %}/ranger/audit",

[…]

{% if namenode_count | int > 1 -%}

Same thing for other HA like Ranger KMS, RM, …
Are you in line with this approach ?

Hi, sorry about my late reply!
You are absolutely correct, this specific configuration (using more than 1 node in the master groups) would not work as I haven't accounted for so far (mainly because it's very rare when 2 masters are holding the exact same services - but not impossible as your usecase demonstrates).
The fix is however twofold:

There is one fix in the Ansible as you identified, although I'd probably do namenode_hosts and then namenode_hosts|length in the if statements. Like in this kafka example: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/set_variables.yml#L183 and https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/ambari-blueprint/templates/blueprint_dynamic.j2#L570

It's essentially the same end result, but namenode_hosts would have more information which might be useful in the future (and the length can always be used when needed).

However, my main concern is not the Ansible fix, but Ambari itself, mainly how Ambari uses the HOSTGROUP variable: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/ambari-blueprint/templates/blueprint_dynamic.j2#L445 .
I would need to do extensive testing to make sure Ambari knows how to use such a blueprint as this won't be just limited to the NameNode but for all services that use the HOSTGROUP variables.

Zookeeper: https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/ambari-blueprint/templates/blueprint_dynamic.j2#L488 (what happens for example if you have 3 zookeepers, but 2 groups, 1 group with 1 unique node and 1 group with 2 identical nodes).
All of this might work just fine, but it needs testing...
Next week I won't be able to do this so after. You're also free to test whenever you can and see if you get any issues from Ambari.
Thanks for reporting this!

Hi Alexandru,
I have made some test and you are totally right about Ambari HOSTGROUP management.
I first tried to create namenode_hostgroups like this (same for ZK) :
    - name: Populate the namenode lists
      set_fact:
        namenode_groups: "{{ namenode_groups }} + [ '{{ item.role }}' ]"
        namenode_hosts: "{{ namenode_hosts }} + {{ groups[item.role] }}"
        namenode_hostgroups: "{{ namenode_hostgroups }} + [ '{{ item.role }}' ]*{{ groups[item.role]|length }}"
      when: groups[item.role] is defined and groups[item.role]|length > 0 and 'NAMENODE' in item.services
      with_items: "{{ blueprint_dynamic }}"

With this inventory:
[hdp-namenode] #NN;RM;ZK
server1
server2
[hdp-master] #ZK
server3

At this step:
namenode_hostgroups: [ 'hdp-namenode', 'hdp-namenode' ]
So :
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn1" : "%HOSTGROUP::{{ namenode_groups[0] }}%:50070",
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn2" : "%HOSTGROUP::{{ namenode_groups[1] }}%:50070",

will give:
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn1" : "%HOSTGROUP::hdp-namenode%:50070",
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn2" : "%HOSTGROUP::hdp-namenode%:50070",

The Blueprint installation create an hdfs-site.xml with nn1=nn2=server1.example.com
I had to put directly the FQDN of Namenodes for nn1 and nn2 to have a functionnal configuration.
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn1" : "server1.example.com:50070",
"dfs.namenode.http-address.{{ hdfs_ha_name }}.nn2" : "server2.example.com:50070",

FYI I didn't have this problem with ZK configuration even if zookeeper_hostgroups was:  [ 'hdp-namenode', 'hdp-namenode', 'hdp-master' ], the generated ZK quorum was: server1,server2,server3.
I'm wondering if it's a good idea to use directly the fqdn instead of Ambari %HOSTGROUP::%.
We don't really need HOSTGROUP when we deploy a blueprint with a Jinja template and the Ansible inventory/group_vars.

Hi, sorry I didn't get the chance to come back on this.
It makes sense what you say and there are instances where Ambari doesn't do the HOSTGROUP thing, like the audit solr zookeepers (https://github.com/hortonworks/ansible-hortonworks/blob/master/playbooks/roles/ambari-blueprint/templates/blueprint_dynamic.j2#L110).
But I don't know all the implications of this... I've been using HOSTGROUP as this was the property of the exported blueprint.
In theory it should work fine if we manage this from Ansible, but for example, you won't be able to build a new cluster from an exported blueprint of a cluster built like that (because the exported blueprint will contain static hosts rather than dynamic HOSTGROUP).
Alternatively, we could just choose to have this limitation and live with having a bit more complex blueprint_dynamic variable...


Lean overlay in Modal Opening Twice. with One Modal Opened

opening modal with
function openUpdateEducModal(educID){
$('#modalEditEducationalBG').openModal();
.....
.
.
.....
...
}
10% of the time it creates 2 lean-overlay ..
so when i click close or outside. it will only (obviously) close one lean Modal... help
materialize-lean-overlay-13
materialize-lean-overlay-14

Closed due inactivity


Silent version of raidboss for WS+OBS

Ah, I see now why this got more complicated with the per trigger overrides.  Thanks for pushing through and finishing this off.  :+1:

I don't think audioAllowed belongs in raidboss_config.js? Is there a better place to put it or just leave it where it is in raidboss.js?

I don't think audioAllowed belongs in raidboss_config.js? Is there a better place to put it or just leave it where it is in raidboss.js?

Yeah, that's perfect.  Agreed that it shouldn't be in raidboss_config.js.

Thanks!!


Export more correct types

The previous iteration, because it did not test the exported types in any way, had two misses, one serious and one less so:

the less serious miss was that the object types were incorrectly set up for the tests, and could be simplified as well
the more serious miss was that the exported type for TrackedArray was missing all of the Array methods, so downstream consumers could not use it as an array!

NOTE: there's a problem with the updated ESLint config for this, and I haven't yet had a chance to get to the bottom of it. Will try to do so within the next few days.

NOTE: there's a problem with the updated ESLint config for this, and I haven't yet had a chance to get to the bottom of it. Will try to do so within the next few days.

This should be unblocked by all the dependency work I'm doing across the repo, but I'm going to go ahead and get the dependency situation fully up to date before landing this.

Superseded by #56 (which is just this, but rebased and updated).


v2014b install

Updates in MATLAB version 2014b have caused T-MATS to unsuccessfully load the T-MATS blocks into the Simulink library browser.
Make updates to correct this issue.

Completed 1/15/2015, Needed to update new (v2014b) block properties to allow the Simulink browser to see libraries.
a65742f4ed52a45b014a525b6b0ed386d586ac30


feat(nf): Use es-module-shims during initFederation and loadRemoteModule to ensure having latest importMap

Related to  #489
Do not process host during initFederation

The Host importmap.json is directly included in index.html. No need to process it anymore.
The Host shared libraries are accessible before the Host is bootstrapped.
Host externals are directly read from es-module-shims when processing the remotes

Remote unnecessary global cache for loading the remotes

The processRemoteInfo and the loadRemoteModule are using directly es-module-shims
No DOM modifications.
The es-module-shims is directly used to load modules instead of caching not-updated

Process the remotes in parallel

Runtime initialization with a lot of remotes can be slow. Use Promises.all for processing them in parallel.

With that approach, I can now use the import map override principle natively. All of the modifications were not required but I thought it was interesting to improve the bootstrap at runtime.
I am of course open to the discussion ;)

Thanks for this. I'm afraid this won't work. Perhaps we have different ideas in mind.
One aspect of federation is that it negotiates the versions to use. It might decide to go with a higher minor version provided by a remote. Hence, we cannot directly include the host's import map.
Also, we cannot rely on import map overrides, as this is only supported via shims, while the idea of module federation is to eventually provide the option to work without shims.

One aspect of federation is that it negotiates the versions to use. It might decide to go with a higher minor version provided by a remote. Hence, we cannot directly include the host's import map.

I think I missed something sorry.
Could you indicate where in the code the negotiation of versions is done?
Is it related to the externals cache?
Because I kept the principle of using the version of the host or another remote when processing the remote (see the tests).

Also, we cannot rely on import map overrides, as this is only supported via shims, while the idea of module federation is to eventually provide the option to work without shims.

Ok, I understand.
I don't know if you saw my tweet about the single-spa agenda? It seems it is in discussion for single-spa to use es-module-shims instead of SystemJS.
Something really interesting in the post is the part:

We also discussed possible collaboration with Zack Jackson on module federation's new runtime (called MFP) and whether that could help. Also discuss whether a service worker would be necessary or helpful to hook into the browser's loading of modules.

It is an interesting idea to hook files using a service worker and it seems this is what they discussed with Zack Jackson.
I don't want to push for the overrides, the goal is not to use the overrides but to provide a way to change dynamically the URL of a module. If we use a service worker, for example on the manifest, it will not be linked to es-module-shims anymore.
In the current code, one thing to notice is that injecting the exposes in the importmap does not change anything because the exposes are always read from the cache.
That PR can be split in two.
If the injection of the host doesn't fit, the most important part is to keep the list of remotes up to date with the es-module-shims which is still used for now in the loadRemoteModule right?
My question is why do we create a cache that is not up to date when we can directly use es-module-shims as a cache?
Why do we use the importShim with an URL instead of using the key of the exposes?


[WIP] NIO: port to Windows

Define the socket types in terms of WinSock types.  This allows building
NIO for Windows.
[One line description of your change]
Motivation:
[Explain here the context, and why you're making that change. What is the problem you're trying to solve.]
Modifications:
[Describe the modifications you've done.]
Result:
[After your change, what will change.]

This should be more approachable for others now with swift-package-manager support on Windows.  Seems that there are is a fair amount of regression that has occurred in the mean time.  I'll try to throw up some patches to improve the current state on Windows, but after bumping to swift 5.3 for s-p-m and a couple of small tweaks, it is just a swift build -c release to get started to repair the regressions.

Any updates on NIO for windows?

I don't think that this PR has anything valuable left at this point. There has been a fair amount of change to the project in the interleaving time.
@Dev1an: while many people seem interested in using NIO on Windows, no one else is willing to work on the underlying primitives.  My personal interests lean more towards compilers and programming language design rather than networking, so this makes this work low priority.  All the work that I've done for this I've continuously made available, but no one seems to be motivated to even split up the work and get it merged.
There are at least two different types of issues to consider here:

Get this to build with the Windows APIs and semantic differences.  This is fairly mechanical and should just a matter of working through the build.

Get NIO to be usable, which is a fair amount more complicated.  The underlying problem here is that while getting NIO to build would be a significant accomplishment, it would not necessarily leave NIO in a state where one could easily use it because there are places where we would be source incompatible.  This means that any user of NIO would need to have two paths for calls to NIO to make sure that the arguments are correct.  While likely that it could be done piecemeal as one starts building up usage, there are obvious places where this is a problem which I've brought up in the past (e.g. #1673), but again, there has been very little engagement from the community to address that concern.


X-labels of mekko's need improvement

As can be seen in the examples below, the x-labels of the mekko's are cut off by the boundary box of the chart. Also, the x-labels overlap with the legend.

I would suggest to display the x-labels vertically instead of under an angle and place the legend below the longest x-label. I realise that some x-labels are quite long; I suggest to make the label two lines instead of one like:
Transport
2.05 Mm2

instead of Transport 2.05 Mm2
I would be happy to hear any other ideas from @ChaelKruip , @antw , @RobTerwel, @grdw or @dennisschoenmakers?
Assigning @grdw . Re-assign at will.

I suggest to make the label two lines instead of one

👍

I would suggest to display the x-labels vertically instead of under an angle

I think this is going to take a lot of space and would not improve readability. Moving the industry sector left might solve the cut-off problems in 90% of the cases as it is so big. Unfortunately, I don't know how to order the sectors horizontally in the Mekko's. There seems not to be any logic to how they are ordered in the database and in the front-end 😢

I would suggest to display the x-labels vertically instead of under an angle and place the legend below the longest x-label.

:+1:

I would suggest to display the x-labels vertically instead of under an angle

Sounds good and easy.

and place the legend below the longest x-label.

That's not as easy as it sounds.

I realise that some x-labels are quite long; I suggest to make the label two lines instead of one like:

This is where I'm currently at.

😢 It works, but I'd suggest to make the font-size of the 'total' label at most 75% of the text label.

Is Other now making up 0 pixels in the mekko chart but still showing a label?

I talked to both @dennisschoenmakers and @jorisberkhout . @dennisschoenmakers suggested to determine how much space would be needed according to the minimum amount of width a certain label needed. This is rather hard.
A simpler wat was suggested by @jorisberkhout to just divide the labels evenly accross the width of the mekko chart and draw lines from the center of the block to the label like this:

What I would suggest is that the lines are default opacity: 0.5 and when you hover the label you see where the line is pointing to. Right now I can imagine people could have a hard time seeing which area belongs to "Transport" in the example.
Also I'd like some opinions. 👼

A simpler wat was suggested by @jorisberkhout to just divide the labels evenly accross the width of the mekko chart and draw lines from the center of the block to the label like this:

I like it.

What I would suggest is that the lines are default opacity: 0.5 and when you hover the label you see where the line is pointing to.

This too. :+1:
It would be nice if hovering over a series in the chart would also highlight the relevant line; that's not too important though, since the pop-over gives the details of whichever series the mouse is over.

I'm trying to figure out how to smooth the line properly.
The standard CSS shape-rendering: crispEdges; option is off the table because that makes the line even more pixelated. However, there's a genius at Stackoverflow who answered how to do it, however this sounds more complicated than it should be in my opinion 😅

Turns out going fully vertical is not a golden solution either... Going back to a -30 degree angle is even weirder considering the angel of the lines. And considering this:

This is again solveable by moving the label down a few pixels..

IMO the evenly distributed labels are doing more harm than good. It makes a 'simple' Mekko really hard to read, see if you can 'see' where the other or the food column is:

😵

I agree with @dennisschoenmakers however the solution to start detecting collision and adjusting the label accordingly is even harder. I tried today (most of the day) with [this example(http://bl.ocks.org/larskotthoff/11406992) in mind but didn't really understand what he did. I came so far as to know how to detect a collision but than I was unsuccessfull in moving the label in the correct position.
min_label_width = 25;
svg.selectAll(".label").each(function() {
  var that = this,
       a = $(this).data('x')
       // I had to determine the x-value by hand, the x-value is the center of the label (so in between the two tspan elements)

  svg.selectAll(".label").each(function() {
    if(this != that) {
      var b = $(this).data('x')
      if(Math.abs(a - b) < min_label_width) {
          // overlap, move labels
          var dx =  ??????,
            tt = d3.transform(d3.select(this).attr("transform")),
            to = d3.transform(d3.select(that).attr("transform"))

          to.translate = [ to.translate[0], to.translate[1] + dx ];
          tt.translate = [ tt.translate[0], tt.translate[1] - dx ];
          d3.select(this).attr("transform", "translate(" + tt.translate + ")");
          d3.select(that).attr("transform", "translate(" + to.translate + ")");
          $(this).data('x', a - dx);
          $(that).data('x', b + dx)
      }
    }
  });
});

I pushed a branch with my go: mekko-label-overlap-antw. I commented arrangeLabels fairly heavily, so hopefully it's not too magic. My geometry is a bit rough, so there might be ways to simplify it further.
It's based heavily on that bl.ocks code, but simplified since it only needs to modify on the horizontal axis. I made a couple of other changes to prevent labels from moving outside the chart boundary, and to exit the algorithm after a maximum of 200 iterations (which could happen if there isn't enough space for all the labels).
I'm not sure whether I like it since the labels don't always appear under the series. Perhaps if we added the lines from @grdw earlier experiments it would make more sense?

It could probably still use some fine-tuning; the Central ICT label is too far from the right here:

Ofcourse I needed to convert this to CoffeeScript which gave me bad headaches... The difference between -> and => ....

ES6/ES7 on future projects? :grinning:

-> = function(){}
=> = function(){}.bind(this)

I also had to comment-out a couple of calls to transition().duration(500). These are responsible for the chart animating nicely when gqueries change; with them removed, the chart updates immediately whenever a value changes. This is not really ideal. However it was necessary – at least in this prototype – in order to get the correct position of each label in arrangeLabels.
With the animation enabled, fetching the position of each label with getBoundingClientRect would return the wrong values: the labels were all in their starting positions at the bottom left of
chart, instead of in their post-animation positions.

After a bit of thought, I've pushed a much better alternative (to the same branch) which has the added benefit of O(n) time complexity instead of O(n2). The previous version needed ~60 passes on a chart with 6 sectors; the new one needs 12. :tada:
You might still be interested in the commented version of the (simpler) bl.ocks code if you want to understand how that works, but I think that was a red herring. The original is trying to position labels on a map in two dimensions (x and y), whereas our labels only move in one direction (x). With that in mind, the labels can be repositioned with only two passes.
Here's a starting situation with three overlapping labels, visualised on top of each other for simplicity:

Starting situation

I know, I know. Try not to too startled by the beauty of my artwork.
Label 1 overlaps label 0, and label 2 overlaps 1.
Check pairs of labels for overlaps, starting with the left-most pair. If the left-edge of label 1 is to the left of the right-edge of label 0, we know the label must to moved to the right until the left-edge meets the right edge of 0:

After iteration 1

Then we take the next pair: Label 1 and label 2. Those labels overlap, so label 2 must be moved:

After iteration 2

... and so on, until we run out of labels.
Since this doesn't fix labels which are pressed against the right-side of the chart, repeat the process in reverse:

Starting situation (reverse, right-to-left)

After iteration 1 (reverse, right-to-left)

Thanks. I don't know how to do any of that to begin with :') I did it with drawing two labels on a really large white board. I did finally got the theory in my head but didn't know any code to write that would solve it. Also considering the edges of the screen, etc.

With the animation enabled, fetching the position of each label with getBoundingClientRect would return the wrong values:

This cost me so much damn time... I was really frustrated that the x and y for every label were the same everytime but now it makes sense why 😃

I edited the lines back in :)

Great job guys! :+1:

Love it! 👍

Closing due to -> https://github.com/quintel/etmodel/pull/2210

@grdw and @jorisberkhout I am impressed with how much this has progressed, but the x-labels still overlap with the legend, especially in Dutch. Is this something we have decided not to fix this time, or did I miss something in this lengthy issue.

Is this something we have decided not to fix this time, or did I miss something in this lengthy issue.

It's someting we decided to fix but sort of returns an error on beta (if you drag one of the sliders). I'll see to it, to fix it.


Added ko_kr.json to /lang for localization about korean.

Added ko_kr.json to assets files for localization about korean(republic of Korea).

Thanks again!


Yep, the major reason why I started working on this lib

On 24 Dec 2023, at 13:14, Akash Pattnaik @.***> wrote:
I must say, this is a much better implementation than flutterwave https://developer.flutterwave.com/docs/sdks-and-plugins/backend-libraries's official rave-python https://github.com/Flutterwave/Python-v2 implementation. rave-python https://github.com/Flutterwave/Python-v2 is pure shit with the worst docs I've ever seem!
—
Reply to this email directly, view it on GitHub https://github.com/WilliamOtieno/python-flutterwave/pull/6#issuecomment-1868481549, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL55TPA222OALJ7GD7IH5KDYK7567AVCNFSM6AAAAABBBNSJTOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRYGQ4DCNJUHE.
You are receiving this because you are subscribed to this thread.

Anyway, it’s been a while since I maintained the package. I’ll go back to flutterwave docs and see what’s new so that we update the lib with new features.

On 24 Dec 2023, at 14:20, William Otieno @.***> wrote:
Yep, the major reason why I started working on this lib

On 24 Dec 2023, at 13:14, Akash Pattnaik @.***> wrote:
I must say, this is a much better implementation than flutterwave https://developer.flutterwave.com/docs/sdks-and-plugins/backend-libraries's official rave-python https://github.com/Flutterwave/Python-v2 implementation. rave-python https://github.com/Flutterwave/Python-v2 is pure shit with the worst docs I've ever seem!
—
Reply to this email directly, view it on GitHub https://github.com/WilliamOtieno/python-flutterwave/pull/6#issuecomment-1868481549, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL55TPA222OALJ7GD7IH5KDYK7567AVCNFSM6AAAAABBBNSJTOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRYGQ4DCNJUHE.
You are receiving this because you are subscribed to this thread.


[FLINK-16454][build] Update the copyright with 2020 year in NOTICE files

What is the purpose of the change
back-port from #11412
Brief change log
Update the copyright from 2014-2019 to 2014-2020 in NOTICE files
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (yes / no / don't know)
The S3 file system connector: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

back-port from #11412 which was already approved before, so merging.


update deps to support expo v51

Commands Run
$ yarn upgrade expo@51
[...]
$ npx expo-doctor
[...]
The following packages should be updated for best compatibility with the installed expo version:
<EMAIL_ADDRESS>- expected version: ^7.24.0
<EMAIL_ADDRESS>- expected version: ~11.0.0
Your project may not work correctly until you install the expected versions of the packages.
Found outdated dependencies
Advice: Use 'npx expo install --check' to review and upgrade your dependencies.
$ npx expo install --check

published the latest version, thank you @sprutner for your PR

my pleasure @dmitryame


Only list-courses and download commands support fetching from multiple servers

The other commands can't fetch courses from the other servers than the lastly used.
This bug only applies to the command options that try to find course without downloading them first locally.

The commands without multi-server support are:

Exercise command's --internet option.
Info command's --internet option.


email-sendgrid not visible

I'm running Grav v<IP_ADDRESS>
I've installed the latest email plugin.
I've installed the email-sendgrid plugin
I cannot select Mail Engine Sendgrid in the email plugin

and I cannot find the email-sendgrid plugin in the list of installed plugins.
What could be the cause of this?

It looks like the installer names the plugin folder incorrectly, as "email-sengrid" instead of "email-sendgrid". Renaming the folder makes it appear in the options - and in the list of plugins. But the installer will need correcting, something I can't do.

🤔 In my installation the plugin folder is named correctly (based on the plugin getgrav-grav-plugin-email-sendgrid-1.0.0-0-g5f555fc.zip).
It also shows up in the list of Mail engines in the Email plugin.
Looks like it is working now...

This is still happening for me:  Grav v1.7.45, also another bug, is if you install the sendgrid plugin and it shows up after renaming the folder as @danjames68 mentioned.   Then adding sendgrid as sender in the Email plugin, the website errors out.  Have to then manually add the API key to the yaml file in the sendgrid plugin folder to get the site working again.

Found the issue!  it was not in the plugin, but actually in the GPM repository entry itself!  i've fixed this now and after GPM runs (in about 10 mins) it should install and work just fine going forward.  Sorry for the delay but i had previous checked everything in the plugin and it all looked good.


Feature Request - Assign Services to Devices

In our organization, we would like to be able to assign multiple services to devices and tenants in Netbox so that we can quickly identify all devices related to a particular service/product we offer.
I was thinking this could be accomplished two different ways, what are your thoughts?

Add a new service category within the application that lists services, then attach the services to each device that the service relies on, or
Add a listbox custom field that allows multiple selections so we can add a custom field to each device that allows us to select one or more services that rely on the device like the screenshot attached.

This sounds like a good use case for custom fields. The concept of a "service" is going to vary drastically among organizations.

Is there a way to possibly add a custom field that allows multiple selections like in the screen shot?

Unfortunately, no: custom selection fields are single value only. Sorry, but we can't extend NetBox to fit every need.

No worries, I understand.
On Oct 4, 2016 2:11 PM, "Jeremy Stretch"<EMAIL_ADDRESS>wrote:

Unfortunately, no: custom selection fields are single value only. Sorry,
but we can't extend NetBox to fit every need.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/digitalocean/netbox/issues/597#issuecomment-251483846,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATuX6S1P9oY8lfPOtNdXnp7xMfKBMA72ks5qwqTogaJpZM4KN0yR
.

I'll leave this open for a while to see if there's any other interest in something like this, just in case.

Thanks!
On Tue, Oct 4, 2016 at 2:23 PM, Jeremy Stretch<EMAIL_ADDRESS>wrote:

I'll leave this open for a while to see if there's any other interest in
something like this, just in case.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/digitalocean/netbox/issues/597#issuecomment-251486799,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATuX6bn4cs8-K080HlKPhkxTzT-8Fk1Iks5qwqe1gaJpZM4KN0yR
.

Won't this need be (at least partly) addressed by #132 ?

True, #132 will probably be sufficient to address this.


Cannot import packages which use optional chaining

Versions

nuxt: 2.15.4
node: 10.23.0 (codesandbox), 14, 15 and 16 (local)

Reproduction
https://codesandbox.io/s/confident-aryabhata-lbm28
Steps to reproduce

Install vega-embed (https://github.com/vega/vega-embed) and its dependencies vega-lite and vega
import embed from 'vega-embed'

What is Expected?
The import should work the same as in plain NodeJS, i.e. require('vega-embed') works fine.
What is actually happening?
Webpack fails:
Module parse failed: Unexpected token (104:28)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| export function mergeDeep(dest, ...src) {
|     for (const s of src) {
>         deepMerge_(dest, s ?? {});
|     }
|     return dest;

Additional Details
vega-lite has recently changed their codebase to use the nullish assignment operator (https://github.com/vega/vega-lite/pull/7207) and the transpiled files in build/src/, which are imported on import, contain them.
I think this comment explains the cause of the problem: https://github.com/nuxt/nuxt.js/issues/7722#issuecomment-664745634
However, explicitely enabling the babel plugins as recommended does not solve the issue, as can be seen in the codesandbox.
This could be related to https://github.com/nuxt/nuxt.js/issues/7722, apparently only partially fixed by https://github.com/nuxt/nuxt.js/pull/8203.
Another issue with similar problems: https://github.com/nuxt/nuxt.js/issues/8893.
This issue is also potentially related: https://github.com/nuxt/typescript/issues/248

Hi @schneefux. Since webpack4 cannot undrestand syntax, you need to add vega-lite to build.transpile. See forked sandbox: https://codesandbox.io/s/xenodochial-lake-w07ge?file=/nuxt.config.js

That's it. Thank you!


Remove the versioned_migrations? check in ActiveRecord::Generators::DeviseAuthyGenerators

The check is used for versions of Rails under < 6.0. We don't support versions that low so we can remove the check. Also remove any specs that relate to that.

this has been removed so closing.


Using required inside v-repeat with outside required fields breaks validation

If you use v-validate='required' within a v-repeat and no other required fields exist outside of the v-repeat, validation works as expected.
However, if you include any fields outside the v-repeat, the validation inside the v-repeat stops working: http://jsfiddle.net/kyeqemzf/

Sorry for the late reply.
I checked your jsfiddle code.
In current vue-validation version for Vue 1.x, it does not work.
I'm developing vue-validator 2.0 now, however it's late because I translate vuejs.org website for japanese users.
Please wait :bow:

Fixed in 2.0.0-alpha.1


⚠ Samsung has degraded performance

In 5c866e7, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2528 ms

Resolved: Samsung performance has improved in a388110.


AutoX design requirements

AutoX will be taking advantage of ArgoCD to install, update, and delete Helm charts.
When the config is created, a set of immutable secrets should also be created, one for each chart.
This secret will be assigned as the owner of the ArgoCD applications that will be created by the watcher. Use the UID of the secret.
This way, when the secrets are deleted, the applications will also be deleted.

Kubernetes trigger object exists (i.e., the end-user application object that autox controller is configured to watch)

has all the right labels => No ArgoCD app object in the cluster :: create/apply an ArgoCD app object

Existing Kubernetes trigger object (i.e., the end-user application object that autox controller is configured to watch)

has all the right labels, under the covers, the version label has been changed => There is an ArgoCD app object in the cluster :: desired values (based on AutoX values computation logic) isDeepEqualTo current values (based on Argo CD app object in cluster) ? do nothing : delete argocd app object and create/apply an ArgoCD app object

Existing Kubernetes trigger object (i.e., the end-user application object that autox controller is configured to watch)

doesn't have all the required labels => There is an ArgoCD app object in the cluster :: delete argocd app object || delete argocd app object (ignore app doesn't exist error)

Trigger object doesn't exist => Reuse the action logic in 3.

autox feature delivered. any other design issues should be opened as new issues.


net/arp: modify some flow of arp return failure

Summary
If arp search fails once, subsequent searches for the ip will directly return failure, and sends an asynchronous arp request to try to update arp table in the future. In this way, the psock_sendmsg interface will not block for a long time each time because arp cannot be obtained.
This scenario is triggered when a udp socket frequently attempts to access an ip address that does not exist on the LAN.
Impact
Testing
sim:local

[Experimental Bot, please feedback here]
Let's break down this Pull Request (PR) against the NuttX requirements:
Summary:

Why?  The PR aims to prevent prolonged blocking in the psock_sendmsg function when a UDP socket repeatedly tries to send data to an unreachable IP address.  This is a performance and responsiveness improvement.
What?  Modifies the ARP (Address Resolution Protocol) handling to cache ARP failures.  If an ARP lookup fails, subsequent attempts will fail immediately, but an asynchronous ARP request will be sent in the background to potentially update the cache.
How? Introduces ARP failure caching logic.  Instead of blocking indefinitely on ARP resolution, the first failure for an IP is cached, and subsequent attempts will return the cached failure. A background ARP request attempts to refresh the entry.
Issue References: The PR summary lacks links to relevant NuttX issues. This makes it harder to assess if the problem was previously reported/discussed.

Impact:

New Feature? Existing Change? This is an optimization/bug fix to existing ARP handling, not a new feature.
User Impact:  Likely minimal for most users. UDP communication to non-existent IPs might see a slight initial delay, followed by faster failure handling. This could be beneficial for applications relying on fast UDP communication.
Build Impact:  Unclear. The PR description doesn't mention any changes to the build process. Assuming no changes, the impact here is likely minimal.
Hardware Impact: Unlikely. ARP is a network layer protocol, so this change shouldn't directly impact specific hardware or drivers.
Documentation Impact: The PR should ideally include documentation updates to reflect the new ARP caching behavior. This could be in the form of code comments or updates to relevant documentation files.
Security Impact:  Potentially minor. ARP caching can be susceptible to ARP poisoning attacks.  The PR description doesn't specify if any mitigations against such attacks are included.
Compatibility Impact:  Potentially minor. Applications relying on very specific ARP behavior (e.g., expecting prolonged blocking on ARP resolution) might be affected. However, this is unlikely to be a common use case.

Testing:

Insufficient Detail: The testing section is too vague.  It only mentions "sim:local" which doesn't provide enough information to understand the testing environment.

Does the PR meet NuttX Requirements?
The PR partially meets the requirements. Here's a breakdown:

Strengths:

Clearly identifies a performance bottleneck.
Provides a reasonable solution to improve responsiveness.

Weaknesses:

Lacks references to related NuttX issues.
Testing description is insufficient.
Impact on documentation, security, and compatibility is not adequately addressed.

Recommendations for Improvement:

Link to Issues: Provide links to any relevant NuttX issues that prompted this change or discuss the problem being solved.
Detailed Testing: Describe the testing environment thoroughly:

Simulator used (e.g., QEMU)
NuttX configuration
Steps to reproduce the issue and verify the fix
Include relevant log snippets (with clear "before" and "after" sections)

Address Impacts:  Expand on the potential impacts:

Documentation: State whether documentation updates are included or planned.
Security:  Discuss any potential security implications and mitigations taken (if any).
Compatibility: Elaborate on any potential compatibility concerns and how they are addressed.

By providing these clarifications, the PR will be more robust and better adhere to the NuttX contribution guidelines.


Tags metadata is missing from docs

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[ ] I already checked if it is not related to FastAPI but to Swagger UI.
[ ] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

First of all, thank you for producing such an awesome project! Working with FastAPI has been an absolute pleasure so far!
Example
Following the the FastAPI example

from fastapi import FastAPI

tags_metadata = [
    {
        "name": "users",
        "description": "Operations with users. The **login** logic is also here.",
    },
    {
        "name": "items",
        "description": "Manage items. So _fancy_ they have their own docs.",
        "externalDocs": {
            "description": "Items external docs",
            "url": "https://fastapi.tiangolo.com/",
        },
    },
]

app = FastAPI(openapi_tags=tags_metadata)

@app.get("/users/", tags=["users"])
async def get_users():
    return [{"name": "Harry"}, {"name": "Ron"}]

@app.get("/items/", tags=["items"])
async def get_items():
    return [{"name": "wand"}, {"name": "flying broom"}]

Description

When running the example above and accessing the generated docs (both /docs and /redoc), the tag descriptions are not visible (e.g. "description": "Operations with users. The **login** logic is also here." is missing).

Environment

OS: Ubuntu 20.04 LTS:
FastAPI Version: 0.55.1
Python version: 3.6.9
Both Firefox and Chromium

Additional context

I also tried the solution here which does work.

Everyone here, it is now natively supported in FastAPI from version 0.57.0. 🎉

Could you upgrade your FastAPI version?

Thanks @phy25 will try this tomorrow and close

For reference: If you're using docker you're probably here because of tiangolo/uvicorn-gunicorn-fastapi-docker/issues/53.

Thanks for the help here @phy25! 🙇
And thanks for coming back to close the issue @jbmoorhouse ☕

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


Add -T install/usage support

Adds nvd.task namespace with check task that invokes the -main function.
Adds minimal documentation.

Cheers! I'll iterate on this one keeping attribution. In particular we need to extend .github/integration_test.sh - feel free to give it a shot but certainly not required

Something that may also be worth adding to the README about this is that using nvd-clojure as a "tool" like this ensures classpath isolation since clojure -T... ignores the project deps.edn context.
I'll take a look at the integration test stuff next week (I'm on vacation all week and will probably spend a day or two doing OSS stuff).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 3 (66.67%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 51.394%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/nvd/task.clj
2
3
66.67%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
129

Relevant Lines:
251

💛  - Coveralls

Yes SGTM, that section of the README predates -T so I don't mind refactoring it to keep it idiomatic.
I'll open a PR against your branch I think. Either way happy holiday 🍻

You probably want to edit the description of this project on GH since it still indicates it is Leiningen only (it was listed in this week's Deref!).

We got to update it finally! Thanks.

The repo still has the description that is Leiningen-specific:

National Vulnerability Database dependency-checker for deps.edn and plug-in for Leiningen

One can observe that colloquially, a project is either "deps.edn" (or maybe "tools.deps") or "Leiningen".
I haven't heard people saying "my project is managed by the Clojure CLI", seems like bit of a mouthful (and maybe not always correct: one can use tools.deps from programs aside from via CLI).
Simplifying things, the description could simply say National Vulnerability Database dependency checker for Clojure projects. Which is particularly accurate: the usage we intend to foster is a simple program that accepts a classpath as an argument (this particularly discards "plugins"). That is compatible with all sorts of projects, e.g. also those managed by Boot, Maven, Gradle or what have you.

As for the build failures:

-T is no longer supported, use -A with repl, -M for main, or -X for exec

Might be that we're using an older CLI?

Error: Error: Command failed: git cat-file -p f20c2c031ac6b343325a437549d2432a153e6b1d
fatal: Not a valid object name f20c2c031ac6b343325a437549d2432a153e6b1d

Probably Coveralls isn't fork-safe, feel free to ignore

If you're getting "-T is no longer supported" then, yes, your Clojure CLI version for CI is too old.

Alright, sounding good! Feel free to update the CLI in our .github/ and to ensure it works without qualification.
Relatedly, obviously an essential part of the integration test is that Tools runs the github repo's version as of $commit, not one fetched over HTTP.
I believe that is currently achieved by the following means:

first one lein installs a Maven artifact
then, one consumes said local artifact here: clojure -Ttools install nvd-clojure/nvd-clojure '{:mvn/version "RELEASE"}'

I'm mention this in case it affects anything you might want to change.

I've updated the CLI version (in two places) and updated how the tool is installed (local/root in CI, git/tag in the README), and unqualified the function in clojure -Tnvd check since that should work as-is with the updated install command.

CI is failing with Error building classpath. Bad coordinate for library , expected map: nil

I missed that the lein install line is in the plugin folder. The tools install should happen in the root folder. I'll swap that above the cd plugin line.

Another thing, if the unqualifed name requires mvn not to be used, I'm not sure I'd be comfortable with that.

It's more common for CLI tools to be installed from source, directly from GitHub, and thus :tools/usage in deps.edn is respected and you can use functions in the default namespace without qualification. This is standard practice with the CLI.
If you use :mvn/version, you lose the :tools/usage functionality and you have to use fully-qualified function names.

What does io.github.rm-hull exactly do/add?

I didn't realize you were unfamiliar with how git deps are specified in recent CLI versions, sorry. The standard practice is to specify tools (and any other git deps) as io.github.<org>/<repo> so you can use :git/tag and/or :git/sha without needing to specify :git/url -- the GitHub URL is automatically derived from the lib name: https://github.com/<org>/<repo>
Since you don't seem very comfortable with installing the tool from GitHub, I've reverted to :mvn/version and added back the namespace qualifier on the function name in clojure -Tnvd.
The big benefit of the git deps approach is that user can install the tool from a branch (or an arbitrary SHA) in order to test/use features that have not yet been released. I have been testing the nvd tool via the SHA of this PR, e.g.,
clojure -Ttools install io.github.rm-hull/nvd-clojure '{:git/sha "afae9e7c1f26e67321b0d675dfe3308be49d89c5"}' :as nvd

Thanks a lot for your time and incorporating the feedback!
I've released these as 1.9.0.
The integration test is failing with Error building classpath. Bad coordinate for library , expected map: nil. I cannot reproduce it locally (integration_test.sh passes for me).
https://github.com/rm-hull/nvd-clojure/runs/4258339536?check_suite_focus=true
Any ideas welcome.

I submitted a PR to update integration_test.sh with two CLI commands that might help me debug things...

Tried several things. Still puzzled. Posted in tools-deps on Slack for more input...

Looks like it's a bug in the CLI script itself. I've updated that patch-1 PR to the minimum that I think will work but it's a pure hack based on internal knowledge of the CLI stuff :)

Tracked it down to a bug in the setup-clojure script -- https://github.com/DeLaGuardo/setup-clojure/issues/34 -- so there's nothing to be done until that is fixed. I can submit a clean PR that will add a workaround to the integration_test.sh script if you'd like?


Introduce inference using STAN

Now I have a Sampler base class (with JAGSSampler as a subclass) it should be relatively straight forward to enable MCMC sampling with STAN.

[X] add dependency files (done, but this does not include cmdstan)
[x] create STAN versions of the JAGS models
[x] create a STANSampler subclass
[x] write all the get methods for STANSampler subclass: for the samples
[x] write all the get methods for STANSampler subclass: for the summary stats (see list below)
[ ] confirm it works
[ ] assess if the stability of MCMC inference has improved using STAN
[x] wiki: stan install instructions
[ ] wiki: update demo code
[ ] release new version + tweet

Additional tasks that came up:

[ ] use different priors because stan can't generate truncated samples from priors in the generated quantities block.
[ ] improve MatlabStan by a) exporting text file of the summary info, b) parsing that to extract the summary stats I need. ffs

closing this and introducing new, more targeted issues. We currently have a bunch of working STAN models, but:

the convergence is poor, need to experiment with priors/parameterization
some are not working with the new way of doing group-level inference (i.e. additional, unobserved participant).


[BUG] Player will be bumped into a new game...

When the last player leave a game, he will accidentally get bumped into another game. Not sure about the cause yet...

Current mitigation:

Don't enter a game group if the game name is incorrect

potential fix: if the game group is 10 seconds older than the current time, don't enter.
Since we don't allow revisit game for now, it should be sufficient to suppress this issue.

The cause might be grouplistener is caching changes and doesn't got cleared. It is possibly a Firebase bug and cannot handle by ourselves.

Solved with a patch. In the future it still need an eye/refactor as the datetime criterion is so fragile. 😕


Instructions for standalone/yarn wip

Note:

We still need instructions on how to get jars
We need the RAPIDS.ai requirements page.

LGTM, links resolved and jar source/usage updated.


Object File Assumed

Hi,
I'm a student and I'm trying to use MuJoCo for a project.
I'm looking for some help with an error I’m encountering. The error occurs when I try using the “make” line command, and I get the following
“mujoco-2.3.2-windows-x86_64\sample>make
cl /O2 /MT /EHsc /arch:AVX /I../include /Fe../bin/ testxml.cc                                ../lib/mujoco.lib
Microsoft (R) C/C++ Optimizing Compiler Version 19.35.32215 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/O2', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/MT', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/EHsc', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/I../include', object file assumed
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/Fe../bin/', object file assumed
testxml.cc
testxml.cc(20): fatal error C1083: Cannot open include file: 'mujoco/mjxmacro.h': No such file or directory
make: *** [all] Error 2
I get the same result using only x64 and x86-64 toolkits.
All help will be appreciated!

For some reason the compiler is treating those flags as file paths. I've never seen this before but hopefully that helps you troubleshoot the issue?
Also, our primary supported build tooling is CMake. The Makefiles are unmaintained and only provided as an example (which will probably be removed at the next release).
Please consult our documentation for build instructions.

I'm going to close this issue, but if you have any further info/question please feel free to reopen.


Apple M1 CPU compilation issue

Hi.
I have modify you r script and use it to compile OPUS for OSX.
It has been compiled without any issues for x86_64 but when i try to compile for arm64 (new M1 CPU) there are some issue.

ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, missing required architecture arm64 in file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd
ld: dynamic main executables must link with libSystem.dylib for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Any suggestion how to compile it for M1 arm64?
build-libopus-osx.txt

Hey, Did you manage to compile the framework? If so, could you explain how you did it?
Thanks 🙏

Hi
For me work script form top message.  https://github.com/chrisballinger/Opus-iOS/files/5546590/build-libopus-osx.txt
if you want to compile for both architecture intel and arm just change line 50 to next
ARCHS="x86_64 arm64"
you could check architecture in library by command
lipo -info libopus.a
If you couldn't compile it, please give more information about errors.


Define Anonymous Function via an attribute

First off, I apologise if this is a bit badly explained. I've tried my best!
I have 2 usages for defining an anonymous function, one looks like it could be solved by supporting a different module type, at least that's what this forum post is alluding to (https://forums.bridge.net/forum/community/help/6095-creating-a-node-js-module-with-exports-function-param -- more detail here)
Firstly the module.export pattern i require is not supported by any module types currently, but that's not what i'm asking in this issue (i'll probably raise another for the module.export stuff)
module.exports = function(RED){

}

Next, inside this function i need to declare an anonymous function to act as a factory which is registered against the runtime to be invoked when a new instance of this step is required. What i'm really after is a way to define an entire method body, including params, and then have that method body compiled out to an anonymous JS function so that I can write definition classes for the objects going into the function.
Currently I have hacked this about by declaring the function in a comment and then providing helper methods to get to the parameter being passed to this function but i was thinking, if i could define the function, and it's parameter(s) as a static on the class definition i would be able to get away from the helpers I've had to write.
Steps To Reproduce
this deck is my "actual" implementation with workarounds - I've cut a lot of the External types out
https://deck.net/458c86abe4c517e086706404256b50c9
//pseudo-code as this attribute isn't supported!
// have also used dynamic for params, but in real life these are 2 external class definitions
public class MyCustomNode
    {
        [Init(InitPosition.Bottom)]
        public static void MyCustomNodeInit()
        {
<EMAIL_ADDRESS>= function (RED) { */
            // get the red runtime
            var runtime = Helpers.GetRuntime();

           MyCustomNode(runtime, null); // don't need to pass the config in here, but it would be cool if the method call was converted into an anonymous function using the template provided on the attribute which avoids me having to wrap the contents of the method in comments for form my method body.
            runtime.RegisterType("getdatasource", nameof(MyCustomNode));
            /*@} */
        }

       [AnonymousFunction("{@}({config})")]
/* was thinking providing template like string for method body allows me to pass in references to things i need in the method without it being part of the method signature */
       public static void MyCustomNode(dynaimc runtime, dynamic config){
           var instance = Helpers.GetInstance<RedNodeInstance<MyCustomNode>>();
           // create the actual nodered instance

            runtime.CreateNodeInstance(instance, config);

	    /* call to instance.initialise (omitted for brevity) but it uses the config param!! */
       }
    }

Expected Result
const Bridge = require("./bridge.js");

/**
 * @compiler Bridge.NET 17.7.0
 */
Bridge.assembly("Demo", function ($asm, globals) {
    "use strict";

    Bridge.define("NodeRed.Base.MyCustomNode");
});

module.exports = function (RED) {
var runtime = RED;

function MyCustomNode(config) { // this is the bit i want to generate without having to use comments
var instance = this;

runtime.nodes.createNode(instance, config);

/* call to instance.initialise (omitted for brevity) */

}
runtime.nodes.registerType("mycustomnode", MyCustomNode);
}

Actual Result
// nope, because it's not supported :)

This is a bit hard to follow. I'm not entirely sure I understand your requirements. Do you want to configure a C# Method to render as a closure?
Any clarity or further simplified code samples you can provide would be helpful. Or breaking this down into separate smaller issues.

Closing for now. We will re-open if further details are provided.


Error for duplicate user on registration page is too general

Environment Details

Spartacus: dev branch
Browser: chrome

Steps to Reproduce
Register userA.
Sign out.
Try to register with the same email as userA.
Observed Results
The error displayed on the storefront is not meaningful. The user won't know why the registration has failed.

Maybe a duplicate.

I couldn't find our spartacus issue, but ray is also working on this.
https://jira.hybris.com/browse/RAY-245
For now we could add some code that detects that all that was returned is the email, and display a message:
Cannot register this email address.
And then if the message is changed, we just display the message we get.

RAY issue is done, let's retest

checked with dev 17 apr25, still same. probably not updated yet

I updated dev2 yesterday night, and I see a different behavior (which is worse). It allows the user to register over and over again with the same email add.

let's document this behavior

Created a follow-up doc ticket, GH-2179.


provide a way to add custom waiting functionality for resource types (or specific resources)

to support advanced waiting behaviour, possible implementations:

support an annotation that includes a starlark snippet (may be applies to specific resource vs all resource kinds); starlark code will have access to resource and associated resources to check on done-ness

support an annotation that indicates resource is done and successful; annotation could be populated by controllers running in a cluster

related: https://github.com/k14s/kapp/issues/26

metadata:
  name: foo
  annotations:
    kapp.k14s.io/reconcile-state: "ok|fail|ongoing"
    kapp.k14s.io/reconcile-info: "somethig happened"

mutating webhook intercepts all  requests
mutating webhook adds kapp.k14s.io/reconcile-state=ongoing

if resource matches particular pattern

for example, kapp.k14s.io/apps-v1-deployment-wait-minimum-replicas-available is present

controller will watch all  resources

ignore non-annotated ones
update annotations with latest status based on resource status

kapp looks at annotations to determine whether resource is reconciled

Just poking in here after our conversation yesterday, honestly, the more I think about it, as a consumer of kapp I wouldn't mind it being aligned to kubectl using something like jsonpath to accomplish what I want:

As a consumer of kubectl, I already have an idea about jsonpath and its capabilities
jsonpath is fairly well documented and easy to get information about and pull examples to get it to do what I want

Something like this for a waitRule (pardon the pseudo-terminology/pseuo-wait rule) wouldn't be bad IMO:
  - apiVersion: "my.custom.resource/v1alpha1"
    kind: "MyCustomResource"
    waitFor:
      # the below example overrides the above and shows a wait for status.created to evaluate to True
      # status:
      #   created: "true"
      - fieldQuery: "$.status.created"
        fieldValue: "true"

Or something more complex (this would be using status.conditions that is already defaulted, but gives you an idea of what a more complex example may look like):
  - apiVersion: "my.custom.resource/v1alpha1"
    kind: "MyCustomResource"
    waitFor:
      # the below example shows a wait for status.conditions.type of ready to have a status of true
      - fieldQuery: "$.status.conditions[?(@.type=='Ready')].status"  # this returns an array/slice
        fieldValue: "True"                                            # this is a string value

Obviously the above examples are fairly simplistic, but would be flexible enough to allow for users to define exactly how they would want to wait for their resources, without a ton of overhead.

Added "discussion" label as we're still actively hashing it out.

Related to #442. Can be closed with #475 (using ytt wait rules). Available in v0.48.0+.


Assertions missing from LSP suggestion

Some of the assertions from the Rails guides' available assertions are missing from LSP suggestion.

methods
work/not

assert
not

assert_not
not

assert_equal
work

assert_not_equal
not

assert_same
work

assert_not_equal
not

assert_same
work

assert_not_same
not

assert_nil
work

assert_not_nil
not

assert_empty
work

assert_not_empty
not

assert_match
work

assert_no_match
not

assert_includes
work

assert_not_includes
not

assert_in_delta
work

assert_not_in_delta
not

assert_in_epsilon
work

assert_not_in_epsilon
not

assert_throws
work

assert_raises
work

assert_instance_of
work

assert_not_instance_of
not

assert_kind_of
work

assert_not_kind_of
not

assert_respond_to
work

assert_not_respond_to
not

assert_operator
work

assert_not_operator
not

assert_predicate
not

assert_not_predicate
not

flunk
not

All the Rails specific assertions are also missing from LSP suggestions. They are from ActiveSupport::Testing::Assertions, ActionDispatch::Assertions::ResponseAssertions and ActionDispatch::Assertions::RoutingAssertions.

methods
work/not

assert_difference
not

assert_no_difference
not

assert_changes
not

assert_no_changes
not

assert_nothing_raised
not

assert_recognizes
not

assert_generates
not

assert_response
not

assert_redirected_to
not

How can I configure Solargraph (with solargraph-rails) or use !@parse to see all the assertions in Rails testing guide?
Other info

ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
solargraph 0.50.0
solargraph-rails 1.1.0
.solargraph.yml config

---
include:
  - "**/*.rb"
exclude:
  - spec/**/*
  - test/**/*
  - vendor/**/*
  - ".bundle/**/*"
require:
  - actioncable
  - actionmailer
  - actionpack
  - actionview
  - activejob
  - activemodel
  - activerecord
  - activestorage
  - activesupport
  - faker
domains: []
reporters:
  - rubocop
formatter:
  rubocop:
    cops: safe
    except: []
    only: []
    extra_args: []
require_paths: []
plugins:
  - solargraph-rails
max_files: 5000

adding minitest-rails gem and require 'minitest/rails' in test_herlper.rb includes some methods (but not all).


[1.19.2] Visual bug with Shaders

Using Oculus 1.19.2

Can you provide more info? What shaders you are using, logs, etc.

Thre is also a Rubidium issue:
https://imgur.com/a/775slig
Assuming its related to this?:
https://github.com/CaffeineMC/sodium-fabric/issues/38


get row_sql data

sql1 = f"SELECT  * from task order by task_start_time limit 1"
all_objs = await TaskVpInfo.raw(sql1).aio_execute()
for obj in all_objs:
print(obj)
I want to use the native SQL query results, how to get the result? OBJ = None output this code .this query should select data

Here is an example
Or use just use a connection if you don't need a model at all


EEA: Rely solely on entity instances table

Summary
This removes the usage of the per-entity tables from the EEA queries to
rely solely on the entity instances table. A further PR will remove the
columsn from that table.
Related-to: #4169
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Outline how the changes were tested, including steps to reproduce and any relevant configurations.
Attach screenshots if helpful.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 53.848% (-0.008%) from 53.856%
when pulling 40d429147eaf062cb239dcc348d2bfe501c20b44 on rm-entities-queries-eea
into a97794e028049e89a5d555b406dce1220684adb0 on main.


conflict with django.apps.AppConfig

In new django versions there's ability to create AppConfig classes where developer can provide a verbose name for an application and much more.
But when I use this AppConfig class, the application page (e.g. /admin/app_name/) gives an unfiltered list of all models from all applications ignoring their app_labels.
The issue disappears when I disable admin_tools and use standard django admin panel

I rewrote dashboard.utils.get_app_index_dashboard function so it works, but not sure it will not provide further issues

Could you be more precise about the issue and publish the changes you made ? thanks.

okay,
when application verbose name is translated, the index dashboard of this app (e.g. /admin/<app_name>/) returns the list of all models registered on this site, not the models that belong to the app (as it should be)
example: django.contrib.auth app translated in russian:
before fix:

after:


Implement KEMTLS

Given that dc are now of the cf branch, KEMTLS can be implemented there as well. The KEMTLS functionality is implemented in the cf-pq-kemtls branch but needs to be updated to the latest DC code.
The task consists of:

[ ] Updating KEMTLS code to the latest DC code
[ ] Creating a parameter that allows the usage of KEMTLS and acts as a barrier so when it is set to false it cannot be used (for security purposes of TLS-1000).

cc./ @armfazh @thomwiggers @Lekensteyn


Separate query interface out of local.Storage.

PromQL only requires a much narrower interface than local.Storage in
order to run queries. Narrower interfaces are easier to replace and
test, too.
We could also change the web interface to use local.Querier, except that
we'll probably use appending functions from there in the future.

:+1:

:+1:

I embedded the SampleAppender interface now and moved the respective comments above it - does that seem sane?

👍


When publishing without hero, add warning to add seo image when using campain

When creating/editing a topic page and setting the isCampaign to true, the editors might not add a heroimage in the header fieldset as they might use the content component campain banner instead.
In this case, a warning should appear to tell editors to add a Open Graph Image under SEO& Metadata fieldset in the top.
"Please add an image to Open Graph Image when not using an header image"

closing this until it is needed again. Editors should have this in the task list to consider when toggling campaign mode


ShopifyAppFacade should be ShopifyApp

Docs instruct you to add this line to config/app
'ShopifyApp' => \OhMyBrew\ShopifyApp\Facades\ShopifyAppFacade::class,
but you should use this line
'ShopifyApp' => \OhMyBrew\ShopifyApp\Facades\ShopifyApp::class,
because ShopifyAppFacade does not exist.

Hey sorry... no notification came to me.
Thanks for noting this, I will fix this the weekend!


refactor: rename compose/dev to compose/web

This is a follow-up refactor of #552 to rename compose/dev to compose/web. We used dev because we used to have a prod folder that was removed in favor of k8s for production.
Now, we have two separated stacks:

a compose/web for a web app with user authentication
a compose/desktop stack without user authentication, and in the future will have local native runtime and file-backend.

Screenshot of the new stacks:


Chromely browser with miltiple tabs on Linux

I want to implement a browser based on Xilium.CefGlue that works on Windows and on Linux I found a solution with Chromely. I implemented the Browser according to this Chromely tutorial and it works fine on Windows and on Linux. Now I want to have more than one tabs. It seems to be possible, but chromely have to be extended as mentioned here.
I tried to use Avalonia and Chromely, but the are not compatible. I found this question talking about a "Chromely.CefGlue.Gtk.Linux.Demo"-Project but no code of that project.
Can someone help me please?

@christK9999

Now I want to have more than one tabs. It seems to be possible, but chromely have to be extended

Yes, that is true, Chromely is a one-window framework.
"Chromely.CefGlue.Gtk.Linux.Demo" is  based on Chromely.CefGlue.Gtk.Linux - old project that is not used anymore. If you want to work on extending Chromely.CefGlue.Gtk.Linux, you can see the updated code here - Chromely/NativeHosts/LinuxHost.
You can see related issues here:
https://github.com/chromelyapps/Chromely/issues/139
https://github.com/chromelyapps/Chromely/issues/185
But note that multi-tabs is not supported.
Thanks.

Thanks you for your reply.
I'm trying to solve it using Gtk now
Thanks :)


minor stylistic bug

Issue Type: Bug
HI!
There are inconsistent behaviors when find toolbar is open in editor.
with different scenarios:

When I open an empty file, and I press Ctrl+F, the editor is shifted below the find toolbar, and line 1 starts from an inappropriate place, like the find toolbar is shifting what is under it:

and when I start typing something, a more shifting happens, which (seems) is caused by that little git annotation.

also there is some inconsistent behavior with this find toolbar on non-empty files. If I have the find toolbar open and then open a non-empty line, git-annotation on first line is not shown. But if I first open the non-empty file and then press Ctrl+F, everything looks fine:

THANKS! Keep up the good work +1
VS Code version: Code - Insiders 1.31.0-insider (ece3a90fb58986570d8afdfb16530c4dd8c743af, 2018-12-14T06:19:42.976Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 x 2808)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
15.88GB (3.41GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (20)

Extension
Author (truncated)
Version

swagger-viewer
Arj
2.1.0

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

vscode-markdownlint
Dav
0.22.0

vscode-eslint
dba
1.7.2

githistory
don
0.4.4

gitlens
eam
9.2.0

tslint
eg2
1.0.41

vscode-npm-script
eg2
0.3.5

prettier-vscode
esb
1.7.2

vscode-nginx-conf-hint
han
0.1.0

Angular2
joh
7.0.1

camelcasenavigation
map
0.3.51

Angular-BeastCode
Mik
7.0.20

vsliveshare
ms-
0.3.1071

vscode-icons
rob
8.0.0

sass-indented
rob
1.4.9

vscode-nginx
sha
0.6.0

move-ts
str
1.11.3

html-css-class-completion
Zig
1.17.1

I did some experimenting, and this is what I found:
It seems that ~2 "virtual" lines of sorts are always added at the top of the editor. These virtual lines are not numbered, cannot be selected or marked in any way that I found, and disappear as soon as the find toolbar does.
The inconsistent behavior seems to stem from the fact that in some cases, the editor scrolls down an appropriate distance to adjust for the added virtual lines, and in other cases it doesn't.
This seems to depend mainly on how many lines there are in the file (leftmost column):

When the find toolbar is opened, the editor automatically scrolls downwards
and as a result, "real" lines shift downwards visually by

File contains more than 2 lines
~2 lines
2-2= 0 lines

File contains exactly       2 lines
~1 line
2-1= 1 line

File contains exactly       1 line
   0 lines
 2-0= 2 lines

Or as a list:

more than 2 lines: The editor scrolls down 2 lines, causing the "real" lines to shift 0 lines down visually.
exactly 2 lines:       The editor scrolls down 1 line,  causing the "real" lines to shift 1 line down visually.
exactly 1 line:        The editor scrolls down 0 lines, causing the "real" lines to shift 2 lines down visually.

It does not seem to make a difference whether the lines contain anything or are empty.
I have not tested any effects of the git annotation.

Thanks Azar! Good Job +1

I don't see any scrolling happening in the latest release. Extra lines are still added at the top to allow you to scroll to see anything that may be covered by the find widget


Update knative.dev/eventing.

Cherry-pick #724.
Proposed Changes

Update knative.dev/eventing.
Update the tests to match the breaking change from knative/eventing#2181.

Release Note

NONE

/test pull-knative-eventing-contrib-integration-tests

/test pull-knative-eventing-contrib-integration-tests
Boskos failure.

Sam error as two runs ago, Pods don't become ready:
"message": "Back-off pulling image \"gcr.io/knative-boskos-14/keventing-contrib-e2e-img/6832/transformevents:latest\"",

The problem is here:
>> Publishing test images
/home/prow/go/src/knative.dev/eventing-contrib /home/prow/go/src/knative.dev/eventing-contrib
/home/prow/go/src/knative.dev/eventing-contrib/test/e2e-tests.sh: line 104: cd: /home/prow/go/src/knative.dev/eventing: No such file or directory
find: './test/test_images': No such file or directory
/home/prow/go/src/knative.dev/eventing-contrib

This failure should fail the test, but it doesn't, thus you get confusing logs later.

Looks like #704 is the fix I want. Created #732 to cherry pick it into release-0.10.

/test pull-knative-eventing-contrib-integration-tests


Plugin slows some websites down

Slower load time sometimes leading to the browser freezing for a few seconds has been observed. So far it only appeared when using LinkedIn with the extension turned on.
Let's list sites on which we observe similar issues here:

https://www.linkedin.com/

As a temporary fix in v0.0.2 the extension is disabled for LinkedIn. As LinkedIn does not support C2PA anyway the impact is limited.

v0.0.4 features a lot of performance improvements. It is now re-enabled for all sites.


code

You have done a great job, when will the code be released

Thank you for your comment! The code will be released in the next few days, most probably the day after tomorrow

Hi kyl, the code has just been published. Thank you for your patience!


microScript : add list.join( separator )

hello,
In microscript, we do have string.split( separator ).
Could we have list.join( separator ) too ?

Hi,
You can achieve this in Microscript 2.0 using the prototypes feature:
List.join = function(separator)
if this.length > 0 then
local str = ""
for i in this
str = separator + str
end
return str.substring(1)
else
return ""
end
end
so:
a = ["a","b","c"]
print (a.join("-"))
it would output:
a-b-c

That function actually exists, but I don't think it's documented (I don't know when it was added).
You can type this in the console to test if a function exists
> [].join

[native function]

That means the function exists, so you can try to figure out how to use it. This:
> [1,2,3].join(", ")  // notice I added a space too

"1, 2, 3"


No Service

No matter where you look in technology, everything has an online component. But with the advancement of web technologies and mobile apps, offline is becoming a key characteristic. This talk covers what's necessary to make a WebApp offline, and some nifty stuff to help along the way.

:+1:

Great talk @ukmadlz. Thanks for coming!


ElastAlert & Elasticsearch Compatibility

Does Elastalert's latest version (master) supports ES 6.X?
I have ElastAlert 0.1.38 with ES v6.3.1 with ES Python Client fixed to 6.3.1: works perfectly fine.
I wanted to update my ElastAlert to the latest master branch.
I tried the following options but encountered some problem in all cases with current ElastAlert master & Elasticsearch 6.3.1.
 Skipping index creation.
INFO:elastalert:Starting up
INFO:elastalert:Queried rule Dead Man Switch  from 2019-07-15 09:51 UTC to 2019-07-15 10:06 UTC: 2049308 hits
WARNING:elasticsearch:GET https://elasticsearch-data:9200/elastalert-test_silence/_search?_source_include=until%2Cexponent&size=1 [status:404 request:0.033s]
ERROR:root:Error while querying for alert silence status: NotFoundError(404, u'index_not_found_exception', u'no such index')
ERROR:root:Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 1180, in run_all_rules
    num_matches = self.run_rule(rule, endtime, self.starttime)
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 897, in run_rule
    if self.is_silenced(rule['name'] + "._silence") or self.is_silenced(silence_cache_key):
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 1807, in is_silenced
    self.handle_error("Error while querying for alert silence status: %s" % (e), {'rule': rule_name})
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 1829, in handle_error
    self.writeback('elastalert_error', body)
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 1509, in writeback
    res = self.writeback_es.index(index=index, body=body)
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-6.3.1-py2.7.egg/elasticsearch/client/utils.py", line 76, in _wrapped
    return func(*args, params=params, **kwargs)
TypeError: index() takes at least 4 arguments (4 given)

ES Client >= 7 (v7.0.2) gives
Elastic Version: 6.3.1
Reading Elastic 6 index mappings:
Reading index mapping 'es_mappings/6/silence.json'
Reading index mapping 'es_mappings/6/elastalert_status.json'
Reading index mapping 'es_mappings/6/elastalert.json'
Reading index mapping 'es_mappings/6/past_elastalert.json'
Reading index mapping 'es_mappings/6/elastalert_error.json'
Index elastalert-test already exists. Skipping index creation.
INFO:elastalert:Starting up
WARNING:elasticsearch:GET https://elasticsearch-data:9200/elastalert-test/_search?size=1000 [status:400 request:0.042s]
ERROR:root:Error finding recent pending alerts: RequestError(400, u'search_phase_execution_exception', u'No mapping found for [alert_time] in order to sort on') {'sort': {'alert_time': {'order': 'asc'}}, 'query': {'bool': {'filter': {'range': {'alert_time': {'to': '2019-07-15T11:56:06.064798Z', 'from': '2019-07-15T11:55:06.064779Z'}}}, 'must': {'query_string': {'query': '!_exists_:aggregate_id AND alert_sent:false'}}}}}
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/elastalert-0.1.39-py2.7.egg/elastalert/elastalert.py", line 1537, in find_recent_pending_alerts
    res = self.writeback_es.search(index=self.writeback_index, body=query, size=1000)
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-7.0.2-py2.7.egg/elasticsearch/client/utils.py", line 84, in _wrapped
    return func(*args, params=params, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-7.0.2-py2.7.egg/elasticsearch/client/__init__.py", line 819, in search
    "GET", _make_path(index, "_search"), params=params, body=body
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-7.0.2-py2.7.egg/elasticsearch/transport.py", line 353, in perform_request
    timeout=timeout,
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-7.0.2-py2.7.egg/elasticsearch/connection/http_requests.py", line 155, in perform_request
    self._raise_error(response.status_code, raw_data)
  File "/usr/local/lib/python2.7/site-packages/elasticsearch-7.0.2-py2.7.egg/elasticsearch/connection/base.py", line 178, in _raise_error
    status_code, error_message, additional_info
RequestError: RequestError(400, u'search_phase_execution_exception', u'No mapping found for [alert_time] in order to sort on')
INFO:elastalert:Disabled rules are: []
INFO:elastalert:Sleeping for 899.818719 seconds

This error seems harmless though as the elastalert_status index is empty, and resolves on the next evaluation.
In general, how does the ElastAlert & Elasticsearch & Elasticsearch Client Compatibility work?

For me, the latest Elasticsearch version is detected correctly when i start up elastalert. Maybe it's an issue related to the specific version of ElastAlert you are running ...

The very first line of the readme states
Note: If you're using Elasticsearch 7, you'll need to install a beta release of Elastalert: pip install "elastalert>=0.2.0b"

Sorry this is working properly.. Thank you for trying and reporting issues. The master branch contains of bunch of compatibility changes for various version of Elasticsearch (separate code paths for es5, es6, es6.2, es6.6 😨 what a nightmare). I haven't extensively tested these. I'll make to sure to do so before releasing a new version. Might actually have time to do that this week.

Closing this! Thanks @Qmando


Remove bottom spacing from image by aligning it vertically

Closes #28

Could be solved without the necessity of fixing it with a workaround for firefox.


Cleaning of redundant code + disabled account locking

Good job with the refactoring! Code is cleaner and easier to read now.


docs - adds array type for options.use and options.fallback

Noticed that documentation is outdated for the options.use and the options.fallback types. As far as I can tell, they should also be able to be an array (especially since they are replacing the fallbackLoader and the loader options and they were able to be arrays): https://github.com/webpack-contrib/extract-text-webpack-plugin/blob/master/schema/loader-schema.js

/signed


How can I show edges in a VTU mesh?

I am trying to use vedo to plot an unstructured 3D surface mesh and here's what I did:
from vedo import load, show
surf_mesh = load('surface_mesh_with_topo.vtu)
show(surf_mesh)
And here's what was plotted:

As you can see, there is not a single edge shown here. The following screenshot shows how the mesh looks like in Paraview:

How can I show the edges of the unstructured mesh and set its colors?
Here is the mesh file:
surface_mesh_with_topo.vtu.zip

You can use:
from vedo import *

ug = UGrid('data/surface_mesh_with_topo.vtu')
print(ug.getArrayNames())

msh = ug.tomesh().scale([1,1,10]).lineWidth(0.1)

msh.cmap("jet", 'names001', on="cells").addScalarBar(c='w')

show(msh, axes=dict(digits=3), zoom=50)

Thanks very much for your help, @marcomusy. That is awesome. Now I can show the edges without any problems.

Hi @marcomusy ,
I've managed to show the edges but I am not sure how to show all nodes in a vtu file.
Here is the code that I use to try to plot the edges and nodes at the same time but only edges are shown:
from vedo import UGrid, show, screenshot

surf_file = 'surface_mesh_with_topo.vtu'
ug = UGrid(surf_file)

msh = ug.tomesh().lineWidth(2).lineColor('w')
bounds = [504827, 505227, 6416234, 6416634, 400, 600]
msh.crop(bounds=bounds)
sargs = dict(
    color='k',
    title='Elevation (m)',
    titleFontSize=12,
    horizontal=True,
    pos=(0.2, 0.01),
)
msh.cmap("coolwarm", 'Z', on='cells')
msh.addScalarBar(
    c='k',
    title='Elevation (m)',
    titleFontSize=40,
    pos=(0.75, 0.25),
    size=(50, 800)
)

# font = 'Calco'
# font = 'Comae'
font = 'Kanopus'
axes_opt = dict(
    xtitle='Easting (m)',
    ytitle='Northing (m)',
    ztitle='',
    xTitleColor='k',
    yTitleColor='k',
    xLabelColor='k',
    yLabelColor='k',
    xLabelSize=0.015,
    xTitlePosition=0.65,
    yTitlePosition=0.65,
    xLineColor='k',
    axesLineWidth=2,
    labelFont=font,
    titleFont=font,
)

# Add the tetrahedra for the observation points
tr_list = ['013', '014', '015', '016', '017']
ele_list = ['0116311', '0116349', '0116134', '0116171', '0267813', '0267886',
            '0282449', '0282517', '0253337', '0253404']
ele_vtu = []
iele = 0
for itr in tr_list:
    filename = 'element_iTr=' + itr + '_iObs=0001_idxEle=' + ele_list[iele] + \
        '.vtu'
    ele_vtu.append(UGrid(filename))
    iele += 1
    filename = 'element_iTr=' + itr + '_iObs=0001_idxEle=' + ele_list[iele] + \
        '.vtu'
    ele_vtu.append(UGrid(filename))
    iele += 1

# Add the nodes of the source refinements
node_vtu = UGrid('src_node_with_topo.vtu').tomesh()
# points = node_vtu.insidePoints()
node_crop = node_vtu.crop(bounds=bounds).c('r')

size = [2560, 1600]
show(msh, ele_vtu, node_crop, axes=axes_opt, size=size)
screenshot('src_obs_refinement_vedo.png')

And here is what I got (as you can see, no points are plotted and I would like to plot them as spheres and be able to control the point sizes)

Here is the zip file contains all the necessary data files:
Archive.zip
I guess I can convert the mesh to points and try to plot points instead of meshes but I do not know how to crop the points there, and it would be more straightforward if I can just plot things with the UGrid object.
Thanks in advance for your help!

If I understand you want to visualize the vertices of the colored mesh? If so try:
from vedo import UGrid, Spheres, show, screenshot, settings

settings.defaultFont = 'Kanopus'
settings.useParallelProjection = True # avoid perspective parallax
path = 'data/chddem'

ug = UGrid(f'{path}/surface_mesh_with_topo.vtu')

msh = ug.tomesh().lineWidth(2).lineColor('w')
bounds = [504827, 505227, 6416234, 6416634, 400, 600]
msh.crop(bounds=bounds)

msh.cmap("coolwarm", 'Z', on='cells').lighting('off')
msh.addScalarBar(
    title='Elevation (m)',
    titleFontSize=40,
    pos=(0.75, 0.25),
    size=(50, 800),
)

axes_opt = dict(
    xtitle='Easting (m)',
    ytitle='Northing (m)',
    ztitle='',
    xLabelSize=0.015,
    xTitlePosition=0.65,
    yTitlePosition=0.65,
    axesLineWidth=4,
    xrange=msh.xbounds(),
    yrange=msh.ybounds(),
)

# Add the tetrahedra for the observation points
tr_list = ['013', '014', '015', '016', '017']
ele_list = ['0116311', '0116349', '0116134', '0116171', '0267813', '0267886',
            '0282449', '0282517', '0253337', '0253404']
ele_vtu = []
iele = 0
for itr in tr_list:
    filename = f'{path}/element_iTr={itr}_iObs=0001_idxEle={ele_list[iele]}.vtu'
    ele_vtu.append(UGrid(filename))
    iele += 1
    filename = f'{path}/element_iTr={itr}_iObs=0001_idxEle={ele_list[iele]}.vtu'
    ele_vtu.append(UGrid(filename))
    iele += 1

# Add the nodes of the source refinements
node_vtu = UGrid(f'{path}/src_node_with_topo.vtu').tomesh()
node_crop = node_vtu.crop(bounds=bounds).c('r')

nodes = Spheres(msh.points(), r=1).c('k')

size = [2560, 1600]
show(msh, nodes, ele_vtu, node_crop, axes=axes_opt, size=size, zoom=1.2)
# screenshot('src_obs_refinement_vedo.png')

PS: your code looks REALLY good :) you're already mastering vedo :)
I made a few changes that you might like..

..you may also like this instead of addScalarBar:
msh.addScalarBar3D(
    title='Elevation (m)',
    titleSize=1,
    titleXOffset=2,
)

Wow, that is great! I like the 3D scalar bar. The ability to have the labels of the axes rotate with the mesh (being 3D) is awesome. However, I'd still like to ask two more questions:

How can I get the camera parameters once I rotate the view under the interactive mode? For example, the following picture is actually what I wanted for the final plot

I need to rotate the view in order to get what I want exactly. But if I need to change any parameters and rerun the script, then I need to rotate it again. I know I can set the camera position when calling show. But how can I know it in the first place?

I like all the axes labels that vedo can do! I can have control over the fontsize, etc, and it rotates with the view, which is awesome! I could not achieve this with PyVista (the reason why I am looking into vedo) because whatever I set as the fontsize, it will not be reflected in the final plot. I previously was using Paraview, and it was a mess when it comes to this issue. It is nothing even remotely close to being smart. However, as can be seen in the above picture, the text is still not super sharp and it is a bit blurry on the edges of the text. While being absolutely better than the other plotting tools I have tried, could it be made of publication quality?

Thanks a lot for your help!

How can I get the camera parameters once I rotate the view under the interactive mode?

Just press shift-C on the screen when you are happy with the view and it will print out a camera script that you can paste directly in your code.
The text looks blurry because you lack antialiasing (the actual text is polygonal, so it won't be blurry at any scale!).
What is your OS? Are you sure you did:
pip install -U git+https://github.com/marcomusy/vedo.git
What happens if you press shift-A in the scene (that should toggle antialiasing).
Otherwise you can set directly
settings.multiSamples = 8
You can also use pyvista with vedo axes, something like:
# ...
ax = vedo.Axes(mesh)
pyvista.add_actor(ax)

Thanks for the feedback

Sorry, I am pretty sure I did not use the code in Github. Now I do, and the issue is fixed. That elevation parameter is really convenient!
I can confirm that Shift-C and Shift-A do what you described. Now I am happy about this picture. I should be trying to reproduce something other pictures that I used to plot with Paraview just for fun. Thanks!

Oh, maybe one more question: How do I set the background color of the plot? Or, is there a way to trim the boundary white spaces after saving the screenshot? In PyVista, I would set the background using 'w' color and then I can use the following code to get rid of the white space of the screenshot
from wand import image

with image.Image(filename='src_obs_refinement_vedo.png') as imag:
    imag.trim(color=None, fuzz=0)
    imag.save(filename='src_obs_refinement_vedo_trim.png')

However, both GIMP and wand seem to be unable to trim the extra whitespace near the boundary for the screenshot taken suing vedo. Any ideas?

vedo can crop and visualize images, add at the end of the script:
from vedo import Picture
# ...
show(msh, nodes, ele_vtu, node_crop, axes=axes_opt,
     size=size, zoom=1.2, elevation=-45)

npimg = screenshot(returnNumpy=True)
pic = Picture(npimg)
pic.crop(left=0.15, right=0.1, top=0.1, bottom=0.1).write("a.png")
show(pic, axes=1, new=True, bg='black')

To change background color use:
show()..., bg="pink", bg2="yellow")  # bg2 defines a gradient color
Pressing 5and 6also does. Press hto see tthe full list of options.

Thanks for pointing out the Picture class, and also the magic 'h' button. That was totally hidden to me.
Using Picture works and I am able to crop the picture to what I want. However, I still think an automatic process would be great if possible. I think the algorithms used in wand just picks up the color at one of the corners and then crops anything that has the same color in the picture from the boundary to inside.
I have set both bg and bg2 to 'w', and I still cannot use wand to crop the picture, which is different from the pictures saved using Paraview and PyVista. With these two, as long as I set the background to 'w', both GIMP and wand works.
I am happy even just using Picture, though.

uhm.. maybe if you add at the beginning:
settings.rendererFrameWidth = 0
then it might work?
What is your operative system?

Sorry, I forgot to mention it. My OS is Mac OS Big Sur.
When you say it might work, what are you referring to? Is it the wand thing?
Adding settings.rederFrameWidth  = 0 did not work for the wand solution. What does that do?

Mac OS Big Sur version 11.3 ? (i'm asking for other reasons)
What it does is to remove a thin border which is drawn to separate multiple subwindows in the same rendering window (when they exist).
If that doesn't work I'll try to investigate why wand is unable to do the job.

11.2.3. I am about to update the OS but have not done that.
I think from what I saw, that did not solve the problem for wand.

well.. this is strange... your wand code above works perfectly fine on my mac! it trims the image correctly..

Does that mean I need to upgrade my OS??!!

I have no idea, ..but I doubt it!


Testing Sphinx with numpydoc

Switch on numpydoc Sphinx extension, and have a go at re-formatting the shepseg module, to see how it might look. This is very much just to test and see. Initially only modified the shepseg module. It took a couple of hours, I think, but not too bad.
Ping @gillins
No rush. When you get a moment, have a look at the rendered RTD page, and at the original code, and see what you think.
I think it is do-able, if we want to. It certainly does lots of nice formatting without the really dense docstrings that raw Sphinx requires, but it does still require some discipline. I have left some of the docstrings raw, because some are nice and short as they are, without needing much formatting. Or we could get really rigid and make everything conform to the same pattern. I dunno.....
I used the References facility in the main module docstring, which seems nice, but also perhaps overly complicated.
The See Also section automatically makes links out of things, which is cool, but also more complicated.
No urgency at all, just playing because I can. :-)

Yes - you are right. I'll update.

One other thing. I have been using SegIdType for the type of things which are segment ID numbers, since that is the type I defined for it. I think it is worth saying this explicitly, rather than just int, to emphasize what is going on.

I did wonder about removing that checkSegCompleteSpatial function :-)
On the topic of faking @jitclass. I have something which works, although my attempts to make it as neat as possible have run into weirdness at several levels. It is usable, though. So, do you think I should put it into this PR now? That way, you can see what I am doing, and the final rendered doc will at least be complete.

Happy to do whatever you this is best with @jitclass. Yep if you think it makes sense to go in here, that's fine with me.

OK. I will do a final check, and then merge this PR, as is.
After that, I will start a new one for the jitclass thing.


Add Support for Reth Client

Changes:

Add Reth client to Mainnet, Holesky, and Sepolia networks

Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Testing
Requires testing

[x] Yes
[ ] No

In case you checked yes, did you write tests?

[ ] Yes
[x] No

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 86.59%. Comparing base (3df8466) to head (ec4832e).
Report is 1 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #376   +/-   ##
========================================
  Coverage    86.59%   86.59%
========================================
  Files           78       78
  Lines         3977     3977
========================================
  Hits          3444     3444
  Misses         448      448
  Partials        85       85

Flag
Coverage Δ

unittests
86.59% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.