Failed provisions via UnknownErrors display red

Signed-off-by: randybrunopiverger<EMAIL_ADDRESS>regarding: https://github.com/open-cluster-management/backlog/issues/15413

/retest

W/r to the build: I'm getting 500 error from prow. Not sure why.
ERRO[2021-12-07T19:15:54Z]    could not run steps: step src failed: the build src failed after 1m5s with reason DockerBuildFailed: Dockerfile build strategy has failed. Writing manifest to image destination Storing signatures Adding transient rw bind mount for /run/secrets/rhsm STEP 1: FROM image-registry.openshift-image-registry.svc:5...7410adc20f2eb1778786c33a29b03a1ff3c029cb4eca7337efd17286687 error: build error: error creating build container: Error ...valid status code from registry 500 (Internal Server Error)

/cc @KevinFCormier

/retest


Indentation again

https://github.com/Captain-Crunch-Brigade/capstone/blob/26a9361b59e919318dfd4ea3253e0f19f06ab833/client/src/components/QnAWidget/AnswerForm.jsx#L78
Make sure to indent properly throughout your files. It will make your code much easier to read.

fixed indentation


feat: add custom hooks to add sponsors

Clear and concise description of the problem
For those who have not opened a sponsor but have received sponsorship from WeChat or other methods, I hope to have a custom hook that can pass in the user's github name and a sponsorship time, and then merge it into all sponsors.
Suggested solution
{
 customSponsors:[
  {
    username:'username',
    sponsortime:'now',
    ...
  }
 ]
}

Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

I find customComposer that can meet my needs


Frame delay before starting gif

There is a delay for about 6-7 seconds before the gif initialization.
Tested on Flutter v3.3.3
Simulator device iPhone 14 Pro
Flutter doctor
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.3.3, on macOS 12.5.1 21G83 darwin-x64, locale     ru-KZ) [✓] Android toolchain - develop for Android devices (Android SDK version     32.0.0-rc1) [✓] Xcode - develop for iOS and macOS (Xcode 14.0.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2021.1) [✓] VS Code (version 1.72.2)

Hi @1encore !
I couldn't reproduce this problem. You could give us more Information? You tried load gif from assets or network?


Swift 3,Xcode 8 seems no work anymore

i temp change here,and it seems work:
// Limit the length of text
func textDidChange(notification: NSNotification) {
    if notification.object === self {
        if maxLength > 0 && text.characters.count > maxLength {
            let endIndex = text.startIndex.advancedBy(maxLength)
            text = text.substringToIndex(endIndex)
            undoManager?.removeAllActions()
        }
        setNeedsLayout() //For Xcode 8,works
    }
}

The master branch has been migrated to Swift 3.

Swift 2.3 is also available in "swift2" branch.
pod 'GrowingTextView', :git => 'https://github.com/KennethTsang/GrowingTextView.git', :branch => 'swift2'


README Enhancement - Avocados Classification

Deep Learning Simplified Repository (Proposing new issue)
:red_circle: Project Title : README Enhancement - Avocados Classification
:red_circle: Aim : The aim is to enhance the README file to make it more eye pleasing.
:red_circle: README to be enhanced : https://github.com/abhisheks008/DL-Simplified/blob/main/Avocados Classification/README.md
:red_circle: Template : https://github.com/abhisheks008/DL-Simplified/blob/main/.github/readme_template.md

📍 Follow the Guidelines to Contribute in the Project :

You need to create a separate folder named as the Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or, information/source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages/libraries to run the project in other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.

:white_check_mark: To be Mentioned while taking the issue :

Full name :
GitHub Profile Link :
Email ID :
Participant ID (if applicable):
Approach for this Project :
What is your participant role? (Mention the Open Source program)

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

Full name : Mariam
GitHub Profile Link : github.com/mariam7084
Email ID<EMAIL_ADDRESS>Participant ID (if applicable): NA
Approach for this Project : i will modify the readme.md according to the template provided.
What is your participant role? (Mention the Open Source program) DWoC

Issue assigned to you under DWOC @mariam7084


init.py: remove unnecessary f-string

When the python runtime version is < 3.7, an Exception is raised. The message contained in that version contained an f-string with no placeholders.
This triggered a warning in pyflakes, that was subsequently silenced with a F541 directive.
We can simply use a plain string and get rid of the "noqa" directive.

The empty fstring is desired. For python < 3.6 (where fstrings are not yet supported) it will raise a syntax error, and contain the fstring message in it.
  File "...", line 5
    f'You are using an unsupported version of Python. Only Python versions 3.7 and above are supported by yt-dlp')  # noqa: F541

SyntaxError: invalid syntax

If we remove it, instead of giving a helpful message, it will find a fstring syntax error later in the same file, and raise it there without the helpful message:
  File "...", line 87
    _exit(f'ERROR: batch file {batchfile} could not be read')

SyntaxError: invalid syntax

Now the proper way to fix this would be to move all code to a different module, and import it in __init__.py, so there would be no syntax errors in that file specifically.
I think for sake of clarity we would want to keep the fstring as is now, but feel free to implement the __init__.py refactor instead. It can also be argued that keeping a python 3.5 workaround is a bit overkill, however since this is a import guard i think it should be kept for a little while longer

Where is the PR template?

Regardless of what we end up doing, IMO this should be dealt with in #8361

I disagree. Either we keep the fstring workaround or we refactor the init completely. The latrer will be more work than should be included in the simple 3.7 removal


Detectron2_1 error brand new docker install

when I start the docker compose file everything starts up but the detectron2.
In the log I see a single error.
Traceback (most recent call last):
File "/code/./app.py", line 7, in
from classification.model import ImageClassifier
File "/code/classification/model.py", line 18, in
from utils.extract_utils import get_image_blob
File "/code/bottom-up-attention.pytorch/utils/extract_utils.py", line 3, in
import cv2
File "/usr/local/lib/python3.9/site-packages/cv2/init.py", line 5, in
from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Same error here, except I'm trying to use yolo

Could you try pulling the container again after https://github.com/gregordr/ImageStore/runs/2385692582 and https://github.com/gregordr/ImageStore/runs/2385692530 finish?

Any updates from your side?

Working great for me now!


Not open first tab directly on mobile devices

When scrollToAccordion is set to true you jump directly to the open tab on mobile devices. So a check was added to only open the first tab when the actual device is not a mobile.

Well, shouldn't the syntax here be:
} else if (!window.matchMedia('(max-width: 646px)').matches) {
you wrote:
} else (!window.matchMedia('(max-width: 646px)').matches) {


Add ebbflow 1.0.0

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

This will not pass the automated smart-screen test and will require further approval after that. Just thought I'd let you know! Thanks

Thanks for the help, I have moved to statically linked executables and will create a new version (1.0.1) with those


Triggers - User Flag Manipulation

https://github.com/DCS-gRPC/rust-server/blob/main/protos/dcs/trigger/v0/trigger.proto

This should be part of an individual plugin, implemented as a LokiPluginMenu within the eventual Loki-DCS plugin

Closing, needs to be part of a specific plugin i.e. loki-dcs due to how tightly integrated it has to be with the data source itself.


Unable to use an ElasticSearch server with https/SSL enabled

unable to use an ElasticSearch server with https/SSL enabled due certificate not trusted error. We need to be able to add the CA.

Useful
Info

Versions
Rancher v2.0.0 UI: v2.0.41

Access
`` admin

Route
global-admin.clusters.index

Here's the log:
2018-05-22 15:09:18 +0000 [warn]: #0 failed to flush the buffer. retry_time=8 next_retry_seconds=2018-05-22 15:09:49 +0000 chunk="56cccbb673775d4d7a263e21c4aab7b1" error_class=Faraday::SSLError err            or="SSL_connect returned=1 errno=0 state=error: certificate verify failed (OpenSSL::SSL::SSLError) Unable to verify certificate. This may be an issue with the remote host or with Excon. Excon has c            ertificates bundled, but these can be customized:\n\n            Excon.defaults[:ssl_ca_path] = path_to_certs\n            ENV['SSL_CERT_DIR'] = path_to_certs\n            Excon.defaults[:ssl_            ca_file] = path_to_file\n            ENV['SSL_CERT_FILE'] = path_to_file\n            Excon.defaults[:ssl_verify_callback] = callback\n                (see OpenSSL::SSL::SSLContext#verify_call            back)\nor:\n            Excon.defaults[:ssl_verify_peer] = false (less secure).\n"
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/ssl_socket.rb:125:in connect'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/ssl_socket.rb:125:in initialize'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/connection.rb:429:in new'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/connection.rb:429:in socket'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/connection.rb:111:in request_call'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/middlewares/mock.rb:48:in request_call'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/middlewares/instrumentor.rb:26:in request_call'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in request_call'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in request_call'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/middlewares/base.rb:16:in request_call'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/excon-0.62.0/lib/excon/connection.rb:260:in request'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/faraday-0.15.0/lib/faraday/adapter/excon.rb:49:in call'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/faraday-0.15.0/lib/faraday/rack_builder.rb:143:in build_response'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/faraday-0.15.0/lib/faraday/connection.rb:387:in run_request'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/elasticsearch-transport-6.0.2/lib/elasticsearch/transport/transport/http/faraday.rb:23:in block in perform_request'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/elasticsearch-transport-6.0.2/lib/elasticsearch/transport/transport/base.rb:266:in perform_request'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/elasticsearch-transport-6.0.2/lib/elasticsearch/transport/transport/http/faraday.rb:20:in perform_request'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/elasticsearch-transport-6.0.2/lib/elasticsearch/transport/client.rb:131:in perform_request'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/elasticsearch-api-6.0.2/lib/elasticsearch/api/actions/ping.rb:20:in ping'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluent-plugin-elasticsearch-2.9.0/lib/fluent/plugin/out_elasticsearch.rb:245:in client'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluent-plugin-elasticsearch-2.9.0/lib/fluent/plugin/out_elasticsearch.rb:497:in rescue in send_bulk'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluent-plugin-elasticsearch-2.9.0/lib/fluent/plugin/out_elasticsearch.rb:494:in send_bulk'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluent-plugin-elasticsearch-2.9.0/lib/fluent/plugin/out_elasticsearch.rb:397:in write'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluentd-0.14.25/lib/fluent/plugin/output.rb:1093:in try_flush'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluentd-0.14.25/lib/fluent/plugin/output.rb:1318:in flush_thread_run'   2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluentd-0.14.25/lib/fluent/plugin/output.rb:439:in block (2 levels) in start'
2018-05-22 15:09:18 +0000 [warn]: #0 /var/lib/gems/2.3.0/gems/fluentd-0.14.25/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'

This is probally the same as i mentioned earlier #13065
So either we need to able to add the CA or set the ssl_verify flag, preferably both

Thanks guys, we will support SSL soon

rancher/rancher:master 9/10
Connection over HTTPS to elasticsearch is successful.

Setup ES cluster
Enabled TLS on transport / http layers with self-signed cert
Enable ES logging w/ https endpoint & x-pack security
Connection is successful & logs are sent successfully


implement /eth/v1/beacon/headers

https://ethereum.github.io/eth2.0-APIs/#/Beacon/getBlockHeaders
https://ethereum.github.io/eth2.0-APIs/#/Beacon/getBlockHeader

/eth/v1/beacon/headers by parent root filter is still to be done on this one.

closing this ticket, the remainder will be investigated and dealt with in #3129


Add cryptol helper functions

Please note that while we are transitioning from travis-ci to AWS CodeBuld, some tests are run on each platform. Non-AWS contributors will temporarily be unable to see CodeBuild results. We apologize for the inconvenience.
Issue # (if available):
Description of changes:
Adding cryptol helper functions that print the handshake to help debug tls 1.3 handshake
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #1708 into master will increase coverage by 5.83%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1708      +/-   ##
==========================================
+ Coverage    81.8%   87.64%   +5.83%
==========================================
  Files         220      143      -77
  Lines       16101    10232    -5869
==========================================
- Hits        13172     8968    -4204
+ Misses       2929     1264    -1665


[Bug] Athena query literals with interpolated variables require terminated quotes

How to reproduce:

Follow the well-architected-labs Level200 guide
Try to deploy the linked cfn template for CUDOS CID
CFN run fails due to Lambda failing --> QSCURBuildViews fails

    "Status": "FAILED",
    "Reason": "See the details in CloudWatch Log Stream: 2022/01/23/[$LATEST]3e8ecbd7664945e1af7e5db003a18cb0",
    "PhysicalResourceId": "2022/01/23/[$LATEST]3e8ecbd7664945e1af7e5db003a18cb0",
    "StackId": "arn:aws:cloudformation:us-west-2:<REDACTED_ACCT>:stack/CUR-200-QS/cbe38200-7c77-11ec-8ec0-06f60e5b9835",
    "RequestId": "953e69de-4320-4d7f-9f30-ca45474cc9dc",
    "LogicalResourceId": "QSCURBuildViewsLambdaExecutor",
    "NoEcho": false,
    "Data": {
        "Reason": "Step: 'Identify RI SP configuration' Exception: [<class 'botocore.errorfactory.InvalidRequestException'>] An error occurred (InvalidRequestException) when calling the StartQueryExecution operation: line 2:49: mismatched input '.5'. Expecting: ',', '.', 'AS', 'CROSS', 'EXCEPT', 'FOR', 'FULL', 'GROUP', 'HAVING', 'INNER', 'INTERSECT', 'JOIN', 'LEFT', 'LIMIT', 'NATURAL', 'OFFSET', 'ORDER', 'RIGHT', 'TABLESAMPLE', 'UNION', 'WHERE', <EOF>, <identifier>"
    }
}```

I've found & fixed the problem, I'll try to open up a PR soon...
Problem exists in the following places:

https://github.com/aws-samples/aws-cudos-framework-deployment/blob/main/cfn-templates/cudos-cfn.yml#L295

Fixed code:
                  account_map_query = f"""
                      CREATE OR REPLACE VIEW account_map
                      AS SELECT DISTINCT
                          line_item_usage_account_id account_id,
                          line_item_usage_account_id account_name
                      FROM \"{table_name}\"

https://github.com/aws-samples/aws-cudos-framework-deployment/blob/main/cfn-templates/cudos-cfn.yml#L315

Fixed code:
              queryId = athena.start_query_execution(
                  QueryString=f"""
                      SELECT COUNT(distinct {fieldName})
                      FROM \"{database_name}\".\"{table_name}\"
                      WHERE {fieldName} <> ''
                  """.strip(),

This is as straight-forward as a pull-request can get. Is anyone going to review or merge this?

Thanks for the fixed, merged, closing issue


Add insecure config to bypass unknown cert issue

Close this PR as we are not rushing for Thursday's code freeze.


Logic changes to deal with double power outputs on axles

should completely deal with gearboxes that are placed incorrectly depowering axles.
edit:  i'm out for the night if something needs to be changed ill get to it in the morning.
edit: I feel axles should have some sort of checks to see if side is input or output so we could simply check it before setting power to 0, but i didnt wanna change the way the internals work to majorly.

what does this address, exactly? does this make axles stop spinning when they receive two inputs from opposite sides?

probably easier to load the mod up and check it as its hard to describe but ill try to explain. if you have a gear/mergebox powering a axle and you place a empty box output side next to said axle it completly stops the system on break do to always setting the adjacent power to 0 . this fixes said issue but doesn't affect normal behavior otherwise.

I'm not seeing this behavior in dev so i'm not sure i fully understood how to reproduce this

hmm should just need to hook gear box up to a creative source like normal then stick a axle to one of the gearboxes outputs, then add a second gearbox output side onto the same axle. I actually need to check if sticking a output gearbox onto another gearbox resets its power to 0 since i completly forgot it.

anything that extends IGearbox sets output side connection to 0 on break.

this is a bit suspect, it doesn't happen if one of the gearboxes is just a creative power source so something might still be wrong in gearbox code land....

I'll try to find the exact cause in a bit if you want, i thought it was just due to setting output to 0.

ah i see, it's because creative power sources call updateNeighbor every tick so it automatically fixes itself. this is a bit of a problem but i'd prefer if this could be solved on the axle level possibly

aye i completly agree with you this was a bandaide fix, as i mentioned above i felt it needed to be handled in the axle but i didnt wanna mess with the ground mechanics of your mod without you giving it a green light. did you want to deal with the mechanic changes yourself?

if you want to have a shot at the axle changes feel free. The code can only get better, really :p

gotcha ill fork my current and do some overhaul experiments, I also feel that they tile entitys should be abstracted a bit from some some sort of base Tileentity class so the code shared between all the Mystical tile entites can be called without specification things like getPower() and such. how do you feel?

I think abstraction should be fine as long as it's a) not 1-baseclass for everything nightmare carnival and b) not necessary for api implementors

ya atm we are limit to basic minecraft tileentities on alot of check it would just be nice to check for mysticaltileentity and then run methods that are already shared between your tileentities like setpower and such

Going close this until proposed changes are complete. thanks for your attention =P.


Do you have some help on how to install k4a package under windows?

How did you install it? I'm using vcpkg on Windows to install it but it keeps failing.


Merge @LorelaiL's extract_module refactor and my fixes to dev

Tests are passing and the output now looks the same as from dev (on my current set of inputs).  Will need someone to check that this still works correctly in an actual oref0 loop implementation before we can merge it to dev.  Should also get someone to do a code review and make sure they don't see anything there that we shouldn't merge.

@jasoncalabrese @amazaheri @LorelaiL anything else, or are we good to merge to dev?


worng type for int4range :unknown

the ts type generation for int4range is unknown in suapbse cli  @1.190.0

Thanks for reporting this issue. I will move it to pgmeta repo which we use for type generation.


Add codeberg.org/mergiraf/mergiraf

https://codeberg.org/mergiraf/mergiraf
https://mergiraf.org/installation.html

Installation
You can download Mergiraf from Codeberg. Choose the archive that matches your device's architecture and place the extracted binary in your PATH.
If you have Rust installed, you can also install Mergiraf from source by cloning its repository and running cargo install --path . in it.

https://codeberg.org/mergiraf/mergiraf/releases

Thank you.

https://github.com/aquaproj/aqua-registry/pull/28751

https://github.com/aquaproj/aqua-registry/releases/tag/v4.250.0 🎉


Documentation for tf.keras.backend.max is missing

URL(s) with the issue:
Please provide a link to the documentation entry:
https://www.tensorflow.org/api_docs/python/tf/keras/backend/max?hl=FA
Description of issue (what needs changing):
Go to https://www.tensorflow.org/s/results?q=keras.backend.max and click on the first link (in fact, any link related to that API).
The link to the API, tf.keras.backend.max is not available. Is it intentional, because, in the Source Code, it is set not to generate the Docs.
If it is intentional, can you please explain why? Is there a better alternative to this API, or you have plans to Deprecate it, etc..
Correct links
Is the link to the source code correct? : No (Link for the API itself is missing)
Parameters defined
Are all parameters defined and formatted correctly? : No
Returns defined
Are return values defined? : No
Raises listed and defined : No
Usage example
Is there a usage example? : No
Submit a pull request? :
I'm ready to submit a PR to remove this line of code if it is fine with you.

duplicate #45860


Build error with Parcel

When i run build, as soon as I add
import {PdfLoader} from 'react-pdf-highlighter-extended';
while using parcel bundler, i get the following error:
thread '<unnamed>' panicked at src\values\color.rs:3225:12:
internal error: entered unreachable code
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Does anybody have ideas why this happens?
Minimal repo that demonstrates the issue

Seems like issue is caused by parcel, not by library. It works with webpack.


Suggestions for localSymlinkOnly branch

Hi John,
I made these changes while testing out your branch locally. Please have a look and merge this into your branch if you think they make sense.

Removed trailing whitespace at the end of all lines and add newly introduced imports on their own line (per PEP8)
I believe that "dx build ." (and probably "dx build" on other relative paths too) was failing because the working directory was set in preparation for the tar file to be created. I fixed "dx build ." by restoring the original cwd after the tar file is complete. Can you confirm whether this fixes the problem you observed as well, or can you give me more info about how to reproduce the problem you're seeing on master? (I then tried to uncomment out the tests that you had disabled in connection with this issue, but they still failed.)
I removed a comment about using the maximum of the mtimes of the symlink and its referent (which I am guessing is a comment you added but never implemented).

Thanks,
Phil

Phil,
Thanks for the style guide pointers.  Clearly, Python isn't my primary language; I know just enough to be dangerous.
I've also changed the comment to accurately reflect the method of mtime and mode for links, whether dereferenced or not.
You're exactly right on the cause of the relative dx build issue; great catch.  Instead of changing the cwd, I decided to just change the name of the file in the tar.  I was already doing that with files, so I just needed to implement that in the directory addition step.  I've uncommented the relative build test and now all works as expected.
Thanks for all of your help taking the idea and polishing it; I know that you've spent a lot of time looking this over, and I greatly appreciate it.
All changes above should be incorporated in dc66fa4.
-John


Zoom 4 relief x-y positioning is off, and extremely off by the ±180 anti-meridian

Seems to be worse above a certain latitude, too?
http://tangrams.github.io/walkabout-style/#4/60.61/-134.60
v1.0

v1.1

I'm pretty sure that this is related to https://trac.osgeo.org/gdal/ticket/7020 where the offsets get magnified on each overview level.

By magnified you mean each zoom out from the "1 pixel" offset gets a few more offsets?
One option is for us to not overwrite the v1.0 bucket's low zoom tile content at all. Doesn't solve the problem, but may be a shippable solution now while the upstream bug is sorting itself out.

Yup, that's my gut thinking.
If the current low zoom tiles are good enough, that makes sense to me.

When I tried adjusting GMTED to show a zoom earlier, nothing changed. I looked at the footprints database and noticed that GMTED has no footprint over Greenland:

The bit in the middle there is the southern tip of Greenland. Seth pointed out that it was the part south of 60° so we went looking for other data at the GMTED viewer. The 7.5 arcsec tile in that area only includes the southern tip of Greenland that was covered by SRTM (which is what we have). But the 30 arcsec data tile includes Greenland:

This tile and most of the other 30 arcsec tiles (including ones north of Antarctica) don't seem to be in the elevation-sources-prod bucket, so they weren't transcoded. I'm going to transcode them now and see if this helps with Greenland.

I transcoded GMTED from here, but the resulting transcoded images don't mark zero as nodata, so we end up with stuff like this (with gmted blocking etopo):

And even with the 30 arcsec GMTED Iceland doesn't look as good as it should:

Still not sure what we're missing here. It looks like it's bad data, not bad software.

All of these comments I made should have been on #165. 😑

@iandees Doh! Can you move them over there, please?

(I moved several comments I mistakenly added to this ticket over to https://github.com/tilezen/joerd/issues/165)

This bothers me less and less on subsequent views – but is still a problem we should fix.


Enhanced 'show then dismiss' methods

Added configurable duration and completion callback

I added this functionality by simply adding a few lines to SVProgressHUD.m:
+(void)showInfoWithStatus:(NSString *)string forDuration:(int)displayInterval maskType:(SVProgressHUDMaskType)maskType {
[self sharedView];
[[self sharedView] showImage:SVProgressHUDInfoImage status:string duration:displayInterval maskType:maskType];
}
... and this line to SVProgressHUD.h:
+(void)showInfoWithStatus:(NSString *)string forDuration:(int)displayInterval maskType:(SVProgressHUDMaskType)maskType;
Now, I can call the "showImageWithStatus" function, and keep it on the screen for 10 seconds, using:
[SVProgressHUD<EMAIL_ADDRESS>forDuration:10 maskType:SVProgressHUDMaskTypeGradient];

I do not agree on this functionality. A hud should only be displayed if really necessary, not just for visualization purposes. Here e.g. you show "Saving ..." for 10 seconds, event if the real saving process may be way faster. This hinders user interaction ...

We were using the HUD to show a "Saving.." message and usually, the web service call would finish within 1-2 seconds, and then I'd display a "Successfully saved" HUD message.   Perfect.
Problem is, if it took longer, then the "Saving.." HUD would disappear, the user would be left wondering... "huh ?!  what happened ?  did it finish ?  do I need to click on Save again ?"
So sometimes, yes, having a Duration parameter can be useful  (which is why several users of this excellent HUD class have requested it over the years)
Anyway, I haven't modified any GitHub code, I'm just posting this addition here, if any developers come across this need in their apps.   And adding a simple "duration" parameter is much friendlier (and more intuitive) than dealing with the NSNotificationCenter class.


Generated docs are missing

Hi,
Thank you for this work!
I'm a bit lost when trying to use MkDocs-gen-files to build my doc site. Can I ask if you are keen to point out what mistakes I made?
Currently I have the following code in docs/generate.py
import os

import mkdocs_gen_files

def process_file(filename):
    with open(filename) as f:
        content = f.read()
    # headline_index = 0
    # for line in content:
    #     if line.startswith("# "):
    #         break
    #     headline_index += 1
    # content = content[headline_index:]

    filename = os.path.dirname(filename.removeprefix("multimolecule/")) + ".md"

    with mkdocs_gen_files.open(filename, "w") as file:
        print(content, file=file)

    mkdocs_gen_files.set_edit_path(filename, "gen_pages.py")

for root, _dirs, files in os.walk("multimolecule/models"):
    if "README.md" in files:
        process_file(os.path.join(root, "README.md"))

I have inspected that all files are successfully generated under mkdocs_gen_files.directory. But they are missing from then since.
You can find my full code at:
https://github.com/DLS5-Omics/multimolecule/tree/autodoc
The command I used to build the docs is mkdocs build -f docs/mkdocs.yml

Running into same issue. Are there any updates on this topic ?


cannot find jq

Hi
I tried docker-stubby-unbound but when I run build local.sh it gets the following error:
$ ./buildlocal.sh
Cannot find jq. Exiting ...
any ideas what I need to do to fix this?
thank you!

Hi,
You need to install jq.
Regards.


Java - Self expansion of QueryParameters without reflection

I was reviewing this issue, and this proposal is aimed to fully remove all the usages of reflection in Java.
The QueryParameter type classes are currently using annotations, in combination with reflection up into abstractions (not easily swappable in user-land).
I do believe that a generated approach is preferable over the current implementation, it will also more closely resemble the design of the serialization/deserialization of the objects.
Code currently generated
class GetQueryParameters {
    /** Select properties to be returned */
    @QueryParameter(name = "%24select")
    @jakarta.annotation.Nullable public String[] select;

    /** Search items by search phrases */
    @QueryParameter(name = "%24search")
    @jakarta.annotation.Nullable public String search;
}

Proposal
class GetQueryParameters {
    /** Select properties to be returned */
    @jakarta.annotation.Nullable public String[] select;

    /** Search items by search phrases */
    @jakarta.annotation.Nullable public String search;

    public Map<String, Object> toQueryParameters() {
      return Map.of(
         "%24select", select,
         "%24search", search);
    }
}

the corresponding implementation of addQueryParameter simplifies to:
    public void addQueryParameters(@Nullable final Map<String, Object> parameters) {
        if (parameters == null) return;
        queryParameters.putAll(parameters);
    }

and the rest should be changed accordingly to make use of the new instance method.
After this change, we can safely delete the QueryParameter annotation, and the generated LOCs will be comparable with the current implementation.
I'm happy to hear feedback on this proposal and I can volunteer to implement it as I believe that removing reflection is one key aspect that will determine the success of Kiota in the Java ecosystem (e.g. being able to execute Kiota with zero configuration on native-image is the end goal).

Hi @andreaTP,
Thanks for the reminder on this.
I think this is promising, two things this proposal doesn't account for:

We need to check for null values before adding them in the addQueryParameters implementation.
The toQueryParameters method probably needs to have entries for query paramters where the URI Template parameter name matches the symbol name (I don't believe we emit annotations today when that's the case)

Other than that, if we don't anticipate a significant increase in size, we should proceed. And yes, please take it on if you can, this is time sensitive as this would be on the red-path for the Microsoft Graph Java SDK GA.

I don't think the increased size is going to be humongous, also, the advantage of completely removing reflection is really appealing!
I'll take it :+1:


Minor typo in CoreWebView2EnvironmentOptions.AdditionalBrowserArguments docs

Minor typo in https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2environmentoptions.additionalbrowserarguments?view=webview2-dotnet-1.0.1150.38
it is ignore should be it is ignored.
Unable to edit page or find direct feedback form, so filing here per guidance from https://github.com/MicrosoftDocs/Contribute/issues/607#issuecomment-1068529363

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

ID: 959795d0-fc31-eee2-8730-ab47d8cca845
Version Independent ID: 39dd3adf-eb28-3de5-1d26-210775209efd
Content: WebView2 API Reference - Microsoft Edge Development
Content Source: microsoft-edge/webview2/webview2-api-reference.md
Product: microsoft-edge
Technology: webview
GitHub Login: @MSEdgeTeam
Microsoft Alias: msedgedevrel

Typo fixed. Thanks for reporting it, @alesandroortiz.


Consider downsampling long time periods

Rendering of flot charts gets slower with long time spans (weeks), and the large number of data points it's often more than can actually be rendered onscreen. Consider using flot-downsample to reduce the number of points actually plotted and improve performance.

Incorporated with an adaptive threshold.

Example - all data:

Downsampled:

Beautiful.  This will be very helpful.


Remove deprecated code since 0.23 in qiskit/visualization/state_visualization.py

There is code in qiskit/visualization/state_visualization.py deprecated in 0.23 that needs to be removed:

qiskit/visualization/state_visualization.py:1283 (num_to_latex_ket)
qiskit/visualization/state_visualization.py:1302 (numbers_to_latex_terms)

This includes:

Remove deprecated code and tests (if they only check the deprecation raise)
tag the PR as Changelog: Removal
create a release note in the category upgrade:. If you can include an example with an alternative for user to migrate to the new code, as this change might break users code.

Hi @1ucian0, can you please assign this to me?

done, thanks!


Include hierarchy output

Added a new command line option -output-includes (perhaps needs a better name)
Improved output when a token paste is used

The core idea here was to make a SourceView to optionally record a SourceLoc that defined where it was initiated from in other source. This 'initiation' could be from a #include or from token pasting.
With this extra information it is possible to display #includes in the order they are taken. The initial version used the token stream to define the order.. but of course that doesn't work if there aren't any tokens. The solution used here is to just just build up the hierarchy defined by initiating parent/child relationships and then order the children by source locs. This of course assumes the SourceLocs increase in source order (which they do right now).
With the hierarchy, it is fairly straightforward to walk the tree.
The token paste was actually the initiating idea to the PR - it seemed something could be knocked together such that it would be faster to write it than write an issue. That intuition was false though - outputting where a paste initiated (in effect which macro), is perhaps somewhat useful, but that's not really enough - at a minimum knowing where the original macro application occurred would be very useful. More useful but perhaps yet more complex would be to know the history of how the token was produced. Will add an issue - as this PR doesn't really fix the the original motivating problem well enough.

I'm going to refactor this a bit - I don't like my hierarchy type it's overkill.


wsl-vpnkit works twice then stops working

I'm running into a very peculiar problem with wsl-vpnkit. I just installed the program after a few months of messing with resolv.conf every week. Basically wsl-vpnkit manages to nslookup example.com twice before it decides to stop working until a WSL terminate, where the same thing happens. Logs:
>  wsl.exe -d wsl-vpnkit tail -f /var/log/wsl-vpnkit.log
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
nslookup: can't connect to remote host (<IP_ADDRESS>): Network unreachable
check: ❌ nslookup fail for example.com AAAA using <IP_ADDRESS>
nslookup: can't connect to remote host (<IP_ADDRESS>): Network unreachable
check: ❌ nslookup fail for example.com AAAA using <IP_ADDRESS>
ping: bad address 'example.com'
check: ➖ ping fail to IPv6 external host (example.com)
wget: bad address 'example.com'
check: ❌ wget fail for https://example.com

I'm using Surfshark VPN with OpenVPN (UDP). Starting the service does not change anything from my WSL linux instance, still cannot connect.
$ wsl.exe -d wsl-vpnkit service wsl-vpnkit start
$ sudo ping google.com
ping: google.com: Temporary failure in name resolution
$ dig google.com # freezes
^C^C
$ nslookup google.com # also freezes
^C
^C
$ sudo ping <IP_ADDRESS>
ping: connect: Network is unreachable

I'm not sure if I need to change the wsl-vpnkit config in order to make it work, since the documentation isn't very clear. Should I be changing something in /etc/resolv.conf on my linux instance?
Edit: I nslookup'd google.com in powershell and attempted to ping that IP in the linux instance. However that still errors, meaning that it is not (only) a DNS issue.

I have to caution you that if editing resolv.conf fixes your connectivity issues, your VPN does not really block network connectivity from WSL 2, and sticking to just setting your DNS server in resolv.conf is probably a better way to go.
That said, try running wsl-vpnkit in the foreground, then try testing your connectivity in a separate terminal.
# PowerShell

wsl --shutdown
kill -Name wsl-gvproxy

wsl.exe -d wsl-vpnkit wsl-vpnkit

# keep this open

# your WSL 2 distro shell

ip route | grep default
# should return something like "default via <IP_ADDRESS> dev eth1 metric 207"

nslookup google.com <IP_ADDRESS>
ping -c 1 <IP_ADDRESS>

The default configuration should work unless you have specific requirements. There should be no need to edit resolv.conf, although you can if you want to use a separate DNS server.

Thanks for the reply!
Re your point about resolv.conf fixing connectivity issues - my connectivity issues have been a combination of just WSL being WSL and also the VPN. So far the VPN has worked without any resolv.conf changes until today.
I tried running wsl-vpnkit in the foreground and this time it works properly, both on the logs and in my linux distro. Not sure what caused it to magically start working, as I had previously tried to restart wsl-vpnkit. Here are the logs in case you wish to debug further:
> wsl.exe -d wsl-vpnkit wsl-vpnkit
starting wsl-vpnkit
cleaning up iptables...
iptables cleanup done
restoring WSL 2 ip route...
ip: RTNETLINK answers: File exists
restored WSL 2 ip route
wsl-gvproxy.exe exists at /mnt/c/Users/[username]/wsl-vpnkit/wsl-gvproxy.exe
starting gvproxy at /mnt/c/Users/[username]/wsl-vpnkit/wsl-gvproxy.exe...
started gvproxy
waiting for dhcp...
INFO[0000] waiting for packets...
udhcpc: started, v1.34.1
udhcpc: broadcasting discover
time="2022-03-03T15:33:05+08:00" level=info msg="new connection from remote to 8692"
udhcpc: broadcasting select for <IP_ADDRESS>, server <IP_ADDRESS>
udhcpc: lease of <IP_ADDRESS> obtained from <IP_ADDRESS>, lease time 3600
default via <IP_ADDRESS> dev eth1  metric 206
dhcp completed
removing WSL 2 ip route...
removed WSL 2 ip route
adding rules to iptables...
iptables done
check: ✔ ping success to IPv4 WSL 2 gateway / Windows host (<IP_ADDRESS>)
check: ✔ ping success to IPv4 Windows host (<IP_ADDRESS>)
check: ✔ ping success to IPv4 gateway (<IP_ADDRESS>)
check: ✔ nslookup success for example.com A using <IP_ADDRESS>
check: ✔ nslookup success for example.com A using <IP_ADDRESS>
check: ✔ nslookup success for example.com A using <IP_ADDRESS>
check: ✔ nslookup success for example.com A using <IP_ADDRESS>
check: ✔ ping success to IPv4 external host (example.com)
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
check: ✔ nslookup success for example.com AAAA using <IP_ADDRESS>
ping: bad address 'example.com'
check: ➖ ping fail to IPv6 external host (example.com)
check: ✔ wget success for https://example.com

$ ip route | grep default
default via <IP_ADDRESS> dev eth1 metric 206
$ nslookup google.com <IP_ADDRESS>
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   google.com
Address: <IP_ADDRESS>
Name:   google.com
Address: 2404:6800:4005:802::200e
$ ping -c 1 <IP_ADDRESS>
ping: socket: Operation not permitted
$ sudo ping -c <IP_ADDRESS>
ping: invalid argument: '<IP_ADDRESS>'
$ nslookup google.com <IP_ADDRESS>
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   google.com
Address: <IP_ADDRESS>


Add SpringBoot guide and update example

Thank you for opening a pull request and contributing to AsciidoctorJ!
Please take a bit of time giving some details about your pull request:
Kind of change

[ ] Bug fix
[ ] New non-breaking feature
[ ] New breaking feature
[ ] Documentation update
[ ] Build improvement

Description
What is the goal of this pull request?
Add guide to docs about SpringBoot quirks.
How does it achieve that?
Adds new page Running AsciidoctorJ with Spring Boot
Are there any alternative ways to implement this?
Not.
Are there any implications of this pull request? Anything a user must know?
Also updates the test. I run some extra tests and current versions does not require exclusion of jRuby.
Issue
If this PR fixes an open issue, please add a line of the form:
Fixes #Issue
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc

With this I think we can close https://github.com/asciidoctor/asciidoctorj/issues/820 & https://github.com/asciidoctor/asciidoctorj/issues/666.

Awesome, thank you!


Added rule_run_at to group multiple actions in a single rule

A single rule can fire multiple actions, when these actions are sent to the aap-server, it doesn't know if the rule has 1 action or more than 1 actions. The rule_run_at allows us to group all the actions into a single rule. This also helps on the server side since we are capturing when the rule engine, Drools tells us that a rule has matched and we should fire the actions.

lgtm


using magicclass and popup boxes

Hi @hanjinliu
Thanks for this amazing tool. I've been enjoying playing around with it.
I was looking at this example using pandas and seaborn
When clicking each button, a popup window appears.

Instead of a popup window, how can I have the fields appear in the main window (in this case, above the Swarm Plot button)? Also, my aim is that once the user enters the values within the main window and clicks the Swarm Plot button it just plots it using the values without an additional box?
I can see you've used field or magicgui before, but where do I add that if I was following a similar workflow as your seaborn example?
Cheers
Pradeep

Hi @pr4deepr,
I'm happy to hear you enjoy coding with magic-class!

About popups.

I'm sorry, I need more time to make it work because there would be a lot of options to open the magicgui widget (such as in a napari-like way, in the last position or right below the button as you mentioned). You can suppress popup with option @magicclass(popup=False) for now, but this option still has some bugs (some of them are fixed in the latest 0.5.4dev0).

How to use field in this example.

First, since you want to let fields like x and y appear in the Plot_Menu widget, these fields should be defined inside the Plot_Menu class.
class Plot_Menu:
    x = field(str)
    y = field(str)
    hue = field(str)
    dodge = field(bool)
    def Plot(self): ...
    def Histogram(self): ...

Every time seaborn's plot function is called, you have to refer to those fields. Since _seaborn_plot function is a member of the class Analyzer, those fields should be accessed via self.Tools.Plot_Menu. Modified functions would look like:
class Analyzer:

    ...

    def _seaborn_plot(self, plot_function):
        x = self.Tools.Plot_Menu.x.value or None
        y = self.Tools.Plot_Menu.y.value or None
        hue = self.Tools.Plot_Menu.hue.value or None
        dodge = self.Tools.Plot_Menu.dodge.value
        self.canvas.figure.clf()
        df = self._current_df()
        plot_function(data=df, ax=self.canvas.ax, x=x, y=y, hue=hue, dodge=dodge)
        self.canvas.draw()

    @Tools.Plot_Menu.wraps
    def Box_Plot(self):
        """Show box plot"""
        self._seaborn_plot(sns.boxplot)

and the main window will look like this

Hi @hanjinliu
This is great. Thanks for the quick reply.
In regard to location of the popup, I can see why it gets complex!!  Can it be done so that it appears above or below the button as an initial implementation?
I am mainly using this in napari, but I thought I'd try your examples first to get an understanding.
When using  @magicclass(popup=False) in napari, the popup box doesnt appear, but I have to click it twice so that it reappears.
Also, another thing I noticed is that the pop up boxes don't dock onto napari. Why is that?
Cheers
Pradeep

Hi @pr4deepr,
Yes, I was aware of the bug and it's fixed now.
I've also added some popup options in the main branch. Can you clone it and give it a try? Instead of @magicclass(popup=False), you can use @magicclass(popup_mode="dock") to dock popup widgets in napari (although only docking in the right area is supported for now). It's compatible with close_on_run option, so you can use @magicclass(popup_mode="dock", close_on_run=False) to prevent them from being closed every time.
Currently implemented popup modes are: 'first' (top of the widget), 'last' (bottom of the widget), 'dock', 'above' (above the button), 'below' (below the button) and 'parentlast' (bottom of the most parent widget). I hope they'll be helpful.

Thank you so much.
So, when I run  the code like this in napari:
from magicclass  import magicclass
from pathlib import Path
import napari
from skimage import io

@magicclass
class test_widget:
    @magicclass(widget_type="toolbox", name = "Analysis")
    class Tools:
        @magicclass(popup_mode="dock")
        class File_Menu:
            def Open_File(self,path:Path):
                print("Opening", path)
                img=io.imread(path)
                viewer.add_image(img)

widget = test_widget()

viewer=napari.Viewer()
viewer.window.add_dock_widget(widget)
napari.run()

I can click Open file from the napari window and it works fine.
However, when using the napari plugin system generated by napari cookiecutter, followed by calling this from the napari plugin menu, I get an error:
NoneType has no attribute: add_image.
I'm assuming its with how I initialise or define the napari viewer, but I can't figure out where to define this appopriatelY?

@magicclass
class test_widget:
    @magicclass(widget_type="toolbox", name = "Analysis")
    class Tools:
        @magicclass(popup_mode="dock")
        class File_Menu:
            def Open_File(self,path:Path, viewer:Viewer):
                print("Opening", path)
                img=io.imread(path)
                viewer.add_image(img)

@napari_hook_implementation
def napari_experimental_provide_dock_widget():
    return [(test_widget, {"name" : "Analysis widget"} )]

Apologies if the questions are too basic.

I'm not sure what's going on when napari registers its Viewer object to magicgui, so I don't have a correct answer to your question...
But magicclass objects have a property parent_viewer, which returns a pointer to its parent napari.Viewer object. Can you try this code?
def Open_File(self, path: Path):
    print("Opening", path)
    img = io.imread(path)
    self.parent_viewer.add_image(img)

Ok, that works really well.
Thanks a lot @hanjinliu
BTW, is there any link to documentation for magic-class? There is so much good stuff in here!!
Happy to help in anyway..

I've posted this on imagesc forum to get input from napari developers about accessing the viewer.
https://forum.image.sc/t/problem-accessing-napari-viewer-with-magic-class/59680/2
I don't know if you're on imagesc..

is there any link to documentation for magic-class?

I admit that's a high-priority task, so please wait for a while... It would be great if you'll visit the documentation and send some feedbacks to me.

I've posted this on imagesc forum to get input from napari developers about accessing the viewer.

Thank you very much! The discussion there are also helpful for me. I have not joined imagesc yet, but it seems that I should also sign up!

Yea, I'd recommend you join imagesc. I think there was a question for you by Talley on the forum:
https://forum.image.sc/t/problem-accessing-napari-viewer-with-magic-class/59680/3?u=pr4deepr
BTW, I am having some more trouble now.
If I run this piece of code using napari plugins to blur an image for example:
from napari.types import ImageData
from magicgui import magicgui
from napari import Viewer
from napari_plugin_engine import napari_hook_implementation

from magicclass import magicclass
from pathlib import Path
from skimage import io
from skimage.filters import gaussian

@magicclass(widget_type="scrollable")
class test_widget:
        @magicclass(widget_type="list", popup_mode="last")
        class File_Menu:
            def Open_File(self,path:Path, viewer:Viewer): ...

            @magicgui
            def blur(self,sigma:int): ...

        @File_Menu.wraps
        def Open_File(self,path:Path):
            print("Opening", path)
            img=io.imread(path)
            self.parent_viewer.add_image(img)

        @File_Menu.wraps

        def blur(self,img_data:ImageData,sigma:int):
            print("Blurring")
            blurred_img=gaussian(img_data,sigma)
            self.parent_viewer.add_image(blurred_img)

@napari_hook_implementation
def napari_experimental_provide_dock_widget():
    return [(test_widget, {"name" : "Analysis widget"} )]

I get this in napari:

But, when entering a sigma value and clicking Run, it doesn't work or execute the "blurring" function.
However, when I move the blur function to be under the File_Menu class, it works now:
from napari.types import ImageData
from magicgui import magicgui
from napari import Viewer
from napari_plugin_engine import napari_hook_implementation

from magicclass import magicclass
from pathlib import Path
from skimage import io
from skimage.filters import gaussian

@magicclass(widget_type="scrollable")
class test_widget:
        @magicclass(widget_type="list", popup_mode="last")
        class File_Menu:
            def Open_File(self,path:Path, viewer:Viewer): ...

            @magicgui
            def blur(self,img_data:ImageData, sigma:int):
                print("Blurring")
                blurred_img=gaussian(img_data,sigma)
                self.parent_viewer.add_image(blurred_img)

        @File_Menu.wraps
        def Open_File(self,path:Path):
            print("Opening", path)
            img=io.imread(path)
            self.parent_viewer.add_image(img)

<EMAIL_ADDRESS>        #def blur(self,img_data:ImageData,sigma:int):
            #print("Blurring")
            #blurred_img=gaussian(img_data,sigma)
            #self.parent_viewer.add_image(blurred_img)

@napari_hook_implementation
def napari_experimental_provide_dock_widget():
    return [(test_widget, {"name" : "Analysis widget"} )]

Happy to provide feedback on documentation. Let me know if/when you have a link

The compatibility of wraps decorator and magicgui decorator is a little bit tricky...
The following code should work. But sorry again, I found a bug while debugging your code, so could you clone the latest code again?
@magicclass(widget_type="scrollable")
class test_widget:
    @magicclass(widget_type="list", popup_mode="last")
    class File_Menu:
        def Open_File(self, path:Path): ...
        def blur(self,sigma:int): ...

    @File_Menu.wraps
    def Open_File(self,path:Path):
        print("Opening", path)
        img=io.imread(path)
        self.parent_viewer.add_image(img)

    @File_Menu.wraps
    @magicgui
    def blur(self,img_data:ImageData,sigma:int):
        print("Blurring")
        blurred_img=gaussian(img_data,sigma)
        self.parent_viewer.add_image(blurred_img)

If you predefined blur function with @magicgui, then @magicclass convert it into a FunctionGui with an empty function. @magicclass searches for wrapped function in the parent class (like the function below @File_Menu.wraps) only when it encounters a normal method in the child class. That's why you found a FunctionGui in the widget but no response occurred when you click it.
The predefinition/wraps strategy is needed only when you want to call parent method from its child widget. In your case, you don't have to use this strategy because the blur function don't have to know its parent state. You can just keep using the second code you showed.

Happy to provide feedback on documentation

That's great! Thanks for your help and interest in magic-class!

Thanks. Eventually, I would like to design a sequence of widgets, where:

open a file and read metadata within the Open_file widget, and assign these attributes to parent class test_widget.
Access the new attributes created across other widgets under test_widget class.

Is this the right approach?

Ah yes, in that case you'll have to use wraps decorator.


feat: add 25% to amount to calculate fee

Motivation
So this morning I was looking to transfer some ERC20 transactions for PR 1294 but, none of my transactions were successful. Root cause of the problem was the gas fee being entirely consumed.
A few weeks ago the cross-chain team recommended us to add a 10% to the fee as buffer, so I tried to implement this solution but, even with this amount it falled close enough.
That's why this PR adds 25% to the calculation of the ERC20 fees.
Changes

in getErc20FeeData adds a 25% to the fee result

Test
Example of transaction that ended in error without enough gas:
https://sepolia.etherscan.io/tx/0x5b76eedfb25b6a11ad72a2b882ac624eec612c38fc57eb676fdc1e510b4429ba
https://sepolia.etherscan.io/tx/0x2dc1183471247604cf979d46d773ce21343c2db82ec15af7fc374898df9985d3
Example of transaction that succeeded with this PR:
https://sepolia.etherscan.io/tx/0xd0c119d94493c1f6cda5011414733722a7b207f68aa265219067192c820d078e

I was looking that in the code we use Infura to get the estimate.
However, I recall that Etherscan is a more reliable source and even provides history of recent Gas Fee through the Gas Tracker API. That could be leveraged at some point to have a better buffer.
Do you think it is worth to leave there a TODO so that at some point we switch to a more real-time buffer and remove the hard-coded one?

Your input is excellent! 👍
To share some context, I'm not sure if we had it explicitly in the Roadmap, but generally speaking, we are aware that we should improve the topic fee. This includes improving its estimation and the related UX, such as allowing the user to modify the fees or replay transactions that fail.
We can consider it within this general story or even separately. So instead of a TODO, I suggest that we create a JIRA task. Even if your input is probably more accurate, we should validate the hypothesis. Would you like to open the JIRA task yourself or should I do so?
Meanwhile, unless you think this small improvement is not a good idea, I would merge this PR. It's still better than failing.


not getting response

when clicking start provisioing button the spinkit ripple is only showing ..not other response .again quting appp and again clicking the button loads the available ble devices.some times its working some times its not working ..i tested it in android .i cant find the exact problem .is any one help me

if devices not found some time its changeing ui no device found scan again .but some time loading spinkit ripple ...with out showing any other thing .how can i solve  that

I'll take a look into this and let you know. It's true, things are a bit hectic with the end of the year coming up, so working on the package might be tricky in the near future. But rest assured, I'll prioritize it as soon as I can and get that fix out to you.
This seems to be more of a problem with the "example" project than the package itself. I'll take a look and get back to you.

thankyou so much for the response.i tried to fix it but i failed.so kindly
request you to do some magic for that .other wise everything perfect.i know
to took a lot of effort for this example ...kindly requesting you to do
some tricks ....
On Sun, 17 Dec, 2023, 4:48 pm Gabriel Inácio, @.***>
wrote:

I'll take a look into this and let you know. It's true, things are a bit
hectic with the end of the year coming up, so working on the package might
be tricky in the near future. But rest assured, I'll prioritize it as soon
as I can and get that fix out to you.
This seems to be more of a problem with the "example" project than the
package itself. I'll take a look and get back to you.
—
Reply to this email directly, view it on GitHub
https://github.com/ogabrielinacio/esp_provisioning_ble/issues/8#issuecomment-1859142344,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6WVQYZT4BFBXXMAKBJN3WDYJ3IKFAVCNFSM6AAAAABAU3BHOKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJZGE2DEMZUGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hey @Manaf-A
I believe I've resolved the issue!
commit : https://github.com/ogabrielinacio/esp_provisioning_ble/commit/097b36a3e2427f5b3cf5c24bdbb2c76fa26763bc
I realized that stopping the timer within the stream wasn't the best approach. My apologies for that!
Please let me know if you have any further feedback or if you encounter any other issues.

Unhandled Exception: BleError (Error code: 401, ATT error code: 4, iOS error code: null, Android error code: null, reason: GATT exception from MAC='XX:XX:XX:XX:XX:XX', status 4 (GATT_INVALID_PDU), type BleGattOperation{description='CHARACTERISTIC_WRITE'}. (Look up status 0x04 here https://cs.android.com/android/platform/superproject/+/master:packages/modules/Bluetooth/system/stack/include/gatt_api.h), internal message: null, device ID: D4:F9:8D:3D:BD:76, service UUID: 021a9004-0382-4aea-bff4-6b3f1c5adfb4, characteristic UUID: 021aff54-0382-4aea-bff4-6b3f1c5adfb4, descriptor UUID: null)

@Nirmalvora, Can you give more information, please? Which device are you testing? Are you using the Espressif firmware into your ESP32? Is this error occurs when connecting with the device?

@nirmalvora, it is necessary more information as the requested by @ogabrielinacio to help you with your error. However, I found something that maybe useful although it isn't directly related to this package nor ESP, it is related with Bluetooth and Android, check https://github.com/JuulLabs/kable/issues/92. There the reporting user tells "I have found that I was connecting multiple times so that is the cause of the exception".
Could you provide the parts of the code in which you are connecting to the device and the context of this code (I mean the related code that surround it)? Because it seems this exception is related with a connection issue and it is possible be related with the MTU (Maximum Transmission Unit).

@Manaf-A, check @ogabrielinacio's comment (https://github.com/ogabrielinacio/esp_provisioning_ble/issues/8#issuecomment-1868366801), it is possible your issue may be solved thanks to his fix! If it is solved, the issue should be closed ❤ .
Thanks for your continuous work, Gabriel!

Hi @ivanhercaz, hi @ogabrielinacio,
I'm testing the example app and I have the same issue as reported in comment https://github.com/ogabrielinacio/esp_provisioning_ble/issues/8#issuecomment-1901748933 also with the changes reported in the commit 097b36a
Could you help me find the issue, please?

Hi @ivanhercaz, hi @ogabrielinacio,
I have some updates: I found that the cause was this code
var customAnswerBytes = await prov.sendReceiveCustomData(
  Uint8List.fromList(
    utf8.encode(event.customSendMessage),
  ),
);
var customAnswer = utf8.decode(customAnswerBytes);
log.i("Custom data answer: $customAnswer");

placed in file example/lib/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart on line 75 immediately before the prov.sendWifiConfig function
Follow the log after the operation has been completed
I/flutter (15198): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (15198): │ #0   new BleWifiBloc.<anonymous closure>.<anonymous closure> (package:example/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart:100:19)
I/flutter (15198): │ #1   <asynchronous suspension>
I/flutter (15198): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (15198): │ 🐛 Device IP:
I/flutter (15198): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
E/flutter (15198): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: BleError (Error code: 401, ATT error code: 4, iOS error code: null, Android error code: null, reason: GATT exception from MAC='XX:XX:XX:XX:XX:XX', status 4 (GATT_INVALID_PDU), type BleGattOperation{description='CHARACTERISTIC_WRITE'}. (Look up status 0x04 here https://cs.android.com/android/platform/superproject/+/master:packages/modules/Bluetooth/system/stack/include/gatt_api.h), internal message: null, device ID: 48:31:B7:34:2B:3E, service UUID: 021a9004-0382-4aea-bff4-6b3f1c5adfb4, characteristic UUID: 021aff52-0382-4aea-bff4-6b3f1c5adfb4, descriptor UUID: null)
E/flutter (15198):
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
I/flutter (15198): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (15198): │ #0   new BleWifiBloc.<anonymous closure>.<anonymous closure> (package:example/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart:100:19)
I/flutter (15198): │ #1   <asynchronous suspension>
I/flutter (15198): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (15198): │ 🐛 Device IP: <IP_ADDRESS>
I/flutter (15198): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
I/flutter (15198): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (15198): │ #0   new BleWifiBloc.<anonymous closure>.<anonymous closure> (package:example/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart:100:19)
I/flutter (15198): │ #1   <asynchronous suspension>
I/flutter (15198): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (15198): │ 🐛 Device IP: <IP_ADDRESS>
I/flutter (15198): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: readCharacteristicForDevice
I/flutter (15198): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (15198): │ #0   new BleWifiBloc.<anonymous closure>.<anonymous closure> (package:example/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart:100:19)
I/flutter (15198): │ #1   <asynchronous suspension>
I/flutter (15198): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (15198): │ 🐛 Device IP: <IP_ADDRESS>
I/flutter (15198): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
D/BluetoothGatt(15198): onClientConnectionState() - status=19 clientIf=10 device=48:31:B7:34:2B:3E
E/flutter (15198): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: BleError (Error code: 201, ATT error code: 19, iOS error code: null, Android error code: null, reason: Disconnected from MAC='XX:XX:XX:XX:XX:XX' with status 19 (GATT_CONN_TERMINATE_PEER_USER), internal message: null, device ID: 48:31:B7:34:2B:3E, service UUID: null, characteristic UUID: null, descriptor UUID: null)
E/flutter (15198):
D/BluetoothGatt(15198): close()
D/BluetoothGatt(15198): unregisterApp() - mClientIf=10
D/com.polidea.flutter_ble_lib.FlutterBleLibPlugin(15198): on native side observed method: writeCharacteristicForDevice
E/flutter (15198): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: BleError (Error code: 205, ATT error code: null, iOS error code: null, Android error code: null, reason: Reason not provided, internal message: null, device ID: 48:31:B7:34:2B:3E, service UUID: null, characteristic UUID: null, descriptor UUID: null)

Is it correct that there are other error messages from BLE?
Thanks, Vincenzo

Hello @vic-pic
This errors occurs because a bad implementation on the error handler of the package, me and @ivanhercaz  we are working on that, to find the best solution for this error

Thanks, @ogabrielinacio @ivanhercaz for your work.
This means that the error is a different one and not GATT_INVALID_PDU.
Thanks, Vincenzo

Hi @ogabrielinacio,
I have found another issue that maybe related: after I send a custom message, I receive only a part of the response
I/flutter ( 4985): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter ( 4985): │ #0   new BleWifiBloc.<anonymous closure> (package:example/src/features/ble_wifi_screen/bloc/ble_wifi_bloc.dart:194:13)
I/flutter ( 4985): │ #1   <asynchronous suspension>
I/flutter ( 4985): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter ( 4985): │ 💡 Custom data scanAp answer 2: {
I/flutter ( 4985): │ 💡         "type": "wizardConfig",
I/flutter ( 4985): │ 💡         "command":      "scanAp",
I/flutter ( 4985): │ 💡         "status":       0,
I/flutter ( 4985): │ 💡         "description":  "scan ap success",
I/flutter ( 4985): │ 💡         "sequence":     1002,
I/flutter ( 4985): │ 💡         "response":     {
I/flutter ( 4985): │ 💡                 "total":        33,
I/flutter ( 4985): │ 💡                 "ApList":       [{
I/flutter ( 4985): │ 💡                                 "ssid": "Beep Beep",
I/flutter ( 4985): │ 💡                                 "rssi": -47
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "iliadbox-780A94",
I/flutter ( 4985): │ 💡                                 "rssi": -61
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "ioGiant_6A97B0",
I/flutter ( 4985): │ 💡                                 "rssi": -67
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "GUEST-FASTWEB-2XGE29",
I/flutter ( 4985): │ 💡                                 "rssi": -68
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "FASTWEB-2XGE29",
I/flutter ( 4985): │ 💡                                 "rssi": -70
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "TIM-38325975",
I/flutter ( 4985): │ 💡                                 "rssi": -74
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "Wind3 HUB-56F871",
I/flutter ( 4985): │ 💡                                 "rssi": -74
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡                                 "ssid": "H3140-75642949",
I/flutter ( 4985): │ 💡                                 "rssi": -74
I/flutter ( 4985): │ 💡                         }, {
I/flutter ( 4985): │ 💡
I/flutter ( 4985): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

and then, for every custom message I send I receive the GATT_INVALID_PDU error.
Is there anything that I can do to read the entire response?
This is the code I used:
var data = {
  "type": "wizardConfig",
  "command": "scanAp",
  "sequence": 1002
};
var customMessage = jsonEncode(data);
log.i("sendReceiveCustomData: $customMessage");
var needToSend = Uint8List.fromList(
  utf8.encode(customMessage),
);
var encrypted = await prov.security.encrypt(needToSend);
var newData = await prov.transport.sendReceive('custom-data', encrypted);
var customAnswerBytes = await prov.security.decrypt(newData);
var customAnswer = utf8.decode(customAnswerBytes);
log.i("Custom data scanAp answer 2: $customAnswer");

The same thing happens using the sendReceiveCustomData function.
Thanks, Vincenzo

This is the code I used:
var data = {
  "type": "wizardConfig",
  "command": "scanAp",
  "sequence": 1002
};
var customMessage = jsonEncode(data);
log.i("sendReceiveCustomData: $customMessage");
var needToSend = Uint8List.fromList(
  utf8.encode(customMessage),
);
var encrypted = await prov.security.encrypt(needToSend);
var newData = await prov.transport.sendReceive('custom-data', encrypted);
var customAnswerBytes = await prov.security.decrypt(newData);
var customAnswer = utf8.decode(customAnswerBytes);
log.i("Custom data scanAp answer 2: $customAnswer");

I am curious about, why are you using the package in that way? The idea of the package is to implement a ProvTransport that then it'll be used with EspProv(transport, security) and what you use it is the EspProv methods. So it is possible that maybe something isn't working because it isn't the expected way it needs to work.
Then, looking at your code, I don't see the part in which you connect and then establish a session, so I imagine there are more lines. A possible problem, given that the error is a GATT_INVALID_PDU it is that you are connecting to device more than one at the same time or even the MTU is wrong by some reason. Take a look to this comment I wrote above https://github.com/ogabrielinacio/esp_provisioning_ble/issues/8#issuecomment-1953952812.

@ogabrielinacio this issue is being mixed a lot, so I don't know if the best option is just close it because the original issuer have not replied in months or enable the discussions in the repository and transfer it there, full or even split into several threads inside the same topic.

@ivanhercaz the code I posted above was just another try to make it working. But now I solved the problem: I use the startScanWiFi method to get the list of available WiFi networks and a custom message specific to the device to make it to connect to the WiFi and everything works correctly, I don't receive the GATT_INVALID_PDU error anymore.
Thanks for your help,
Vincenzo

@ivanhercaz the code I posted above was just another try to make it working. But now I solved the problem: I use the startScanWiFi method to get the list of available WiFi networks and a custom message specific to the device to make it to connect to the WiFi and everything works correctly, I don't receive the GATT_INVALID_PDU error anymore.

Oh, it is really great to know you already solve the solution! Thanks for letting us know ❤
I recommend you to read and follow the README of the repository from zero to practice. If you have more question, as this repository doesn't have "Discussions" enabled, you can open another issue. In case "Discussions" would be enabled in the future, questions may be moved there to keep "Issues" section just for bugs, feature requests, etc.

Thanks for your help, Vincenzo

Your welcome!


GitLab support?

Would love to be able to use this with gitlab as well, both a self hosted gitlab server and gitlab.com

I'd love to have Gitlab-support, yes.
This would require refactoring many parts of the code. So if anyone is up to it, feel free to discuss it here.


Add a way to specify default databases

Might look something like this in nitro.yaml
databases:
- engine: mysql
  version: "5.7"
  port: "3306"
  names:
  - db1
    db2

Along with a console command to facilitate

Closing this in favor of the post-apply scripts concept.


Factorization machine example & sparse example folder re-org

Description
Added an example for factorization machine, and created separate folders for the examples
@ZiyueHuang @anirudh2290  pls help review
Checklist
Essentials

[ ] Passed code style checking (make lint)
[ ] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage
[ ] For user-facing API changes, API doc string has been updated. For new C++ functions in header files, their functionalities and arguments are well-documented.
[ ] To my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

@szha

Updated with fixes to address review comments. Please review again. @szha @anirudh2290


Departments

#44

Probably a good idea to exclude most of coverage. Here's an example of what that might look like.

As another general comment, we've had good success using integration tests to achieve a lot of what your controller specs do.

Merging with master should take care of all the coverage files getting pulled back in
Also, can you please check rubocops stuff? Seems like code climate is only yelling about simple formatting things


Define for SAVE_PNG support

It would be nice to re-add the define to compile out the PNG support:
eg:
diff --git a/Android.mk b/Android.mk
index c6d83db..7e9ab1c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -127,6 +136,11 @@ ifeq ($(SUPPORT_PNG),true)
     LOCAL_CFLAGS += -DLOAD_PNG
     LOCAL_STATIC_LIBRARIES += png
     LOCAL_LDLIBS += -lz
+ifeq ($(SUPPORT_SAVE_PNG),true)
+    LOCAL_CFLAGS += -DSDL_IMAGE_SAVE_PNG=1
+else
+    LOCAL_CFLAGS += -DSDL_IMAGE_SAVE_PNG=0
+endif
 endif

 ifeq ($(SUPPORT_WEBP),true)
diff --git a/IMG_png.c b/IMG_png.c
index 462fe2f..61b5621 100644
--- a/IMG_png.c
+++ b/IMG_png.c
@@ -23,9 +23,8 @@

 #include "SDL_image.h"

-/* We'll have PNG save support by default */
-#ifndef SAVE_PNG
-#define SAVE_PNG    1
+#if !defined(SDL_IMAGE_SAVE_PNG)
+#  define SDL_IMAGE_SAVE_PNG 1
 #endif

 #if defined(USE_STBIMAGE)
@@ -115,7 +116,7 @@ static struct {
     jmp_buf* (*png_set_longjmp_fn) (png_structrp, png_longjmp_ptr, size_t);
 #endif
 #endif
-#if SAVE_PNG
+#if SDL_IMAGE_SAVE_PNG
     png_structp (*png_create_write_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn);
     void (*png_destroy_write_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr);
     void (*png_set_write_fn) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn);
@@ -170,7 +173,7 @@ int IMG_InitPNG()
         FUNCTION_LOADER(png_set_longjmp_fn, jmp_buf* (*) (png_structrp, png_longjmp_ptr, size_t))
 #endif
 #endif
-#if SAVE_PNG
+#if SDL_IMAGE_SAVE_PNG
         FUNCTION_LOADER(png_create_write_struct, png_structp (*) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn))
         FUNCTION_LOADER(png_destroy_write_struct, void (*) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr))
         FUNCTION_LOADER(png_set_write_fn, void (*) (png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn))

@@ -540,7 +599,7 @@ SDL_Surface *IMG_LoadPNG_RW(SDL_RWops *src)

 #endif /* LOAD_PNG */

-#if SAVE_PNG
+#if SDL_IMAGE_SAVE_PNG

 #if SDL_BYTEORDER == SDL_LIL_ENDIAN
 static const Uint32 png_format = SDL_PIXELFORMAT_ABGR8888;
@@ -732,7 +791,7 @@ static int IMG_SavePNG_RW_miniz(SDL_Surface *surface, SDL_RWops *dst, int freeds
 }
 #endif /* LOAD_PNG_DYNAMIC || !WANT_LIBPNG */

-#endif /* SAVE_PNG */
+#endif /* SDL_IMAGE_SAVE_PNG */

 int IMG_SavePNG(SDL_Surface *surface, const char *file)
 {
@@ -746,7 +805,7 @@ int IMG_SavePNG(SDL_Surface *surface, const char *file)

 int IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst)
 {
-#if SAVE_PNG
+#if SDL_IMAGE_SAVE_PNG
 #ifdef USE_LIBPNG
     if ((IMG_Init(IMG_INIT_PNG) & IMG_INIT_PNG) != 0) {
         if (IMG_SavePNG_RW_libpng(surface, dst, freedst) == 0) {
@@ -763,5 +822,5 @@ int IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst)
 #else
     return IMG_SetError("SDL_image built without PNG save support");

-#endif /* SAVE_PNG */
+#endif /* SDL_IMAGE_SAVE_PNG */
 }

If you do that, you should do an equivalent of it in autotools too.

Ok thanks, I'll try that later!

Haven't looked at it, but if we do this we may do a similar thing for SAVE_JPG for consistency.

@sezero I think this is quite ok, but not really used to updating autotools !?
(Should all file be regenerated ? I think I have more diff )

I will regenerate configure shortly

Fixed https://github.com/libsdl-org/SDL_image/commit/2f5c99c94e039c78b25490730531708112a3540d thanks !

This can be closed now?

still need:

CMake update
Re-gen configure files

* Re-gen configure files

That I already did

@1bsyl @sezero If PNG and/or JPG save are optional, and this can be configured separately from PNG/JPEG load support, is there a method of checking whether SDL_image has been built with/without those options? If not, is there at least an informative error message set when SavePNG/SaveJPG are called indicating that the linked version of image was compiled without those options?

@1bsyl @sezero If PNG and/or JPG save are optional, and this can be configured separately from PNG/JPEG load support, is there a method of checking whether SDL_image has been built with/without those options? If not, is there at least an informative error message set when SavePNG/SaveJPG are called indicating that the linked version of image was compiled without those options?

Yes, the functions will return -1 and the error will indicate that SDL_image was built without save support. However, the default public builds will always have save support enabled. This option is only available for custom builds made by developers that want to minimize the code size and don't need save support.

Yes, the functions will return -1 and the error will indicate that SDL_image was built without save support. However, the default public builds will always have save support enabled. This option is only available for custom builds made by developers that want to minimize the code size and don't need save support.

Ah, good to know. Thanks!


CRF error

Since the CRF layer does not change the output shape of the network, why can't the dense layer be connected directly behind it?
my code：
model.add(Bidirectional(GRU(32, return_sequences=True)))
model.add(Dropout(0.5))
model.add(CRF(64))
model.add(Dense(1, activation='sigmoid'))

It can be.
It would be nice if you post the error you get.

If I connect Dense directly behind the CRF layer, the following error will occur。
  File "C:\Program Files\Python36\lib\site-packages\keras_contrib-2.0.8-py3.6.egg\keras_contrib\losses\crf_losses.py", line 55, in crf_loss
AttributeError: 'Dense' object has no attribute 'learn_mode'

And I have another question. I use CRF model to train text classifier and assign the same category to every word in a sentence, but why are the words in each sentence not exactly the same in the predicted value?

This happens when you use the crf loss. The crf loss is (like stated in the documentation) only for cases where the crf is the last layer. Use crossentropy loss instead.
Also you might want to set the learnmode to marginalized.
To the latter:
because in neural networks, the predicted value is not the same as the expected one. It lerns what it should predict but that doesn't mean that it can generalize.
You could try with a larger hidden size or more layers to get better results.


Fixerrorresponseschema

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[X] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[X] I commit to follow the Breaking Change Policy of "no breaking changes"
[X] I have reviewed the documentation for the workflow.
[X] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following appy to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[X] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@lirenhe - This PR fixes the existent bug in the swagger for the released versions as the swagger schema does not match the actual API response returned by RP.

@lirenhe - This PR fixes the existent bug in the swagger for the released versions as the swagger schema does not match the actual API response returned by RP.

I see. But as this PR would cause breaking change, please go through the process for review. Thanks
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.

@lirenhe - the breaking change was approved. Please merge the PR


TypeError: a bytes-like object is required, not 'NoneType' on 5xx error

Getting an error when downloading something and getting a server error (I think). Even with --ignore-errors it still attempts to write a None object to the file.
Traceback (most recent call last):
  File "C:\Users\Astrid\scoop\apps\python\current\Scripts\waybackpack-script.py", line 11, in <module>
    load_entry_point('waybackpack==0.3.6', 'console_scripts', 'waybackpack')()
  File "c:\users\astrid\scoop\apps\python\3.8.5\lib\site-packages\waybackpack\cli.py", line 104, in main
    pack.download_to(
  File "c:\users\astrid\scoop\apps\python\3.8.5\lib\site-packages\waybackpack\pack.py", line 91, in download_to
    f.write(content)
TypeError: a bytes-like object is required, not 'NoneType'

Adding if content: around the last with block in pack.py fixes this, but I'm not sure whether this is the correct solution or not.

Thanks! Should be fixed now via commit above, and available in v0.3.7.


No clear instruction how to change your "nick" #feature

In the current state of the app user needs to somehow struggle to discover that he needs to go to his community app to change his nick. Especially because it does not refresh, I am waiting more than 12h now. It is something of utmost importance to personalize your avatar to take part of the community conversation and might be a blocker for new users.
Some solution might be showing edit tooltip near the nick in profile (like with social links) and opening small pop-up with explanation.

We may also support changing name directly in tokntalk, especially for tokens which do not have name. This would be similar to setting social links.


(packaging) Bump puppet version to 4.9.2

puppet 4.9.2 will be included in puppet-agent 1.9.1.

Just need to change the commit summary to use (packaging) Bump puppet version to 4.9.2

Whoops, I should have known that. Commit message fixed, thanks!

👍


No comment posted after updating PR with a commit

I installed pep8speaks and added the .pep8speaks.yml file to two of my repositories. However, while one of them is fine, the second repo is not seeing any comments at all. For example, in this PR, I updated the PR by merging master (that contained the .pep8speaks.yml file) into it but am not seeing any comments at all.
Not sure if I am doing something wrong?

What's interesting is that if I comment pep8speaks suggest diff in that same PR, that works for some reason.

It works fine now.

How did you solve it?


feat(schema): implement extractor and dtype getters for Box2D and RLE

Task linked: CU-2d3w5y4 实现 Box2D + RLE 的 extrator


Dual delay : link channels

Hi.
Would it be possible to have an option to link the controls between two channels so we don't need to do the same work twice when we use it as a stereo delay? The only separate controls needed in this case are delay times really...
Thanks!

Yeah, I definitely +1 on this :)

Hi,
any chance maybe to make this available into the V2 version?


Netatalk 2 bug after running install a 2nd time

Netatalk2 installation after mounting usb hdd storage, changing top level directory, and then changing hostname resulted in this error:

Proftpd also had a result of failing upon reconfiguration.

pi@retronas:/opt/retronas $ sudo systemctl status proftpd.service
sudo: unable to resolve host retronas: Name or service not known
● proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/lib/systemd/system/proftpd.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2022-02-01 06:03:02 GMT; 47s ago
    Process: 42314 ExecStartPre=/usr/sbin/proftpd --configtest -c $CONFIG_FILE (code=exited, status=1/FAILURE)
        CPU: 31ms

Feb 01 06:03:02 retronas systemd[1]: Starting ProFTPD FTP Server...
Feb 01 06:03:02 retronas proftpd[42314]: Checking syntax of configuration file
Feb 01 06:03:02 retronas proftpd[42314]: 2022-02-01 06:03:02,247 retronas proftpd[42314]: warning: unable to determine IP address of 'retronas'
Feb 01 06:03:02 retronas proftpd[42314]: 2022-02-01 06:03:02,247 retronas proftpd[42314]: error: no valid servers configured
Feb 01 06:03:02 retronas proftpd[42314]: 2022-02-01 06:03:02,247 retronas proftpd[42314]: fatal: error processing configuration file '/etc/proftpd/proftpd.conf'
Feb 01 06:03:02 retronas systemd[1]: proftpd.service: Control process exited, code=exited, status=1/FAILURE
Feb 01 06:03:02 retronas systemd[1]: proftpd.service: Failed with result 'exit-code'.
Feb 01 06:03:02 retronas systemd[1]: Failed to start ProFTPD FTP Server.

In both cases, did you change the configuration via
Configuration -> Configure RetroNAS top level directory
And then re-run those installers after that?

The first issue should only be able to occur if you have some soft of update script that also forces updates of packages that have been put on hold.
The error might be that you have also tried installing netatalk3. netatalk2 and netatalk3 cannot co-exist.

The first issue should only be able to occur if you have some soft of update script that also forces updates of packages that have been put on hold.

This is very likely the culprit.  Netatalk2 is currently a binary package stolen from an earlier version of Debian, and then marked for hold so the current Netatalk3 package in-repo doesn't overwrite it.
I'll check that tomorrow and add an unhold/rehold to solve it being installed over the top of itself.  Long term I'm removing this method for a source fork of a new Netatalk2.x build that's just recently gone stable by the author, and will be a better fit for RetroNAS.

The error might be that you have also tried installing netatalk3. netatalk2 and netatalk3 cannot co-exist.
This too, however choosing one will uninstall the other.  I think the first point is correct - installing Netatalk2 over itself will probably break at the moment, and that's a RetroNAS bug I think I can fix.

In both cases, did you change the configuration via
Configuration -> Configure RetroNAS top level directory
And then re-run those installers after that?

Yes.

Also the config gets dropped in a separate file, located in /etc/proftpd/conf.d/retronas.conf
Verify that the directory listed in that config file is the same as your RetroNAS top level directory, and that the permissions on the directory are correct.

It all looks correct to me, user pi, group pi, and all references to the path is /storage. the ServerName is RetroNAS however, which is the "pretty name", but I have my doubts that this matters. It might though.
Thanks! I am prone to breaking things, so figured I'd help beta test it out a bit. :)

Very much appreciated!
I'll check in to this later on today.  I have a fix in mind for the Netatalk2 stuff, but I'll need to dig into ProFTPd.

ProFTPd fix committed.  The offending module in ProFTPd was "mod_unique_id.c".  It's used for virtual host lookups, and breaks if it can't find a matching hostname to DNS entry in either your network's DNS server or /etc/hosts.
I'm not using virtual hosts in FTP, so I don't need the feature.  I told Ansible to remove the item and force bind FTP to <IP_ADDRESS>
Appears to be working now.  Please re-test and let me know how you go.

Yup, everything seems to be working fine now! Thank you!


[tesseract] fix leptonica dependency

This resolves issue #3590.
Now it is not neccesary to use statement find_package(Leptonica REQUIRED) explicitly, when incorporating tesseract library into a CMake project.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: lucivpav sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks!

I think we should also consider whether this kind of an issue can be avoided in the future by either

changing the way vcpkg works, so that it automatically appends find_package(depPkg REQUIRED)
fixing this upstream in CMake scripts of tesseract


Card Shop Load Error (with LE mod from Issue#1)

As above - tried all steps on the fix pages for load errors and still get the same issue
Currently cannot access the shop with the latest build - not sure what the issue may be

I may have found a temporary solution - I went into YGOMaster > DataLE > Images > Shop > HighlightThumbs
I made a new folder called 'tcg'
Then placed all the image files into the tcg folder
Solution taken from https://github.com/pixeltris/YgoMaster/issues/386#issuecomment-2111206755

Leaving open in case this is only a temp fix and something else needs to be done - happy to be told anything else or any other solutions

Ref #1. Fixed in the latest update


Fix proposers collection and endpoint

Now it seems proposer/proposers endpoint is not returning all the proposers in the proposers collection. Also it seems nextAddress is not working as expecting allowing to cycling navigate to all proposers.

Following up on this here.
I think the problem is when proposersPrevious === proposersCurrent which occurs when you add the second proposer.
The ordering of the setProposer calls results in an overwrite that causes nextAddress to have unexpected results


Better to have some guide on top page

https://github.com/kaguraswap/monorepo/discussions/142#discussioncomment-3105475

merged into
https://github.com/kaguraswap/monorepo/issues/186


Feature: Implementing stripe for payments

The issue involves implementing Stripe as a payment processing solution for a web application. This feature aims to enable secure and efficient online transactions for users, supporting various payment methods such as credit cards, bank transfers, and more. The task would include integrating the Stripe API into the application, setting up the necessary backend services for handling payments, and designing a user-friendly payment interface. Additionally, ensuring compliance with financial regulations and data security standards will be crucial to successfully implementing Stripe.

Go for it @Adeesh-bode

review my earlier pr..so as I can work on other issue I got assigned for fitbody


Cockpit Integration and make rpm functionality

Added the ability to easily make an rpm/srpm that will install into cockpit.

Coverage remained the same at 7.881% when pulling d8cf44aa68e11281558f70727db1c6b2e51d8708 on jkozol:cockpitIntegration into f8c6c3cd075b366f140af66a4a240967f3793e09 on weldr:master.

Coverage remained the same at 7.061% when pulling 6b2c2902f5abc148cedf5a6ebd723162733e38a7 on jkozol:cockpitIntegration into eea63c38c1b9b0d397353104962345e4ed56c266 on weldr:master.

Merging so we can move ahead. .spec vs. npm version will be fixed separately.