bevy_reflect: Anonymous function parsing

Objective
TL;DR
#14098 added the FunctionRegistry but had some last minute complications due to anonymous functions. It ended up going with a "required name" approach to ensure anonymous functions would always have a name.
However, this approach isn't ideal for named functions since, by definition, they will always have a name.
Therefore, this PR aims to modify function reflection such that we can make function registration easier for named functions, while still allowing anonymous functions to be registered as well.
Context
Function registration (#14098) ran into a little problem: anonymous functions.
Anonymous functions, including function pointers, have very non-unique type names. For example, the anonymous function |a: i32, b: i32| a + b has the type name of fn(i32, i32) -> i32. This obviously means we'd conflict with another function like |a: i32, b: i32| a - b.
The solution that #14098 landed on was to always require a name during function registration.
The downside with this is that named functions (e.g. fn add(a: i32, b: i32) -> i32 { a + b }) had to redundantly provide a name. Additionally, manually constructed DynamicFunctions also ran into this ergonomics issue.
I don't entirely know how the function registry will be used, but I have a strong suspicion that most of its registrations will either be named functions or manually constructed DynamicFunctions, with anonymous functions only being used here and there for quick prototyping or adding small functionality.
Why then should the API prioritize the anonymous function use case by always requiring a name during registration?
Telling Functions Apart
Rust doesn't provide a lot of out-of-the-box tools for reflecting functions. One of the biggest hurdles in attempting to solve the problem outlined above would be to somehow tell the different kinds of functions apart.
Let's briefly recap on the categories of functions in Rust:

Category
Example

Named function
fn add(a: i32, b: i32) -> i32 { a + b }

Closure
|a: i32| a + captured_variable

Anonymous function
|a: i32, b: i32| a + b

Function pointer
fn(i32, i32) -> i32

My first thought was to try and differentiate these categories based on their size. However, we can see that this doesn't quite work:

Category
size_of

Named function
0

Closure
0+

Anonymous function
0

Function pointer
8

Not only does this not tell anonymous functions from named ones, but it struggles with pretty much all of them.
My second then was to differentiate based on type name:

Category
type_name

Named function
foo::bar::baz

Closure
foo::bar::{{closure}}

Anonymous function
fn() -> String

Function pointer
fn() -> String

This is much better. While it can't distinguish between function pointers and anonymous functions, this doesn't matter too much since we only care about whether we can name the function.
So why didn't we implement this in #14098?
Relying on type_name
While this solution was known about while working on #14098, it was left out from that PR due to it being potentially controversial.
The docs for std::any::type_name state:

The returned string must not be considered to be a unique identifier of a type as multiple types may map to the same type name. Similarly, there is no guarantee that all parts of a type will appear in the returned string: for example, lifetime specifiers are currently not included. In addition, the output may change between versions of the compiler.

So that's it then? We can't use type_name?
Well, this statement isn't so much a rule as it is a guideline. And Bevy is no stranger to bending the rules to make things work or to improve ergonomics. Remember that before TypePath, Bevy's scene system was entirely dependent on type_name. Not to mention that type_name is being used as a key into both the TypeRegistry and the FunctionRegistry.
Bevy's practices aside, can we reliably use type_name for this?
My answer would be "yes".
Anonymous functions are anonymous. They have no name. There's nothing Rust could do to give them a name apart from generating a random string of characters. But remember that this is a diagnostic tool, it doesn't make sense to obfuscate the type by randomizing the output. So changing it to be anything other than what it is now is very unlikely.
The only changes that I could potentially see happening are:

Closures replace {{closure}} with the name of their variable
Lifetimes are included in the output

I don't think the first is likely to happen, but if it does then it actually works out in our favor: closures are now named!
The second point is probably the likeliest. However, adding lifetimes doesn't mean we can't still rely on type_name to determine whether or not a function is named. So we should be okay in this case as well.
Solution
Parse the type_name of the function in the TypedFunction impl to determine if the function is named or anonymous.
This once again makes FunctionInfo::name optional. For manual constructions of DynamicFunction, FunctionInfo::named or ``FunctionInfo::anonymous` can be used.
The FunctionRegistry API has also been reworked to account for this change.
FunctionRegistry::register no longer takes a name and instead takes it from the supplied function, returning a FunctionRegistrationError::MissingName error if the name is None. This also doubles as a replacement for the old FunctionRegistry::register_dynamic method, which has been removed.
To handle anonymous functions, a FunctionRegistry::register_with_name method has been added. This works in the same way FunctionRegistry::register used to work before this PR.
The overwriting methods have been updated in a similar manner, with modifications to FunctionRegistry::overwrite_registration, the removal of FunctionRegistry::overwrite_registration_dynamic, and the addition of FunctionRegistry::overwrite_registration_with_name.
This PR also updates the methods on App in a similar way: App::register_function no longer requires a name argument and App::register_function_with_name has been added to handle anonymous functions (and eventually closures).
Testing
You can run the tests locally by running:
cargo test --package bevy_reflect --features functions

Internal Migration Guide

[!important]
Function reflection was introduced as part of the 0.15 dev cycle. This migration guide was written for developers relying on main during this cycle, and is not a breaking change coming from 0.14.

[!note]
This list is not exhaustive. It only contains some of the most important changes.

FunctionRegistry::register no longer requires a name string for named functions. Anonymous functions, however, need to be registered using FunctionRegistry::register_with_name.
// BEFORE
registry
  .register(std::any::type_name_of_val(&foo), foo)?
  .register("bar", || println!("Hello world!"));

// AFTER
registry
  .register(foo)?
  .register_with_name("bar", || println!("Hello world!"));

FunctionInfo::name is now optional. Anonymous functions and closures will now have their name set to None by default. Additionally, FunctionInfo::new has been renamed to FunctionInfo::named.

Seems like a good compromise in my opinion. Worth mentioning that we also aren't really dependent on type names as unique identifiers, in light of all the business we're doing to accommodate closures and anonymous functions here.

@MrGVSV once CI is green I'll merge this in :)


Failed: opcap-weekly-audit-4.8-gpjsj Aug 12, 2022, 6:19 PM

I0812 23:19:20.101307       7 request.go:601] Waited for 1.04500387s due to client-side throttling, not priority and fairness, request: GET:https://api.audit-4-8.opdev.io:6443/apis/flowcontrol.apiserver.k8s.io/v1beta1?timeout=32s
check called
opcap report:
Report Date: 2022-08-12 23:20:08.944634187 +0000 UTC m=+55.002407888
OpenShift Version: 4.8.47
Package Name: cloudbees-ci
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: cloudbeescis package: cloudbees-ci
opcap report:
Report Date: 2022-08-12 23:20:43.449206431 +0000 UTC m=+89.506980133
OpenShift Version: 4.8.47
Package Name: coralogix-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: coralogixloggers package: coralogix-operator
opcap report:
Report Date: 2022-08-12 23:21:15.030075587 +0000 UTC m=+121.087849289
OpenShift Version: 4.8.47
Package Name: portshift-controller-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: portshiftinstallers package: portshift-controller-operator
opcap report:
Report Date: 2022-08-12 23:22:16.543711388 +0000 UTC m=+182.601485090
OpenShift Version: 4.8.47
Package Name: infoscale-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: timeout
Message: installing: waiting for deployment cert-manager to become ready: deployment "cert-manager" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
operand failed to create: issuers package: infoscale-operator error: Internal error occurred: failed calling webhook "mutate.webhooks.cert-manager.io": Post "https://cert-manager-webhook-service.opcap-infoscale-operator.svc:443/mutate?timeout=10s": no endpoints available for service "cert-manager-webhook-service"
opcap report:
Report Date: 2022-08-12 23:23:22.351225363 +0000 UTC m=+248.408999054
OpenShift Version: 4.8.47
Package Name: fep-ansible-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: fepactions package: fep-ansible-operator
opcap report:
Report Date: 2022-08-12 23:24:24.405305793 +0000 UTC m=+310.463079501
OpenShift Version: 4.8.47
Package Name: ibmz-mongodb-enterprise-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: timeout
Message: installing: waiting for deployment ibmz-mongodb-enterprise-operator-controller-manager to become ready: deployment "ibmz-mongodb-enterprise-operator-controller-manager" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:25:50.94709959 +0000 UTC m=+397.004873297
OpenShift Version: 4.8.47
Package Name: tigera-operator
Channel: release-v1.25
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand failed to create: installations package: tigera-operator error: the server could not find the requested resource
opcap report:
Report Date: 2022-08-12 23:26:27.422256085 +0000 UTC m=+433.480029790
OpenShift Version: 4.8.47
Package Name: mongodb-atlas-kubernetes
Channel: beta
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand failed to create: atlasbackuppolicies package: mongodb-atlas-kubernetes error: AtlasBackupPolicy.atlas.mongodb.com "atlasbackuppolicy-sample" is invalid: [spec.items.frequencyType: Unsupported value: "WEEKLY": supported values: "hourly", "daily", "weekly", "monthly", spec.items.retentionUnit: Unsupported value: "DAYS": supported values: "days", "weeks", "months"]
opcap report:
Report Date: 2022-08-12 23:27:29.597154852 +0000 UTC m=+495.654928553
OpenShift Version: 4.8.47
Package Name: rtf-agent-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: timeout
Message: installing: waiting for deployment rtf-agent-operator-controller-manager to become ready: deployment "rtf-agent-operator-controller-manager" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:29:04.321870901 +0000 UTC m=+590.379644593
OpenShift Version: 4.8.47
Package Name: jinhli-demo-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: demoresources package: jinhli-demo-operator
opcap report:
Report Date: 2022-08-12 23:30:06.071149753 +0000 UTC m=+652.128923455
OpenShift Version: 4.8.47
Package Name: stonebranch-universalagent-operator-certified
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: timeout
Message: installing: waiting for deployment universalagent-operator to become ready: deployment "universalagent-operator" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:32:06.659138469 +0000 UTC m=+772.716912171
OpenShift Version: 4.8.47
Package Name: memcached-operator-ogaye
Channel: alpha
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: timeout
Message: installing: waiting for deployment memcached-operator-controller-manager to become ready: deployment "memcached-operator-controller-manager" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:33:30.427442772 +0000 UTC m=+856.485216474
OpenShift Version: 4.8.47
Package Name: uma-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: universalmonitoringagents package: uma-operator
opcap report:
Report Date: 2022-08-12 23:34:07.330473476 +0000 UTC m=+893.388247178
OpenShift Version: 4.8.47
Package Name: apimatic-codegen-operator
Channel: beta
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: codegens package: apimatic-codegen-operator
opcap report:
Report Date: 2022-08-12 23:34:42.125732828 +0000 UTC m=+928.183506530
OpenShift Version: 4.8.47
Package Name: nsx-container-plugin-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: ncpinstalls package: nsx-container-plugin-operator
opcap report:
Report Date: 2022-08-12 23:35:13.891148232 +0000 UTC m=+959.948921937
OpenShift Version: 4.8.47
Package Name: cnfv-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: cloudnfvs package: cnfv-operator
opcap report:
Report Date: 2022-08-12 23:35:41.708401049 +0000 UTC m=+987.766174741
OpenShift Version: 4.8.47
Package Name: memql-certified
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: memsqlclusters package: memql-certified
opcap report:
Report Date: 2022-08-12 23:36:08.460179472 +0000 UTC m=+1014.517953175
OpenShift Version: 4.8.47
Package Name: cnvrg
Channel: stable
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: cnvrgapps package: cnvrg
opcap report:
Report Date: 2022-08-12 23:36:57.739715404 +0000 UTC m=+1063.797489105
OpenShift Version: 4.8.47
Package Name: model-builder-for-vision-certified
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: modelbuilders package: model-builder-for-vision-certified
opcap report:
Report Date: 2022-08-12 23:37:19.545843353 +0000 UTC m=+1085.603617056
OpenShift Version: 4.8.47
Package Name: openshiftxray-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: openshiftxrays package: openshiftxray-operator
opcap report:
Report Date: 2022-08-12 23:37:54.452178512 +0000 UTC m=+1120.509952205
OpenShift Version: 4.8.47
Package Name: ibm-application-gateway-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: ibmapplicationgateways package: ibm-application-gateway-operator
opcap report:
Report Date: 2022-08-12 23:38:20.221917926 +0000 UTC m=+1146.279691628
OpenShift Version: 4.8.47
Package Name: open-liberty-certified
Channel: beta2
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: openlibertyapplications package: open-liberty-certified
opcap report:
Report Date: 2022-08-12 23:38:54.450061464 +0000 UTC m=+1180.507835166
OpenShift Version: 4.8.47
Package Name: node-red-operator-certified
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: nodereds package: node-red-operator-certified
opcap report:
Report Date: 2022-08-12 23:39:18.303498393 +0000 UTC m=+1204.361272098
OpenShift Version: 4.8.47
Package Name: nspc-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: nspcs package: nspc-operator
opcap report:
Report Date: 2022-08-12 23:39:40.11515331 +0000 UTC m=+1226.172927011
OpenShift Version: 4.8.47
Package Name: yugabyte-operator
Channel: beta
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: ybclusters package: yugabyte-operator
opcap report:
Report Date: 2022-08-12 23:40:22.868287162 +0000 UTC m=+1268.926060853
OpenShift Version: 4.8.47
Package Name: ako-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand failed to create: akoconfigs package: ako-operator error: AKOConfig.ako.vmware.com "ako-sample" is invalid: [spec.akoSettings.enableEvents: Invalid value: "string": spec.akoSettings.enableEvents in body must be of type boolean: "string", spec.akoSettings.vipPerNamespace: Invalid value: "string": spec.akoSettings.vipPerNamespace in body must be of type boolean: "string", spec.controllerSettings.tenantsPerCluster: Invalid value: "string": spec.controllerSettings.tenantsPerCluster in body must be of type boolean: "string"]
opcap report:
Report Date: 2022-08-12 23:41:24.673216705 +0000 UTC m=+1330.730990407
OpenShift Version: 4.8.47
Package Name: n3000
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: timeout
Message: installing: waiting for deployment n3000-controller-manager to become ready: deployment "n3000-controller-manager" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:43:25.477147313 +0000 UTC m=+1451.534921015
OpenShift Version: 4.8.47
Package Name: kpow-io-certified
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: timeout
Message: installing: waiting for deployment kpow-io to become ready: deployment "kpow-io" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since CSV has failed
opcap report:
Report Date: 2022-08-12 23:44:48.298248794 +0000 UTC m=+1534.356022496
OpenShift Version: 4.8.47
Package Name: xspc-operator
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: xspcs package: xspc-operator
opcap report:
Report Date: 2022-08-12 23:45:10.208175861 +0000 UTC m=+1556.265949567
OpenShift Version: 4.8.47
Package Name: portworx-certified
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: storageclusters package: portworx-certified
opcap report:
Report Date: 2022-08-12 23:46:11.97719881 +0000 UTC m=+1618.034972511
OpenShift Version: 4.8.47
Package Name: installkit-customer
Channel: stable
Catalog Source: certified-operators
Install Mode: AllNamespaces
Result: timeout
Message: installing: waiting for deployment runai-operator to become ready: deployment "runai-operator" not available: Deployment does not have minimum availability.
Reason: InstallWaiting
exiting OperandInstall since no ALM_Examples found in CSV
opcap report:
Report Date: 2022-08-12 23:47:04.033245236 +0000 UTC m=+1670.091018937
OpenShift Version: 4.8.47
Package Name: h2o-operator
Channel: beta
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: h2os package: h2o-operator
opcap report:
Report Date: 2022-08-12 23:47:34.019889934 +0000 UTC m=+1700.077663636
OpenShift Version: 4.8.47
Package Name: anaconda-team-edition
Channel: beta
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: anacondateameditions package: anaconda-team-edition
opcap report:
Report Date: 2022-08-12 23:48:06.885229623 +0000 UTC m=+1732.943003325
OpenShift Version: 4.8.47
Package Name: sanstoragecsi-operator-bundle
Channel: stable
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: sanstoragecsis package: sanstoragecsi-operator-bundle
opcap report:
Report Date: 2022-08-12 23:48:48.641142314 +0000 UTC m=+1774.698916015
OpenShift Version: 4.8.47
Package Name: mf-cics-tg-operator
Channel: alpha
Catalog Source: certified-operators
Install Mode: OwnNamespace
Result: Succeeded
Message: install strategy completed with no errors
Reason: InstallSucceeded
operand succeeded: mf-cics-tgs package: mf-cics-tg-operator
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x15a971f]
goroutine 1 [running]:
github.com/opdev/opcap/internal/operator.operatorClient.GetCompletedCsvWithTimeout({{_, }}, {, _}, _)
/home/mrhillsman/Development/goland/opcap/internal/operator/csv.go:60 +0x3df
github.com/opdev/opcap/internal/capability.(*CapAudit).OperatorInstall(0xc000495080)
/home/mrhillsman/Development/goland/opcap/internal/capability/operator_install.go:36 +0x3be
reflect.Value.call({0x1804be0, 0xc000495080, 0x3}, {0x197fbb0, 0x4}, {0x0, 0x0, 0x1c57ef0})
/usr/local/go/src/reflect/value.go:556 +0x845
reflect.Value.Call({0x1804be0, 0xc000495080, 0x36}, {0x0, 0x0, 0x0})
/usr/local/go/src/reflect/value.go:339 +0xc5
github.com/opdev/opcap/internal/capability.(*capAuditor).RunAudits(0xc000165d68)
/home/mrhillsman/Development/goland/opcap/internal/capability/auditor.go:84 +0x1bd
github.com/opdev/opcap/cmd.glob..func2(0x2997f80, {0x19800b8, 0x2, 0x2})
/home/mrhillsman/Development/goland/opcap/cmd/check.go:79 +0x112
github.com/spf13/cobra.(*Command).execute(0x2997f80, {0xc000537f80, 0x2, 0x2})
/home/mrhillsman/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:860 +0x5f8
github.com/spf13/cobra.(*Command).ExecuteC(0x2998200)
/home/mrhillsman/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
/home/mrhillsman/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902
github.com/opdev/opcap/cmd.Execute()
/home/mrhillsman/Development/goland/opcap/cmd/root.go:32 +0x25
main.main()
/home/mrhillsman/Development/goland/opcap/main.go:10 +0x17

@mrhillsman could you look at the stdout.json file with logLevel='debug'? It would be easier to find the name of the operator that failed. The order of packages showing up from a catalog source is not the same every time.


[SPARK-40146][SQL] Simply the codegen of getting map value

What changes were proposed in this pull request?

Simply the code generation of GetMapValueUtil
Why are the changes needed?

Code generation improvement.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing UT

Test failure seems unrelated.
Merged to master.


Command does not log anything related with oauth with arg --dump-single-json

So code like xxx-xxx-xxx for google device is not seen.
How do I resolve it?

You will need to run yt-dlp once without that option. Once you've given access to yt-dlp it should work.

You will need to run yt-dlp once without that option. Once you've given access to yt-dlp it should work.

Thank you for your quick answer.
I do it the same way as your suggestion, and it worked. But I think it may be a little bit troublesome. So I doubt there are some simplified ways.
thank you.

Yeah it's not the most intuitive. If/when we consider implementing it in yt-dlp officially it may be something we can look at improving if feasible.


WhatsApp limit messages per second

Hello! I read on the docs the following limits

How many writes in the messages collection can I write per second? What is the limit whit this extenension?
Thanks a lot!

Hello @NashIlli,
There is no limit on extension side. So it should be the same as MessageBird API docs mentions.
We didn't do high load test for this extension though, so this is theory. If you will face issues with high load, pls let us know. We will try to help!

Thanks a lot @aodinok
I'll notice you in case of any issues


When will v0.5.3 be released?

v0.5.2 is of 2015-02-24...
We need the CopyDir fixes (again) since there seems to be a bug in Symfony Mirror Dir (which we were using till Robo is released).
Using the current master works.
But an official v0.5.3 would be great!

Why not. What's with state of Pull Requests? Let's merge or reject everything we need and 0.5.3 is ready )

A quick overview:

#169: is this generated? (think there are more "static" variables formatted wrongly)
#173: Git task -> commented
#166: this one is for you, I was confused by he naming...
#165: your opinion needed about the shell escaping (like in many, many other tasks)
#152: no response (already on hold)
#143: no response (already on hold)
#137: complex issue (also about shell escaping), also see #133 (already on hold)

But as all (except the small #169 and the Windows only #137) are features, I would rather release 0.5.3 more quickly as a bugfix release...
The others could come with 0.6.0?

done

:+1: !


redesign Namespace detail page

Redesign Namespace detail page.

Requirements for Namespace details:

top section should have Project & Description
RBAC members
Two tabs (Limits & Labels)

Closing in favor of #567


Fix component UI kit and added variants to them

Fixed price issue when price is not defined

(showed price with a strike through before change)

Added missing variants to components

Added label variant

Added animation kit - variants to animations board, but Parallax, need your help on it

Implemented in:
https://github.com/codux-templates/e-commerce-reclaim/pull/112
https://github.com/codux-templates/e-commerce-reclaim/pull/111


shane/mdf: to avoid if location (result) of defDecl was null

pr for issue #51
closes #51

thanks for merge.
// i saw you rewrite it later, which is 'return' as long as it is 'empty', that's ok, but just no prompting info msg e.g something like 'no def from lsp' if so.

Yes. I wanted to simplify the code. This change should not result in any message if an empty reply is received from the LSP server. Let me know if you see any messages.

ok, then.
but such confirming msg personally i preferred get, for get msg about that symbol actually no def can be found.
other than that, some msg about lsp had no some capibility e.g workspace/configuration or telemetry/event (etc) specially the latter one print annoyed unsupported balabala... every editting, that perhaps can be a bit refined (for example just prompt one time)


usingElementComparatorIgnoringFields does not work for map array

Summary
Hello!
Could you, please, tell me, if there is a possibility to ignore map "keys" when we check that map array contains map object.
Example
       HashMap<String, Integer> object1 = new HashMap<String, Integer>() {
            {
                put("John", 25);
            }
        };
        HashMap<String, Integer> object2 = new HashMap<String, Integer>() {
            {
                put("John", 12);
            }
        };
        Map<String, Integer> object3 = new HashMap<String, Integer>() {
            {
                put("Tom", 23);
            }
        };
        Map[] array = new Map[] {object2, object3};
        assertThat(array).usingElementComparatorIgnoringFields("John").contains(object1);

Sorry, this had fallen under my radar, will look at it shortly (ping me if I don't)

@yarafed not at the moment, I don't see this to be supported in the near future TBH.
What was your use case, JSON object comparison?

can i try to solve it

Hi, we are a student group and we would like to look into this. We may not be able to implement it with extremely high quality, but we will try our best.

@mct10 thanks but I'm going to close this one since it is a rather exotic use case and @yarafed has not replied to my question.
@yarafed feel free to give us more details on your use and we will reconsider this demand.


Redirect loop when spinning up gke/gke-with-https

Hi,
I'm trying to add this to my kubernetes instance and the script seems to be working very well! Super easy to set up!
I am however having issues when trying to log into the instance. After completing the Github OAuth flow the server enters a redirect loop. The drone agent is spamming the following error:
2016-10-10T21:49:01.599653087Z time="2016-10-10T21:49:01Z" level=warning msg="reconnect in 15s. client error 301: \r\n<title>301 Moved Permanently</title>\r\n\r\n
301 Moved Permanently
\r\n
nginx\r\n\r\n\r\n"

While the Nginx proxy is spamming the below error:
2016-10-10T21:49:00.151495438Z <IP_ADDRESS> - - [10/Oct/2016:21:49:00 +0000] "GET /authorize?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=drone HTTP/1.1" 303 254 "https://github.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36" "-" "-"

I think the drone agent error may be caused by me inputting http:// in the agent.drone.server.url section of the config map instead of https:// but I can't figure out how to avoid the redirect loop. Any help would be greatly appreciated @gtaylor !
Below is my configmap:
apiVersion: v1
kind: ConfigMap
metadata:
  creationTimestamp: 2016-03-30T21:14:38Z
  name: drone-config
  namespace: default
data:

  ################
  # Proxy Config #
  ################

  # CHANGEME: This should be changed to a valid email for Let's Encrypt's
  # records.
  proxy.letsencrypt.email: {email}
  # CHANGEME: The Fully-Qualified Domain Name (FQDN) for where Drone will run.
  # No need to create a DNS entry just yet. The installer will walk you through
  # this process.
  proxy.fqdn: drone.{domain}.com

  ################################
  # Drone Server (master) Config #
  ################################

  server.debug.is.enabled: "true"

  # You'll probably want to leave this alone, but you can point to external
  # DB instances if you'd like: http://readme.drone.io/0.5/manage/database/
  server.database.driver: sqlite3
  server.database.config: /var/lib/drone/drone.sqlite

  server.is.open: "true"
  # CHANGEME: If you want to restrict access to a particular org, put the
  # name here.
  server.orgs.list: ""
  # CHANGEME: Add your GitHub/Bitbucket/Gogs/etc username here. This is a
  # comma-separated list of usernames who will have admin privs.
  server.admin.list: jackzampolin
  server.admin.everyone.is.admin: "false"

  # See http://readme.drone.io/0.5/manage/server/ for possible values here.
  # For now, our demo is GitHub-only. Drone supports other remotes, we just
  # haven't set the others up in here yet.
  # CHANGEME: Substitute your Github OAuth application client ID and secret.
  server.remote.github.is.enabled: "true"
  server.remote.github.client.id: XXXXXXX
  server.remote.github.secret: XXXXXXX

  ######################
  # Drone Agent Config #
  ######################

  agent.debug.is.enabled: "true"
  # CHANGEME: Change this to point to the same FQDN as proxy.fqdn above.
  agent.drone.server.url: http://drone.{domain}.com

Hey Jack, can you attach your configs?
On Oct 10, 2016 2:52 PM, "Jack Zampolin"<EMAIL_ADDRESS>wrote:

Hi,
I'm trying to add this to my kubernetes instance and the script seems to
be working very well! Super easy to set up!
I am however having issues when trying to log into the instance. After
completing the Github OAuth flow the server enters a redirect loop. The
drone agent is spamming the following error:
2016-10-10T21:49:01.599653087Z time="2016-10-10T21:49:01Z" level=warning msg="reconnect in 15s. client error 301: \r\n301 Moved Permanently\r\n\r\n301 Moved Permanently\r\nnginx\r\n\r\n\r\n"
While the Nginx proxy is spamming the below error:
2016-10-10T21:49:00.151495438Z <IP_ADDRESS> - - [10/Oct/2016:21:49:00 +0000] "GET /authorize?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=drone HTTP/1.1" 303 254 "https://github.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36" "-" "-"
I think the drone agent error may be caused by me inputting http:// in
the agent.drone.server.url section of the config map instead of https://
but I can't figure out how to avoid the redirect loop. Any help would be
greatly appreciated @gtaylor https://github.com/gtaylor !
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/drone-demos/drone-on-kubernetes/issues/1, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAEnJB06fGnIxMWzL3NTJ53YtNX0FQ5gks5qyrOegaJpZM4KTBwX
.

@gtaylor Thank you for the prompt response!
Gist

Looks like the gist is lacking your ConfigMap. I need to see that most of all.

I've reproduced that in the issue. I've also added it to the Gist. Sorry about that!

Also attaching Github Configuration

Found the issue! It was with my github configuration! Closing


[FX-377] Introduce forageUI protocol and split BT and VGS into separate files

What
Introduce the ForageUI protocol and prepare for introducing the changes that GoPuff have requested.
Why
In order to make our solution extensible and prepare for future improvements to the iOS SDK, we will build a protocol that that both the PIN and PAN text fields will inherit from to make their behavior uniform.
Test Plan
No tests needed as all changes are no-ops.

Hey team, I put together a proposal for how we may be able to partition many of these attributes into smaller atomic interfaces that could be composed together to form the ForageUI (or ForageElement if we opt to rename it).
I'll repost in Slack but take a look at how Stripe organizes their interfaces/config does for their Android SDK (make sure you click Android tab to see, I think it defaults to Web). I think there is an opportunity to gain some significant developer experience wins by exposing atomic interfaces that can be reused and composed rather than exposing a large monolithic (see the Interface Segregation Principle).
Here is the tl;dr of the interface proposal:
interface ObservableState {
    val isFocused: Boolean
    val isBlured: Boolean
    val isEmpty: Boolean
    val isValid: Boolean
    val isComplete: Boolean
}

interface Appearance {
    var hint: String
    var typeface: Typeface
}

interface Style {
    var textColor: Int
    var textSize: Float
    var hintTextColor: Int
}

interface ForageUI : Appearance, Style, ObservableState {
    fun addFocusEventListener(listener: EventListener)
    fun addBlurEventListener(listener: EventListener)
    fun addChangeEventListener(listener: EventListener)
    fun requestFocus()
}


Firefly should start and run in a "maximized window"

Description
Starting Firefly should directly open the app in a fullscreen maximized Window. Atm i have to click maximize in the top right corner to fully fill my screen with the app
Windows 10
Motivation
Looks better and should be standard for every (Windows) App

The next version of the app will maintain the window position/state between launches.


Update public.ecr.aws/docker/library/python Docker tag to v3.12

This PR contains the following updates:

Package
Type
Update
Change

public.ecr.aws/docker/library/python
final
minor
3.11-bullseye -> 3.12-bullseye

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (3.12-bullseye). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Online batch generation for unsupervised learning

🚀 Feature
As an alternative to pulling batches from a pre-made dataset, provide users with a hook that allows them to specify how batches are generated for each training step. This would allow users to provide logic for generating a batch of during online during training. This would be ideal for Reinforcement Learning models and other unsupervised problems.
Motivation
Currently Lightning expects all models to utilize pre-made dataset which is used to generate mini batches through a DataLoader. This works for most use cases, but for some case, such as Reinforcement Learning models, this requirement is counter intuitive as the data is generated online during training. In order for these models to work with Lightning, custom Datasets and runners need to be create to generate the batch and wrap it in a DataLoader.
Pitch
Add an additional hooks for specifying the generation of a batch for train, val and test. Going forward I think there are two options to implement this feature.
1: Check if the user has populated the train_batch function and call this instead of the dataloader directly for the training loop. This will probably require a lot of code churn in order to handle the various checks for the dataloader in the main Trainer
2: Create a 'dummy' dataloader that wraps the train_batch function provided by the Lightning model. This is probably a simpler implementation as the underlying logic in the Trainer that handles the dataloader shouldn't need to change.
Alternatives
The alternative to this would be to have the user create custom DataLoader/Datasets that generate the batch on the fly. This will give the same end result, but is arguably a messier solution and requires more work and effort for the user.

Hi @djbyrne This is already possible. in your LightningModules train_dataloader you just have to provide an iterable type returning batches. Training should work just normal, only the magic that happens around the DataLoader (several sanity checks for sampler etc.) won't work :)

Hey @justusschock you are correct that this is already possible, I have actually been doing something like this for the RL models in the lightning bolts repo https://github.com/PyTorchLightning/pytorch-lightning-bolts/blob/master/pl_bolts/models/rl/common/experience.py
Although this works, it seems a bit cumbersome for users to go off an create their own data source that feeds the iterator for the dataloader. I know that this will be doing practically the same thing, but I feel that it would be cleaner and provide a much better user experience.

I see :) I think you are right. I'm not familiar with RL, so to clarify the interface: Do you need the function to produce whole batches or just single samples?
Because for whole batches, we would also have to make sure, that batching in the DataLoader (if used) is disabeled/don't use the DataLoader at all...

It would be both. The typical flow would be
1: carry out N steps in the environment using the agent
2: add to a buffer or just gather the experience data
3: sample from the buffer or take the gathered experience data as the batch.
I think the best way would be to have an IterableDataset that consumes this train_batch() hook. I believe that by doing this, batching would not be used.

If you use IterableDataset and pass it to the loader, I think batching will still be done. We could however bypass this, with a custom collate_fn

This is something I am looking into as well.
In this repo ( https://github.com/christofer-f/Hierarchical-Actor-Critic-HAC-PyTorch ) the agent is populating 6 replay buffers before training.
@djbyrne The code solves MountainCarContinuous-v0 in 100 epochs... which is quite nice :-)
//Christofer

@christofer-f that looks awesome!

@justusschock I have pushed a proof of concept for the train_batch interface here https://github.com/djbyrne/pytorch-lightning-bolts/blob/enhancement/train_batch_function/pl_bolts/models/rl/vanilla_policy_gradient_model.py
The datamodules for this can be found here https://github.com/djbyrne/pytorch-lightning-bolts/blob/enhancement/train_batch_function/pl_bolts/datamodules/experience_source.py
This is still WIP but would like to get some feedback on it so far

I found this article:
https://medium.com/speechmatics/how-to-build-a-streaming-dataloader-with-pytorch-a66dd891d9dd
It seems really useful...
I am trying to create a small example where you fit a network to a dataset that is created on the fly.
And that you populate the dataset with yield in chunks
Hopefully, I will put some code in my repo to show my ideas...

@christofer-f yeah that iterable dataset type is what is currently being used in the Pytorch Lightning Bolts RL module


Docs reviewed with grammar and spell checker

Thanks for all the work for the Asciidoctor PDF. As the recent announcements mentioned the docs, I'd like to support this release with a review of the docs with a grammar an spell checker.
A review of a native speaker would still be helpful, please edit/discard my suggestions as you see them fit.
I saw that the text uses both semi-colons and semicolons, I went for semicolons in all places.

Thanks @ahus1!

@ahus1 Your updates are definitely helpful! Thank you! And :+1: on semicolons.


cannot connect test net Accelerated Node

use these code to decode testnet tx, always report error rpc_test.go:25: websocket is dialing, can't send any request, the rpc client cannot send request to public accelerated node at testnet.

replace base url with tcp://data-seed-pre-0-s1.binance.org:80
reference to https://docs.binance.org/light-client.html#example-for-testnet, https://docs.binance.org/api-reference/node-rpc.html#12-use-an-existing-node-on-the-network, https://testnet-dex.binance.org/api/v1/peers


The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.40 and higher.

Describe the bug
On developing apps in android using the latest flutter template, I got this issue mentioned below.
[+114548 ms] FAILURE: Build failed with an exception.
[   +5 ms] * What went wrong:
[        ] The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.40 and higher.
[        ] The following dependencies do not satisfy the required version:
[        ] project ':flutter_keychain' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21
[        ] * Try:
[        ] > Run with --stacktrace option to get the stack trace.
[        ] > Run with --info or --debug option to get more log output.
[        ] > Run with --scan to get full insights.
[        ] * Get more help at https://help.gradle.org
[        ] BUILD FAILED in 1m 54s

This looks like the flutter_keychain kotlin version doesn't match with the app kotlin version.
I have tried with 1.3.40, 1.5.21, 1.6.10 kotlin versions in android/app/build.gradle. But nothing works.
To Reproduce
Steps to reproduce the behavior:

Create a flutter template using flutter create my_app
Add at_client_mobile: ^3.1.18 to the app.
Utilize any of the functions/methods from at_client_mobile.
Try running the app in debugging on an android device.

Expected behavior
Must build an app without any error.
Smartphone (please complete the following information):

Device: Redmi 8
OS: Android 10
Version: MIUI 12

Were you using an @application when the bug was found?

@buzz

Additional context
Here are the logs https://cdn.sourceb.in/bins/wwGtrAOuel/0

This will come under a blocker. There is no other go other than changing the kotlin version of the flutter_keychain package.

There was a fix coming up with remove_flutter_keychain branch.

Nope @sachins-geekyants, We don't see this issue anymore with the latest releases. Closing this as completed. Please reopen if you find this issue anywhere.


decode_cf not scaling and off-setting correctly

Problem description
I am importing atmospheric cloud fraction data from the PATMOSx OpenDap server (https://www.ncei.noaa.gov/thredds/satellite/avhrr-cloudprops-patmos-x.html). Cloud fraction is the percent of the pixel that the instruments flag as cloud, thus the output should be between 0 and 1. The data is stored unscaled as an int8. In order to retrieve the cloud fraction data, the data should be decoded as unscaled_data*scaling_factor + add_offset in order to be in the proper format. decode_cf does not seem to be using the algorithm in this way.
import xarray as xr
url = 'http://www.ncei.noaa.gov/thredds/dodsC/avhrr-patmos-x-cloudprops-noaa-asc-fc/files/2003/patmosx_v05r03_NOAA-17_asc_d20030101_c20140314.nc'
# Decoding using decode_cf
ds=xr.open_dataset(url, decode_cf=True)
ds.cloud_fraction
<xarray.DataArray 'cloud_fraction' (time: 1, latitude: 1800, longitude: 3600)>
[6480000 values with dtype=float32]
Coordinates:
  * latitude   (latitude) float32 -89.947815 -89.84893 -89.74731 -89.64843 ...
  * longitude  (longitude) float32 -179.94507 -179.84619 -179.7473 ...
  * time       (time) datetime64[ns] 2003-01-01
Attributes:
    standard_name:  cloud_area_fraction
    long_name:      cloud fraction computed over a 3x3 pixel array at the nat...
    actual_range:   [0. 1.]
    valid_range:    [-127  127]
    scaled:         1
    _ChunkSizes:    [  1 361 361]

ds.cloud_fraction.plot()
#The cloud fraction data should be scaled to be a percentage between 0 and 1, but it is not.

#Manually decoding cloud_fraction
ds=xr.open_dataset(url, decode_cf=False)

ds.cloud_fraction
<xarray.DataArray 'cloud_fraction' (time: 1, latitude: 1800, longitude: 3600)>
[6480000 values with dtype=int8]
Coordinates:
  * latitude   (latitude) int16 -32748 -32712 -32675 -32639 -32603 -32566 ...
  * longitude  (longitude) int16 -32757 -32739 -32721 -32703 -32685 -32666 ...
  * time       (time) float32<PHONE_NUMBER>.0
Attributes:
    _Unsigned:      false
    standard_name:  cloud_area_fraction
    long_name:      cloud fraction computed over a 3x3 pixel array at the nat...
    coordinates:    latitude longitude
    actual_range:   [0. 1.]
    valid_range:    [-127  127]
    scale_factor:   0.003937008
    add_offset:     0.5
    _FillValue:     -128
    scaled:         1
    _ChunkSizes:    [  1 361 361]

cloud_fract_manual = ds.cloud_fraction * ds.cloud_fraction.scale_factor + ds.cloud_fraction.add_offset
cloud_fract_manual.plot()

decoded using decode_cf

Expected Output

Decoded manually  ds.cloud_fraction * ds.cloud_fraction.scale_factor + ds.cloud_fraction.add_offset
Output of xr.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.6.6.final.0
python-bits: 64
OS: Linux
OS-release: 4.4.111+
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
xarray: 0.10.8
pandas: 0.23.2
numpy: 1.15.1
scipy: 1.1.0
netCDF4: 1.4.2
h5netcdf: 0.6.2
h5py: 2.8.0
Nio: None
zarr: 2.2.0
bottleneck: 1.2.1
cyordereddict: None
dask: 0.18.2
distributed: 1.22.1
matplotlib: 2.2.3
cartopy: 0.17.0
seaborn: None
setuptools: 39.2.0
pip: 18.1
conda: 4.5.4
pytest: 3.9.1
IPython: 6.4.0
sphinx: None

I can reproduce that on master. Thanks for the good example.
However, if I download the file, it seems to work OK. @jjspergel can you confirm that please?

I can reproduce that on master. Thanks for the good example.
However, if I download the file, it seems to work OK. @jjspergel can you confirm that please?
EDIT:
Also, note that the scale_factor and add_offset attributes aren't set in the first ds.cloud_fraction repr but is in ds.cloud_fraction.encoding
{'source': 'http://www.ncei.noaa.gov/thredds/dodsC/avhrr-patmos-x-cloudprops-noaa-asc-fc/files/2003/patmosx_v05r03_NOAA-17_asc_d20030101_c20140314.nc',
 'original_shape': (1, 1800, 3600),
 'dtype': dtype('int8'),
 '_Unsigned': 'false',
 '_FillValue': 128,
 'scale_factor': 0.003937008,

'add_offset': 0.5,
'coordinates': 'latitude longitude'}

Yes @dcherian, when I downloaded it, and then imported into a notebook it seems to have decoded fine.

The CF decoding fails using opendap but not from the downloaded file. Pretty weird.

The problem is that attrs['_Unsigned'] = 'false' which always triggers UnsignedIntegerCoder https://github.com/pydata/xarray/blob/0d6056e8816e3d367a64f36c7f1a5c4e1ce4ed4e/xarray/coding/variables.py#L269
That line expects unsigned to be bool  and ends up casting the signed integer to an unsigned integer and things go haywire.
opendap is setting the _Unsigned attribute but it isn't present in the downloaded file.
ncdump -h http://www.ncei.noaa.gov/thredds/dodsC/avhrr-patmos-x-cloudprops-noaa-asc-fc/files/2003/patmosx_v05r03_NOAA-17_asc_d20030101_c20140314.nc
	byte cloud_fraction(time, latitude, longitude) ;
		cloud_fraction:_Unsigned = "false" ;
		cloud_fraction:standard_name = "cloud_area_fraction" ;
		cloud_fraction:long_name = "cloud fraction computed over a 3x3 pixel array at the native resolution centered on this pixel" ;
		cloud_fraction:coordinates = "latitude longitude" ;
		cloud_fraction:actual_range = 0.f, 1.f ;
		cloud_fraction:valid_range = -127s, 127s ;
		cloud_fraction:scale_factor = 0.003937008f ;
		cloud_fraction:add_offset = 0.5f ;
		cloud_fraction:_FillValue = -128b ;
		cloud_fraction:scaled = 1b ;
		cloud_fraction:_ChunkSizes = 1, 361, 361 ;

ncdump -h patmosx_v05r03_NOAA-17_asc_d20030101_c20140314.nc
	byte cloud_fraction_uncertainty(time, latitude, longitude) ;
		cloud_fraction_uncertainty:long_name = "cloud fraction uncertainty computed over a 3x3 array" ;
		cloud_fraction_uncertainty:coordinates = "latitude longitude" ;
		cloud_fraction_uncertainty:actual_range = 0.f, 1.f ;
		cloud_fraction_uncertainty:valid_range = -127b, 127b ;
		cloud_fraction_uncertainty:scale_factor = 0.003937008f ;
		cloud_fraction_uncertainty:add_offset = 0.5f ;
		cloud_fraction_uncertainty:_FillValue = -128b ;
		cloud_fraction_uncertainty:scaled = 1b ;

@jjspergel The single change in #2584 should fix your problem.

A temporary workaround without updating xarray might be to just edit the attributes to remove the offending unsigned attribute before decoding cf?
Sent from my iPhone

On Nov 30, 2018, at 1:35 PM, Deepak Cherian<EMAIL_ADDRESS>wrote:
@jjspergel The single change in #2584 should fix your problem.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@lesserwhirls @dennisHeimbigner Is there any reason to expect a difference between the downloaded file and the opendap view on TDS?

Very possibly. The first thing to look at is what opendap is sending:

http://www.ncei.noaa.gov/thredds/dodsC/avhrr-patmos-x-cloudprops-noaa-asc-fc/files/2003/patmosx_v05r03_NOAA-17_asc_d20030101_c20140314.nc.das


HWP-222: Changed redux code to 'Duck' structure

Applied the 'Duck' redux structure, which refactors redux code into singular files specific to the type of actions they are performing. (postDuck, communityDuck, etc.)
Fixed an issue in which the useEffect hook would run constantly through the lifecycle of the function.
This PR includes the following proposed change(s):

HWP-222

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Refactoring / Documentation
[ ] Version change

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. << @ZachBourque
Does the change impact or break the Docker build?

[ ] Yes
[x] No

If Yes: Has Docker been updated accordingly?

[ ] Yes
[ ] No

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] New and existing unit tests pass locally with my changes

Remove changes made to app/server/express.js

approved


Throwing pokeballs when there arent any in inventory

Expected Behavior
Bot should use the balls that are in inventory
Actual Behavior
Bot trys to use Pokeballs, but there aren't any in inventory, so it can't catch any Pokemon.
Steps to Reproduce
Other Information
OS: OS X 10.10.5
Git Commit: (run 'git log -n 1 --pretty=format:"%H"' and paste it here)
Python Version: (run 'python -V' and paste it here)
2016-08-07 12:18:13,899 [PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Pidgey appeared! [CP 164] [Potential 0.44] [S/A/D 6/2/12]
2016-08-07 12:18:17,687 [PokemonCatchWorker] [INFO] [threw_pokeball] Used Pokeball, with chance 47.34 (-1 left)
2016-08-07 12:18:23,238 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Brunnen am Gemeindehaus  - 0.06km
2016-08-07 12:18:30,286 [PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Pidgey appeared! [CP 164] [Potential 0.44] [S/A/D 6/2/12]
2016-08-07 12:18:33,360 [PokemonCatchWorker] [INFO] [threw_pokeball] Used Pokeball, with chance 47.34 (-1 left)
2016-08-07 12:18:38,927 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Brunnen am Gemeindehaus  - 0.06km
2016-08-07 12:18:44,299 [PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Pidgey appeared! [CP 164] [Potential 0.44] [S/A/D 6/2/12]
2016-08-07 12:18:47,837 [PokemonCatchWorker] [INFO] [threw_pokeball] Used Pokeball, with chance 47.34 (-1 left)
2016-08-07 12:18:53,406 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Brunnen am Gemeindehaus  - 0.06km
2016-08-07 12:18:59,330 [PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Pidgey appeared! [CP 164] [Potential 0.44] [S/A/D 6/2/12]
2016-08-07 12:19:02,075 [PokemonCatchWorker] [INFO] [threw_pokeball] Used Pokeball, with chance 47.34 (-1 left)
2016-08-07 12:19:07,629 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Brunnen am Gemeindehaus  - 0.06km
2016-08-07 12:19:13,651 [PokemonCatchWorker] [INFO] [pokemon_appeared] A wild Pidgey appeared! [CP 164] [Potential 0.44] [S/A/D 6/2/12]
2016-08-07 12:19:16,310 [PokemonCatchWorker] [INFO] [threw_pokeball] Used Pokeball, with chance 47.34 (-1 left)

I also had this issue before the API 'change'. There used to be a farming mode or something when the bot runs out of balls, right?

Yes, there was a farming mode. Now the bot has this error as long as you don't receive any Pokeballs by a Pokestop. After receiving Pokeballs it runs nice, so it seems not be needed to fixed that urgent. I don't know if it is a general problem with selecting different types of balls though.

@manu183 Are you still experiencing this issue? If so can you post your complete config with username, password and gmapkey removed. Also please indicate what release / branch / commit you are using.

Sorry, can't test anymore as my accounts are perma banned :p Probably was fixed though.


Add support for corner shots

The code used to break when a corner shot event was present in the events as we handled all corner events as passes, resulting in the following error:
Traceback (most recent call last):
  File "/Users/driesdeprest/Documents/MyGamePlan/code/python/kloppy/kloppy/_providers/wyscout.py", line 45, in load
    return deserializer.deserialize(
  File "/Users/driesdeprest/Documents/MyGamePlan/code/python/kloppy/kloppy/infra/serializers/event/wyscout/deserializer_v3.py", line 369, in deserialize
    set_piece_event_args = _parse_set_piece(
  File "/Users/driesdeprest/Documents/MyGamePlan/code/python/kloppy/kloppy/infra/serializers/event/wyscout/deserializer_v3.py", line 229, in _parse_set_piece
    result = _parse_pass(raw_event, next_event, team)
  File "/Users/driesdeprest/Documents/MyGamePlan/code/python/kloppy/kloppy/infra/serializers/event/wyscout/deserializer_v3.py", line 147, in _parse_pass
    if raw_event["pass"]["accurate"] is True:
TypeError: 'NoneType' object is not subscriptable

This issue is now fixed by handling a corner as a pass or shot based on its secondary event type.

Would it be possible, to after/if this PR's gets merged, create a new release 3.9.1, so that I can use it in my project?
Thanks and apologies for missing this bug in the prior PR!

Please add a test that proves the bug is fixed. This test should fail without your fix

@koenvo test has been added :-)

@koenvo, do you need anything more from my side? Again, sorry for the impatience, but this bug is blocking me to use the Wyscout deserializer in our project. Thanks in advance :-)

Thanks for the PR Dries!


Configurable karma

@leocwolter, can you take a look?
With this PR, the karma rules are now configurable through the .properties file.
This is deployed here: http://<IP_ADDRESS>:8080/

Hi @leocwolter, I've just finished applying your suggestions (and fixed some broken tests). Merging!


Home page fixes. Doesnt include image fixes.

Also re-introduces lib to the repo. As we are the parent project of the lib, it doesn't make any sense for it not to just be part of our repo, and also its own that we can update when we see fit.


The regular expression of the Hatena ID is different.

/([A-Za-z][0-9A-Za-z_-]{1,30}[0-9A-Za-z])/

fixed v1.0.1
https://github.com/cateiru/remark-hatena-id/commit/7d11be7e5cd0107bbb0133a1f375e3fd5c567d8d


Ad inspector - No adapters found

Environment
iOS, iPhone 6s
Plugin Version
Flutter plugin 3.0.0
Google Mobile Ads SDK v.10.4.0
The problem
When I go to Ad inspector, it tells me that no adapters were found. However AppLovin is present, wins the auction for the interstitial and displays it without problems.

Logs

No issues found! (ran in 3.4s)

[✓] Flutter (Channel stable, 3.13.3, on macOS 13.5.2 22G91 darwin-arm64, locale
it-IT)
• Flutter version 3.13.3 on channel stable at
/Users/_/Desktop/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision<PHONE_NUMBER> (7 days ago), 2023-09-06 14:32:31 -0700
• Engine revision b8d35810e9
• Dart version 3.1.1
• DevTools version 2.25.0
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
• Android SDK at /Users/_/Library/Android/sdk
• Platform android-33, build-tools 33.0.2
• Java binary at: /Applications/Android
Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b829.9-10027231)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 14E300c
• CocoaPods version 1.12.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b829.9-10027231)
[✓] VS Code (version 1.82.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.72.0
[✓] Connected device (2 available)
• macOS (desktop) • macos  • darwin-arm64   • macOS 13.5.2 22G91 darwin-arm64
• Chrome (web)    • chrome • web-javascript • Google Chrome 116.0.5845.187
[✓] Network resources
• All expected network resources are available.
• No issues found!

Hi @Francesco-FL
Per Understand SDK adapter issues, adapter not found issue means that the GMA SDK cannot find your third-party adapter or SDK.
Could you confirm the ad is displaying on your test device? (with test ad id and production ad id)

I placed the adapters in the Podfile and on iOS devices the AppLovin mediation ads always show correctly. it's as if everything is working fine, but the Ad Inspector incomprehensibly tells me that he can't find them.
The point is that AppLovin manages to work correctly in mediation, wins auctions and shows ads, and it is strange that I don't find it in the Ad Inspector.
As for the app-banner ids, I use the ones AdMob assigned to me for the app and the advertising units.

This seems to be an implementation issue. Please confirm whether the ad is displaying on your test device or not (with test ad id and production ad id)

Closing this ticket due to inactivity. Please re-open if necessary.


Remove get_type

Remove unneeded API
Use existing API
Update param to search-srv

@mbektas can you take a look at this when you get the chance? Thanks!


NixOS channels stuck

For a few days now, all NixOS channel updates have been failing.

Just cleared space, please re-open (and ping :)) if things stay stuck.


Problem reading SRAM

Hello!
A few days ago I'm having trouble trying to read the SRAM of a Super Mario World. I can not get a valid reading.
This cartridge runs normally on the console, recording and reading the SRAM.
I can read cartridges normally without any problem.
I checked the main connections with the multimeter.
I was able to read and write to the SRAM of another cartridge (Yossi Island), but at an address different from what was in the code. I used $ 70: 8000.
The cartridge is a SHVC-1A1M-20 with MAD-1 decoder.
In a last desperation attempt I recorded a SRAM in all banks $ 00 ~ $ FF: 0000 and $ 00 ~ $ FF: 8000 and read again to see if any of the files was what I recorded and none was.
Does anyone have any ideas?

Hi. Yeah, it's been a really long time haha. I miss spending my time on these things..
It was great progress. At the time I would like to save my save. I believe that these delays you put in could have solved my problem.
I don't know how I can help, but I'll be following along.

I dumped mario world sram with and without save progress and the file generated by the dump is the same in both cases, not working on the emulator. With mario kart it works. Is it because one is LoRom and the other is HiRom or is it something else?


Refactor osgi test

Move all the unit tests to NeutronSfcSdnRedirectionApiTest.
Use InMemDB
Two minimal tests retained in OSGiIntegrationTest, to show OSGi setup is working.

Is Jacoco going to be integrated as part of this change? We can enable code cov for this repo as well once jacoco is integrated as part of pom


Postcode Issue

Expected behavior:
Get the address from the post code every time a post code is entered.
Actual behavior:
Sometimes it will say the postcode is invalid, but when they type in there number and street it will find there address.
Reproduce steps:
Type in a valid postcode
Version:
Latest?
Additional Information:
(Additional information, if any)

Fixed, was user error


About iOS minimum deployment target version

I built IBPCollectionViewCompositionalLayout target with 8.0 deployment target and no errors happened. So can we decrease the minimum deployment target to 8.0 so that more products can adopt this awesome library? Or  maybe I missing some considerations for the current 10.0 deployment target version?

@qhhonx The reason is just not tested enough. I'm not sure if it works well on iOS 8.
Do you use this library on iOS 8? I can decrease the deployment target if you report issues.

@kishikawakatsumi Ok, I see that. I have not used it in production now. Our product is set to iOS 9 as minimum deployment target version. If we decide to integrate it, we would like take a PR and report test issues.


aider always starts with antropic claude even after I specify --openai-api-key

Issue
Hello - aider is a very good package - there is a lot of hype around AI but aider is an exception and actually delivers on its promises.
Usually I use anthropic but sometime I want to switch to openai.

Version and model info
No response

possibly anthropic api key set in your environment which takes priority. use '--model 4o' parameter to override?

Yes this is what I did and it works.
This can be closed, maybe the docs can state it with more clarity.


ValueError when running 3DChromatin_ReplicateQC concordance

When running 3DChromatin_ReplicateQC step by step, I came across the following problem.
Both 3DChromatin_ReplicateQC preprocess and 3DChromatin_ReplicateQC qc generate reasonable results. But 3DChromatin_ReplicateQC concordance gives ValueError:
Step: concordance | Fri Nov  1 15:24:48 2019 | computing concordance between Control_Rep1_1000_10kb and Control_Rep2_1000_10kb
GenomeDISCO | Fri Nov  1 15:25:00 2019 | :::::::::: Starting reproducibility analysis
GenomeDISCO | Fri Nov  1 15:25:00 2019 | processing: Loading genomic regions from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/nodes/nodes.chr1.gz
GenomeDISCO | Fri Nov  1 15:25:00 2019 | Loading contact maps
GenomeDISCO | Fri Nov  1 15:25:00 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep1_1000_10kb/Control_Rep1_1000_10kb.chr1.gz
GenomeDISCO | Fri Nov  1 15:25:06 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep2_1000_10kb/Control_Rep2_1000_10kb.chr1.gz
GenomeDISCO | Fri Nov  1 15:25:15 2019 | Subsampling depth = 7517561.0
GenomeDISCO | Fri Nov  1 15:25:25 2019 | Normalizing with sqrtvc
GenomeDISCO | Fri Nov  1 15:25:26 2019 | Distance dependence analysis
GenomeDISCO | Fri Nov  1 15:25:26 2019 | Computing reproducibility score
GenomeDISCO | Fri Nov  1 15:25:27 2019 | done t=1 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:25:54 2019 | done t=2 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:27:03 2019 | done t=3 | score=0.938
GenomeDISCO | Fri Nov  1 15:27:09 2019 | :::::::::: Starting reproducibility analysis
GenomeDISCO | Fri Nov  1 15:27:09 2019 | processing: Loading genomic regions from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/nodes/nodes.chr2.gz
GenomeDISCO | Fri Nov  1 15:27:09 2019 | Loading contact maps
GenomeDISCO | Fri Nov  1 15:27:09 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep1_1000_10kb/Control_Rep1_1000_10kb.chr2.gz
GenomeDISCO | Fri Nov  1 15:27:12 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep2_1000_10kb/Control_Rep2_1000_10kb.chr2.gz
GenomeDISCO | Fri Nov  1 15:27:16 2019 | Subsampling depth = 6256585.0
GenomeDISCO | Fri Nov  1 15:27:21 2019 | Normalizing with sqrtvc
GenomeDISCO | Fri Nov  1 15:27:22 2019 | Distance dependence analysis
GenomeDISCO | Fri Nov  1 15:27:22 2019 | Computing reproducibility score
GenomeDISCO | Fri Nov  1 15:27:22 2019 | done t=1 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:27:33 2019 | done t=2 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:27:52 2019 | done t=3 | score=0.947
GenomeDISCO | Fri Nov  1 15:27:55 2019 | :::::::::: Starting reproducibility analysis
GenomeDISCO | Fri Nov  1 15:27:55 2019 | processing: Loading genomic regions from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/nodes/nodes.chr3.gz
GenomeDISCO | Fri Nov  1 15:27:55 2019 | Loading contact maps
GenomeDISCO | Fri Nov  1 15:27:55 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep1_1000_10kb/Control_Rep1_1000_10kb.chr3.gz
GenomeDISCO | Fri Nov  1 15:27:59 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep2_1000_10kb/Control_Rep2_1000_10kb.chr3.gz
GenomeDISCO | Fri Nov  1 15:28:05 2019 | Subsampling depth = 5682122.0
GenomeDISCO | Fri Nov  1 15:28:11 2019 | Normalizing with sqrtvc
GenomeDISCO | Fri Nov  1 15:28:12 2019 | Distance dependence analysis
GenomeDISCO | Fri Nov  1 15:28:12 2019 | Computing reproducibility score
GenomeDISCO | Fri Nov  1 15:28:12 2019 | done t=1 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:28:26 2019 | done t=2 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:28:57 2019 | done t=3 | score=0.946
GenomeDISCO | Fri Nov  1 15:29:01 2019 | :::::::::: Starting reproducibility analysis
GenomeDISCO | Fri NTraceback (most recent call last):
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 209, in <module>
    main()
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 202, in main
    get_reproducibility(M1,M2,int(sys.argv[6]))
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 157, in get_reproducibility
    a1, b1=eigsh(M1b_L,k=num_evec,which="SM")
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1585, in eigsh
    return eigh(A, b=M, eigvals_only=not return_eigenvectors)
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/linalg/decomp.py", line 432, in eigh
    iu=a1.shape[0], overwrite_a=overwrite_a)
ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,)
Traceback (most recent call last):
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 209, in <module>
    main()
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 202, in main
    get_reproducibility(M1,M2,int(sys.argv[6]))
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 157, in get_reproducibility
    a1, b1=eigsh(M1b_L,k=num_evec,which="SM")
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1585, in eigsh
    return eigh(A, b=M, eigvals_only=not return_eigenvectors)
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/linalg/decomp.py", line 432, in eigh
    iu=a1.shape[0], overwrite_a=overwrite_a)
ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,)
Traceback (most recent call last):
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 209, in <module>
    main()
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 202, in main
    get_reproducibility(M1,M2,int(sys.argv[6]))
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 157, in get_reproducibility
    a1, b1=eigsh(M1b_L,k=num_evec,which="SM")
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1585, in eigsh
    return eigh(A, b=M, eigvals_only=not return_eigenvectors)
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/linalg/decomp.py", line 432, in eigh
    iu=a1.shape[0], overwrite_a=overwrite_a)
ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,)
Traceback (most recent call last):
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 209, in <module>
    main()
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 202, in main
    get_reproducibility(M1,M2,int(sys.argv[6]))
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 157, in get_reproducibility
    a1, b1=eigsh(M1b_L,k=num_evec,which="SM")
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py", line 1585, in eigsh
    return eigh(A, b=M, eigvals_only=not return_eigenvectors)
  File "/home/liuyi/.python2.7.15/lib/python2.7/site-packages/scipy/linalg/decomp.py", line 432, in eigh
    iu=a1.shape[0], overwrite_a=overwrite_a)
ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,)
Traceback (most recent call last):
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 209, in <module>
    main()
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 202, in main
    get_reproducibility(M1,M2,int(sys.argv[6]))
  File "/data2/usr/liuy/software/3DChromatin_ReplicateQC/wrappers/HiC-Spector/run_reproducibility_v1.py", line 163, in get_reproducibility
    b1_extend[i_nz1,i]=b1[:,i]
IndexError: index 2 is out of bounds for axis 1 with size 2
Loading required package: hicrep
Loading required package: reshape2
Loading required package: hicrep
Loading required package: reshape2
Loading required package: hicrep
Loading required package: reshape2
Loading required package: hicrep
Loading required package: reshape2
Loading required package: hicrep
Loading required package: reshape2
ov  1 15:29:01 2019 | processing: Loading genomic regions from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/nodes/nodes.chr4.gz
GenomeDISCO | Fri Nov  1 15:29:01 2019 | Loading contact maps
GenomeDISCO | Fri Nov  1 15:29:01 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep1_1000_10kb/Control_Rep1_1000_10kb.chr4.gz
GenomeDISCO | Fri Nov  1 15:29:04 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep2_1000_10kb/Control_Rep2_1000_10kb.chr4.gz
GenomeDISCO | Fri Nov  1 15:29:07 2019 | Subsampling depth = 4125211.0
GenomeDISCO | Fri Nov  1 15:29:12 2019 | Normalizing with sqrtvc
GenomeDISCO | Fri Nov  1 15:29:13 2019 | Distance dependence analysis
GenomeDISCO | Fri Nov  1 15:29:13 2019 | Computing reproducibility score
GenomeDISCO | Fri Nov  1 15:29:13 2019 | done t=1 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:29:22 2019 | done t=2 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:29:37 2019 | done t=3 | score=0.945
GenomeDISCO | Fri Nov  1 15:29:40 2019 | :::::::::: Starting reproducibility analysis
GenomeDISCO | Fri Nov  1 15:29:40 2019 | processing: Loading genomic regions from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/nodes/nodes.chr5.gz
GenomeDISCO | Fri Nov  1 15:29:41 2019 | Loading contact maps
GenomeDISCO | Fri Nov  1 15:29:41 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep1_1000_10kb/Control_Rep1_1000_10kb.chr5.gz
GenomeDISCO | Fri Nov  1 15:29:45 2019 | processing: Loading interaction data from /data2/usr/liuy/Project/hicQC/hicQCOUTPUT/Control_Rep1VSControl_Rep2.10kb/data/edges/Control_Rep2_1000_10kb/Control_Rep2_1000_10kb.chr5.gz
GenomeDISCO | Fri Nov  1 15:29:53 2019 | Subsampling depth = 6519023.0
GenomeDISCO | Fri Nov  1 15:30:01 2019 | Normalizing with sqrtvc
GenomeDISCO | Fri Nov  1 15:30:01 2019 | Distance dependence analysis
GenomeDISCO | Fri Nov  1 15:30:01 2019 | Computing reproducibility score
GenomeDISCO | Fri Nov  1 15:30:02 2019 | done t=1 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:30:21 2019 | done t=2 (not included in score calculation)
GenomeDISCO | Fri Nov  1 15:31:06 2019 | done t=3 | score=0.942

I only specified --metadata_pairs and --outdir options in this command, and it semms that my data is somewhat special and triggered errors in scipy.
Do you know how to deal with such problem? Thanks!

Hi, I have the same issue - would appreciate any insight.
Thanks

Hi,
Did you ever get to a solution to solve this problem? Got it too...
Thank you!
N.


Polygons are in anticlockwise (D3js)

Hey,
I am having issues with importing geojson into d3.js. It seems to be related to how the json is structured https://github.com/d3/d3-geo/issues/227
The json that is returned (example below) is anticlockwise which causes paths exported by the d3.geoPath function to span the full globe. Rewinding the coordinates orders seems to fix it.
 {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "coordinates": [
          [
            [
              -73.98184731377465,
              40.76805485662834
            ],
            [
              -73.97298060280693,
              40.76432477079467
            ],
            [
              -73.94921655865086,
              40.79689325670785
            ],
            [
              -73.9581323755779,
              40.80063095637897
            ],
            [
              -73.98184731377465,
              40.76805485662834
            ]
          ]
        ],
        "type": "Polygon"
      }
    },

https://observablehq.com/d/8da9c5df732f514d

Hi @zhik, I am not sure I understand your issue, and the observable notebook you linked to is set to private.
If you draw a polygon in geojson.io, its outer ring will be anticlockwise per the geojson spec.  (geojson.io uses the geojson-rewind package to enforce this regardless of how the polygon was drawn.)
If you're not getting the expected data out of geojson.io, let's dig into that.

Here's another thread that explains how d3 does not follow the geojson spec and requires clockwise outer rings.
https://stackoverflow.com/questions/64379885/d3-geopath-geojsonlint-cw-vs-ccw

D3 does not adhere to the geojson spec regarding winding order of geojson. D3 requires reverse winding (coordinates wound like a shapefile). This is awkward when validating your geojson. It is slightly odd that the spec specifies an order when it also mandates Cartesian coordinates, which means there is only one way to fill a polygon regardless of its winding. D3 breaks the spec again by using spherical math, which means winding order matters. It should cause no issues to reversely wind geojson for most practical purposes, turf.js offers a method to wind on the fly if needed. –
Andrew Reid

Closing as we are not going to take action on this


Add check to prevent the use of IP addresses as SNI hostnames

Fixes #3676 (kind of).
When I attempt to add my mail server using a literal IPv6 address, I get the following error:

Screenshot

The error occurs because the constructor of javax.net.ssl.SNIHostName fails to parse the hostname. This behavior is consistent with RFC 6066, which explicitly prohibits using literal IPv4 or IPv6 addresses as SNI hostnames.
This PR fixes the problem by adding the corresponding check before setting the SNI hostname for the SSL/TLS connection.
The other problems mentioned in the original issue are no longer relevant, since the server settings validator was recently updated to accept literal IPv6 addresses.

Thanks :+1:


now pip installable

This seems to work for pip installation. @ad12 you would have a better sense of whether this is a workable solution.

Got it, can add to that doc that users should install tensorflow first if they are looking for GPU support. Will make sure to add this to a readthedocs when we start putting that together.


FEATURE: add mapping to copy absolute path of the file

Did you check the docs?

[X] I have read all the docs.

Is your feature request related to a problem? Please describe.
It is not actually a problem but UX improvement. I recently switched from nvim-tree to neo-tree and nvim-tree had that mapping which I actively used
Describe the solution you'd like.
I would like use some mapping (for example Y) that will copy absolute path of the file under cursor
Describe alternatives you've considered.
There is no alternative, right now I just open finder and navigate to the location of file and make something within that folder
Additional Context
No response

https://github.com/nvim-neo-tree/neo-tree.nvim/discussions/370
Seems like there's many interests. Shall we add this keymap officially? @cseickel
Or leave it as wont-fix and let users decide by themselves. Like the popup is nice but I'm not sure if the keybind needs that many functionality.

dup: https://github.com/nvim-neo-tree/neo-tree.nvim/issues/1163

@pysan3 thank you for reply! I'm applied #370. Can I mark this as done?

IMO this should be standarized in such a way that external sources and also provide a absolute path if the user requests it.
This should not be just something that is built for the Filesystem source. As an example, I am including this in the netman source so you can get the absolute path of remote items, and I suspect that @ghostbuster91 would appreciate being able to simply hook a command to provide the absolute path for whatever he is working on.
I would be hesitant to add this command to the global mappings because there are more sources that won't use this command than there are sources that will. It of course makes sense for the Filesystem to use it, and I would say that once it is mapped to the Filesystem commands, I will copy it into Netman (I generally try to maintain keybinding compatibility between Netman's remote source and the filesystem).

@wr9dg17 Thanks for your reply. I'd like to make this issue a place to discuss about whether we should merge this into defaults.lua so could you keep this open for a while?
You can disable notifications from GitHub about this issue if you desire.

@miversen33
As we already have the popup window mechanism (o*), maybe we could implement a dialog to ask for what user want to copy? And node contains the options.
node.registry = {
  ["Y"] = { "<absolute path>", "<description>" },
  ["r"] = { modify(filename, ":r"), "Base name" },
  ["e"] = { modify(filename, ":e"), "Extension" },
  -- ...
}

And make ["Y"] the default keybind to call this popup. So, YY will copy the absolute path, Ye will copy extension etc.
I haven't looked into the popup implementation and don't know how difficult it is to add popup options dynamically.
External sources can also assign its own options to node.registry with custom keys in the same format to copy arbitrary thing.
cc @cseickel

I personally don't have opinions one way or another on how its implemented. Just that if we do it, it is both standardized and documented so external source developers can spend a bit less time scouring through the source to figure out how to do xyz :) Just trying to make future Mike's life easier :joy:

The problem is that there is just a ridiculous number of possible commands and it's hard to draw the line on where something should be includes vs where the users or distro maintainers should just create a custom command.
This one is kind of on the line to me. I have never in my life felt the need to copy a file path from the tree but I realize that there is a reasonable amount of people that do use it.
I would not make it part of the default mappings. If anything I would choose to reduce the number of default mappings. I also don't think we should continue putting every hypothetical mapping in defaults.lua. I would approach this and every future request for a new command in one of two ways:

Add a named command in the sources/<source_name>/commands.lua file and document it in the help file. We should probably create a separate help doc for each source's commands. These extra commands do not need default mappings and do need to be listed in defaults.lua.
Create an online resource, like the wiki, which contains a user maintained list of custom commands that people can copy and paste into their config. We kind of have this already but it can be better organized and advertised.

Of course that's just my opinion as the person currently responsible for maintaining this plugin. That position is actually open to other maintainers and past contributors...

I strongly support the inclusion of a default mapping for copying absolute or relative paths, or at the very least, the official documentation should inform users on how to add this mapping, leaving the decision to them.

For those looking for a lazy "copy paste" solution, here is what I use:
      ["y"] = {
        function(state)
          vim.fn.setreg("+", state.tree:get_node().path)
        end,
        desc = "copy path to clipboard",
      },

I don't know how "optimal" or portable this is, but it works on my setup.


Issue #85 - Use SafeFileHandle of the deprecated FileHandle in the /redirect mode

Solves #85

I confirmed that it works manually. A test case would be useful


add controller leader election for operator and manager and agent

Signed-off-by: myan<EMAIL_ADDRESS>Reference: https://github.com/stolostron/backlog/issues/26331

/retest

/retest

/LGTM


feat: add tenant settings and tokens deduplicate option

Description

Adds settings to tenant and deduplicate token option to tokens

Testing required outside of automated testing?

[x] Not Applicable

Screenshots (if appropriate):

[x] Not Applicable

Rollback / Rollforward Procedure

[x] Roll Forward
[ ] Roll Back

Reviewer Checklist

[ ] Description of Change
[ ] Description of outside testing if applicable.
[ ] Description of Roll Forward / Backward Procedure
[ ] Documentation updated for Change

:tada: This PR is included in version 1.37.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


prevent access to send and receive page content when syncing

[ ] prevent access to send and receive page content when syncing (closes https://github.com/crypto-power/cryptopower/issues/404)
[ ] increase width of single wallet main page
[ ] fix license page and about page view on mobile
[ ] fix overlay of cex page not showing on mobile (closes https://github.com/crypto-power/cryptopower/issues/409)
[ ] Enable auto sync for newly created wallets

I can still add accounts, maybe that should also be prevented?
good point done

nit: "This function...." is not centered after wrap:
i've created a follow up issue #414. right now i see no reason it shouldn't center, might be something else going on


⚠ Bofrost.es has degraded performance

In aaed2d3, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1888 ms

Resolved: Bofrost.es performance has improved in d4ff6c4 after 52 minutes.


DataProtectionTokenProvider shape

As Options and Protector aren't used outside of the class they shouldn't be public.
The default Name set in DataProtectionTokenProvider does not match the default name used if the name property ends up as null. Is this on purpose?

Protected for Options/Protector then?

protected Protector .... Hah.


Calling potential SNVs using pileup... Error.

Hello longshot,
I am attempting to use longshot on a 14 GB genome and have recently run into the following error:
longshot: sam.c:2316: resolve_cigar2: Assertion `s->k < c->n_cigar' failed.
/var/spool/slurmd/job133909/slurm_script: line 17: 226239 Aborted

I was wondering if I could get some advice on how to approach this problem?
Kind Regards,
Alex

It seems like the error is related to the cigar operations in the input file. Older versions of htslib had a limit on the max. number of cigar operations. If you are using an older version of htslib, it would be worth updating it.

I have the same issue, the problem seems to be with the rust-htslib version that comes with longshot.
The data is ultralong HG002 ONT reads aligned with minimap2. The problem is NOT with large CIGAR strings (>65535 operations), the error persists after corresponding reads are removed.
In Cargo.toml :
rust-htslib = "0.26.1"
The next release of rust-htslib is 0.27.0 and longshot does not compile with that version, since it broke backward compatibility.
However, the compiler complains in only two places:
error[E0308]: mismatched types
--> src/extract_fragments.rs:277:16
|
277 |               >= bam_record
|  ________________^
278 | |                 .cigar()
279 | |                 .end_pos()
| |__________________________^ expected i32, found i64
|
help: you can convert an i64 to i32 and panic if the converted value wouldn't fit
|
277 |             >= bam_record
278 |                 .cigar()
279 |                 .end_pos().try_into().unwrap()
|
error[E0308]: mismatched types
--> src/extract_fragments.rs:280:44
|
280 |         || (var_interval.end_pos as i32) < bam_record.pos()
|                                            ^^^^^^^^^^^^^^^^ expected i32, found i64
|
help: you can convert an i64 to i32 and panic if the converted value wouldn't fit
|
280 |         || (var_interval.end_pos as i32) < bam_record.pos().try_into().unwrap()
|                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors
Just implementing the suggested changes and adding:
use std::convert::TryInto;
to the src/extract_fragments.rs
does the job! Works with htslib 0.29.0 for me as well.

I have the same issue, the problem seems to be with the rust-htslib version that comes with longshot.
The data is ultralong HG002 ONT reads aligned with minimap2. The problem is NOT with large CIGAR strings (>65535 operations), the error persists after corresponding reads are removed.
In Cargo.toml :
rust-htslib = "0.26.1"
The next release of rust-htslib is 0.27.0 and longshot does not compile with that version, since it broke backward compatibility.
However, the compiler complains in only two places:
error[E0308]: mismatched types
--> src/extract_fragments.rs:277:16
|
277 |               >= bam_record
|  ________________^
278 | |                 .cigar()
279 | |                 .end_pos()
| |__________________________^ expected i32, found i64
|
help: you can convert an i64 to i32 and panic if the converted value wouldn't fit
|
277 |             >= bam_record
278 |                 .cigar()
279 |                 .end_pos().try_into().unwrap()
|
error[E0308]: mismatched types
--> src/extract_fragments.rs:280:44
|
280 |         || (var_interval.end_pos as i32) < bam_record.pos()
|                                            ^^^^^^^^^^^^^^^^ expected i32, found i64
|
help: you can convert an i64 to i32 and panic if the converted value wouldn't fit
|
280 |         || (var_interval.end_pos as i32) < bam_record.pos().try_into().unwrap()
|                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors
Just implementing the suggested changes and adding:
use std::convert::TryInto;
to the src/extract_fragments.rs
does the job! Works with htslib 0.29.0 for me as well.

Thank you @ddrichel  for finding the source of this problem and the fix. The incompatibility is due to the use of 64 bit integers in the later versions of htslib. I have pushed a commit to master to handle this. Thanks again.

Thank you @ddrichel  for finding the source of this problem and the fix. The incompatibility is due to the use of 64 bit integers in the later versions of htslib. I have pushed a commit to master to handle this. Thanks again.


Extend documentation

Perhaps the documentation should be extended.

define which criteria makes a stopword a "plain"-stopword and which makes it a "seo"-stopword?
add a short how to about contribution
add information how to resort after adding words

Added some more README Stuff. Stopwords are  a rather open definition thats why a clear definition of plain and full is a little vague. Always depends on the usage of the list.


How suppress the container execution prolog

Is there a way to suppress the prolog printed in the stdout when a container is executed?
I mean the text:
 ******************************************************************************
 *                                                                            *
 *               STARTING 9e08bb88-4548-3081-a265-310b83be43f0                *
 *                                                                            *
 ******************************************************************************
 executing: sh

Currently there isn't.
We can provide this feature in the next release.

Thanks. A possible alternative would be to print it on the stderr channel so that it would not break the output that may be expected by the containerised tools.


Remove deep nesting from generators

Please verify the following:

[x] yarn ci:test jest tests pass with new tests, if relevant
[x] README.md has been updated with your changes, if relevant

Describe your PR
By default, we are moving away from deeply nested structure, so this moves generated components, models, and screens out of their individual named folders and into the relevant root folder instead.
If the user prefers it the old way, the templates can be updated using front-matter and the destinationDir property:
destinationDir: app/models/<%= props.kebabCaseName %>/<%= props.kebabCaseName %>\"

Visuals

LGTM 👍🏼

In the new file structure, the files are capitalized but the generators are creating them with lower-case naming: Pizza vs pizza. Are we wanting the generators to match the provided nomenclature?

@cdanwards that's a great point. I think we should match the new pattern. I'll update this PR to do that as well.

Actually, I think I will do that in a separate PR since it's a fairly substantial change and I don't want to hold this part up in case i don't finish before EOD.


swagger-ui appears not to render parameters correctly

When running through the /weather quick-start example and viewing the docs generated by the swagger-ui the unit parameter does not appear to render correctly.

If i view this same swagger document using editor.swagger.io it renders ok.

This is technically a swagger-ui issue.  I can update the version shipped with swagger-tools but you too can run your own version of swagger-ui if you'd like: https://github.com/apigee-127/swagger-tools/blob/master/docs/Middleware.md#swaggeruioptions  Also, do not confuse swagger-ui with swagger-editor, they are two completely different tools.
I'm going to close this for now since I typically update the swagger-ui shipped with swagger-tools before a release, which should be coming soon.


Add Gauntlet++ Op Client and Op Requests into E2E Integration Tests

What

Added G++ Client into E2E Tests
Ported all legacy Gauntlet Ops to G++ ops except for Account Deploy

Tracking this with: https://smartcontract-it.atlassian.net/browse/NONEVM-654

Added new configs for G++ Client

Ops are not yet integrated into E2E Test workflow. That will be captured in this ticket: https://smartcontract-it.atlassian.net/jira/software/c/projects/NONEVM/boards/357/backlog?selectedIssue=NONEVM-291
Why:
https://smartcontract-it.atlassian.net/browse/NONEVM-330

looks good! now we're just waiting for the github token to pull in the private go modules