Generic classes with type parameters parsing/serializing

Aloha!
For a big project of mine my data is stored as such:
abstract class A <T1, T2> {
    T1 first;
    T2 second;
    ...other simple fields...
}

class B<This,That>{
}

Since the scope for the data is so wide there are N number of classes that all depend on A like this. In GSON I use TypeAdapters to include the class name of each subclass in the json so that it can be read back properly, Id like to see something similar in LoganSquare.
I cannot get it to work the way LoganSquare is built at the moment (If its supported at all?) as it always tries to create instances of A directly.
Thanks!

:+1:

LoganSquare, at this point, is able to handle generics for the kind of scenario you describe. Just make sure to annotate both the abstract base class and its sub-classes properly and you're good to go:
@JsonObject
public abstract class A<T1, T2> {

    @JsonField
    T1 first;

    @JsonField
    T2 second;
}

@JsonObject
public class B extends A<String, String> {

    @JsonField
    int somethingElse;
}

With this setup, you can serialize and parse like this:
B model = new B("Item A", "Item B", 100);
String json = LoganSquare.serialize(model);
System.out.println(json);    // prints "{"somethingElse":100,"first":"Item A","second":"Item B"}"

If you need to include type information for each class as well (even though you don't need to with LoganSquare), this works by adding a Class @JsonField to the abstract base class with a custom type converter:
@JsonObject
public abstract class A<T1, T2> {

    // (the rest from above...)

    // Use "Class" without any type variable for the field
    @JsonField(typeConverter = ClassConverter.class)
    Class type;
}

public final class ClassConverter implements TypeConverter<Class> {

    @Override
    public Class parse(JsonParser jsonParser) throws IOException {
        try {
            return Class.forName(jsonParser.getValueAsString());
        } catch (ClassNotFoundException e) {
            throw new IOException(e);
        }
    }

    @Override
    public void serialize(Class object, String fieldName, boolean writeFieldNameForObject, JsonGenerator jsonGenerator) throws IOException {
        jsonGenerator.writeFieldName(fieldName);
        jsonGenerator.writeString(object.getCanonicalName());
    }
}

With this setup, the code snippet above prints {"somethingElse":100,"first":"Item A","second":"Item B","type":"your.full.package.name.B"}.


Add MethodDefineMacros option to Naming/PredicateName cop

Follow up for https://github.com/bbatsov/rubocop/pull/4855#issuecomment-336011062.
Cc @pocke who suggested this feature.
Feature
This PR also add the MethodDefineMacros option to check on methods dynamically defined to Naming/PredicateName cop.
The target that RuboCop checks by default is define_method. This also applies to end user application code. The following is config/default.yml.
Naming/PredicateName:
  # Method define macros for dynamically generated method.
  MethodDefineMacros:
    - define_method

def_node_matcher is also used for internal affairs of RuboCop itself. The following is config/.rubocop.yml.
Naming/PredicateName:
  # Method define macros for dynamically generated method.
  MethodDefineMacros:
    - define_method
    - def_node_matcher

The following is the effect applied to the the before master branch (995315f) .
% bundle exec rake internal_investigation
Running RuboCop...
Inspecting 1010 files

(snip)

Offenses:

lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb:26:26: C: Rename has_many_or_has_one_without_options? to many_or_has_one_without_options?.
        def_node_matcher :has_many_or_has_one_without_options?, <<-PATTERN
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb:30:26: C: Rename has_many_or_has_one_with_options? to many_or_has_one_with_options?.
        def_node_matcher :has_many_or_has_one_with_options?, <<-PATTERN
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb:34:26: C: Rename has_dependent? to dependent?.
        def_node_matcher :has_dependent?, <<-PATTERN
                         ^^^^^^^^^^^^^^^
lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb:38:26: C: Rename has_through? to through?.
        def_node_matcher :has_through?, <<-PATTERN
                         ^^^^^^^^^^^^^
lib/rubocop/cop/rails/not_null_column.rb:34:26: C: Rename has_default? to default?.
        def_node_matcher :has_default?, <<-PATTERN
                         ^^^^^^^^^^^^^

1010 files inspected, 5 offenses detected
RuboCop failed!

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] All tests(rake spec) are passing.
[x] The new code doesn't generate RuboCop offenses that are checked by rake internal_investigation.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Updated cop documentation with rake generate_cops_documentation (required only when you've added a new cop or changed the configuration/documentation of an existing cop).

Squash and rebase and we're good to go.

Thanks for the review. I rebased with squash.

👍


No valid certificate for https ?

Vmango.org has no valid certificate ?
Safari refuses entry
With kind regards,
Remke

Thanks! I've updated the cert.


Pressing the 9-key causes the Choose Default Keyboard popup to appear

Ok... maybe I'm missing something here but on v30 - on the onscreen keypad -, if I disable the t9 dictionary and try to write an "x" (by double pressing key "9" twice to get "x"), instead I now get a popup to choose the default keyboard!
Is this how it's suppose to be, or am I missing something?

P.S. I have edited the title to reflect better the problem. I hope that's OK with you.

of course i'm ok with the change :)
But... Well, it's not just the "9-key". It's any numbered key (i gave the "9 key" as an example)
Assigning a key (volume up, for example), does stop the "Change Keyboard" from popping up...
but now i can't type the second letter, just the first!
Also... if i then restore the original selection (which was none / "--") the reported bug reappears.
Resetting the shortcuts was my first guess but it didn't work.
Neither did restarting the phone

Please try this APK. When you install it, it will say it is v30.0 again, but there is a small change in the on-screen keypad code.
If you are still unable to type, go to Settings -> Appearance and change the layout to "Function keys", then go back to an app where you can type and hit backspace. Then go back to the settings and restore the layout to a full on-screen keypad. After doing this, are you able to type normally? Also, are you sure the problem is only with ABC mode?
As far as I remember, you are using a touchscreen phone, without hardware keys, right? If not, I am looking at the wrong file. :slightly_smiling_face:

Please try this APK. When you install it, it will say it is v30.0 again, but there is a small change in the on-screen keypad code.

I was unable to install it on the first try. It returned a popup saying it could not be installed, which was weird... On the second try, it did install ok, but change keyboard popup problem is still present

If you are still unable to type, go to Settings -> Appearance and change the layout to "Function keys", then go back to an app where you can type and hit backspace. Then go back to the settings and restore the layout to a full on-screen keypad. After doing this, are you able to type normally?

No. The problem still persists!

Also, are you sure the problem is only with ABC mode?

Yeap. It's ABC-mode specific! All other modes work ok.

As far as I remember, you are using a touchscreen phone, without hardware keys, right? If not, I am looking at the wrong file. 🙂

Yes, it's a touchscreen phone. The only hardware keys i have are volume keys and the Lock/unlock key (bellow volume). This is my phone: https://www.gsmarena.com/xiaomi_redmi_5-8768.php

OK then, maybe the installation didn't go properly. Please try this APK. The version is 30.62, but don't mind the number, it is just something different than 30.0. After installing it, please verify it has installed properly, by going to TT9 Settings and scrolling to the bottom, where you can see the version number.

Yeap. It's ABC-mode specific! All other modes work ok.

I can understand if the number keys cause the problem in all modes. There was a small mistake, that could potentially lead to this, if the phone begins registering "hold" instead of short "tap" events all the time. Detecting a touch is a bit of a magic sometimes. But there is no code that would cause this only in one typing mode. I am completely puzzled.
The only ABC-specific new thing in v30.0, is the timeout, which can now be fine-adjusted, instead of being on/off. You can try changing it, by going to Settings -> Keypad -> ABC Mode (at the bottom), then, from the dropdown, try selecting the maximum or the minimum values. I really doubt it will change anything, but there is no harm in trying.
I have the feeling the entire application became corrupted somehow. If it is the case, I cannot think of any other solution, but uninstalling and reinstalling. If you have any custom words that you would like to preserve, export them and upload them here. I'll include them in the mainline dictionaries in the next version.
I have tried upgrading back from v28.0, but I am unable to reproduce it on my side, so I am out of ideas, unfortunately.

OK then, maybe the installation didn't go properly. Please try this APK. The version is 30.62, but don't mind the number, it is just something different than 30.0. After installing it, please verify it has installed properly, by going to TT9 Settings and scrolling to the bottom, where you can see the version number

I have the feeling the entire application became corrupted somehow. If it is the case, I cannot think of any other solution, but uninstalling and reinstalling.

I could not install the new version so i ended up removing the old one in order to be able to install 30.62.
After removing 30.0, 30.62 installed ok!
Now, in the new version, the "choose keyboard" popup does not appear but i can't type "X"! Ii can't pass beyond "W", the first letter. This happens for any other numbered key.
So, this is not the solution, i'm afraid...

If you have any custom words that you would like to preserve, export them and upload them here. I'll include them in the mainline dictionaries in the next version.

no point in saving them, there is no import feature and they definitely do not belong in the dictionary!!!
I'm going to have to add them manually all over again...

Ok... here is an update of what I've found.
I've removed and installed this a few times and tried different approaches!
I don't exactly know what I did but now I on longer get the choose keyboard popup!
Now I can't get the any other letter beside the first on AB mode and I can't get into settings or add words
however if I go to settings (from the desktop icon) - languages - exclude words
i am able to add words and also use the settings button!
Double-tap a numbered key asks to add word!!!
This only happens on keyboard settings!!!
 I suppose this is local problem...

Here's a clue:
I've reset all shortcuts, set them all to null/-- and then change "next suggestion" to something not null (e.g. Call)
and now I can access any letter on Abc mode!
I still didn't find a workaround to add new words or access settings from the keyboard button...

 I suppose this is local problem...

I really hope so. It is quite serious indeed.

however if I go to settings (from the desktop icon) - languages - exclude words
i am able to add words and also use the settings button!
Double-tap a numbered key asks to add word!!!
This only happens on keyboard settings!!!

So... you are saying the bug has different manifestations in different apps? Are you always testing in the same app? Is the same in some common apps, where I can also test, like YouTube, Chrome, SMS?

after I remove the keyboard, how can I be sure nothing was left behind??? Some settings or something???

By definition, Android keeps all the files of a given app in a single folder. When you uninstall it, it just deletes that folder and everything is gone. I haven't done anything funky, so Traditional T9 should leave no traces after uninstalling.

I now suspect on something from the shortcuts...

I still suspect touch events are detected incorrectly. I would like to rule out this option first.
I have built two new APKs for you to test: v30.3 with R8 and v30.3 without R8. Please try the R8 one first and make sure the hotkeys are reset to default.
If both APKs work, it means the touch events were not handled correctly. If only the one without R8 optimization works, then the R8 optimizer is optimizing the code a bit too much, causing it to run incorrectly on your device. If both APKs do not work, I'll review the hotkeys and the ABC mode code again.

I have built two new APKs for you to test: v30.3 with R8 and v30.3 without R8. Please try the R8 one first and make sure the hotkeys are reset to default.

OK... neither worked... :(
It behaves differently inside the TT9 configs vs any other app (firefox, unote, qksms, f-droid, etc).

Ok!
Got it working!

I think you better keep this info somewhere as it might affect other models (at least the ones from Xiaomi)
Adding words and accessing configs from the keyboard:
this is fixed by granting permissions to storage and, well, all other permissions available in the Android's app info page (os settings - applications - manage applications - tt9)
this was lost when I removed the app and I didn't remember about setting them again
now, accessing the second, third and fourth letter on the keypad:
the only solution I've found was to set the "Next Suggestion" shortcut to something else than null!
I tested this on v30.0 (the one released officially)

now, accessing the second, third and fourth letter on the keypad:
the only solution I've found was to set the "Next Suggestion" shortcut to something else than null!

I think I got it too, setting "Next Suggestion" to NULL is the key. Would you please uninstall again, then install and test v30.8? And please, do not change any permissions the first time you test. I would like to confirm they do affect the hotkeys indeed.

oh, and sorry for all the spam here! I shared info as I was finding it hoping it could, somehow, help you...

This is not spam, this is help. See, I do my best, but I'll never be as effective as an experienced QA, who just knows how to break everything while testing. And I can't afford to hire one. This is why I occasionally miss such very very specific scenarios that lead to weird bugs.

I think I got it too, setting "Next Suggestion" to NULL is the key. Would you please uninstall again, then install and test v30.8?

OK, so, now the second letters on the keypad all work as expected (without having to change anything on the "Next Suggestion" shortcut)

And please, do not change any permissions the first time you test. I would like to confirm they do affect the hotkeys indeed.

About this: it didn't work so i had to set the permissions again.
This time, however, i tested it a bit more! The problem is in the "Show Pop-up windows when running in the background". we have to allow it... If this is set it works ok.

I assume you are talking about this. It seems to be a Xiaomi-specific. I don't have it on any of my phones and I have no idea what it does exactly. I didn't even know Xiaomi added so many extra permissions.
Do the keys work properly if you enable only that, but disable the file/multimedia permission? The file permission is only required for saving the dictionary export, but shouldn't affect key press processing. I will certainly update the manual, but I want to make sure to put the correct instructions there. That's the reason I am asking. Also, besides, the "Display pop-up when running in the background", I suppose "Show on lock screen" and "Display pop-up window" are mandatory too, right?
Finally, thank you for the persistence and for helping with this strange problem. I would have never figured it out myself. At least not without a Xiaomi phone.

I assume you are talking about this. It seems to be a Xiaomi-specific. I don't have it on any of my phones and I have no idea what it does exactly. I didn't even know Xiaomi added so many extra permissions.

Yes, that's the option! They added a bunch of "extra" things to the standard android (some good, some ... well... not so good). They added so many, that they now ship their own android version named HyperOS (pretty much like Huawei did with HarmonyOS but to a lesser degree...)

Do the keys work properly if you enable only that, but disable the file/multimedia permission?

Yes, i've been working with the storage permission (file/multimedia) disabled and i don't have any problems so far.
It's works fine this way.
It's only when i try to export the added words, that it asks me for granting permission to access storage!

Also, besides, the "Display pop-up when running in the background", I suppose "Show on lock screen" and "Display pop-up window" are mandatory too, right?

I don't have a "Display pop-up window", but i do have something called Permanent notification (to show permanent notifications), which i assume maybe the same thing. I tried disabling this one (which was on by default!), but tt9 kept working normally... it may affect it in some place i didn't test, however... but in my test i found no problem in blocking it.
"Show on lock screen" is not mandatory. It seems to work fine with it blocked.
I have my lock screen blocked with a pattern, but i tried it with a pin and with a word to see if tt9 was used.
Turns out that - at least in my model - it uses it's own keyboard for the lock screen (ignoring what is set for use inside android itself)
So, all in all, all i needed to change "manually" was to allow "Display pop-up when running in the background" in order to get it working.

Finally, thank you for the persistence and for helping with this strange problem.

No problem at all!!! Glad i can help :). If there is anything else you need me to test, just say so!
oh, and it is me that need to thank you for your work :)!!!

Yes, i've been working with the storage permission (file/multimedia) disabled and i don't have any problems so far.
It's works fine this way.
It's only when i try to export the added words, that it asks me for granting permission to access storage!

This is how I meant it to be. All good on this side.

I don't have a "Display pop-up window", but i do have something called Permanent notification (to show permanent notifications), which i assume maybe the same thing. I tried disabling this one (which was on by default!), but tt9 kept working normally... it may affect it in some place i didn't test, however... but in my test i found no problem in blocking it.

Great... they have different permissions in the different versions...
Dictionary loading progress is displayed as a permanent notification. Just in case, I'll add this one to the manual as well. Thanks for pointing out this permission too.

"Show on lock screen" is not mandatory. It seems to work fine with it blocked.
I have my lock screen blocked with a pattern, but i tried it with a pin and with a word to see if tt9 was used.
Turns out that - at least in my model - it uses it's own keyboard for the lock screen (ignoring what is set for use inside android itself)

Yes, but there were reports TT9 gets activated on the lock screen on SH-01J and some unknown Kyocera model. It might be the case for some Xiaomi model. I am not taking any chances!

So, all in all, all i needed to change "manually" was to allow "Display pop-up when running in the background" in order to get it working.
...
Glad i can help :). If there is anything else you need me to test, just say so!

I think we are all good now. Keep using the beta APK I've sent to you. You will be able to upgrade to v31.0 normally, when it comes out. If you are planning to install from F-droid, well, you will have to uninstall though.
On my side, the code is now fine, so I'll just add a section about Xiaomi in the manual.  The file permission, TT9 will ask when it needs it. And the rest from the screenshot, I'll pick the ones that look important and will note it is recommended to enable them just in case. You never know. Does it sound good?

Does it sound good?

Yes, it's sounds good!
I think we hammered all the needed nails on this :)

I was about to open a bug... but this is such a tiny insignificat detail that I'll just leave it right here:
on Settings - Keyboard - Predictive mode
you're missing an "L" (it's "Letras")

It's OK to open new bugs for things like this, no worries. It's a silly copy-pasting mistake, I'll fix it in the next release.
By the way, if you spot any other spelling mistakes or translations that are completely wrong, feel free to suggest more improvements. This is the file. You can directly edit it on Github and open a pull request.
I don't speak Portuguese, so I translate everything with Google and use my knowledge in French to adjust the sentences a bit, but as you can imagine this is suboptimal.


Test Case -> after moving from Overview tab's "Test Run screen" to other tabs, I can't return to "Test Run screen" by clicking on Overview tab.

After moving from Overview tab's "Test Run screen" to other tabs, I can't return to "Test Run screen" by clicking on Overview tab.
Steps to reproduce:

Find any Test Case that have at least 1 Test Run and go to this Test Case page.
Click on Test Run https://prnt.sc/s6smo9
Note that you are on Test Run screen https://prnt.sc/s6snoo
Click on Test Steps or Flow tabs https://prnt.sc/s6smy6
From Test Steps click on Overview https://prnt.sc/s6sn5s

Actual Result: I see the list of Test Runs https://prnt.sc/s6sng0
Expected Result: I see Test Run https://prnt.sc/s6snoo as I didn't close it by clicking on <Run https://prnt.sc/s6stez

@eudisley @brunosmm
Hey guys, sorry for getting back to it one more time -> we found a similar UI even in github that I would like to describe.
It is here, in issues of GH https://github.com/gsmainclusivetechlab/interop-test-platform/issues and it behaves exactly the same way as Test Run list/single page. So, the steps are next:

Go to issues list. (it is like a Test Runs list)
Click on any isssue and see its page. (it's like a Test Run single page)
Go click on 'Pull requests' or any other tab. (it's like clicking on Flow or other tabs)
From 'Pull requests' click 'Issues' and you will see the list of Issues instead of the issue I came from. (it's like now we are getting back to Test Run list instead of Test Run single page)

I'm just trying to describe that it is a common tab behavior and adding the unusual behavior also adds a bit of complexity. Maybe a miss of ability to reach a single Test Run from other tabs is rather UX/UI problem so, it can be reviewed a bit...
We can dig into vue controllers to implement the described behavior, but not sure it can be done within this sprint...

Looking in the JC staging version I think everything looks ok to me. The problem we had before was not about the tabs but about the arrow ( < ) we have in a test next to Run ID. Previously it was not going back to the test list, if I am not wrong. Thus, in my point of view it is good how it is working now.

So means no changes need, we can close this.


Add support for size class-specific template properties

This would be analogous to CSS media queries. It would help simplify development in situations where an application doesn't require size class-specific layouts but would benefit from size class-specific styles.
Property files could be specified using a similar naming convention to size class-specific markup documents; for example, Styles~horizontal.json. Size class-specific styles could augment (i.e. extend or override) size class-independent styles defined in a base document; e.g. Styles.json.

Closing. This enhancement is based on a hypothetical use case. May re-open later if an actual use case is found.

Alternatively, size class-specific styles could be specified using some sort of inline naming convention. This would keep related style information together, rather than spreading it out across multiple files.

Note that properties would not be applied automatically on size class changes. The application would be responsible for calling viewWithName:owner:root: as needed to re-apply the properties.

In order to support this, the logic for determining size class would need to be centralized so it could be called by viewWithName:owner:root: as well as when handling the properties PI. Also, a loadProperties: method would need to be defined so it could be called by parser:foundProcessingInstructionWithTarget:data: (once for the named template, and again for ~.json).

Closing. The fact that properties would not be applied automatically could be confusing, and the changes to LMViewBuilder would be non-trivial. May revisit in the future if needed.

This is done.


moves react and it's packages to peer deps and update build to use rollup instead of webpack

First and foremost I'm really sorry for such a verbose PR.
This solves #55 by moving react, react-dom and prop-types to peer dependencies, avoiding conflicts with the versions of this packages installed by the dev.
And it solves #54 as well, by replacing webpack with rollup which is more suited for libraries than it's contender.
Hope you enjoy my effort... Your package is a life saver for me.
Thank you very much : )

Our project's upgrade to React 16 has been blocked a bit due to react-currency-input having this issue, I believe. Would love to see this merged in!

+1

+1

Thanks, mate!

+1


issue with mypy

Description

On current master, mypy throws errors for me but not for @giovp
I have:

cloned squidpy
installed pre-commit pre-commit clean; pre-commit install
changed docstring of a file
done git commit which results in the error

Is there an issue with my environment?
Minimal reproducible example

...

Traceback

mypy.....................................................................Failed
- hook id: mypy
- exit code: 1

squidpy/gr/_utils.py:86:16: error: Item "ndarray" of "Union[ndarray, Any]" has no attribute "tocsc"  [union-attr]
squidpy/gr/_ppatterns.py:284: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:285: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:286: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:287: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:288: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:662: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:663: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:708:17: error: Incompatible types in assignment (expression has type "ndarray", variable has type "List[ndarray]")  [assignment]
squidpy/gr/_ligrec.py:710:31: error: Subclass of "List[ndarray]" and "ndarray" cannot exist: would have incompatible method signatures  [unreachable]
squidpy/gr/_ligrec.py:712:9: error: Statement is unreachable  [unreachable]
squidpy/gr/_ligrec.py:746: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:747: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:748: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:749: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:750: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:751: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:752: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:817:21: error: Incompatible types in assignment (expression has type "None", variable has type "ndarray")  [assignment]
squidpy/gr/_build.py:186:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/gr/_build.py:186:12: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "multiply"  [union-attr]
squidpy/pl/_utils.py:205:15: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "A"  [union-attr]
squidpy/pl/_utils.py:212:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/pl/_utils.py:239:19: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "toarray"  [union-attr]
squidpy/pl/_utils.py:562: error: Function "numpy.array" is not valid as a type  [valid-type]
squidpy/pl/_utils.py:562: note: Perhaps you need "Callable[...]" or a callback protocol?
squidpy/pl/_utils.py:572:28: error: np.array? has no attribute "T"  [attr-defined]
squidpy/im/_utils.py:17:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_feature_mixin.py:342:13: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_feature_mixin.py:370:56: error: Incompatible types in assignment (expression has type "ndarray", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:374:56: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:375:55: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:387:63: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:388:62: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_container.py:833:19: error: Incompatible types in assignment (expression has type "ImageContainer", variable has type "ndarray")  [assignment]
squidpy/im/_container.py:834:13: error: "memoryview" has no attribute "attrs"  [attr-defined]
squidpy/im/_container.py:836:20: error: Incompatible return value type (got "ndarray", expected "Optional[ImageContainer]")  [return-value]
squidpy/im/_container.py:836: error: unused 'type: ignore' comment
squidpy/im/_segment.py:146:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_segment.py:166:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/pl/_interactive/_controller.py:192:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
Found 40 errors in 10 files (checked 1 source file)

Version

...

I have mypy version 0.790 (mypy --version) and have tested 0.8, running pre-commit run --all-files works.
I am using Python 3.8.5. The errors of type:
squidpy/gr/_ppatterns.py:284: error: "ndarray" expects no type arguments, but 1 given  [type-arg]

come from data-science-types, but we use from __future__ import annotations at the top, so there should be no problem.
I'd try a creatinga fresh new env.

I have mypy version 0.790 (mypy --version) and have tested 0.8, running pre-commit run --all-files works.
I am using Python 3.8.5. The errors of type:
squidpy/gr/_ppatterns.py:284: error: "ndarray" expects no type arguments, but 1 given  [type-arg]

come from data-science-types, but we use from __future__ import annotations at the top, so there should be no problem.
I'd try a creatinga fresh new env.

With fresh env you mean a new python virtualenv / conda where I install squidpy in? I've already deleted .tox several times and re-installed squidpy. Will try with a new environment.

With fresh env you mean a new python virtualenv / conda where I install squidpy in? I've already deleted .tox several times and re-installed squidpy. Will try with a new environment.

Yes, new python env.

Just noticed that I don't have mypy installed - I thought that this would be installed with tox?

No this is handled by pre-commit. You could also try cleaning the cache (mine is located in ~/.cache/pre-commit/).

Hm, still no luck. With a completely new Conda (with python 3.8), and only squidpy installed (pip install -e'.[dev,test]'), I get the same error

> tox -e lint
lint create: /Users/hannah.spitzer/projects/spatial_scanpy/squidpy/.tox/lint
lint installdeps: pre-commit>=2.9.3
lint installed: appdirs==1.4.4,cfgv==3.2.0,distlib==0.3.1,filelock==3.0.12,identify==1.5.13,nodeenv==1.5.0,pre-commit==2.10.1,PyYAML==5.4.1,six==1.15.0,toml==0.10.2,virtualenv==20.4.2
lint run-test-pre: PYTHONHASHSEED='610168850'
lint run-test: commands[0] | pre-commit run --all-files --show-diff-on-failure
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:numpy>=1.15.0,pandas,scipy>=1.5.0.
[INFO] Initializing environment for https://github.com/psf/black.
[INFO] Initializing environment for https://github.com/psf/black:toml.
[INFO] Initializing environment for https://github.com/timothycrosley/isort.
[INFO] Initializing environment for https://github.com/timothycrosley/isort:toml.
[INFO] Initializing environment for https://github.com/asottile/yesqa.
[INFO] Initializing environment for https://github.com/asottile/yesqa:flake8-blind-except,flake8-bugbear,flake8-builtins,flake8-comprehensions,flake8-docstrings,flake8-logging-format,flake8-mock,flake8-pytest-style,flake8-rst-docstrings,flake8-string-format,flake8-tidy-imports.
[INFO] Initializing environment for https://github.com/macisamuele/language-formatters-pre-commit-hooks.
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Initializing environment for https://github.com/myint/autoflake.
[INFO] Initializing environment for https://gitlab.com/pycqa/flake8.
[INFO] Initializing environment for https://gitlab.com/pycqa/flake8:flake8-blind-except,flake8-bugbear,flake8-builtins,flake8-comprehensions,flake8-docstrings,flake8-logging-format,flake8-mock,flake8-pytest-style,flake8-rst-docstrings,flake8-string-format,flake8-tidy-imports.
[INFO] Initializing environment for https://github.com/jumanjihouse/pre-commit-hooks.
[INFO] Initializing environment for https://github.com/myint/rstcheck.
[INFO] Initializing environment for https://github.com/asottile/blacken-docs.
[INFO] Initializing environment for https://github.com/asottile/blacken-docs:black==20.8b1.
[INFO] Initializing environment for https://github.com/asottile/pyupgrade.
[INFO] Initializing environment for https://github.com/pre-commit/pygrep-hooks.
[INFO] Initializing environment for https://github.com/PyCQA/doc8.
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/psf/black.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/timothycrosley/isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/asottile/yesqa.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/macisamuele/language-formatters-pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/myint/autoflake.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://gitlab.com/pycqa/flake8.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/myint/rstcheck.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/asottile/blacken-docs.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/asottile/pyupgrade.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/PyCQA/doc8.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
mypy.....................................................................Failed
- hook id: mypy
- exit code: 1
squidpy/gr/_utils.py:86:16: error: Item "ndarray" of "Union[ndarray, Any]" has no attribute "tocsc"  [union-attr]
squidpy/pl/_utils.py:205:15: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "A"  [union-attr]
squidpy/pl/_utils.py:212:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/pl/_utils.py:239:19: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "toarray"  [union-attr]
squidpy/pl/_utils.py:562: error: Function "numpy.array" is not valid as a type  [valid-type]
squidpy/pl/_utils.py:562: note: Perhaps you need "Callable[...]" or a callback protocol?
squidpy/pl/_utils.py:572:28: error: np.array? has no attribute "T"  [attr-defined]
squidpy/gr/_ppatterns.py:284: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:285: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:286: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:287: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ppatterns.py:288: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_build.py:186:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/gr/_build.py:186:12: error: Item "ndarray" of "Union[Any, ndarray]" has no attribute "multiply"  [union-attr]
squidpy/gr/_ligrec.py:662: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:663: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:708:17: error: Incompatible types in assignment (expression has type "ndarray", variable has type "List[ndarray]")  [assignment]
squidpy/gr/_ligrec.py:710:31: error: Subclass of "List[ndarray]" and "ndarray" cannot exist: would have incompatible method signatures  [unreachable]
squidpy/gr/_ligrec.py:712:9: error: Statement is unreachable  [unreachable]
squidpy/gr/_ligrec.py:746: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:747: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:748: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:749: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:750: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:751: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:752: error: "ndarray" expects no type arguments, but 1 given  [type-arg]
squidpy/gr/_ligrec.py:817:21: error: Incompatible types in assignment (expression has type "None", variable has type "ndarray")  [assignment]
squidpy/im/_utils.py:17:5: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_feature_mixin.py:342:13: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_feature_mixin.py:370:56: error: Incompatible types in assignment (expression has type "ndarray", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:374:56: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:375:55: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:387:63: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_feature_mixin.py:388:62: error: Incompatible types in assignment (expression has type "number[Any]", target has type "int")  [assignment]
squidpy/im/_container.py:833:19: error: Incompatible types in assignment (expression has type "ImageContainer", variable has type "ndarray")  [assignment]
squidpy/im/_container.py:834:13: error: "memoryview" has no attribute "attrs"  [attr-defined]
squidpy/im/_container.py:836: error: unused 'type: ignore' comment
squidpy/im/_container.py:836:20: error: Incompatible return value type (got "ndarray", expected "Optional[ImageContainer]")  [return-value]
squidpy/im/_segment.py:146:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/im/_segment.py:166:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
squidpy/pl/_interactive/_controller.py:192:9: error: Returning Any from function declared to return "ndarray"  [no-any-return]
Found 40 errors in 10 files (checked 58 source files)
black....................................................................Passed
isort....................................................................Passed
Strip unnecessary # noqas..............................................Passed
Pretty format YAML.......................................................Passed
Detect Private Key.......................................................Passed
Check for merge conflicts................................................Passed
Check python ast.........................................................Passed
Check for broken symlinks............................(no files to check)Skipped
Check for added large files..............................................Passed
Check that executables have shebangs.....................................Passed
Fix python encoding pragma...............................................Passed
Fix End of Files.........................................................Passed
Mixed line ending........................................................Passed
Trim Trailing Whitespace.................................................Passed
Tests should end in _test.py.............................................Passed
Check for case conflicts.................................................Passed
Check docstring is first.................................................Passed
Check Yaml...............................................................Passed
Check Toml...............................................................Passed
Fix requirements.txt.....................................................Passed
autoflake................................................................Passed
flake8...................................................................Passed
Check executable files use .sh extension.................................Passed
rstcheck.................................................................Passed
blacken-docs.............................................................Passed
pyupgrade................................................................Passed
check for eval().........................................................Passed
type annotations not comments............................................Passed
check blanket noqa.......................................................Passed
rst code is two backticks............................................Passed
rst directives end with two colons.......................................Passed
rst inline code next to normal text..................................Passed
doc8.....................................................................Passed
ERROR: InvocationError for command /Users/hannah.spitzer/projects/spatial_scanpy/squidpy/.tox/lint/bin/pre-commit run --all-files --show-diff-on-failure (exited with code 1)

Ok, can confirm this happens on my PC as well (after removing pre-commit cache), not sure why though.

@hspitzer let me know if #276 fixed it for you (it should)

thanks, works perfectly now!


Any chance this could work with DnD5e 3.1.1?

I think the latest this module will work with is 2.4.9.  Any chance this will be upgraded?  Or the functionality rolled into DnD5e?  Or maybe there is another way around the problem of having an item, such as the Staff of the Magi with a zillion spells on it, but not being able to automatically do the hit and damage rolls?
Cheers
Matt

There aren't currently any plans for me to update this module to work with dnd5e v3.

Thanks Zhell, I have found magic items 2 which seems to do what I want, thank you!


CD Report changes

The x-axis for each epi curve needs to show the whole year (up to week 52) please

Have I understood you correctly? You want to include weeks from now until the end of the current year in every graph in the report?
...It just it seems very strange to take up a huge amount of report area/paper with empty chart space visualising uncollected/non-existant data.  This will remove visualisation fidelity, distract and appear incredibly messy I think. Perhaps I've not understood what your saying or more likely there are reasons that I am unaware of?
If this is what you want, can I clarify that we want the chart space to be empty for those weeks i.e. no line/data at all,  rather than data with a 0 value, which would presumably be considered misleading and wrong?

I agree with you. This is a request specifically from MOH. If you also don't think it will look good, let me go back and tell them. Let's leave it for now and hopefully they will agree with us.

I just think this would be very bad data visualisation, making it harder to comprehend what the data is saying. Not so fussed about what they think "looks good".  If they want it, I can just do it. But it seems very odd and going against everything I've been taught.


Bump Slint version to 1.2.0

I hope I changed all the correction locations... :)

LGMT! Thanks @tronical !!


autoreload support

Addresses #38
This is a hack implementation monkey patching IPython autoreload to make it work (partly) with plum.
Example: first create a module
echo "class A:
    sz = 1" >>ar.py

then run IPython
%load_ext autoreload
%autoreload 2

import plum
# load explicitly this monkey patching module
from plum import autoreload

import ar

@plum.dispatch
def test(a: ar.A):
	return 1

a = ar.A()

print(test(a))

now modify ar.py in any way, and run
print(test(a))

and it will work.
--
Implementation:
Autoreeload uses gc.get_referrers(class) to get all objects referring to a class, which includes all its instances, and updates their class using the function update_instance.
def _update_instances(old, new):
    refs = gc.get_referrers(old)
    for ref in refs:
        if type(ref) is old:
            ref.__class__ = new

To make this work with plum's custom types I needed to do 3 things:

Make gc.get_referrers(class) show up all plum.types.Type objects holding a reference to the given class. This was tricky: Type(class) holds a reference to class in a subfield _type constructed at __init__ time. But what actually python does is that it stores the field as a key in the dictionary of the instance Type(class).__dict__["_type"] = class, so get_referrers actually returns the dictionary and it's hard to tell that this dictionary belongs to Type.
Instead, by declaring the field a slot (which is an helpful performance enhancement anyway) the field is stored inline and get referrers actually return the Type instance. Unfortunately, while this trick works well for _type, this does not work for plum.types.Union types because they stored a tuple holding all classes, and therefore the gc would return that tuple.
Make update_instance update the plum types. This is achieved by brutally monkey patching the method.
Clear the cache. This is also done by pulling off the same trick using the gc. Note that this is probably inefficient but works...

To avoid monkey patching, we should ask IPython developers to provide us some hooks

This is really great! I've tested it out and it indeed fixes autoreloading for me locally. :)
For the union type, we could potentially subtype tuple and store the types with that?

For the union type, we could potentially subtype tuple and store the types with that?

Actually I just realised there's no need for that: Union types contain a tuple of Plum Types, and by updating the plum types everything's fixed.

This is really great! I've tested it out and it indeed fixes autoreloading for me locally. :)

Now the underlying question is how to turn this on?
Should we

require users to explicitly import from plum import autoreload or implement a magic like % autoreload_plum
should we automatically do this if an user imports plum After loading autoreload
should we do this always unlesss an ENV variable is specified
should we never do this unless an ENV variable is specified.

By checking the history of autoreload, it seems it has been quite stable and has not changed much over the years, but this is still monkey patching so... what do you think would be the best way to go?
Maybe @seeM and/or @gasparyanartur would be interested in commenting on this?
I would be naturally tempted to say "what this is doing is morally wrong and pirating" so we should hide this behind explicit user-action (from plum import autoreload) but as a library author, my users are not so-well-aware that we're using plum under the hood, so I would rather prefer to have it always be enabled by default, but I am unsure if that would be a great idea..

Very neat! That’s a tricky choice. I personally wouldn’t mind this being enabled by default unless an env variable is set.
I only use autoreload when developing, never when something is deployed or when running tests. Given the dynamic nature of Python, it’s not unusual that autoreload gets things into a weird state and I need to restart my kernel, so I wouldn’t mind if plum complicated it a little more.
That said, I’d personally try this out for a bit to test for stability and any weird behaviour before making it the default.
Keen to hear more peoples thoughts. I could ask in the fastai Discord as well.

As a disclaimer, I have only used iPython for course work, so I can only offer my layman perspective.
The situations is a bit of a dilemma. On the one hand, users of a library should ideally not be bothered by implementation details from another, but on the other hand, this could potentially introduce bugs and make it harder to maintain, since there is no guarantee that iPython's implementation will remain the same. If style is of concern, the Zen of Python seems to prefer explicit over implicit.
Personally, if I was to use a library, I would rather explicitly import something than have it potentially break existing functionality. However, as a compromise, I do like the idea of it being on by default but with a possibility to disable it with ENV-variables. But do take my perspective with a grain of salt, since I haven't used autoreload very much.

This is fantastic! Thanks @PhilipVinc for this!!
I think the two ways of activating it are very sensible choices. Merging this right away. :)

This is included in the latest release v1.6.


add feature_histogram() function

Hi!
I would like to propose this implementation for the chart.feature_histogram() function (addressing issue #339).
This implementation was manually and visually tested against the GEE JavaScript API example (see images below), Tooltips also work.
It was necessary to import the math library in order to implement the nextPowerOf2() function that is required for adjusting the value of maxBuckets and minBucketWidth in a similar way to what the GEE documentation says.
The start_bins and end_bins variables were added to make nicer midpoint offsets and make them as similar as possible to the Google Charts histogram output.
This function takes the same input arguments as the GEE JavaScript API equivalent... except for maxRaw. I have not found a way to incorporate an equivalent parameter with bqplot. So far, I have not found a case using maxRaw in the JS API function where the same histogram cannot be reproduced with this function in jupyter (without any maxRaw-like input). From the information available in the GEE documentation, I understand that maxRaw only affects the output when calculating a reducer value (but I might be wrong). So the current version of this proposal considers that maxRaw is not necessary for displaying the histogram in Jupyter.
I would like to know if this approach is adequate or if there are some other things that I should take care of, in order to be considered for merge.
These changes passed tox tests for python 3.5, 3.6, 3.7, 3.8.
micro-demo
maxBuckets = None, minBucketWidth = None
JavaScript

Python (this function)

maxBuckets = None, minBucketWidth = 0.5
JavaScript

Python (this function)

maxBuckets = 30, minBucketWidth = None
JavaScript

Python (this function)

maxBuckets = 30, minBucketWidth = 3
JavaScript

Python (this function)

Excellent work! Could you also add a notebook example (e.g., 79_chart_histogram.ipynb) and put it under https://github.com/giswqs/geemap/tree/master/examples/notebooks. That would be very helpful for geemap users.

Done :) Just added the notebook example.

@3r3n-n Looks great! Thank you very much for your time and efforts. Much appreciated.

The notebook example has been added to the website https://geemap.org/notebooks/79_chart_histogram


panResponder nativeEvent.locationX and nativeEvent.locationY values do not update on Android

We use GitHub Issues for
I am referencing #9786 but because of the unspecific title I worry the react-native team is not paying attention to this bug.
Description
in onPanResponderMove evt.nativeEvent.locationX and evt.nativeEvent.locationY do not update on Android. pageX and pageY do update on Android. @Arkanine 's suggestion to return true at the end of the panresponder does not fix this issue.
[FILL THIS OUT: Explain what you did, what you expected to happen, and what actually happens.]
Reproduction
Many people are having this issue and no feedback from the team, I am researching this further but not an Android wizard and haven't looked at the android end of the source for react-native too much.
Additional Information

React Native version: 0.38.1
Platform: Android only
Operating System: MacOS

Thanks for filing a new more specific issue. Can you see if this is reproducible on new versions of RN such as 0.41?
Also is it possible to get a code snippet, with an inline comment describing exactly what is not working?
Once we have these clarifications I'll do a quick sanity check and prioritize the issue with the core team.

@ericvicenti Yes I can confirm this also affects 0.41! This is really annoying since it performs differently on iOS and Android! On Android I have to use evt.nativeEvent.locationY + gestureState.dy to get the same results evt.nativeEvent.locationY gives me on iOS

Same thing observed with 0.41.2, static evt.nativeEvent.locationX - had been using some code to track the changing location of the first touch (from the touches array) - as gestureState.dx is influenced by additional touches. Works great on iOS but nothing on android.
On closer inspection, it appears that actually it is only the first touch which isn't updated. If there are two touches, for example, locationX is updated for the second touch.

I'm also using 0.41.2 and can confirm that locationX and locationY are NOT updated on Android (everything is fine on iOS). Our app has some drawing capabilities and we use locationX/Y to determine the position of the drawing within the view. On Android, when we log evt.nativeEvent.locationX (or locationY) inside the onPanResponderMove we see the same value that we get in the onPanResponderGrant when the drawing activity began and that value never changes as you draw. Interestingly, pageX and pageY are updated correctly. This is a major issue in our app at the moment.

A bit more context. (and this is also true to iOS)
react-native init dragDrop

On my end I have been using this as my reference for the index.ios.js file: https://github.com/crysfel/DragAndDrop/blob/master/app/Viewport.js
for the package.json
	"dependencies": {
		"react": "16.0.0-alpha.6",
		"react-native": "0.43.4"
	},
	"devDependencies": {
		"babel-jest": "19.0.0",
		"babel-preset-react-native": "1.9.1",
		"jest": "19.0.2",
		"react-test-renderer": "16.0.0-alpha.6"
	},
	"jest": {
		"preset": "react-native"
	}

you will notice that the following works as expected:
            onPanResponderMove: Animated.event([null,{
                dx  : this.state.pan.x,
                dy  : this.state.pan.y
            }]),

But in my case I need it to be written in a way for me to pass arguments which breaks the behavior if written like so:
      onPanResponderMove: (evt, gestureState) => {
        Animated.event([gestureState, {
          dx : this.state.pan.x,
          dy : this.state.pan.y
        }]);
      },

same for this version:
      onPanResponderMove: (evt, gestureState) => {
        return Animated.event([gestureState, {
          dx : this.state.pan.x,
          dy : this.state.pan.y
        }]);
      },

please note that if I am to console.log both the evt and or the gestureState, those gets logged as expected.
I am testing this on iOS only.
global packages
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
thank you for your help with this.

This was also reported early 2016 in #7221. I've started tinkering with a fix for this, but having some issues with the interaction with multiple overlapping views with gesture handlers, and I have limited time to spare at the moment.

@JonesN7 - found a solution:
in your state:
this.state = {
responderCount: 0,
multiple: [
  {panResponder: {}},
  {panResponder: {}},
]
}

and then I created a createPanResponders function that gets called on componentWillMount:
   const currentDeviceIndex = this.state.responderCount;

...
        onPanResponderMove: Animated.event([null, {
          dx: this.state.multiple[currentDeviceIndex].pan.x,
          dy: this.state.multiple[currentDeviceIndex].pan.y
        }]),

The issue is that you cant for loop through the array you have to call the createPanResponders and then update the responderCount based on the length of your array. And then pass a callback to the setState within the createPanResponders to initiate the next createPanResponders until you have gone through your entire array.
this.setState({...}, createPanResponders())

and finally:
                <Animated.View
                  {...this.state.multiple[index].panResponder.panHandlers}

where index is pulled from the multiple.map
I hope this helps.
Cheers.
J

@julesmoretti Thanks, but I was actually talking about a fix in the react-native source code. It has a lot of functions for selecting the correct view when determining position relative to the view (nativeEvent.locationX/Y) that I have not had time to read into and understand properly.

Hi there! This issue is being closed because it has been inactive for a while. Maybe the issue has been fixed in a recent release, or perhaps it is not affecting a lot of people. Either way, we're automatically closing issues after a period of inactivity. Please do not take it personally!
If you think this issue should definitely remain open, please let us know. The following information is helpful when it comes to determining if the issue should be re-opened:

Does the issue still reproduce on the latest release candidate? Post a comment with the version you tested.
If so, is there any information missing from the bug report? Post a comment with all the information required by the issue template.
Is there a pull request that addresses this issue? Post a comment with the PR number so we can follow up.

If you would like to work on a patch to fix the issue, contributions are very welcome! Read through the contribution guide, and feel free to hop into #react-native if you need help planning your contribution.

is there any update on the fix? julesmoretti could you elaborate how did you manage to fix it

The PR I submitted (#15123) is still in the "Import Started" phase. I hope it makes it into 0.48, but I haven't seen any activity on it in the past few days.

@michaelspeed - no idea as I dont dev for this project. :/


Support Wayland fractional scaling

Ferdi on Wayland with fractional scaling has blurred fonts (as with Chrome)
In Chrome the solution is to call the executable with the options -enable-features=UseOzonePlatform -ozone-platform=wayland
If I launch ferdi -enable-features=UseOzonePlatform -ozone-platform=wayland, I don't see ferdi's window

I will leave this electron PR here as reference: https://github.com/electron/electron/pull/26022
I can take a look at this issue, but might not be able to test this since I can't use Wayland through Ubuntu with my Nvidia graphics card.

@mfortini you forgot double dashes -- with the parameters.
Should be ferdi --enable-features=UseOzonePlatform --ozone-platform=wayland
At least in sway it renders correctly and running xlsclients confirms that ferdi is not running via X

@ghostface I launched ferdi with the correct command line in gnome (3.38) with wayland (1.19) and:

the window comes up without decorations (this could be due to this issue https://www.reddit.com/r/archlinux/comments/k85vao/the_good_the_bad_and_the_ugly_gnome_wayland/)
the window is blank, i.e. the chromium viewports are not rendered

@mfortini hmm the window decorations not rendering I understand is because of some gnome-wayland problem ok.
From what I read viewport rendering shouldn't be affected so that's strange, the only time I was able to reproduce the blank window issue was when launching with incorrect parameters but I am using sway so my results are not directly comparable

I will probably be able to debug this with Ubuntu 21.10 since Wayland with Nvidia is possible then.
Is this issue still relevant?

@mhatvan

yes, fonts are still blurry
@ghostface solution works, but it comes up without decorations, so it's unusable


video plays in debug mode, while doesn't play in apk release

Bug

Platform:

Android

Environment info
Package.json:
    "react": "18.1.0",
    "react-native": "0.70.6",
    "react-native-video": "^5.2.1"

Steps To Reproduce
<Video
        source={{ uri: 'http://niaip.xyz:24621/1ievztiwvx82582vf58whxt/uwNad6UpDK/320439'}}
        resizeMode={'contain'}
        style={{ flex: 1 }}
        volume={1}
        onError={(err) => {
          console.log('on error .........<><><> ', err)
        }}
        onBuffer={(data) => {
          console.log('On Buffering111111:--------->   ', data)
        }}
      />

video plays in debug mode, while doesn't play in apk release. The problem arise only with this type of uris  http://niaip.xyz:24621/1ievztiwvx82582vf58whxt/uwNad6UpDK/320439. while I have testes m3u8 works perfectly.

Can you detail the reported ?

This has something similar to my issue https://github.com/react-native-video/react-native-video/issues/2930
But I can't run m3u8 took from an API call, only by pass to the player directly the file.
I've seen you are using http, @freeboub suggested me to check this: https://github.com/react-native-video/react-native-video/blob/master/docs/DEBUGGING.md#http-playback-doesnt-work-or--black-screen-on-release-build-android
Maybe you can be more lucky.

@lonasozo Thanks, It works.

So let s close this issue, thank you!

why this issue closed android:usesCleartextTraffic="true" not working debug working release getting black screen still

same issue bro @PrudhviBanki


Create talk on documentation

Create talk on the topic of documentation

Get back to APIdays when it's done


nixos/gitea: revert change to RuntimeDirectoryMode

Description of changes
As this broke most unix socket setups and there is a far better suited server.UNIX_SOCKET_PERMISSION in gitea/forgejo itself.
https://docs.gitea.io/en-us/administration/config-cheat-sheet/#server-server
ref: a0311e51077f7f097278fb53c0388fee19a27ef5 (#208605)
closes #243340
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

As this broke most unix socket setups and there is a far better suited server.UNIX_SOCKET_PERMISSION in gitea/forgejo itself.

Can we also implement that and default it to at least 660?

If nginx is used, fix for the error is present here - https://github.com/NixOS/nixpkgs/pull/218020/files#diff-8fc27249c6db4db29555807acb61dd85c6118492c05b1696ff92183dd4266277R707-R709

ofborg test failure on x86_64-linux is unrelated.

Yeah, we should really add a release notes entry.

like #243340 ?

@RaitoBezarius @mweinelt @Janik-Haag just to be clear, you prefer this PR as solution, correct?
I just thought about this and I decided, that I don't have a strong opinion about which approach I prefer, but we should agree on a solution because we have to do something since upgrading and wondering why the reverse proxy can't talk to the socket anymore is rather unpleasant.

@RaitoBezarius @mweinelt @Janik-Haag just to be clear, you prefer this PR as solution, correct?
I just thought about this and I decided, that I don't have a strong opinion about which approach I prefer, but we should agree on a solution because we have to do something since upgrading and wondering why the reverse proxy can't talk to the socket anymore is rather unpleasant.

I am in favor of this solution, I just wish it was generalized, but we don't have the right abstraction to reason about the UNIX socket permissions and all that stuff.

I feel like we are almost all in favor of this revert.
I would like to get this merged soon.
Any final objections?
cc @Ma27

After having slept a few nights over this I also think that the partial revert is the correct way to go: even with documentation on our side this is easy to miss (and doesn't do what the upstream docs claim), so :+1:


Pin to dask-2024.5.1 for the rapids 24.06 release

This PR is a proposal to pin to dask-2024.5.1 for the rapids 24.06 release.
cc @pentschev @charlesbluca @quasiben @galipremsagar

/merge


ISPN-6138 Remove type parameter from QueryBuilder and QueryFactory

https://issues.jboss.org/browse/ISPN-6138
Beware! Introduces source-level incompatibilities. Not sure if should do this in 8.2. or 9.

Pushed it.


Adding SEO Component

Adding an SEO Component

On Usage in Pages part still.

Still debugging build step, may have to abandon SEO component if unable to resolve build error.

Closed by #10


Create Most Common Character Question

Create Most Common Character Question with @spwahaha

Done in #121. Thanks @xchenan and @spwahaha!


Segmentation fault after freeing a tree of deeply nested nodes

Godot version
v4.0.beta16.official.518b9e580
System information
Linux
Issue description
The following code creates a deep tree/linkedlist, and segfaults while trying to free it
func benchmark_deep_tree():
	var rt := Node.new()
	for i in 100_000:
		var n := Node.new()
		n.add_child(rt)
		rt = n
	rt.free() #Segmentation fault here

Steps to reproduce
Clone the below PR and run the allocator benchmark from the root directory via:
Godot_v4.0-beta16_linux.x86_64 --headless -- --run-benchmarks --include-benchmarks="gdscript/alloc/*"

Minimal reproduction project
godotengine/godot-benchmarks#24

Closing in light of what the fix would entail, see #72292 for details.


Add compatible header for v0.10

This PR is based upon #193. This PR provide users of the legacy (v0.10) intrinsics API compatible headers as a temporary workaround to transit to the newer version of compiler that supports the new (v0.11) intrinsic API.
Only non-overloaded intrinsics are covered here because macro definition does not allow the same token to be resolved differently according to the number of function parameters. An immediate example is shown below.
// v0.10
vadd(op1, op2, vl)
vadd(mask, maskedoff, op1, op2, vl)
// Maps to v0.11
__riscv_vadd(op1, op2, vl)
__riscv_vadd_tamu(mask, maskedoff, op1, op2, vl)

This is great to see!
If this is merged before LLVM 16.0.x is done, please add a link to this header in the Clang release notes that mention the move to v0.11 intrinsics (for this kind of release notes change, you can commit directly to the monorepo's 16.x branch).

@asb Added into the release note in https://github.com/llvm/llvm-project/commit/d0f4bebc40307399c4a498e055517f9594ac50af.


CLi clean up.

Its time to organize and shorten some of the commands inside the shell.
example:
nova = nova_mod.NovaBase()
becomes:
nova()
There isn't a real need to expose the class as we don't pass any arguments to the object as this is all configured in iridium's config file. The class instance will be created through a factory lookup.

solution found and problem resolved.
https://github.com/Toure/Iridium/commit/3701e4c4af2e3778b71e81a4d7aa47f95d5f3adf


consensys/quorum-ethsigner not found / login required

Something is wrong with the quorum-ethsigner image from dockerhub. The goquorum quick-start works fine.

*************************************
Quorum Dev Quickstart
*************************************
Start network
--------------------
Starting network...
[+] Building 0.0s (0/0)
[+] Running 1/9
 ⠙ rpcnode 3 layers [⠀⠀⠀]      0B/0B      Pulling                                                                                2.2s
   ⠼ dbf6a9befcde Pulling fs layer                                                                                0.4s
   ⠼ c2aea3e6b671 Pulling fs layer                                                                                0.4s
   ⠼ d1b0f7d91237 Pulling fs layer                                                                                0.4s
 ✘ ethsignerProxy Error                                                                                2.2s
 ⠙ validator3 Pulling                                                                                2.2s
 ⠙ validator4 Pulling                                                                                2.2s
 ⠙ validator2 Pulling                                                                                2.2s
 ⠙ validator1 Pulling                                                                                2.2s
Error response from daemon: pull access denied for consensys/quorum-ethsigner, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
*************************************
Quorum Dev Quickstart
*************************************
----------------------------------
List endpoints and services
----------------------------------
JSON-RPC HTTP service endpoint                 : http://localhost:8545
JSON-RPC WebSocket service endpoint            : ws://localhost:8546
Web block explorer address                     : http://localhost:25000/explorer/nodes

For more information on the endpoints and services, refer to README.md in the installation directory.

Hello @victor99z,
Thanks for raising this. Edit the docker image to consensys/quorum-ethsigner in your docker compose file and that should sort you out. This is fixed in #267 and version 0.1.5 of the quickstart
Cheers


How to integrate with logging

Could anyone please provide a code snippet showing how to integrate Halo with the logging module, that would be sleek!

Could you provide an example use case? Maybe common Formatter configuration for stdout in a CLI tool?

I made a logging program incorporation in doge_spin.py file. The log could both display on terminal and be saved on logfile.log.


[Feature]: add preset modes / fan modes to climate card

Is your feature request related to a problem?
Preset support to climate card can be awesome 🚀
Describe the solution you'd like
List of buttons like HVAC modes + current preset in state
Describe alternatives you've considered
Use more info dialog
Additional context
It can difficult to support custom presets.

I would like to ask if the climate card can adjust the fan speed for example low mid high auto

Is it possible to choose a sensor entity in the secondary information field? I use a seperate temperatur sensor in each room to read out the temperature but the temperature controll is on another unit.

Card will be adjusted with user feedbacks 🙂

Love the new climate card.
The only thing missing is the ability to control fan speed. Example bellow. Can this be added?

Anything new here?

need adjust fan speed

I'm also interested into this, at least to be able to show the preset mode will be very interesting, for instance in the secondary field, instead of the mode that can be shown in the icon

+1

as @Jan-Arild-Blekken it would be great if I can change status text from Heat - 22°C to just 22°C so use only custom attribute value or template value, as showing long text is cutting temperature from my mobile dense view and operation of "Heat" is sufficiently showed by color of icon

My temperature (heating only) is controlled by an external system, integrated into HA using MQTT and command topics. Being able to hit preset buttons directly from the temperature card would be way more convenient.

My temperature (heating only) is controlled by an external system, integrated into HA using MQTT and command topics. Being able to hit preset buttons directly from the temperature card would be way more convenient.

Same my heating uses presets to switch between schedule / manual override.
It would be great to bale able to set presets + show them as secondary info too

I would love a possibility to use presets with this card. I hope it is coming soon.

+1

+1 would love to be able to control fan speed through this card

+1 for fan mode support.
Fun fact, the screenshots on the official documentation page for "Features for dashboard cards" shows Mushroom card with fan mode support:
https://www.home-assistant.io/dashboards/features#climate-fan-modes

+1 for fan mode support.
Fun fact, the screenshots on the official documentation page for "Features for dashboard cards" shows Mushroom card with fan mode support:
https://www.home-assistant.io/dashboards/features#climate-fan-modes

I think you will find that they use the Tile card in the example (look at the screenshot at the top)

Alternatively...
type: tile
entity: climate.konditsioner_2
icon: mdi:fan
hide_state: true
name: Fan speed
features:

type: climate-fan-modes
style: icons
fan_modes:

'off'
low
medium
high

+1 would love a possibility to use presets with this card.


Fix sampleData

Overview
replaces sampleSummary data.frame per the specifications in #1651 and updates sampleMetrics$GroupLevel to "Site" to match formatting across package.
closes #1651
Test Notes/Sample Code

Notes:
PR #1657 should fix pipeline when merged in

@jwildfire One note/question about this update:
sampleResults and sampleBounds aren't based on the same data, so if you try to make a report like below the charts look off.
Report_KRI(
  lCharts = charts,
  dfResults = sampleResults,
  dfGroups = sampleGroups,
  dfMetrics = sampleMetrics,
  strOutpath = "~/test.html"
)

Originally, sampleBounds was intended to jive with sampleSummary since they are part of the analysis data pipeline and only represent a single KRI and snapshot. thinking about it more, it might make sense for sampleBounds to be based on the data used in sampleResults, since the reporting pipeline is more likely where sampleBounds will be used in examples, etc.

I'd rather have the working tests from #1657 before we review this. I suspect some things will break with this change (or, well, properly become failing tests because they were relying on a bad version of sampleSummary), and I want to be able to see what broke because of this/whether we missed any fixes here. In general (and I didn't follow this perfectly; I should have made a separate PR just for the fixes) I'd really like to try to keep all of the checks green so we can see if a new thing breaks something in a way we didn't expect!

tests are passing now

Gonna do an actual review of the code here now, but if we split this comment off into an issue or discussion, I think we can probably merge this after I do!

sampleBounds discussion moved to #1662. The rest of this looks good!


Create request throttle

Overzealous clients sometimes send a lot of traffic to Seiso, which causes CPU to max out. We need a request throttle (i.e. rate limiter). If there are too many requests in say a 5 minute window then we reject them til the next 5 minute window. The rate limiter should not preclude other policies as well (e.g. hourly or daily rate limits).

Just ran into an issue where the following occurred:

Eos created nodes in Seiso but somehow this resulted in corrupt data in Seiso, so Eos couldn't get the nodes back from Seiso.

Eos kept retrying the requests (no client side limiting).

Seiso kept erroring out, and generating log file entries.

We caught it before Seiso tipped over, but we need to get this throttle in place to avoid this in the future. Do HTTP 429 when the rate limit is exceeded.


feat: add calibration and popover functionality

user can click on the range slider body to change value
add popover slot so user can determine what text shows under the range slider

can be turned off with no-popover=true prop

add calibration so users can see the input values range.

includes calibration-count:Number prop
can be turned off with no-calibration=true prop

Should fix #25

Should fix #18

Thanks for your contribution, however I don't want to add extra feature for the native input:range element to vue-range-slider. I believe your use case can be achieved without modifying the internal of vue-range-slider.
Also your implementation of #18 is some problem that it always move the knob to mouse position even if the user click on the knob. It breaks current behavior (and not compatible with native one).
I just implement it with other strategy. https://github.com/ktsn/vue-range-slider/commit/74d24c5a8a5e8dd406ce17237e627ad71e0d54b3


Refactor 12 lines occurring 5 times in client.go

I've selected for refactoring 12 lines of code which are duplicated in 1 file(s) (1, 2, 3, 4, 5).  Addressing this will make our codebase more maintainable and improve Better Code Hub's Write Code Once guideline rating! 👍
Here's the gist of this guideline:

Definition 📖
Do not copy code.
Why❓
When code is copied, bugs need to be fixed in multiple places. This is both inefficient and a source of regression bugs.
How 🔧
Avoid duplication by never copy/pasting blocks of code and reduce duplication by extracting shared code, either to a new unit or introduce a superclass if the language permits.

You can find more info about this guideline in Building Maintainable Software. 📖

ℹ To know how many other refactoring candidates need addressing to get a guideline compliant, select some by clicking on the 🔲  next to them. The risk profile below the candidates signals (✅) when it's enough! 🏁

Good luck and happy coding! :shipit: :sparkles: :100:

will try to do

Why is the issue on openebs project and not jiva ?

Thanks @codegagan for picking up this issue. You can go ahead and let us know for any help.
We create the issues here to organise and manage the whole control and data plane from one place.

@codegagan, hey are you working on this? if not, can I proceed with this issue.

@m-nikhil I already have the PR for this.


not working with custom $interpolate tags

standart problem when using custom $interpolate symbols like [[ [%
i working on this ..

Hi,
Thank your pull request of custom $interpolate implementation. However, I may think about to remove all interpolations. Maybe ngBind should be a better soultion for templates. BIf you can implement to ngBind I can accept. But there is some other custom $interpolate problem inside the code. As I remember one is  https://github.com/quantumui/quantumui/blob/master/src/services/helpers.js fn.parseConstant function.

I will accept the changes not in templates.


Upgrade k8s api to mitigate CVE-2023-44487

What does this PR do?:

Upgrades k8s API versions to mitigate CVE-2023-44487
sigs.k8s.io/yaml has no new releases
sigs.k8s.io/controller-runtime v0.14.4 is left untouched because as of drafting this PR, they have not released yet. But they're updating the 0.14. branch and are undecided on what to do about release, refer to Slack thread and thanks to @kim-tsao for finding this out.

Which issue(s)/story(ies) does this PR fixes:

Restricted DEVHAS-540
PR acceptance criteria:

[ ] Unit/Functional tests

[ ] Documentation

[x] Client Impact TBD

How to test changes / Special notes to the reviewer:
Consume gitops generator branch in HAS as local module and make sure everything is fine.

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

Comparison is base (030285c) 87.76% compared to head (fcfbd5f) 87.76%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #51   +/-   ##
=======================================
  Coverage   87.76%   87.76%
=======================================
  Files           7        7
  Lines        1046     1046
=======================================
  Hits          918      918
  Misses        109      109
  Partials       19       19

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

Currently testing out this branch with local application-service. I will post any module dependencies that need to be updated on HAS over here.


Provide an option to bypass the solver layer

Describe the problem that the feature should address
A common use case is to interpolate the gains without doing any actual calibration (as is required for transferring gain solutions from the calibrator to the the target for example). In the current implementation, QuartiCal will still run through the entire data even if solver.iter_recipe contains all zeros. The initial interpolation is actually quite fast but the subsequent pass through the data can take almost as long as calibrating the data in the first place.
Describe the solution you'd like
An option to bypass the solver layer would be useful here. In other words, if solver.iter_recipe is all zeros QuartiCal should not load the data in the first place.
Describe alternatives you've considered
An alternative would be to have an explicit solver.bypass option because it may still be useful to see what happens to the chi2's when doing the interpolation. Another option would be to implement this as a separate interpolation/smoothing application

This is definitely something which I should add. I hadn't really considered the fact that having the solver code in the Dask graph results in the all the data being read, even if no computation is done. There are occasions when this may be useful i.e. if we want to form residuals/corrected data using the interpolated solutions. However, if the only output is the solutions themselves, we should definitely short circuit the remainder of the calibration code (as the interpolation is actually done in a completely separate compute call). This may even be as simple as putting in a check which confirms that ouptut.products is empty and solver.iter_recipe is entirely zero.


for OPECV4.X

Description
support OPENCV4 for Jetson Nano
Checklist
Essentials
Changes
src/io/image_aug_default.cc
src/io/image_det_aug_default.cc
src/io/image_io.cc
Comments
spport Jetson Nano, OpenCV 4.X

Thanks for your reply.
I am recalling what I had done. I followed the procudres on web.
May be I built mxnet on v1.4.1, and the macro not been defined.
Thanks a lot.


api-mediation spring boot onboarding sample page has typo

One of the links is http://https://gizaartifactory.jfrog.io/gizaartifactory/libs-release
I think it should just be http, or https

The typo is fixed. See the PR above.


Suggestion: Allow us to change trade notification sound

I personally cant stand the default bass pulse notification sound as its not that noticeable over other audio. Please let us change it to a sound file of our choice

+1 to this. I missed quite some trade requests because I was playing and the sound of the game where drowning the sound of the trade request.
If not "choosing one" at least provide some alternative or just one that is high pitched.

+1 i suggest this one https://youtu.be/CPNEj9-XvaM

1.0.8 (2020-07-09)

added a audio button at the trade settings to customize the notification sound (#786)

Thanks for creating an issue! The sound can now be customized at the settings.

🤙
Make it a great day!
George Nicholson
951.269.3292

From: Nicklas<EMAIL_ADDRESS>Sent: Thursday, July 9, 2020 10:17:13 AM
To: Kyusung4698/PoE-Overlay<EMAIL_ADDRESS>Cc: windjammer32<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [Kyusung4698/PoE-Overlay] Suggestion: Allow us to change trade notification sound (#786)
1.0.8 (2020-07-09)

added a audio button at the trade settings to customize the notification sound (#786https://github.com/Kyusung4698/PoE-Overlay/issues/786)

Thanks for creating an issue! The sound can now be customized at the settings.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/Kyusung4698/PoE-Overlay/issues/786#issuecomment-656249867, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMBMNY5WEKLYRROP74GDQGLR2X3RTANCNFSM4OOCYD4Q.


Error @opening after copying pyasdf-archive

Hi there, hi Lion,
I have an issue opening an asdf-archive with pyasdf. It works perfectly on one system/server. But after copying it to another I obtain the error message below. Has this to do with an erroneous copying, permission or with differences in the installation of pyasdf? I am afraid I do not understand the error message regarding "missing locks" and would appreciate your educated guess on my mistake and your help.
Some more general details on my procedure:

I am quite certain, that I use similar installations of pyasdf and obspy on both linux systems. Both installed via miniforge3.
I create the pyasdf archive on one system by adding mseeds.
I can open and work with the archive there.
Then I copied the archive to another server to share it with collaborators. But I cannot open it there anymore.

Looking forward to hearing from you.
With best regards, Christopher
Error message at attempting to load asdf dataset

In [2]: ds = pyasdf.ASDFDataSet('cube_waveforms.h5')
OSError                                   Traceback (most recent call last)
 in
----> 1 ds = pyasdf.ASDFDataSet('cube_waveforms.h5')
~/miniforge3/envs/obspy/lib/python3.7/site-packages/pyasdf/asdf_data_set.py in init(self, filename, compression, shuffle, debug, mpi, mode, single_item_read_limit_in_mb, format_version)
205         # Open file or take an already open HDF5 file object.
206         if not self.mpi:
--> 207             self.__file = h5py.File(filename, mode=mode)
208         else:
209             self.__file = h5py.File(
~/miniforge3/envs/obspy/lib/python3.7/site-packages/h5py/_hl/files.py in init(self, name, mode, driver, libver, userblock_size, swmr, rdcc_nslots, rdcc_nbytes, rdcc_w0, track_order, fs_strategy, fs_persist, fs_threshold, **kwds)
445                                fapl, fcpl=make_fcpl(track_order=track_order, fs_strategy=fs_strategy,
446                                fs_persist=fs_persist, fs_threshold=fs_threshold),
--> 447                                swmr=swmr)
448
449             if isinstance(libver, tuple):
~/miniforge3/envs/obspy/lib/python3.7/site-packages/h5py/_hl/files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
209         # existing one (ACC_EXCL)
210         try:
--> 211             fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)
212         except FileNotFoundError:
213             fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl)
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/h5f.pyx in h5py.h5f.open()
OSError: [Errno 37] Unable to open file (unable to lock file, errno = 37, error message = 'No locks available')

Hi There, Hi Lion,
after some superficial research (this is not my field of expertise), I have the feeling, that the issue is likely due to some erroneous filesystem/mount or so on the destination server. I have contacted the responsible admins and would come back to you only if the issue prevails or the admins come back with questions.
Thanks for listening. Best, Christopher

Hi Christopher,
yes this is likely due to the filesystem. There might be a few workarounds here: https://github.com/h5py/h5py/issues/1101
You can also try to open in read only mode with pyasdf.ASDFDataSet(..., mode="r"). HDF5 is general somewhat reliant on the features of the underlying filesystem.


Resume training from a finished-training model will results in a new incorrect checkpoint

To verify a model if a model has finished training. I ran the training script again.
However, when I try to evaluate with the model, I got error that:
pytorch_lightning.utilities.exceptions.MisconfigurationException:
            you restored a checkpoint with current_epoch=11
            but the Trainer(max_epochs=10)

After digging a little bit, it seems that since the model has finished training, it will directly go to on_train_end, and save the model checkpoint with currect_epoch+1.
I am wondering if the design of saving checkpoints with "next epoch" is reasonable? Why not add the epoch number after resuming?

I moved +1 from https://github.com/PyTorchLightning/pytorch-lightning/blob/dec31b3e761115b0a938caf35649acd814f557c9/pytorch_lightning/trainer/connectors/checkpoint_connector.py#L254 to https://github.com/PyTorchLightning/pytorch-lightning/blob/dec31b3e761115b0a938caf35649acd814f557c9/pytorch_lightning/trainer/connectors/checkpoint_connector.py#L150

A simpler solution is adding an if before https://github.com/PyTorchLightning/pytorch-lightning/blob/b45b57cc587a11c3049fb5c605cf2d4b0689de2c/pytorch_lightning/trainer/trainer.py#L510

I add an if before https://github.com/PyTorchLightning/pytorch-lightning/blob/72f19768c828b734d8565ffef7b78fb9a57ba847/pytorch_lightning/trainer/training_loop.py#L178
         if self.trainer.current_epoch < self.trainer.max_epochs and not self.interrupted:
             self.check_checkpoint_callback(should_save=True, is_last=True)

duplicate https://github.com/PyTorchLightning/pytorch-lightning/issues/4176 ?
I think a simple solution would be to not do anything anything if current_epoch >= max_epoch

@rohitgr7 yes. It's the same.


Datetime2 with 0 precision.

Laravel Version: 5.5.44
PHP Version: 7.1
Database Driver & Version: SQL Server 2012

Description:
SQLServerGrammar typeDateTime should accept 0 precision in case we want to use datetime2 without milliseconds. Datetime2 with 0 precision is a valid value in Microsoft SQL.
Steps To Reproduce:
Schema::create('archives', function (Blueprint $table) {
$table->dateTime('presentment_date', 0);
});
//Result: datetime
Schema::create('archives', function (Blueprint $table) {
$table->dateTime('presentment_date', 1);
});
//Result: datetime2 with precision 1.

You can use a raw expression:
Schema::create('archives', function (Blueprint $table) {
    $table->dateTime('presentment_date', DB::raw(0));
});

This is not ideal, but a fix would require bigger changes.

As a temporary solution I created my own package that extends the SQLServerGrammer and overwrites all those methods so that precision 0 will create a datetime2(0).

DB::raw(0) works perfectly and is totally acceptable for me, and I recognize this is an edge case that would require major changes. Thanks @staudenmeir !


OP-450 Fixes separate configuration files for shared application context

All is well.

All is well.

All is well.


Can't find tslib

Hi,
Thanks for the great addon.
I'm trying to use it but I'm getting this error
Module not found: Error: storybook-addon-toolbar-actions tried to access tslib, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

duplicated


image not found or error

I have installed camo on nginx + node (v5.4.0) with a custom domain (https://camo.domain.com/).
It seems to work except when i try to load theses images:
https://camo.domain.com/my_key?url=http://www.howtoforge.com/images/linux_screen/2.png
I get the message: Not found
https://camo.domain.com/my_key/http://www.howtoforge.com/images/linux_screen/2.png
I get: this image cannot be display because it contains errors
I have check with several image.
I try to run it on heroku with the same result.
Is there something to do with the config parameters?

Check out the examples here, https://github.com/atmos/camo#examples on how ot encode your urls correctly.

Thank you atmos for your answer.
Actually, i need camo on node.js, into nodebb iframely plugin to begin.
As i understand, digest indicated for url format is differant from the camo_key.
So help with my_key (pwgen -sB 64), i just need to start camo:
screen -S camo sudo PORT=8081 CAMO_KEY="<my_key>" forever server.js
... And it will work with the plugin, won't it?

I to have the same img https://ibimgeu.herokuapp.com/2f8976dbb46b82f8c78643d994963c3aa01c0cea6d9101f94cebf137bfd0258f//www.seeklogo.net/wp-content/uploads/2015/09/new-google-favicon-logo.png/new-google-favicon-logo.png


support for dropping a file to insert its path

other terminals support dropping a file from a file manager onto the terminal to insert its path in quotes. this is very convenient when dealing with files that are more easily found through a file manager
it'd be nice if alacritty could support this as well

I personally use it a lot in the standard Mac Terminal, along with alt + arrows not working it makes alacritty quite a bit less usable for me.

I think this would actually be pretty easy to implement assuming this winit event is actually implemented for both X11 and macOS. winit::WindowEvent::DroppedFile(PathBuf) sounds like just what we would need.

Oh yeah that sounds quite convenient.

DroppedFile is implemented on Windows, macOS, and X11. In fact, implementing drag and drop on X11 was my very first contribution to winit. I can tell you that the path is pre-canonicalized on X11, though I haven't investigated the exact path format on other platforms; I just know that it works.
(In case you were wondering, HoveredFile and HoveredFileCancelled are only implemented on macOS and X11, though it doesn't seem like you have to worry about that.)

Thanks for filling in the details @francesca64!

@francesca64 I continue to be amazed by how much time you dedicate to winit. I don't know how you make the time to also follow and comment on winit issues in Alacritty. Thanks again for all your hard work!

@monouser7dig what do you use alt-arrows for? mind making another issue for that if its not configurable yet?

they jump by word left/ right, I believe there is an issue related to winit about it somewhere, there was something about non US keyboards but I actually can't use arrow properly on my US keyboard either.
something like this

MacOS is weird...

Implementation was super simple, hopefully this works on all platforms, testing is welcome!
PR: #1304

Interestingly enough, and perhaps related to #675 , I don't immediately see the contents pasted, i have to click on the alacritty window and thats when I guess it gets the event. I wonder if winit is bufferring that event until focus? Could also be related to https://github.com/jwilm/alacritty/commit/5be0e3ad8fcde5d8dec98c0e71a2b495294d03be ...

5be0e3a shouldn't have anything to do with this at all. But there's an easy way to figure out if it's buffering the event until focus, or if the window is just not redrawn. If you put a println!("aaontehu") in the event handling section (https://github.com/jwilm/alacritty/commit/57281363503ddd1ebb373ed5de2b84c79d5aa3aa#diff-3d7686001860aa382f8b9c18554cc138R343), you should see when the event is actually first received. So if it shows the event is received but doesn't show up in the terminal, I might need to set the dirty flag. @jedahan

Cool I will test this out tonight thanks for the quick response.