HRV has an algorithmic issue - ecg_hrv

There is an omission in the heart rate variability calculations in function ecg_hrv(...) that may potentially affect the results, especially for the spectral domain methods.
The calculation of HRV is based on the RR intervals (rri variable in the code). However, rri is indexed at every heartbeat, so it is not uniformly sampled. A common practice is to interpolate the original rri signal and then resample it uniformly. Every subsequent HRV computation should occur in the resampled interpolated rri signal, not the original one that was computed just by subtracting adjacent RRs. If this does not happen, and the HRV computations are based on the original rri, the spectrum will not be a function of frequency but instead it will be a function of cycles per heartbeat.
The following papers decribe this issue in detail:
https://www.researchgate.net/publication/225086966_Role_of_Editing_of_R-R_Intervals_in_the_Analysis_of_Heart_Rate_Variability
http://www.apsipa.org/proceedings_2014/Data/paper/1366.pdf
Inside the ecg_hrv function, which is included in bio_ecg.py, in lines 563-565, there is an attempt to resample the raw rri values. However, what is done is only a scaling of RR values to a sampling rate of 1000Hz. It is not an actual inerpolation and resampling.
So to summarize, I think that the following proceedure should be followed for the HRV measures:

calcualtion of original rri (done already): rri=f(heartbeat)
interpolation on the rri using 3rd order splines: rri_interp
resample rri_interp (perhpas to 1KHz) in order to get rri2=f(t)
all subsequent HRV calculations will be based on rri2

@bbonik Thanks a lot for noticing this issue and suggesting improvements!
So I think you're reffering to these lines within ecg_hrv:
# Resample RRis as if the sampling rate was 1000Hz
rri = rri*1000/sampling_rate
rri = rri.astype(float)

# Preprocessing
outliers = np.array(identify_outliers(rri, treshold=2.58))
rri[outliers] = np.nan
rri = pd.Series(rri).interpolate()

If i  understand you correctly, you suggest to change the order of the steps, such as:
# Interpolation using 3rd order splines
rri = pd.Series(rri).interpolate(method="cubic")

# Resample RRis as if the sampling rate was 1000Hz
rri = rri*1000/sampling_rate

# Outliers treatment
outliers = np.array(identify_outliers(rri, treshold=2.58))
rri[outliers] = np.nan
rri = pd.Series(rri).interpolate()

Would that be better?
Again, thanks for your comment 😄

Alright, so following your advices I've reworked the RRis preprocessing a bit:
    # Initialize empty dict
    hrv = {}

    # Preprocessing
    # ==================
    # Basic resampling to 1000Hz to standardize the scale
    rri = rri*1000/sampling_rate
    rri = rri.astype(float)

    # Artifact detection - Statistical
    for index, rr in enumerate(rri):
        # Remove RR intervals that differ more than 25% from the previous one
        if rri[index] < rri[index-1]*0.75:
            rri[index] = np.nan
        if rri[index] > rri[index-1]*1.25:
            rri[index] = np.nan

    # Artifact detection - Physiological (http://emedicine.medscape.com/article/2172196-overview)
    rri = pd.Series(rri)
    rri[rri < 600] = np.nan
    rri[rri > 1300] = np.nan

    # Artifact treatment
    hrv["n_Artifacts"] = pd.isnull(rri).sum()/len(rri)
    if artifacts_treatment == "deletion":
        rri = rri.dropna()
    if artifacts_treatment == "interpolation":
        rri = pd.Series(rri).interpolate(method="cubic")  # Interpolate using a 3rd order spline
        rri = rri.dropna()  # Remove first and lasts NaNs that cannot be interpolated

Basically it is a three steps approach, 1) Standardize the scale (to be in milliseconds), 2) finding the artifacts (statistically and physiologically) and 3) artifacts treatment with a new parameter to control if interpolation is used or not. Indeed, some papers (this one) suggest that a simple deletion is a better method... Anyway, I left 3rd order spline interpolation as the default. I've also stored the percentage of detected artifacts.
What do you think?

Sorry. I will be able to give a more comprehensive suggestion on Tuesday,
when I will return to the office.
Thnx
V
On Sun, Jun 25, 2017 at 12:31 AM, Dominique Makowski <
<EMAIL_ADDRESS>wrote:

Alright, so following your advices I've reworked the RRis preprocessing a
bit:
# Initialize empty dict
hrv = {}

# Preprocessing
# ==================
# Basic resampling to 1000Hz to standardize the scale
rri = rri*1000/sampling_rate
rri = rri.astype(float)

# Artifact detection - Statistical
for index, rr in enumerate(rri):
    # Remove RR intervals that differ more than 25% from the previous one
    if rri[index] < rri[index-1]*0.75:
        rri[index] = np.nan
    if rri[index] > rri[index-1]*1.25:
        rri[index] = np.nan

# Artifact detection - Physiological (http://emedicine.medscape.com/article/2172196-overview)
rri = pd.Series(rri)
rri[rri < 600] = np.nan
rri[rri > 1300] = np.nan

# Artifact treatment
hrv["n_Artifacts"] = pd.isnull(rri).sum()/len(rri)
if artifacts_treatment == "deletion":
    rri = rri.dropna()
if artifacts_treatment == "interpolation":
    rri = pd.Series(rri).interpolate(method="cubic")  # Interpolate using a 3rd order spline
    rri = rri.dropna()  # Remove first and lasts NaNs that cannot be interpolated

Basically it is a three steps approach, 1) Standardize the scale (to be in
milliseconds), 2) finding the artifacts (statistically and physiologically)
and 3) artifacts treatment with a new parameter to control if interpolation
is used or not. Indeed, some papers (this one
https://www.ncbi.nlm.nih.gov/pubmed/7519408) suggest that a simple
deletion is a better method... Anyway, I left 3rd order spline
interpolation as the default. I've also stored the percentage of detected
artifacts.
What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/neuropsychology/NeuroKit.py/issues/10#issuecomment-310849027,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATaOLr3Mjty7cHd3ol7BKMbTqQg0ZEDYks5sHTntgaJpZM4ODUUJ
.

I will try to explain what I mean with some code. I specifically use different names for the variables. I substitute rri with RRIbeat to highlight that it is indexed on the heart beats. Later I compute the RRIs as a function of time (not as a function of heartbeat). This is an important step for spectral HRV methods. Same approach is also used in the hrv toolbox.
  % assumed inputs
  % R[ ]: an array of the samples on which an R spike is detected (outputed from the bioSSPy toolbox)
  % frequency: the frequency (in Hz) which was used to sample the original ECG signal

  RRIbeat = np.diff(R) #RR intervals (in samples) indexed per beat
  RRIbeat = RRIbeat.astype(float)
  RRIbeat= RRIbeat/frequency #RR intervals (in sec) indexed per beat

  # your outlier detection code here (statistical and physiological)

  # dealing with outliers, resampling and converting RR intervals to a function of time (not a function of beats)

  outlierIndices=np.argwhere(np.isnan(RRIbeat)) #get the indices of the outliers
  RRIbeat=np.delete(RRIbeat,outlierIndices) #remove the outliers from the RRIbeat signal

  # resampling RRIbeat signal in order to make it a function of time (not a function of beat)

  beatTime=R[1:] # the time (in samples) at which each beat occured (and thus the RR intervals occured) starting from the 2nd beat
  beatTime=np.delete(beatTime,outlierIndices) #delete also the outlier beat moments
  beatTime=beatTime/frequency # the time (in sec) at which each beat occured, starting from the 2nd beat
  beatTime=beatTime-beatTime[0] #offseting in order to start from 0 sec

  # fit a 3rd degree spline in the RRIbeat data. s=0 guarantees that it will pass through ALL the given points
  spline = interpolate.splrep(x=beatTime, y=RRIbeat, k=3, s=0)

  # RR intervals indexed per time (as oposed to per beat in RRIbeat). Resampled at 1000Hz
  RRI = interpolate.splev(x=np.arange(0,beatTime[-1],1/1000), tck=spline, der=0)

  # plotting

  plt.figure(figsize=(20, 3), dpi=100)
  plt.scatter(np.arange(RRIbeat.shape[0]),RRIbeat,s=1)
  plt.grid(True)
  plt.title('RRI indexed per beat')
  plt.ylabel('RR interval duration (sec)')
  plt.xlabel('#beat')
  plt.tight_layout()
  plt.show()

  plt.figure(figsize=(20, 3), dpi=100)
  plt.plot(RRI,'b-',linewidth=0.5)
  plt.grid(True)
  plt.title('Resampled RRI indexed per time')
  plt.ylabel('RR interval duration (sec)')
  plt.xlabel('Time (sec)')
  plt.tight_layout()
  plt.show()

@bbonik First of all, let me say thank you for  taking the time to write some well-documented code, it was a pleasure  to read it (even if the most mathematical bits (the spline fitting) remain (and will remain) quite nebulous for me 😆 ).
Now I understand what you mean by "as a function of time", as a sort of continuous signal. I didn't get that the first time.
Well your code works nice, I suggest we keep it. I made a few changes regarding the variable names (to maintain some coherence accross the package).
However, I have noticed something odd. Once I got my HRV "signal" (ie, a continuous signal function of time), I've tried to pass it to the main signal dataframe. However, if I plot the HRV signal with the ECG signal, The HRV seems quite shorter and doesn't go to the last beat (see attached figure). Is that normal?
The code is pasted below and is also, along with the data, available here
import numpy as np
import pandas as pd
import neurokit as nk
import matplotlib.pyplot as plt
import scipy

df = pd.read_csv('normal_ECG.csv')
df = df.loc[10000:20000]  # Select 10s of signal

sampling_rate=1000
df = nk.bio_process(ecg=df["ECG"], sampling_rate=sampling_rate)

# Extract useful things
rri = df["ECG"]['RR_Intervals']
rpeaks = df["ECG"]['R_Peaks']

# Initialize empty dict
hrv = {}

# Preprocessing
# ==================
# Basic resampling to 1Hz to standardize the scale
rri = rri/sampling_rate
rri = rri.astype(float)

# Artifact detection - Statistical
for index, rr in enumerate(rri):
    # Remove RR intervals that differ more than 25% from the previous one
    if rri[index] < rri[index-1]*0.75:
        rri[index] = np.nan
    if rri[index] > rri[index-1]*1.25:
        rri[index] = np.nan

# Artifact detection - Physiological (http://emedicine.medscape.com/article/2172196-overview)
rri = pd.Series(rri)
rri[rri < 0.6] = np.nan
rri[rri > 1.3] = np.nan

# Artifacts treatment
hrv["n_Artifacts"] = pd.isnull(rri).sum()/len(rri)
artifacts_indices = rri.index[rri.isnull()]  # get the indices of the outliers
rri = rri.drop(artifacts_indices)  # remove the artifacts

# resampling rri signal in order to make it a function of time
beat_time = rpeaks[1:]  # the time (in samples) at which each beat occured (and thus the RR intervals occured) starting from the 2nd beat
beat_time = np.delete(beat_time, artifacts_indices)  # delete also the artifact beat moments
beat_time = beat_time/sampling_rate  # the time (in sec) at which each beat occured, starting from the 2nd beat
beat_time = beat_time-beat_time[0]  # offseting in order to start from 0 sec

# fit a 3rd degree spline on the beat_time data.
spline = scipy.interpolate.splrep(x=beat_time, y=rri, k=3, s=0)  # s=0 guarantees that it will pass through ALL the given points

# Get the RR intervals indexed per time
rri_new = scipy.interpolate.splev(x=np.arange(0, beat_time[-1], 1/sampling_rate), tck=spline, der=0)

# CHECK
#==============

# plotting
plt.figure(figsize=(20, 3), dpi=100)
plt.scatter(np.arange(rri_new.shape[0]), rri_new,s=1)
plt.grid(True)
plt.title('RRI indexed per beat')
plt.ylabel('RR interval duration (sec)')
plt.xlabel('#beat')
plt.tight_layout()
plt.show()

plt.figure(figsize=(20, 3), dpi=100)
plt.plot(rri,'b-',linewidth=0.5)
plt.grid(True)
plt.title('Resampled RRI indexed per time')
plt.ylabel('RR interval duration (sec)')
plt.xlabel('Time (sec)')
plt.tight_layout()
plt.show()

data = df["df"][["ECG_Filtered"]].copy()
data["ECG_HRV"] = np.nan
data["ECG_HRV"].ix[rpeaks[0]+1:rpeaks[0]+len(rri_new)] = rri_new

#  nk.z_score(data).plot()
nk.plot_events_in_signal(data, rpeaks)

Hi. Some things to take note:

This type HRV signal is used mainly for the frequency domain analysis. Not necessarily for the time domain analysis. This means that you may have 2 HRV signals. One for time domain analysis (rri) one for the frequency domain analysis (rri_new)
The rri signal will always be 1 beat shorter, since it is computed as a difference between heart beats.
After the outlier detection, if it happens that you discard some outliers, the HRV signal (without the outliers) will be shorter compared to the original length of the ECG which contains also the outliers.

Regards

@bbonik I've made the suggested changes. It's way better now, although some HRV indices computation have to be checked by an expert. I'm closing this issue, as the main topic has been addressed. Again, thanks A LOT. Feel free to make any other comments/contributions!


A question about graph generation for dataset

Hi, I am trying to understand the "VarMisuse" task and i have run the code successfully. While I am reading dataset of the task, I find the dataset contains pre-generated graphs stored in *.gz from source projects. However, I cannot find code about the graph generation. If it is convenient, could you please tell me is there any code about the preprocessing?
Thanks a lot!

Heya,
The code for the VarMisuse data extraction has sadly not been open-sourced, but a related graph extraction (for a related, but different task) has been released in https://github.com/microsoft/graph-based-code-modelling/.
Marc


Fix INDEX to IND instead of STK

Simple change to alter the contract to support INDEX products.

thx


Feat: IconButton - color="black"

What
This adds "black" as a valid Color and wires it in so that IconButton can display a black button
Why
A design I am working from is wanting to use a round button that is black:

Story
There is a new story in this PR that renders IconButton using all color prop values that it accepts:  As of now that looks like this:

Notes
IconButton isn't the exact component I need to implement that design (locall in my feature branch I have a very ugly hack that is passing in a fake icon componenttype that can render text 1,2,3,4, etc... inside instead of an Icon
In a separate PR I am going to be proposing a new RoundButton component (I will take absolutely any and all suggestions for naming it!) that will allow the round button design used in IconButton to be used to render a button of fixed size with text children.  That is not this PR.

Closing for now


Document $PACMAN

$PACMAN variable description is missing in the manpage and README or am I missing something?

As stated in the environement section of the man page, this is documented in makepkg(8). Since there is no special behaviour about it, there is no need to duplicate it.

Isn't there variable pacmanBin and not PACMAN? I thought pacmanBin is meant to be set at build time and PACMAN at runtime.
I'd also say that there is no need to detail it, but it is not even mentioned in the main help pages. Is it really that optimal solution to have variable descriptions scattered around like that? How do I access the description after package is installed if I don't have the source (since I consider that to be temporary files and mount the package download/build folder to /tmp)?

pacmanbin is an internal variable, it is not meant to be used directly.
Pacaur is built on the assumption that the user knows about pacman and makepkg. As such, there are a LOT of environment variables and commands that aren't directly documented but that "just work" as pacaur is a makepkg and pacman wrapper. Duplicating all the pacman and makepkg documentation doesn't make sense, but referring to that documentation in the man page does (and is indeed done).
What is missing is a check to prevent $PACMAN to be set to pacaur (see #717). That commit will be pushed in the repo soon.

How do I access the description after package is installed if I don't have the source (since I consider that to be temporary files and mount the package download/build folder to /tmp)?

That's not the default behavior, and thus your problem. I frankly don't care that you don't want to read makepkg or pacman man page.

I have read both pacman and pacaur manpages before and I agree on the default behavior part. What I've missed is makepkg's manpage. And what you've missed is that I only tried to help, even though wrong. No need for cockiness, although I like your style.


zkEVM prover backend

Similar to #1193, but in here I am just interested in having it working end-to-end, at least for a few cases, so that everybody can try it and build upon.

tests are failing

tests are failing

And the funny thing is, locally the broken test pass.

@lvella are there any tests that are using the new prover?

@lvella are there any tests that are using the new prover?

No. Maybe I should put just one that is known to work in one of the slow subsets?

tests are failing

I think this PR is almost there, I'm running some tests locally.
For future PRs I think we should

make sure all tests pass or at least understand why they're not passing
re-use previously generated consttree/C files
be able to use starky for consttree generation (I think we depend on starky here)

My difficulty now is the deployment of the dependencies on the test run machines. I can bypass this difficulty entirely by not running the test on the PR.

You can still run it locally.

Yea but that means it'll be constantly out of sync and  break silently

Lets merge this, please.

Lets merge this, please.

Well I was waiting for the tests to pass


Add basic theoretical background on Mapper algorithm

This is for the time being only the basic skeleton and references, has to be extended in the future.

Coverage remained the same at 100.0% when pulling e52b04e43b115f3b12dba68a5e2f17d12fe0759e on about_mapper into e3ef25a648ec1ddf49c0baeb6da5b1612c51dff1 on master.


Question: How can I evaluate some code to determine the route to navigate to?

Hi,
I am loving all these ngrx libs.
Right now I am using @effects which listen for my custom router actions e.g. CUSTOMER_PAGE_FORWARD and then navigate with the Angular router.  If the state needs to be interrogated to determine where to navigate I can do this directly in the @effect.    Where should this code go?
Thanks, Simon

You would map your custom router action to a router-store action and that action will be picked up and navigation would occur.

Would you mind giving a quick example?
Thanks, Simon

So basically, exactly how I have it now!
Thanks so much @brandonroberts.

I'm having trouble navigating with router-store in a lazy loaded module. I'm doing the same thing as shown by @brandonroberts but nothing is happening. Is there something additional that I have to include in my lazy loaded ngmodule for it to work?

@IliaIdakiev can you provide an example of what you're trying to do? Preferable in a new issue since this issue is closed.


CompoundTag should be backed with a Dictionary

The current CompoundTag implementation behaves akin to a dictionary, but through layers of abstraction, it is actually backed by a list (see #15 ).  This works in practice, but breaks the constant-time lookup speed of the CompoundTag.
This proposal is complete #15 and provide and use an actual dictionary for storing child tags.

Complete with a4ecca8


upgrade to v4

It fails in v4, I made an issue for this
https://github.com/remotion-dev/remotion/issues/2510

@patsalv Just noticed this:
Version mismatch:
- On version: 4.0.4
  - @remotion/bundler
  - @remotion/cli
  - @remotion/eslint-config
  - @remotion/eslint-plugin
  - @remotion/renderer
  - @remotion/player
  - @remotion/three
  - remotion

- On version: 4.0.1
  - @remotion/media-utils

BTW: The render failure is already tracked in the main Remotion repo


Setting poses via script

Hi there,
I updated now to steamVR v. 2.2 and using Unity v. 2018.3.4f1.
It is really nice and comfortable to create a pose and attache it to an interactable object.
In my case I need to create an area around my menu where my hand need to be in a pointing pose.
So I created a Transform with a collider and the skeleton_Poser component. There I defined my pose.

In my UINearField component I am looking for a OnTriggerEnter() and want then to change my pose by
leftHand.skeleton.BlendToPoser(skeletonPoser); (same for the right hand)
For my right hand this work very well but my left hand always looks like it got smashed by a big hammer.

I tried it with different poses but always the same result.
I looked into skeleten_Poser and saw that you safe the blendSnapshots for both hands so I don't really unterstand why my left hand is always that broken.
My 2. question to this topic is, how can I get back to my grabing pose?
I defined a second pose in the skeleton_Poser component but with leftHand.skeleton.BlendToPoser(skeletonPoser);
I can only set the main pose. I could use leftHand.skeleton.BlendToPoser(skeletonPoser.GetPoseByIndex(X)); but this only returns a pose where I need a poser.
What do I miss or is it not intended to set a pose outside an interactable object?

you can blend back to the skeleton using leftHand.skeleton.BlendToSkeleton();
I'll have to look into the one hand being broken more and get back to you.

That's an odd bug. Can you try using that pose on an interactable and see if it breaks as well? If so, there's something wrong with the poses you're making. If not, there's something wrong with the way you're applying the pose. Also, have you tried some of the built in poses, or just ones you've authored?
Also, when you want to blend to multiple poses on a single SkeletonPoser, you just need to add a blending behaviour and set the weight of it via code. Seems like that's not what you're trying to do, but it's good to know.

Hey there,

you can blend back to the skeleton using leftHand.skeleton.BlendToSkeleton();
that works perfectly. Thank you.

So, my code is now like this
`
public SteamVR_Skeleton_Poser skeletonPoser;
    private void OnTriggerEnter(Collider other)
    {
        if (other.transform.IsChildOf(leftHand.transform))
             leftHand.skeleton.BlendToPoser(skeletonPoser);

        if (other.transform.IsChildOf(rightHand.transform))
             rightHand.skeleton.BlendToPoser(skeletonPoser);
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.transform.IsChildOf(leftHand.transform))
             leftHand.skeleton.BlendToSkeleton();

        if (other.transform.IsChildOf(rightHand.transform))
             rightHand.skeleton.BlendToSkeleton();
    }

`
and I tried out different poses and got still a similiar broken hand. After some test a found out, that this happen, when one of the left finger movement enums is something else then static .
On the right hand it doesn't matters.
When I got this error and pull then the trigger, then the hand move to his defined pose and then move back to a broken state.
The broken state of the left hand looks like the left hand tries the pose of the right hand. That's why it looks like "inside-out".
I thought that the movement types free extendet means, that the finger can move between the defined pose and the default pose from before. But this only works for the right hand.
I am not sure if this is only up to me. Maybe someone can test it now a little bit better. For the moment I can use static fingers and it is enough that way.
Thank you for your response.

Thanks for continuing to troubleshoot this with us. Is this true for everything besides static? Or just Free? Free will match the orientation of the finger without the pose so it might make sense if it was going into the pose of the rest of your hand.

Thanks for continuing to troubleshoot this with us. Is this true for everything besides static? Or just Free? Free will match the orientation of the finger without the pose so it might make sense if it was going into the pose of the rest of your hand.

Thank you for your work.
This is true for everything besides static. So this is what I got.

So, regarding this question, I got it working as described here, but when I use "BlendToSkeleton()" it seems that my pose is overwritten somewhere, as as soon as I use the "Interactable" script, and change the index of "Hand Animation on Pickup" from 0 to 1, this pose has been changed to the one I setup when using "BlendToPoser(skeletonPoser)". However, if I dont set the poser, the original pose from "Hand Animation on Pickup" appears, it only changes when "BlendToPoser(skeletonPoser)" has been executed at least once.
Is this meant to happen like this?

Heya this may be fixed in the beta version of the plugin here: https://github.com/ValveSoftware/steamvr_unity_plugin/releases/tag/2.3b1

Sounds like this was fixed in 2.3.2. Closing.

Hi, I had the same issue. Also, my issue was either with the Left or the Right hand (depending on which controller was activating first). I noticed that when I press the system button of Vive controllers, the pose was getting corrected to the expected pose (from this twisted inside out thing). I thought that there was something with the Mirroring. However, I managed to solve it by using a very simplistic solution. I created two identical triggers, one for the Right controller and one for Left Controller. In each trigger, I had a simple script (OnTrigger Enter/Exit), where I change the pose of the respective Controller/Hand.  So, two identical Triggers(Colliders), with the same Skeleton Poser (identical, like when you're copying and pasting the component), but with a different script in each one, where the event of each script changes the pose of a single controller. Hope that my simple solution might help someone stuck, to get around of this annoying issue.


Publish to pypi github template

Hi @jnoortheen!
I'm trying to publish xontrib based on xontrib-template to pypi - https://github.com/anki-code/xontrib-jump-to-dir/blob/4c505cc37b7e426f82ccda21564f94b5971f5f02/.github/workflows/release.yml#L58-L61
And I'm facing with issue:

How I should fix this?
Please fix xontrib-template to avoid this error for the new template users.
Thanks!

How I should fix this?

since setuptools is used for package management, you can use pip install .[doc] to install the dependencies for documentation

Please fix xontrib-template to avoid this error for the new template users.

That part is commented since it is not ready for use and needs some tweaking.


SharePoint restores have incorrect filenames

Seems like merging https://github.com/alcionai/corso/pull/2496 has caused problems with SharePoint. SharePoint backups now store files with IDs instead of names. The name information is not available at all as we don't store metadata for SharePoint. This also causes the restores to restore with the item IDs instead of actual file names.

fixed in #2898


Tupperbox not working

Tupperbox suddenly stopped working on my server.

Tupperbox will be unable to reconnect for about an hour. Please join the support server for status updates: https://discord.gg/6WF6Z5m


Add parameter to all linters

Hi,
I have to add a parameter to all linters: -tags gtk_3_18 because I'm using the github.com/gotk3/gotk3/gtk lib.
I've read this issue #176 to specify a new parameter by overriding the linter.
 A more maintainable one ?
Thanks for your help

How many of the linters support tags?

Hi @alecthomas @krostar
I'm the author of the optional linter client9/misspell
Could you help me understand I bit more since I'm having a hard time following this and #176 .  By "tags" do we mean "build constraints" or "build tags" ala https://golang.org/pkg/go/build/#hdr-Build_Constraints
If so the linter would ignore items with
// +build ignore

and if -tags windows was specified with the following file
// +build linux

would be skipped as well.  etc.
I'll assume so.
@alecthomas not sure how the nolint tag is retrieved.  I would be nice if gometalinter provided the build-tag selectors, else it's gets messy. I'm happy to add -tags support, but will get tricky to get everyone to implement it.
thanks all!
n

I think this is one of those things that linters themselves need to support, and IIUC many (most?) of them do not.
nolint is handled by parsing source and walking the AST. Emulating build tag support would be... painful, and I'm pretty sure it would mask underlying issues. eg. the case where a linter fails to parse an entire package due to build tag issues, and thus is not reporting actual issues. IMO it's better to report these directly so at least users know that the linter is failing.
That said, I'm open to ideas...

I'd be interested in --tags too.  To be specific this should be an option for gometalinter which is passed to the linters where they support tags.  If they don't support tags, then that is OK.
I use tags to enable compilation of optional modules.  If you don't set the tags then the linters which support them won't check the optional modules.
-tag is supported by errcheck.
$ errcheck -h
...
  -tags value
    	space-separated list of build tags to include
...

And also by vet
$ go tool vet -h
...
  -tags string
    	space-separated list of build tags to apply when parsing
...

Another possible way to override the commands is in the config file itself, here's mine for e.g.
{
  "Linters": {
    "unused": "unused -tags integration:PATH:LINE:COL:MESSAGE",
    "gosimple": "gosimple -tags integration:PATH:LINE:COL:MESSAGE"
  },
  "Enable": [
    "deadcode",
    "varcheck",
    "structcheck",
    "goconst",
    "ineffassign",
    "unconvert",
    "misspell",
    "gosimple",
    "unused"
]}

It's not ideal because it's still coupling the command with the pattern,  but I found it easier to do this as opposed to overriding on the CLI.

Please consider adding gometalinter supports for -tags (or --tags) to correspond to the go build -tags 'mytag' functionality.
Any linter that doesn't support a -tags param will probably generate bad output for any project that uses them for Build Constraints (as @client9 mentioned above). It'd be much preferable for some linters to support a single pass-through from gometalinter, than the current behavior.
The workarounds mentioned above are pretty horrible/unusable. If I'm going to have to manually configure each linter (1 by 1), there is significantly less incentive to use gometalinter at all.
Thanks.


Fix unbuild of lines

Lines are not in the air, so unbuild them is not to fill the with air but with a dirt block.

Already done!


[type: feature] add http file to examples[grpc,http,spring cloud]

add http file to examples[grpc,http,spring cloud]  [#2044]
other examples project learning, subsequent submission
work list:

[ ] add http file to examples[grpc,http,spring cloud]
[ ] remove HttpServerConfig#environment [shengyu-examples-http], it never used
[ ]  add ShenyuWebHandler#ShenyuWebHandler()[shengyu-web] java docs, it build warning

Hi, can you  exec  mvn clean install  Before the Pull Request？

Hi, can you exec mvn clean install Before the Pull Request？

yes, exec it in local

I don't know why the build failed，
I read build log
Error:  Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project shenyu-admin: Compilation failure
Error:  /home/runner/work/incubator-shenyu/incubator-shenyu/shenyu-admin/src/test/java/org/apache/shenyu/admin/AbstractReflectGetterSetterTest.java:[115,55] cannot access com.sun.beans.introspect.PropertyInfo

I didn't modify these


How do i get the "token" info to complete cofiguration?

Describe Your Problem:
I only use/have email/password credentials and not token.   I am not able to login into my Yale Connect account from this integration.
Logs
[9/2/2023, 3:14:19 PM] [YaleHubConnect] Validated Error: Error: Unable to initilize Yale Connect Client due {"Messages":[{"Code":8000,"Description":"The Application Token is invalid or it doesn't have the Privileges for executing the requested method."}],"Status":2}

**Plugin Config:**

```json
          "name": "YaleHubConnect",
            "credentials": {
                "email": "email",
                "password": "Password"
            },
            "options": {
                "logging": "debug"
            },
            "platform": "YaleHubConnect"
        }
    ]
}```

**Environment:**

* **Plugin Version**: v1.4.2
* **Homebridge Version**: v1.6.1
* **Node.js Version**: [v18.17.0]
* **Operating System**: MacOS

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->

Same question here, I can't find any mention of a token in the Yale app, website or anywhere else

Any update?

Hi! i'm also looking for how you do obtain the token you're requesting. Do you have any pointers?

Hi! Also looking for how to obtain the token..


Deno Support

Current efforts to port implementation to typescript should in theory unlock Deno support, however there may be differences in packaging required or other changes needed.
This issue has been created to track any Deno specific changes that might be necessary

@nact/core works in deno via Skypack


Fix the reference frame used for spatial pic analysis after LTR frame loss

In unit tests for LTR frame loss (e.g.
EncodeDecodeTestBase/EncodeDecodeTestAPI.GetOptionLTR_Engine/0 and
a lot of other tests within EncodeDecodeTestBase/EncodeDecodeTestAPI),
the spatial pic analysis used an uninitialized picture as reference
picture, making the whole analysis step completely useless (and
later mode decisions are done on top of this, making the mode decisions
completely random).
When this uses an uninitialized picture, it uses picture index
iRefTemporalIdx = 4 (m_uiSpatialLayersInTemporal[kiDidx] +
pCtx->pVaa->uiValidLongTermPicIdx = 3 + 1), while nothing in
UpdateSpatialPictures ever actually moves any reference picture
into index slot 4 (only into index 3).
This fixes issue #1362 on github, making sure that the
EncodeDecodeTestBase/EncodeDecodeTestAPI tests run without
errors in valgrind.
Review at https://rbcommons.com/s/OpenH264/r/1044/.

Closing this one, as Sijia has provided a correct fix in https://rbcommons.com/s/OpenH264/r/1054/.


kconfig: Remove UTF-8 character from author's name

Kconfiglib does not support UTF-8 properly yet, so avoid issues by
removing the UTF-8 character from the name until this is fixed.
See https://github.com/ulfalizer/Kconfiglib/pull/41
Signed-off-by: Carles Cufi<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master    #6599   +/-   ##
=======================================
  Coverage   53.51%   53.51%
=======================================
  Files         437      437
  Lines       41420    41420
  Branches     7935     7935
=======================================
  Hits        22164    22164
  Misses      16039    16039
  Partials     3217     3217

Continue to review full report at Codecov.

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

Hello,
See https://github.com/zephyrproject-rtos/zephyr/issues/6649 for why I think a Docker-related locale fix would be most appropriate here.


umi_fifo_flex intermittent failure

umi_fifo_flex failed in this CI run

This was due to input valid being asserted before reset was withdrawn. The behavior was undefined and hence, umi_fifo_flex would hang. Resolution was to update test infrastructure to not assert valid during reset.


CI: macOS3.9 testing

Reference issue

What does this implement/fix?

Additional information

Ah, simple availability issue it seems--hopefully resolved soon upstream

Marking for eventual backport as 3.9 + MacOS will be useful on the 1.5.x branch as well.

Restarting the GitHub actions MacOS jobs to see if Python 3.9 is working there now--things are starting to move into production for the major services with 3.9 now so fingers crossed.

Python 3.9 is available in there--I believe the issue now is that without pre-built NumPy 3.9 wheels NumPy gets built with whatever linear algebra backend is in the CI environment and this is causing an issue. I believe Chuck is moving forward with wheels for 3.9 soon; so, we'll probably follow a bit after that. Error below:
Collecting scikit-umfpack
  Downloading scikit-umfpack-0.3.2.tar.gz (25 kB)
    ERROR: Command errored out with exit status 1:
     command: /Users/runner/hostedtoolcache/Python/3.9.0/x64/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/setup.py'"'"'; __file__='"'"'/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-pip-egg-info-xjpxg_yp
         cwd: /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/
    Complete output (14 lines):
    /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/setup.py:56: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
      import imp
    init_dgelsd failed init
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/setup.py", line 250, in <module>
        setup_package()
      File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-install-frmv2eke/scikit-umfpack/setup.py", line 188, in setup_package
        import numpy
      File "/Users/runner/hostedtoolcache/Python/3.9.0/x64/lib/python3.9/site-packages/numpy/__init__.py", line 286, in <module>
        raise RuntimeError(msg)
    RuntimeError: Polyfit sanity test emitted a warning, most likely due to using a buggy Accelerate backend. If you compiled yourself, see site.cfg.example for information. Otherwise report this to the vendor that provided NumPy.
    RankWarning: Polyfit may be poorly conditioned

NumPy 3.9 wheels released in the last hour or so--re-trying MacOS 3.9 in CI again

@tylerjereddy, gets a bit further, but now there's a Fortran compile error

I think the fixes required here those that #12957 are currently failing on.

I see, let me work on this a bit--there was some indication that the issue was fixed on master but this is suggesting otherwise I guess.

I'll try applying that patch here to see if it helps; locally I can build this feature branch and master with some version of XCode 12 I think, but let's see what happens here..

some of the weird changes in gh-12243 may be involved? @sethtroisi ?
I probably won't solve this tonight..

I re-reviewed #12243 and didn't see anything weird in that PR. I looked at the errors here and they seem in unrelated files. I suspect that a compiler or default warnings changed?

@sethtroisi
The word "weird" is used to describe a change related to one of the errors here:

slacon2.c: idamax_ changed to isamax_

And the error in CI here:
   scipy/sparse/linalg/dsolve/SuperLU/SRC/slacon2.c:160:16: error: implicit declaration of function 'idamax_' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      isave[1] = idamax_(n, &x[0], &c__1);  /* j */

Those are really completely independent things even though it is the same file and the same variable involved?

@tylerjereddy Sorry, I didn't see that error before. My change is certainly suspicious. It's a little weird because if you trace it to the upstream repository (https://github.com/xiaoyeli/superlu/pull/19) It was changed it from isamax_ because of -Wimplicit-function-declaration. It's possible superlu is not tested on mac and idamax_ is #ifdef behind some linux flag.

Looking at one of the other errors
  scipy/sparse/linalg/dsolve/SuperLU/SRC/dmach.c:62:9: error: implicitly declaring library function 'strncmp' with type 'int (const char *, const char *, unsigned long)' [-Werror,-Wimplicit-function-declaration]

I'm surprised by this. https://github.com/scipy/scipy/pull/12243/files#diff-7976f5e4c73cb640a7a8c719dc525d911720b1c28965a8f55894f81835e0a5b5
added include <string.h>  which I would have thought would fix this.

I've probably messed up the patch added here too--it was cherry-picked from a branch intended for 1.5.x instead of master. Anyway, I just need to be a bit cautious and if there's advice that's helpful. I'll try to sort out something soon. I wonder if the CI here is using yet another version of XCode or something.

I don't mind helping, but I'm not sure how helpful I can be. Would knowing what version of the compilers we are using be helpful?

Would knowing what version of the compilers we are using be helpful?

Probably! Just scanning through the raw log I see XCODE_12_DEVELOPER_DIR=/Applications/Xcode_12.1.app/Contents/Developer, so XCode 12.1 seems like a logical guess given we've seen this issue reported alongside bleeding edge XCode.
I have the same version locally, maybe I need to check the install command I use vs. CI for reproducing or something.

@andyfaff As noted in gh-12957, the failure here for MacOS Python 3.9 + XCode 12 is at the dependency install stage--some dependency is pulling in its own version of SciPy rather than the failure happening for the branch under test:
Collecting scipy>=1.0.0rc1
  Downloading scipy-1.5.3.tar.gz (25.2 MB)
  Installing build dependencies: started
  Installing build dependencies: still running...
  Installing build dependencies: still running...
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'

Is it acceptable/normal for us to have a dependency that depends on us during i.e., its pip build? That might create a bit of a chicken and egg situation.. I guess we need to identify which dependency is doing that and adjust it.

That's weird. When I set this up I copied the dependencies over from Travis. The only dependencies that we would need beforehand are numpy, cython, pybind11, openblas and any build tools. Anything would be for testing purposes afterwards.

@tylerjereddy  scikit-umfpack needs scipy. I've tried removing that from the package install step.

It's a chicken and egg situation. scikit-umfpack wants to install scipy as a dependent package, but there isn't a wheel available to install, so it tries to build it from 1.5.3 source. We use it to test various scipy aspects for source>1.5.3. Tests are now running.

@tylerjereddy, yay, tests pass.

I'll merge tomorrow, unless you have any objections.

Do you mind if we back out all of the shims I added for superlu and qhull and so on? I don't think master needs any of them based on local testing so if we can avoid modifying that vendored code seems good right?
I'm definitely going to backport the CI addition, so if we could modify the PR to just have one commit with your changes to .github/workflows/testing.yml that would be ideal. Either of us could do that easily enough if we agree here.
Then when 1.5.4 is out we can try turning back on the dep(s) that depend on us.

If the CI is all green feel free to merge of course, then I'll proceed with the backport


Panel files.

Hi,
Sorry i don't have your email to ask the occational question.
Anyway, have the panel files been removed from the repository.
Thanks.

They do not seem to be there for some reason, even though I think they
should be there and even though I'm pretty sure other people have built
this thing before. Give me a second I'll just add them.
tomsteed @.***> schrieb am Fr., 10. März 2023, 05:10:

Hi,
Sorry i don't have your email to ask the occational question.
Anyway, have the panel files been removed from the repository.
Thanks.
—
Reply to this email directly, view it on GitHub
https://github.com/Testbild-synth/HAGIWO-029-033-Eurorack-quantizer/issues/2,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXQWXNHPOCLJUJYEWNZIP6LW3I2J3ANCNFSM6AAAAAAVVSFGZQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

closed panel is there now


Error resulting from constraint on an inverse product

Describe the bug
I am writing a script to output RLC values given a desired skeleton operational amplifier circuit in an attempt to select components that will minimize noise over a given frequency band.
Expected behavior
Ultimately, I want to put a lower bound on the overall gain of the circuit by crafting each opamp gain to be a convex/concave function, and then constraining the inverse product of these gains from above.
To Reproduce
The error comes from the following lines, where I define the inverse product of the sequence of gains obtained from each stage of the circuit (Ginv).  Upon removing the constraint, the code executes successfully.
The scripts are somewhat lengthy -- I can include more detail if needed.
Note that the arguments of inv_prod are concave or affine (see the below for the type output of each entry) such that Ginv is convex.
Gp =
[0.15,
Expression(AFFINE, NONPOSITIVE, ()),
Expression(CONVEX, NONNEGATIVE, ()),
Expression(CONVEX, NONNEGATIVE, ()),
Expression(CONCAVE, NONPOSITIVE, ())]
CODE
`Ginv = cp.inv_prod(cp.hstack([Gp[0],Gp[1],-Gp[2],-Gp[3],Gp[4]])) # NOTE: dual output auto-constrained to have same gain
obj = cp.Minimize(cp.sum(e_out_p))
constr = []
constr += [Ginv <= 2]
p = cp.Problem(obj,constr)
p.solve(verbose = True)
print(obj.value)
print(X.value)`
Output

                              Compilation

(CVXPY) Aug 15 06:34:17 PM: Compiling problem (target solver=ECOS).
(CVXPY) Aug 15 06:34:17 PM: Reduction chain: Dcp2Cone -> CvxAttr2Constr -> ConeMatrixStuffing -> ECOS
(CVXPY) Aug 15 06:34:17 PM: Applying reduction Dcp2Cone
Traceback (most recent call last):
File "C:\Users\Alec\Documents\Export to Drive\SPI\QPD\python\optVals.py", line 83, in
p.solve(verbose = True)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\problems\problem.py", line 473, in solve
return solve_func(self, *args, **kwargs)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\problems\problem.py", line 967, in _solve
solver, gp, enforce_dpp, verbose)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\problems\problem.py", line 627, in get_problem_data
data, inverse_data = solving_chain.apply(self, verbose)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\chain.py", line 76, in apply
problem, inv = r.apply(problem)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\dcp2cone\dcp2cone.py", line 43, in apply
return super(Dcp2Cone, self).apply(problem)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\canonicalization.py", line 68, in apply
constraint)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\canonicalization.py", line 99, in canonicalize_tree
canon_arg, c = self.canonicalize_tree(arg)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\canonicalization.py", line 102, in canonicalize_tree
canon_expr, c = self.canonicalize_expr(expr, canon_args)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\canonicalization.py", line 113, in canonicalize_expr
return self.canon_methods[type(expr)](expr, args)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\reductions\dcp2cone\atom_canonicalizers\power_canon.py", line 43, in power_canon
return t, gm_constrs(x, [t, ones], w)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\utilities\power_tools.py", line 65, in gm_constrs
tree = decompose(w)
File "C:\Users\Alec\anaconda3\envs\tf\lib\site-packages\cvxpy\utilities\power_tools.py", line 597, in decompose
if t not in tree:
File "C:\Users\Alec\anaconda3\envs\tf\lib\fractions.py", line 559, in hash
dinv = pow(self._denominator, _PyHASH_MODULUS - 2, _PyHASH_MODULUS)
TypeError: unsupported operand type(s) for pow(): 'numpy.int32', 'int', 'int'
Version

OS: Windows 11
CVXPY Version: 1.1.18
Python Version: 3.7.7

Thank you!

 Here is the code for inv_prod:
https://www.cvxpy.org/_modules/cvxpy/atoms/inv_prod.html
Try replacing inv_prod with the linked code and make sure the second argument to power is of type int64.

Fantastic, on to the next bug!  Thank you!!!


Add files via upload

Sorry, but CLWP is now closed after Shapella - but please use https://beaconchain.in/tools/broadcast instead

Thanks, Realised my mistake a little after I submitted, apologies.Kind RegardsDanielDaniel Reynolds Dynamo LED Displays  0203 489 9878    07786 @.***  London / Dubai / Oxfordshire dynamoleddynamoleddynamo-led-displays-limiteddynamoleddisplays         The contents of this email and any attachments are confidential. They are intended for the named recipient(s) only. If you have received this email by mistake, please delete it and notify the sender. Please consider the environment before printing. Dynamo LED Displays is a UK limited company registered no. 08640007On 9 May 2023, at 09:43, Benjamin Evans Chodroff @.***> wrote:
Sorry, but CLWP is now closed after Shapella - but please use https://beaconchain.in/tools/broadcast instead
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


feat: Add evaluation details to finally hook stage #1246

This PR
Add flag evaluation details to finally hook stage

adds this new feature

Related Issues

Fixes #1246

Will merge/release this next week unless I hear objections. We'll have to do some manual release notes as well when we do, as we did with JS: https://github.com/open-feature/js-sdk/releases/tag/web-sdk-v1.4.0
See also, same change in .NET: https://github.com/open-feature/dotnet-sdk/pull/335


error installing chatterbot. HELP

I used Chatterbot quietly in Python 3.6.1 32 bit. I recently started using Python 3.6.3 64 bit. Now I can not use the following message appears when I try to download:
Building wheels for collected packages: sqlalchemy
  Running setup.py bdist_wheel for sqlalchemy ... error
  Failed building wheel for sqlalchemy
  Running setup.py clean for sqlalchemy
  Failed cleaning build dir for sqlalchemy
Failed to build sqlalchemy
Installing collected packages: sqlalchemy, chatterbot
  Running setup.py install for sqlalchemy ... error
Exception:
Traceback (most recent call last):
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 9: invalid continuation byte

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 9: invalid continuation byte

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\commands\install.py", line 385, in run
    requirement_set.cleanup_files()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\req\req_set.py", line 729, in cleanup_files
    req.remove_temporary_source()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\req\req_install.py", line 977, in remove_temporary_source
    rmtree(self.source_dir)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 212, in call
    raise attempt.get()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\six.py", line 686, in reraise
    raise value
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\__init__.py", line 102, in rmtree
    onerror=rmtree_errorhandler)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\shutil.py", line 494, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\shutil.py", line 393, in _rmtree_unsafe
    onerror(os.rmdir, path, sys.exc_info())
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\__init__.py", line 114, in rmtree_errorhandler
    func(path)
PermissionError: [WinError 32] O arquivo já está sendo usado por outro processo: 'C:\\Users\\danri\\AppData\\Local\\Temp\\pip-build-oehz6gih\\sqlalchemy'

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\commands\install.py", line 385, in run
    requirement_set.cleanup_files()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\build.py", line 38, in __exit__
    self.cleanup()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\build.py", line 42, in cleanup
    rmtree(self.name)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 212, in call
    raise attempt.get()
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\six.py", line 686, in reraise
    raise value
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\__init__.py", line 102, in rmtree
    onerror=rmtree_errorhandler)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\shutil.py", line 494, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\shutil.py", line 384, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "c:\users\danri\appdata\local\programs\python\python36\lib\shutil.py", line 393, in _rmtree_unsafe
    onerror(os.rmdir, path, sys.exc_info())
  File "c:\users\danri\appdata\local\programs\python\python36\lib\site-packages\pip\utils\__init__.py", line 114, in rmtree_errorhandler
    func(path)
PermissionError: [WinError 32] O arquivo já está sendo usado por outro processo: 'C:\\Users\\danri\\AppData\\Local\\Temp\\pip-build-oehz6gih\\sqlalchemy'`

@danrib27 You have two different type errors,

Unicode issues, http://chatterbot.readthedocs.io/en/stable/encoding.html?highlight=unicode#python-string-encoding. I would suggest add encoding heder on top of your bot # -*- coding: utf-8 -*-
Permission errors, It's all errors from sqlalchemy Check you have write permission to that directory.


[Question] How does theone return the Python object?

I am trying to understand the inner workings of guppy. I am curious how the following method in IdentitySetSingleton actually works to return the actual Python object:
    def _get_theone(self):
        return self._node

Looking through the C extension code in hv.c, I see in hv_heap() function that it calls hv_heap_rec() which in turn calls NyNodeSet_setobj(). In NyNodeSet_setobj(), Py_INCREF() is called to increase the reference count of each obj. But in the code, I don't see where obj is stored in a node?
Thank you for your explanation.

Hmm... so the things such as NyNodeSet is just, think of it like a python set, except instead of equality being governed by the object's defined __eq__, it's equality based on the objects identity (a.k.a. memory address). Almost everything else from the API standpoint should be similar to that of a python set. You can see the test cases: https://github.com/zhuyifei1999/guppy3/blob/master/guppy/sets/test.py#L1327
Because nodeset contains objects, it has to keep the objects alive. This is where Py_INCREF you mentioned comes in.
Things like IdentitySet is more of a Python wrapper around the C NyNodeSet that provides the lots of methods and printers and stuffs to better interact with and visualize the sets.
Since you're looking at hv_heap, I assume you want to see all the way from how nodesets gets created, so let's assume somehow the heap contains only one object, so you did hpy().heap().theone:
Use.heap(): https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/Use.py#L175-L195
View.heap(): https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/View.py#L340-L367
View.enter is for limiting the visibility of guppy-internal frames during reference traversal, so the important part is self.idset(self.hv.heap())
hv.heap() is your mentioned hv_heap: https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/heapy/hv.c#L889-L922
The important thing here is that it creates and returns a mutnodeset (a mutable nodeset) that contains everything it saw during the traversal.
Then View.idset() is an import / alias: https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/View.py#L58
Use.idset(): https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/Use.py#L396
UniSet.idset(): https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L2214-L2215
Here immnodeset first creates a copy of the mutnodeset, but now it's immutable, then it does IdentitySetFamily._cons(): https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L1526-L1538
If the size of the set is 1, then it gets the single element of the set via tuple(arg)[0], and calls the constructor of IdentitySetSingleton with it
And IdentitySetSingleton's constructor sets self._node with the given element: https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L624-L630
So tl;dr: in hpy().heap().theone, heap() calls hv_heap() to create a mutnodeset, and then IdentitySetFamily._cons() sees that it's a set of size 1 and calls IdentitySetSingleton with the single element it contains, and the constructor sets the _node attribute.
Does this answer how it works?

Hi @zhuyifei1999,
Thank you for your thorough explanation. This is definitely very helpful! I was able to follow the exact control flow when debugging with PyCharm.

Because nodeset contains objects, it has to keep the objects alive. This is where Py_INCREF you mentioned comes in.

This makes sense! To confirm: when adding an object by calling NyNodeSet_setobj():
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/nodeset.c#L599-L619
The core functionality that adds the object is actually this:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/nodeset.c#L604
where it adds the object's adjusted address to the bitset (or nodes, depending on whether the set is immutable or not) within the NyNodeSetObject struct:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/nodeset.c#L325-L329
Am I correct?
When retrieving the object from theone, I am assuming this method:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L640-L641
somehow calls some C code to get the object from the address? I am sorry, this is where I get a bit fuzzy. I presume the following C function is triggered by some function(s) when self._node in the code above is called?
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/nodeset.c#L331-L335
Thank you!

where it adds the object's adjusted address to the bitset (or nodes, depending on whether the set is immutable or not) within the NyNodeSetObject struct:

Immutable one cannot be added. NyMutNodeSet_Check(v) fails and you get ValueError: mutable nodeset required.

When retrieving the object from theone, I am assuming this method:
somehow calls some C code to get the object from the address? I am sorry, this is where I get a bit fuzzy. I presume the following C function is triggered by some function(s) when self._node in the code above is called?

No, custom C code is completely uninvolved here.
This corresponds to
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L624-L630
In __init__:
self._node = node

In _get_theone:
return self._node

How __init__ was called with the element / node was explained above. The argument to __init__ is the object returned by theone. Nothing fancy involved.

OK. I think I see what is going on here. I believe, correct me if I am wrong, that the "trick" here is:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/guppy/heapy/UniSet.py#L2214-L2215
It is when self.immnodeset() is called where we obtain actually objects into the immutable node set.
I see that when a copy is made:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/immnodeset.c#L135-L151
NyNodeSet_iterate() would call mutnodeset_iterate_visit() to dereference the address from bitno, which is stored in mutable node set's bitset, and get the object. The object is then stored in nodes:
https://github.com/zhuyifei1999/guppy3/blob/a1bd5572ad1216c6eeced2fc331d79564e9e1d79/src/sets/nodeset.h#L8-L16
I guess my last question is, what is stored in nodes[0] since the NyNodeSetObject holds the pointer to nodes[1] instead of simply nodes?
Thanks!

I guess my last question is, what is stored in nodes[0] since the NyNodeSetObject holds the pointer to nodes[1] instead of simply nodes?

This you can answer with GDB:
$ find build guppy -name '*.so' -delete; pip install --global-option build --global-option --debug -e .
Obtaining file:///home/zhuyifei1999/guppy3
Installing collected packages: guppy3
  Attempting uninstall: guppy3
    Found existing installation: guppy3 3.1.0
    Uninstalling guppy3-3.1.0:
      Successfully uninstalled guppy3-3.1.0
  Running setup.py develop for guppy3
Successfully installed guppy3-3.1.0
$ gdb python
GNU gdb (Gentoo 10.2 vanilla) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[...]
(gdb) r
Starting program: /home/zhuyifei1999/guppy3/venv/bin/python
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Python 3.9.5 (default, Jun  2 2021, 13:52:24)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import guppy.sets.setsc
>>> def a():
...  b = object()
...  print(b)
...  c = guppy.sets.setsc.ImmNodeSet([b])
...  while True: pass
...
>>> a()
<object object at 0x7ffff6bec3a0>
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7c2d1cc in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/dev-lang/python-3.9.5_p2/Python-3.9.5/Python/ceval.c:3256
3256	            DISPATCH();
(gdb) py-locals
b = <object at remote 0x7ffff6bec3a0>
c = <guppy.sets.setsc.ImmNodeSet at remote 0x7ffff6ad8ae0>
(gdb) p *(NyNodeSetObject *)0x7ffff6ad8ae0
$1 = {
  ob_base = {
    ob_base = {
      ob_refcnt = 0x1,
      ob_type = 0x7ffff6abd5c0 <NyImmNodeSet_Type>
    },
    ob_size = 0x1
  },
  flags = 0x1,
  _hiding_tag_ = 0x0,
  u = {
    bitset = <object at remote 0x7ffff6bec3a0>,
    nodes = {<object at remote 0x7ffff6bec3a0>}
  }
}
(gdb)

The nodes[1] doesn't really mean it's an array of size 1, it's a C array of indefinite size. The array contains whatever objects the nodeset have. This is similar to how CPython implements tuples:
https://github.com/python/cpython/blob/769d7d0c66c5b86e2dd29b9ce67ac2daaab1bb38/Include/cpython/tupleobject.h#L5-L11
typedef struct {
    PyObject_VAR_HEAD
    /* ob_item contains space for 'ob_size' elements.
       Items must normally not be NULL, except during construction when
       the tuple is not yet visible outside the function that builds it. */
    PyObject *ob_item[1];
} PyTupleObject;

I am not sure if you actually answered my question. I am aware that nodes[1] is just a pointer that points to the second element of nodes, not an array of size 1. But why does it skip the first element? Why does bitset not do the same (i.e., bitset[1])?

I am aware that nodes[1] is just a pointer that points to the second element of nodes, not an array of size 1

Don't understand your question. I'm referring to the declaration PyObject *nodes[1]; being an array of indefinite size. The literal declaration of this is "nodes is an array of 1 element, to a pointer to PyObject". What I'm saying is, rather than that, it is "nodes is an array of indefinite size, to pointers to PyObject".
In other words, the assumption "NyNodeSetObject holds the pointer to nodes[1]" is incorrect.

My bad! It all makes sense! I needed to brush up on my C syntax! Thank you!


fix printf format warnings

Summary
see https://github.com/apache/incubator-nuttx/pull/2222
Impact
Testing

The change is minor, let's merge it now to speed up the fixing.


When using cmsis-dap + jtag + riscv, probe-rs reports The selected probe does not support the 'RISC-V' interface.

I'm trying to use cmsis-dap + jtag protocol to debug my riscv chip, but probe-rs reports the following error:
     Running `probe-rs run --chip HPM5361 --protocol jtag --chip-description-path ./HPMicro.yaml - 'target\riscv32imafc-unknown-none-elf\debug\blinky_pa10'`
Error: Connecting to the chip was unsuccessful.

Caused by:
    0: An error with the usage of the probe occurred
    1: The selected probe does not support the 'RISC-V' interface.

Since probe-rs already supports cmsis-dap + jtag and jtag + riscv, it can be implemented imo. If there's no blocker, I'd like to contribute this feature:)

What probe are you trying to use? This error sounds like the probe itself does not report JTAG compatibility.

What probe are you trying to use? This error sounds like the probe itself does not report JTAG compatibility.

I'm using my cmsis-dap which supports jtag. openocd works well, but probe-rs doesn't recognize this combination

But which cmsis-dap?

Okay nevermind, looks like JTAGAccess needs to be implemented for cmsis_dap, and also the try_get_XX functions at least.

Okay! To make it work, JTAGAccess and try_get_riscv need to be implemented, am i right?

Yes and if you'd do that I'd ask you to add the xtensa bits as well, it should be fairly easy once JTAGAccess is implemented

thanks for the guidance, I'll have a try!

Just a quick update, what you actually want to implement for CmsisDap is RawJtagIo. If you do that, you'll get JTAGAccess for free.


[QUERY] FormRecognizer - Error Handling

Library name and version
Azure.AI.FormRecognizer 4.0.0-beta,3
Query/Question
What is the expectations for consumers of the SDK in respect to processing and pulling out information when the service throws an Exception?
Currently, the SDK appears to throw a RequestFailedException but does not contain any InnerException. The meaningful part of the exception is currently buried under the Message property as a free text string, example as follows:
Invalid request.
Status: 400 (Bad Request)
ErrorCode: InvalidRequest

Content:
{"error":{"code":"InvalidRequest","message":"Invalid request.","innererror":{"code":"InvalidContent","message":"The file is corrupted or format is unsupported. Refer to documentation for the list of supported formats."}}}

Headers:
Transfer-Encoding: chunked
x-envoy-upstream-service-time: 506
apim-request-id: 073013c4-067e-4c31-b275-51cf645f1279
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
Date: Mon, 28 Feb 2022 07:48:58 GMT
Content-Type: application/json; charset=utf-8

We would love to access the actual Content of the above message. We have currently manually performed string manipulation to pull that JSON structure out, however, it also appears that the Error class is marked as internal by the SDK and thus we cannot deserialize into this object. Instead, we have had to create a proxy object, effectively a mirror of the SDK Error class in order to look at this information.
Is there a recommended pattern that the team would suggest to handle this scenario better? Have I missed something in terms of casting/accessing something that would make our lives easier instead of having to write such custom error handling conditions?
Environment
❯ dotnet --info
.NET SDK (reflecting any global.json):
Version: 6.0.102
Commit: 02d5242ed7
Runtime Environment:
OS Name: Windows
OS Version: 10.0.19044
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\6.0.102\
Host (useful for support):
Version: 6.0.2
Commit: 839cdfb0ec

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Cognitive - Form Recognizer:0.2236037,Storage:0.19320105,Service Bus:0.076246895'

Bump, is there any guidance from the team regarding this issue?

Hello @wahyuen, and apologies for the delay.
As you noted, the SDK does not expose an inner error object, and this is intentional. According to the Azure API guidelines, only the HTTP status code and the top-level error code are part of the API's contract that cannot change between versions. This means that there's no guarantee from the service that inner error details or error messages will stay the same. We cannot introduce breaking changes in the SDK, so we only expose the parts of the error payload that are safe for customers to rely on. Everything else is only surfaced via the Message property to aid diagnosability/debugging.
To answer your question, we recommend not relying on the contents of the Message property in your code since it's not guaranteed to have the same behavior across service versions.
Only if possible, could you share why you need the inner error object during runtime? If we get strong customer feedback for a particular scenario, we could provide tools to help with that in the future.

@kinelski part of our confusion currently stems from an issue where the original request has actually been submitted successfully, but subsequently returned an InternalServerError
We had hoped to follow the guidance found here

and hoped to have some exception handling in our code to execute retries and other processing.
What we have found is that in this case we have actually been returned a HTTP 200 code, and are currently performing a message.Contains("InternalServerError") to catch this particular case. We had hoped to rely on the status codes or other parts of the exception to help better identify what has gone wrong.
eg. catch (RequestFailedExcection e) when (e.Status == (int)HttpStatusCode.InternalServerError)

@wahyuen From my understanding, you're updating the status of a long-running operation with UpdateStatus or WaitForCompletion and getting an exception when the long-running operation fails. The HTTP 200 code is expected since you could successfully get the updated operation status, but the operation itself failed so our SDK throws an exception.
Unfortunately, for the reasons described in my previous reply, we currently don't have plans of exposing the inner error details in the SDK, so checking the error message with Contains could be the best approach for your scenario. If we receive enough feedback on this area, we might add something in the SDK to assist.
Alternately, you could call GetRawResponse in the operation object and parse the raw JSON response in your code, but this demands more work than your current string approach.
Please let me know if you need further assistance.

@kinelski does how the SDK handles this not pose a bit of a contradiction to the statement you are making regarding the 200 response code?
I understand what you are saying in terms of the UpdateStatus call succeeding, therefore the 200, but in that case, should the SDK not throw an Exception at all? By the above statement, since UpdateStatus has succeeded, would it not be the expectation that the user then interrogates the 'message' that is returned from UpdateStatus to indicate the original request has failed processing?
I guess if we reverse the logic, why does UpdateStatus throw an exception if indeed the call itself has succeeded?

@kinelski is this still a valid concern.


chore: Add checkbox for rows in responsive table

You are having issues because that's not composing the table the right way. Check the official example https://www.patternfly.org/v4/components/table#composable-selectable-with-checkbox
You need to add a label-less column at the beginning that is the one providing the checkbox. Note that this applies to the header row as well.
Then there is work to do in the area where the responsive logic is handled so as to not compute this column in the calculation.

I've made the message more meaningful, let me know if that is better. I am also catching the error being thrown and logging it as an error in the console so the code does no stop executing. Let me know what you think

Stopping the code from being executed was exactly the point of throwing instead of logging. If the developer does a mistake in using the table, we must let him know asap in the most immediate way possible. Throwing will break the app, or trigger any error boundary in place, making the dev immediately aware that something is amiss.

So if I throw the error, the app breaks , you said that the  const bulkCheckPropsValidation = isBulkCheckPropsValid() code cannot be reached when I throw the error, making this boolean and it's usage meaningless which is why I added the console error. Did you mean using the throw somewhere else than where it is currently used

No, just that the boolean return and checking for it is meaningless


on cydia app homepage . when clicking anything greys out . doesnt work

when i click on anything on cydia apps's homepage . the button turns grey . nothing happens
other than that all are working- add sources and can install tweaks
cannot login to cydia account

This is a cydia problem, not a jailbreak problem.  Please see #64.

but i will still answer your question. Update to cydia beta or swipe to the left or something.

There's a beta version of Cydia on saurik's repo, which fixes that.
Here's the repo: http://apt.saurik.com/beta/cydia-arm64/


Any one please share a java version....!

Please share java version

Welcome @arunkr83 this is the java sample code of how using this library
https://github.com/CanHub/Android-Image-Cropper/tree/main/sample/src/main/java/com/canhub/cropper/sample/crop_image_java
Let me know if this do not help =D


Remove reference to "Churn Site", it is currently disabled and looks …

…like it will never come back...

True that was a fun project, but I haven't been supporting it or keeping it running for years.

thanks!


Undercompilation of MillConfigParser.parser after change in MillConfig

This is probably not an issue in Mill, but in either Zinc or mainargs.
After a clean build when changing the @arg.doc attribute of one argument in mill.MillConfig, a recompile results in only on recompiled file MillConfig.scala. The file MillConfigParser.scala gets not recompiled, yet it contains a lazy val usageText = parser.helpText() (parser is a private[this] lazy val parser: ParserForClass[MillConfig] = mainargs.ParserForClass[MillConfig]), which needs to re-evaluate once the annotated config class changes.
This results in outdate/stale help messages.
Here is a reprodcution: https://github.com/lefou/mainargs-undercompilation-reproduction

See https://github.com/sbt/zinc/issues/1171


Search places ---> whether place

I could be wrong of course, but you need an action from the seat search menu, when you press the back button, it closes the menu, not exit the application. It's just that I have it all over the screen and it's not so clear that it's not a separate page, but just a menu. 🧠🌀

I think I saw this bug when I tested on smaller devices but forgot about it in the meantime 😄 Thanks!

Just pushed 3.4.1 with this addressed. The system back button now closes the drawer instead of the app. This is just a temporary workaround. I'll probably rework the places screen to be a separate destination sometime soon.


typeable ignores format fixed issue

Coverage remained the same at 100.0% when pulling 5fcb7b558c2c9ebbdf5b8aa6ad321fb8c4168664 on harlekoy:master into<PHONE_NUMBER>f7e221a06877b1722519f2a2443adc on charliekassel:master.

@harlekoy @charliekassel up for an important project please?

@harlekoy Here I have found something new bug with this PR. When you change type-able date manually from an input and click on elsewhere, date will be changed to previous.

Why this change was not merged yet?

@charliekassel could you please merge the fix to master?


ADD Ability to reload/refresh/submit/execute a SELECT query in SQL Editor to get a live/interval view of the results

use case:
I want to watch some data in a table. I write a custom query with SQL Editor.
I then select the interval I wish the SQL Editor to execute my query from a preset of:

1sec
5sec
30sec
1min
5min
custom (opens dialog)

or have just custom there at first and list 5 most recent custom intervals

This is the first draft. Any improvements should be tracked in separate tasks.

@serge-rider you're like my favourite developer in the world :D


First-time install: executing the api/users/show fails with 401

I ran through the installation guide.  I tried running the api/users/show locally first and it fails with 401 (I didn't install the JAWS client globally yet, but I don't expect that to be a problem):
$../../../cli/bin/jaws run
****** JAWS: Running Lambda Function Locally...
****** JAWS: Lambda Returned An Error:
{ status: 401, message: 'Invalid or expired access token' }

I went back and checked the steps from the installation guide; I updated the .env file with my own values (I made up JWT_ISSUER and JWT_SECRET, and copied in AWS_ADMIN_KEY, AWS_ADMIN_SECRET_KEY, AWS_LAMBDA_ROLE), and I updated the model_user.js with my table name.  The only suspicious step was that when creating the role ("jaws_lambda_role"), the wizard asked me to select a "role type"; the installation guide didn't mention this step, so I guessed that I should use "AWS Lambda".
Anything else I should check, or that I can try to help troubleshoot?

When you run a Lambda function in your JAWS API, the data in that function's event.json file is submitted to the Lambda function.  event.json should contain url params, url query strings and a JSON body submitted via a POST or PUT http request.  -- I'm going to add this in comments in each of the event.json file and write more information to help you and everyone understand this tonight.
The event.json in the users/show function includes an access_token.  This access_token is a JSON Web Token and it was left over from one of my own user records when I was developing JAWS.  In short, the access token you are using does not pertain to any user records in your database.
You need to first follow the DynamoDB section in the Installation guide, run the user/sign-up function to create a user in your own DynamoDB Users table, then take the jwt/access token that is received when you sign up a new user and put it in the event.json to use with the users/show function.
Lots of helpful information on this process will be published in the next few hours.
Also, I will update the Installation guide to include that "Role Type" step.  Sorry about that!


Add 1inch aggregation routers calldata V3 to V5

@paoun-ledger: linter now runs correctly, there are a few things to fix, see annotations

@jnicoulaud-ledger it seems the linter considers tokenPath as a required field in a tokenAmount, but that should not be the case since https://github.com/LedgerHQ/clear-signing-erc7730-registry/pull/32
Or I am mistaken?

@paoun-ledger you are right! I fixed the linter, but now I need to fix the next linter problems...


How to add custom image instead of unicode?

I am trying to add custom image how can i add?

No not out of the box. You can achieve it via subclassing though. Have a look at https://github.com/Skyscanner/SkyFloatingLabelTextField/blob/master/SkyFloatingLabelTextField/SkyFloatingLabelTextFieldExample/Example4/IconTextField.swift and adapt it to use a UIImageView instead of a UILabel for the icon

I did a PR to support images. Just set the icon type to image and set the image.
PR: #159


Pop ups - Update titles + text

Phase 0 - Dashboard – Feed - PopUp – QUEUE
https://xd.adobe.com/view/2f942ac5-cea3-4963-b328-7a5036cb11b4-7ac7/

Title:
You’re in the queue to start
claiming GoodDollars!
Text:
We’ll email you as soon as it’s your turn
to claim G$’s.
And always remember:
Good things come to those who wait :)

Dashboard – Feed - PopUp – 24 hours wait - after delete wallet
https://xd.adobe.com/view/aa8d16ca-7643-4a16-9949-e7f0d7a65f71-ffde/

Title:
You’re in the queue to start
claiming GoodDollars!
Text:
Since you’ve just deleted your wallet,
you’ll need to wait 24 hours until you
can claim.
This is to prevent fraud and misuse.
Sorry for the inconvenience!

PHASE 1 - Dashboard – Feed - PopUp – Update - LIVE VERSION
https://xd.adobe.com/view/5d3201b3-eec6-4a9e-a725-7f393849b3a7-0861/

Title:
Good News: We’re Live!
Text:

Click ‘update’

Sign up (one last time, we promise :))

Start claiming your free, REAL G$’s

Dashboard – Feed - PopUp – Welcome
https://xd.adobe.com/view/c00fd625-67f1-4be8-b069-98a6b0106338-955c/

Title:
Welcome to GoodDollar!
Text:
Right here is where you will claim your basic income in GoodDollar coins every day.
Together, we will build a better financial future for all of us!

Dashboard – Feed - PopUp – Claim Reminder
https://xd.adobe.com/view/3aa8b6ec-58e7-4364-810c-ebfcb78921ab-6ffb/

Title:
Claim your G$’s today!
Text:
GoodDollar gives every active member
a small daily income.
Every day, sign in and claim free GoodDollars and use them to pay for goods and services.

@sirpy Done.

the welcome and claim reminder pop-ups are according to the requirement
queue pop-ups will be checked on qa env when it is released

the 24 hours wait pop-up according to require
update pop-up was checked by @serdiukov-o-nordwhale during checking this issue #2189 (also according to requirement)

In the Queue pop-up the "OK, I'LL WAIT" button should be displayed instead of the "OK, I GOT IT"

Checked on QA V1.0.6-1
LG V30+ // Android 8.0 // Google Chrome 84.0.4147.111
Desktop: Windows 10 // Google Chrome  84.0.4147.125

@AnastasiiaOdnoshevna pushed a fix to the master. You can check it after 10 minutes.

@yaroslav-fedyshyn-nordwhale @sirpy pop-ups are displayed according to the requirement

Checked on QA V1.0.6-2
LG V30+ // Android 8.0 // Google Chrome 84.0.4147.111
Desktop: Windows 10 // Google Chrome  84.0.4147.125


docs: release notes for the v17.0.8 release

Cherry-picks the changelog from the "17.0.x" branch to the next branch (main).

Didn't realize this PR got successfully created, GitHub had a 502 error during the creation process in ng-dev.
This change was manually merged in https://github.com/angular/angular-cli/pull/26733, so I think we can close this one.


Upgraded all module dependencies

https://cve.report/CVE-2022-21698

https://cve.report/CVE-2022-21698
In client_golang prior to version 1.11.1, HTTP server is susceptible to a Denial of Service through unbounded cardinality, and ...


Julia 1.1

After a long debugging session with IJulia, I found that the reason the notebooks where not running for me is that they were expecting Julia v1.0.2 and I only had Julia v1.1 installed.  I could not find a clean way to update the notebooks to the new Julia kernel, so I made this modification by hand,
  "kernelspec": {
   "display_name": "Julia 1.1.0",
   "language": "julia",
   "name": "julia-1.1"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.1.0"
  }

Things seem to be mostly working at this point.  Visualizations are broken.  I hope that will be resolved as I update the environment to the latest package versions.

With package versions updated, this seems to be working again.  @odow, any objections to updating to Julia v1.1 for this tutorial?

Nope.


[decomp] prepare for some files, fill in some types

Pull Request Test Coverage Report for Build 956097287

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.344%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

decompiler/Disasm/InstructionDecode.cpp
0
1
0.0%

Totals

Change from base Build 955071387:
0.0%

Covered Lines:
36637

Relevant Lines:
52834

💛  - Coveralls


LoggingExtensions: Additional methods

LoggingExtensions will benefit from being able to log Exceptions and messages with format values separately to allow the underlying logging framework to format the exception differently than the message, for example to support extracting the stack trace for structured logging.
This change resolves aspnet/Logging#239.

Hi @thoean, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla2.dotnetfoundation.org.

TTYL, DNFBOT;

@thoean, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, DNFBOT;

Workaround for logging an exception with structured data in the custom error message:
var values = new FormattedLogValues("Error during operation {Operation}..", myOperation);
logger.LogError(values, ex);

This pull request simplifies this to:
logger.LogError(ex, "Error during operation {Operation}..", myOperation);

I think this will be fixed in https://github.com/aspnet/Logging/issues/331

Thanks @thoean, we had a design meeting and came out with the design in #331, which is already implemented.  Closing this PR.


Formatting.

This was so essential that you issued a pull request? Lel

@DanielLewis97NL ikr

@david2

@davidmann4

sorry last time this coused a lot of problems ... i will press format code next time I submit something


Backtesting with Backtesting brokerage and IQFeed data feed

Expected Behavior
Want to use Backtesting brokerage and IQFeed data feed on my local machine. Here is what i expected generally;

Start IQFeed client if not started.
Download security universe if not in cache.
Request required security history from IQFeed.
Process response and save data to data folder.
Run strategy with FileSystemDataFeed on Backtesting brokerage.

Actual Behavior
Here is results of above steps;

IQFeed client starting if not started.
Downloading security universe if not in cache and loading symbols.
Requesting required security history from IQFeed with GetData method.
Process response and don't save data to data folder. My problem starting from here.
Because of previous step fails, engine throwing exceptions can not find data.

Potential Solution
Maybe i don't understand or misunderstand Lean's backtesting logic. Because of that can't configure launcher correctly.
Reproducing the Problem
I changed four parts in Lean's config file;

"environment": "backtesting-iqfeed"
"algorithm-type-name": "BasicTemplateAlgorithm"
"iqfeed-username": "private content",
"iqfeed-password": "private content",
"iqfeed-productName": "private content",
"iqfeed-version": "1.0",
"backtesting-iqfeed": {
"live-mode": false,
"setup-handler": "QuantConnect.Lean.Engine.Setup.ConsoleSetupHandler",
"result-handler": "QuantConnect.Lean.Engine.Results.BacktestingResultHandler",
"data-feed-handler": "QuantConnect.Lean.Engine.DataFeeds.FileSystemDataFeed",
"data-queue-handler": "QuantConnect.ToolBox.IQFeed.IQFeedDataQueueHandler",
"real-time-handler": "QuantConnect.Lean.Engine.RealTime.BacktestingRealTimeHandler",
"history-provider": "QuantConnect.ToolBox.IQFeed.IQFeedDataQueueHandler",
"transaction-handler": "QuantConnect.Lean.Engine.TransactionHandlers.BacktestingTransactionHandler"
}

And in strategy i only changed start and end dates;

SetStartDate(2019, 05, 01);
SetEndDate(2019, 05, 03);

I don't do any other changes, using exactly same codes from github.
System Information
Using Visual Studio 2019 Version 16.1.0 Preview 2.0
OS is Windows 10 with regional/language settings compatible to Turkey/Turkish.
Checklist

[*] I have completely filled out this template
[*] I have confirmed that this issue exists on the current master branch
[*] I have confirmed that this is not a duplicate issue by searching issues

[*] I have provided detailed steps to reproduce the issue

Closed by https://github.com/QuantConnect/Lean/pull/3264


plasma5: 5.10.3 -> 5.10.4

Motivation for this change
Scheduled bugfix release.
Full changelog can be found at https://www.kde.org/announcements/plasma-5.10.3-5.10.4-changelog.php
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] Linux

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@ttuegel Sounds good!
I'd preferably like this one https://github.com/NixOS/nixpkgs/pull/27485 merged at the same time to cause a bit less rebuilds.

I'd preferably like this one #27485 merged at the same time to cause a bit less rebuilds.

That is my plan!

Merged via 2b29c893c12386b36a9cf9116eb6263b64bd470a.

One of these seem to have broken plasma5/sddm tests:
https://hydra.nixos.org/build/57873795
https://hydra.nixos.org/build/57872737

@globin That breakage is unrelated to the upgrade of plasma, it's a breakage of buildenv.
I have submitted a PR with a fix: https://github.com/NixOS/nixpkgs/pull/27859


bugfix: yurt-app-manager cache not started error

when upgrade the version of controll-runtime to 0.7.0.  yurt-app-amanger will come the error:
the cache is not started, can not read objects
this pr fix this error.
Signed-off-by: kadisi<EMAIL_ADDRESS>@charleszheng44

There are quite a few clean ups in this change. Which is the part of the code that resolves the problem mentioned in the PR title?

There are quite a few clean ups in this change. Which is the part of the code that resolves the problem mentioned in the PR title?

@Fei-Guo
this is the part of the code:
func Initialize(mgr manager.Manager, stopCh <-chan struct{}) error {
	cli, err := client.NewDelegatingClient(client.NewDelegatingClientInput{
		CacheReader: mgr.GetAPIReader(),
		Client:      mgr.GetClient(),
	})
	if err != n

The "Initialize" method is executed when the cache is not yet synchronized, so it gets an cache not started  error when it gets the secret。 so the CacheReader doesn't have to be assigned with mgr.GetCache().


Missing redirects

All the redirect rules are not working now, should be related to the new locale middleware. https://github.com/vercel/swr-site/blob/main/next.config.js#L14

This has been fixed, so I'll close this.


Closes: #1

Updated validations.py python script.
username can only start with letter
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[ ] Appropriate changes to README are included in PR

updated validations.py script
username can only start with letter


Crashes Upon Load

debug.txt
debug_fulltrust.txt

@jakoss clues?

@jakoss clues?

The only thing that comes to mind is some string modification on compile/linker? Maybe some strange string encoding? It's super weird that first character is wrong..

The only thing that comes to mind is some string modification on compile/linker? Maybe some strange string encoding? It's super weird that first character is wrong..

@gave92 Do you think it's reasonable to wrap first db connection with try/catch and just disable SQLite caching on exception? Memory Cache will still work like before

@gave92 Do you think it's reasonable to wrap first db connection with try/catch and just disable SQLite caching on exception? Memory Cache will still work like before

Has anything came up on how to fix this issue?

My PR with a fix is waiting for review

@SteveP757 This should be resolved with #2944.


fix URL for SD 2.0 512-base config file

fix to use the correct config file for SD 2.0 512 base model

Huh, I wonder how I messed that up...
Thanks!


Remove unicode control characters in Strimzi operator YAML

The diff won't make sense but there is a non-visible character in
between _<hostname>_: and _<port>_.

Proposed Changes

Remove unicode control characters in Strimzi operator YAML

Release Note

None

Docs

None

/lgtm
/approve
While we are removing it here. Should we follow up on this, by filing an issue directly for Strimzi - So that folks like @ppatierno, @tombentley or @scholzj see it too ?

@matzew I already removed it in strimzi/strimzi-kafka-operator#5839. So it should be removed in 0.27 release.


Check for previous/existing GitHub issues/module proposals

[X] I have checked for previous/existing GitHub issues/module proposals.

Check this module doesn't already exist in the module indexes

[X] I have checked for that this module doesn't already exist in the module indexes.

Bicep or Terraform?
Terraform
Module Classification?
Resource Module
Module Name
avm-res-communication-emailservice
Module Details
AVM Resource Module for Email Communication Service
Do you want to be the owner of this module?
No
Module Owner's GitHub Username (handle)
No response
(Optional) Secondary Module Owner's GitHub Username (handle)
No response

@matebarabas @PmeshramPM I would like to own this module and create it in the hackaton week. Could you please initiate the initial handshake?

HI @krbar
Thanks for requesting/proposing to be an AVM module owner!
We just want to confirm you agree to the below pages that define what module ownership means:

Team Definitions & RACI
Shared Specification (Bicep & Terraform)
Module Support

Any questions or clarifications needed, let us know!
If you agree, please just reply to this issue with the exact sentence below (as this helps with our automation 👍):
"I CONFIRM I WISH TO OWN THIS AVM MODULE AND UNDERSTAND THE REQUIREMENTS AND DEFINITION OF A MODULE OWNER"
Thanks,
The AVM Core Team
#RR

I CONFIRM I WISH TO OWN THIS AVM MODULE AND UNDERSTAND THE REQUIREMENTS AND DEFINITION OF A MODULE OWNER


i386-linux-gnu lib on host leads to incorrect results

i386-linux-gnu or smth else which is not according to the actual machine arch leads to incorrect dependency evaluating

Need to drop from elf parsing here and ping ldd to go find another .so


[11.x] Add function to validate if a lock is owned by the current owner.

This pr adds a public function isOwner to the Cache/Lock.php class and the Contracts/Cache/Lock class. This can be used to determine if a restored lock is owned by the current owner. Currently it is not possible to determine if a restoredLock is owned by the given owner, except when releasing it.
We ran into a problem when we wanted to validate on the queue if we still had the lock on a specific key. We pass the $owner to the job, and can currently release the lock using restoreLock($key, $owner)->release(), but we have no way of validating whether the lock is still viable (without releasing it).

Can you just make isOwnedByCurrentProcess public?

Since this doesnt change the contract anymore, would it be ok for  you if I change the target to 10.x?

I don't have a big problem with this being sent back to 10.x in this case. Thanks.


The method 'VoidCallbackIntent' isn't defined for the class '_TreeViewItem' 🐛

Describe the bug
After upgrading from fluent_ui 4.0.0-pre.2 to fluent_ui 4.0.3 the application is no longer buildable.
Build process is giving me the following error message:
.../fluent_ui-4.0.3/lib/src/controls/navigation/tree_view.dart:833:21: Error: The method 'VoidCallbackIntent' isn't defined for the class '_TreeViewItem'.
SameErrors in same file on:

tree_view.dart:840:21
tree_view.dart:852:21

Info: Our application does use the tree_view component
To Reproduce
Steps to reproduce the behavior:

Upgrade fluent_ui dependency from 4.0.0-pre.2 to 4.0.3
Run flutter clean
Run flutter packages pub get
Run all code generators
Run flutter run -d windows

Expected behavior
Build process should run without errors and the application should launch
Additional context
Information about the system:
Windows x64
Flutter channel (fvm): stable
Flutter version (fvm): 3.0.5

Please, use the latest flutter version.
Duplicate of #561