error

The issue text was copied to the clipboard.  Please paste it into this window.

Does this occur consistently?
Repro steps:

Action: Language Server Error
Error type: Error
Error Message: An error occurred in the ARM Template Language Server.
Cannot call write after a stream was destroyed
Version: 0.14.1
OS: linux
OS Release: 5.10.11-1.el8.elrepo.x86_64
Product: Visual Studio Code
Product Version: 1.53.1
Language: en

Call Stack
extension.bundle.js:239:56634
Object.callWithTelemetryAndErrorHandlingSync extension.bundle.js:16:139015
WrappedErrorHandler.error extension.bundle.js:239:56427
LanguageClient.handleConnectionError vscode-languageclient/client.js:2064:55
errorHandler vscode-languageclient/client.js:2020:18
vscode-languageclient/client.js:35:36
CallbackList.invoke vscode-jsonrpc/events.js:62:39
Emitter.fire vscode-jsonrpc/events.js:120:36
writeErrorHandler vscode-jsonrpc/main.js:235:22
CallbackList.invoke vscode-jsonrpc/events.js:62:39
Emitter.fire vscode-jsonrpc/events.js:120:36
StreamMessageWriter.fireError vscode-jsonrpc/messageWriter.js:33:27
Socket.<anonymous> vscode-jsonrpc/messageWriter.js:57:51
Socket.emit events.js:315:20
errorOrDestroy destroy.js:108:12
onwriteError _stream_writable.js:418:5
onwrite _stream_writable.js:445:5
doWrite _stream_writable.js:399:11
writeOrBuffer _stream_writable.js:387:5
Socket.Writable.write _stream_writable.js:318:11
StreamMessageWriter.write vscode-jsonrpc/messageWriter.js:71:27
vscode-jsonrpc/main.js:810:35
Object.sendRequest vscode-jsonrpc/main.js:800:26
Object.shutdown vscode-languageclient/client.js:45:36
vscode-languageclient/client.js:1946:31

@krolikowski80 is this a reoccurring issue? Are there any additional details that would help us repro this?

Also, if you could share the output from the Output tab when this happens, it would be helpful, thanks!


extended classic protocol

add support for the extended protocol. requires some changes in minecraft-classic-protocol http://wiki.vg/Classic_Protocol_Extension

see https://github.com/mhsjlw/minecraft-classic-protocol/issues/5

https://github.com/dazed-sheep/dazed-sheep/commit/244123a30a9ee31b00a6ca7890ad95c996da918b and https://github.com/mhsjlw/minecraft-classic-protocol-extension now all we need is to individually implement each feature


Alternative way to query Sheets

Not really an issue, but maybe something to add to the wiki. You can query Sheets using CSV(). I bring this up because I believe TABLETOP is going to stop working January because of changes to Googles API [1].
SELECT * FROM CSV('https://docs.google.com/spreadsheets/d/{ss_id}/gviz/tq?tqx=out:csv&gid={gid}',{headers:true})

Replace
{ss_id} with your spreadsheet ID (in URL for Sheet) and {gid} with the sheet ID (default is 0)
1 - https://github.com/jsoma/tabletop

ohhh - Nice!
Thank you for shsaring. Ill make sure to update the docs


RuleType Value Check against Define XML Variable: Domain for SUPP* datasets

Need clarification on where the Domain value is retrieved from, for both the main dataset and SUPP datasets, in particular for RuleType Value Check against Define XML Variable or any rule types against Define-XML.
Note: it appears to be a BUG.

Here is the Define-XML snippet:

@mhungria Can you confirm you receiving the validation result even though suppec.xpt is in the data folder and it is defined in the study define file?

@chowsanthony , this is a general question about the difference between a dataset name and its domain. Since I didn't keep the actual test conditions I used at the time for this question, I executed again with a different test conditions and I'm attaching here the corresponding Rule.4.zip file:
Rule (4).zip.

@SFJohnson24 , all: you may want to also look at https://github.com/cdisc-org/cdisc-rules-engine/issues/633


Allow HA Component to determine unique ID for device based on ESN

In order to get vizio devices into the HA Entity Registry, they need unique IDs. The safest way to do this is to use the ESN. The code has a fail safe to ensure that this change will not break devices that this new method has been untested on.

merging since there are no other active maintainers


Lazy Diagnostic storage allocation

Pull Request Description
close #10727

Changelog:

add: implement lazy allocation of DiagnosticStorage objects
update: compiler phases to make sure they don't allocate redundant DiagnosticStorage objects
update: cleanup DiagnosticStorage class

Important Notes
As a result, all 10MB of redundant DiagnosticStorage allocations are gone
Before

After

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] All code follows the
Scala,
Java,
TypeScript,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
[x] Unit tests have been written where possible.

@JaroslavTulach GitHub allows reviewer to dismiss their review


View/WebView with placeholder salt #62

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Tests pass?
✔

Fixed issues
#62

[x] test

Thanks!


ELBV2 - Relax create_rule validation to allow all fields

Fixes #2544
The tests are all validated against AWS itself

Codecov Report

Merging #3662 (0d61265) into master (00ccce0) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #3662      +/-   ##
==========================================
+ Coverage   94.90%   94.91%   +0.01%
==========================================
  Files         454      454
  Lines       49702    49878     +176
==========================================
+ Hits        47168    47344     +176
  Misses       2534     2534

Flag
Coverage Δ

servertests
55.59% <22.14%> (-0.12%)
:arrow_down:

unittests
94.79% <100.00%> (+0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

moto/elbv2/exceptions.py
87.95% <ø> (+0.61%)
:arrow_up:

moto/elbv2/models.py
90.08% <ø> (+0.74%)
:arrow_up:

moto/elbv2/responses.py
94.83% <ø> (ø)

moto/iam/aws_managed_policies.py
100.00% <ø> (ø)

moto/s3/models.py
95.72% <ø> (ø)

moto/settings.py
100.00% <ø> (ø)

moto/ssm/models.py
94.01% <ø> (ø)

moto/__init__.py
98.29% <100.00%> (ø)

moto/dynamodb2/models/__init__.py
94.80% <100.00%> (+0.54%)
:arrow_up:

moto/dynamodb2/responses.py
97.95% <100.00%> (+0.19%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

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

Closing - it has been superceded by #4066


How can I filter these triples?

How can I filter these triples? Thank you.

Try this: https://philipperemy.github.io/information-extract/

Try this: https://philipperemy.github.io/information-extract/

thank you for your amazing work！can you provide a tutorial python notebook for this idea?

But this might interest you: https://github.com/philipperemy/information-extraction-with-dominating-rules


[New API] : Joke API

Brief Description 🤓
A fun API that provides jokes in various categories and formats, useful for adding humor to projects or studying API integration.
How will you develop it?🤩
React
Deployment
None
Select the open source program you are contributing to
Other
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINES of this project.

Greetings @revanth1718🎀 ! , We are excited to have you dive into another issue with us!🚀
Your involvement in our project has been invaluable, and we're confident that your skills and insights will help us conquer this challenge😇.  Use command /gssoc24 to self assign the issue.  This issue represents an exciting opportunity for us to improve and enhance our project, and we are thrilled to have you on board.
We request you to follow CONTRIBUTING GUIDELINES.
Looking for your PR soon!
In case of any issues, you can contact us on Discord.❣

/gssoc24

Hey @revanth1718 ! I wanted to inform you that we have closed issue.Thank you for your understanding, and we look forward to your continued engagement with our repository🤗.
In case of any issues, you can contact us on Discord.
Thank you! ❣
Happy Coding! ✨
Will See you soon❣


Optional Fields are also being expected in response.

Description
Optional Fields are also being expected in response.
Steps to reproduce

Create a schema where keys are not required similar to this.

DeliverySummaryResult:
      type: object
      properties:
        delivery_event_level:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryEventLevelSchema'
        delivery_summary:
          $ref: '#/components/schemas/DeliverySummarySchema'

Server should respond with some empty response.

{}

This error is thrown

 Reason: Testing scenario "Webhook delivery summary. Response: Success"
        API: GET /service/partner/webhook/v1.0/organization/(organization_id:string)/extension/(extension_id:string)/report/delivery_summary -> 200

          >> RESPONSE.BODY.delivery_event_level

             Value mismatch: key delivery_event_level was missing

          >> RESPONSE.BODY.delivery_summary

             Value mismatch: key delivery_summary was missing

Expected behavior
Test case should pass.
System Information:

Specmatic version: 1.3.35(Node.js Wrapper).

@barath121 Thanks for reporting the issue. We are taking a look.

@harikrishnan83 Any update on this?

@barath121 Thanks for following up. This is fixed in release 2.0.7. Closing the issue for now. Please feel free to re-open if you have any questions on this.


Featuresupport array-match-any function

Proposed changes
Function to use:
select * from t where array_match_any(col_array, "xxx")
array_match_any means we can make array_match_any function in filter to make "xxx" match_any item in col_array
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


parse_generics_shim! fails to parse complex generic constraints

I have been working on adding generic constraints to the mopa crate and I've encountered a problem with your parse_generics_shim! macro.
This would work:
parse_generics_shim! {
        { .. },
        then $callback_name ! ( $($callback_args)* ),
        <X, F: Float, D: Deep<F> >
}

This would not work:
parse_generics_shim! {
        { .. },
        then $callback_name ! ( $($callback_args)* ),
        <X, F: Float, D: Deep<F>>
}

Notice the lack of a space at the end of generics. It seems to take the >> as a single tag, the bitshift operator.
@bjorn3 has done some great work on solving this issue, see this commit. I think this code should be in your macro instead of on the side of the user.

I have published a crate for splitting the >> token on crates.io: crates.io/crates/split_tokens

That would consume recursion levels equal to the number of input tokens.  That's really untenable given how complicated these macros are already.
In fact, the parser was already dealing with >> in constraints.  It just didn't have a rule to deal with >> terminating a constraint and a generic parameter list in the same token.


SAK-38305 - Switching Travis build Oracle JDK to OpenJDK

Looks like this gets the newest version
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre

Yup, build passes so this looks better.


changed date

Purpose of this pull request
This pull request...
Select the type of change

[ ] Minor Changes - Typos, formatting, slight revisions
[x] Update Content - Revisions, updating sections
[ ] New Content - New features, sections, pages, tutorials
[ ] Site and Tools - .clabot, version updates, maintenance, dependencies, new packages for the site (Docusaurus, Gatsby, React, etc.)

Ticket (if applicable)

thanks, @ruturajsumo ! Also, just granted you repo write access (invite sent to email).

thanks, @ruturajsumo ! Also, just granted you repo write access (invite sent to email).

thanks @kimsauce , can you please provide more on what I can to with this access

thanks @kimsauce , can you please provide more on what I can do with this access

@ruturajsumo sure thing! good question.
Write - Triage permissions plus read, clone and push to repositories.
Issue and Pull Request

Assign or remove a user
Add or remove a label
Remove an assigned user
Remove a label

Issue

Close an issue
Mark an issue as a duplicate
Reopen a closed issue
Set an issue type

Pull Request

Close a pull request
Reopen a closed pull request
Request a pull request review
Repository
Set milestones

Security

View code scanning alerts
Dismiss or reopen Dependabot alerts
View Dependabot alerts
Dismiss or reopen code scanning alerts

Discussions

Close a discussion
Convert issues to discussions
Create a discussion category
Delete a discussion
Delete a discussion comment
Edit category on a discussion
Edit a discussion category
Edit a discussion comment
Award and revoke discussion badges

Reopen a discussion

Mark or unmark discussion answers
Hide or unhide discussion comments


[2.5] Update oke kontainer engine driver v1.7.1

This PR is a 2.5 back-port of this one Update oke kontainer engine driver v1.7.1

Required by issue https://github.com/rancher/terraform-provider-rancher2/pull/708


Feature request: Method to get current webserver port

I currently need to install uWebsockets myself to have access to the us_socket_local_port method.
Here's an example of this based on the Hello World example.
const HyperExpress = require('hyper-express');
const { us_socket_local_port } = require('uWebSockets.js');
const webserver = new HyperExpress.Server();

// Create GET route to serve 'Hello World'
webserver.get('/', (request, response) => {
    response.send('Hello World');
})

// Activate webserver by calling .listen(port, callback);
webserver.listen(0)
.then((socket) => console.log('Webserver started on port %s', us_socket_local_port(socket)))
.catch((error) => console.log('Failed to start webserver'));

Something like webserver.getPort() would be nice.

Hi, this has been implemented through the Server.port property in the new v6.4.2 update.


example: Update/fix, set pointer origin.

Poor mouse pointer, stuck in the top left corner...

Indeed, I have forgotten this. Thanks


Allow GDExtensions to register virtual methods and call them on scripts

Currently, GDExtension classes can implement virtual methods registered in Godot. However, GDExtensions classes can't register their own virtual methods, which scripts attached to them can implement.
This PR adds the necessary changes to the GDExtension interface to allow this!
PR https://github.com/godotengine/godot-cpp/pull/1377 adds support for this to godot-cpp.
Fixes https://github.com/godotengine/godot/issues/82267

@Bromeon Thanks for the review! I've attempted to address your points in my latest push :-)

Thanks, responded! Will also try to test this with godot-rust this or next week.

General question: I assume there is no way to require GDScript to implement a certain method, right? As in abstract/pure virtual methods.

Not via this API. However, the godot-cpp PR adds a GDVIRTUAL_REQUIRED_CALL() (which is based on a macro of the same name in Godot) which will print an error if the virtual method isn't implemented. This is in contrast to the GDVIRTUAL_CALL() macro which just evaluate to false if the method isn't implemented. So, I'd expect other bindings to do something similar, generating errors when needed.

To implement such semantics, user code should probably resort to a default implementation that causes an error?

Yep, something like that! In godot-cpp we're mimicking how Godot does it with macros and templates, but other bindings can do whatever makes sense for that particular binding.

So, I implemented this in Rust, seems to work well! 🦀
Two questions that came up during implementation -- please let me know if that's by design, or I missed something:

It doesn't seem possible to register both a regular (early-binding) and a virtual function with the same name. So while the binding itself can initiate a dynamic dispatch (calling the script method or a C++/Rust fallback), the Godot engine cannot (via Object.call, or from GDScript code). It will always call the script method, or fail if there is no script.

The workaround would be to have a separate method that calls the dynamic-dispatch mechanism from the binding. This method could then be registered with Godot, making the dispatch available to GDScript.

Overridden virtual functions in scripts cannot call their super implementation, i.e. C++/Rust code (again because it doesn't exist, from the Godot perspective).

Also here, this could be addressed by having a separate method that contains only the fallback code.

@Bromeon:

So, I implemented this in Rust, seems to work well! 🦀

Great, thanks!

It doesn't seem possible to register both a regular (early-binding) and a virtual function with the same name. So while the binding itself can initiate a dynamic dispatch (calling the script method or a C++/Rust fallback), the Godot engine cannot (via Object.call, or from GDScript code). It will always call the script method, or fail if there is no script.

This is just how virtual methods in Godot work (including in C++ modules): you can't really have a default implementation of a virtual method.
The usual pattern is to have a non-virtual method named without an underscore which calls a virtual method named with an underscore. Then if the class wants to do some default behavior if the virtual method isn't implemented (checked via GDVIRTUAL_IS_OVERRIDDEN()), or process the return value of the virtual method in some way, it's done in the non-virtual method. And it's the non-virtual method that's the API that folks are expected to call directly, not the virtual method.
This is, of course, different than how virtual methods work in C++, but it's how the binding layer does them.

2. Overridden virtual functions in scripts cannot call their super implementation, i.e. C++/Rust code (again because it doesn't exist, from the Godot perspective).

Yes, but this sort of makes sense in the context of virtual methods not having default implementations.
However, I do think we should add the ability to call super implementations (I have the start of a branch that does this - I probably won't finish it in time for Godot 4.3, though), but not to call the default implementation (because there isn't one). Instead, this is needed for when a GDExtension implements a virtual method from a parent class, and the script also wants to implement that virtual method, but it doesn't want to completely wipe out the GDExtensions implementation. I think this will be especially important when we get around to implementing the ability for a GDExtension class to descend from a parent class in another GDExtension.
However, we don't need to account for that in this PR - that's for a different PR in the future. :-)

Thanks!

The only thing left might be a short TODO on the conventions (see here), so we avoid proliferating even more styles 😉

I've added the TODO's in my latest push :-)

This is just how virtual methods in Godot work (including in C++ modules): you can't really have a default implementation of a virtual method.

Thanks for the elaboration, that makes sense. I will then document this accordingly in Rust and see if we can also establish some convention.

However, I do think we should add the ability to call super implementations [...], but not to call the default implementation (because there isn't one). Instead, this is needed for when a GDExtension implements a virtual method from a parent class, and the script also wants to implement that virtual method, but it doesn't want to completely wipe out the GDExtensions implementation.

I see, so this would work for extensions overriding Godot virtual methods (which are then further overridden by scripts), but not for virtual methods declared by the extension. This might (?) cause some confusion but if it's well documented (including the patterns to work around it), should be OK.

I've added the TODO's in my latest push :-)

Looks great, thanks a lot! From my side, this PR is good to go 🙂

Thanks!

Thanks! :star_struck:

@limbonaut The GDExtension API generally targets the next minor Godot version (4.3 here), binary compatibility gets very complex otherwise. So this won't be backported.
You can however either build Godot yourself or wait for the next 4.3-dev release.

Hello! Thanks for this PR, it will solve a lot of problems with my extension. Before opening an issue, I would report that defining a virtual method like the one below causes godot to crash on startup (without outputting an error). This is caused by the ... Args of PropertyInfo passed to the MethodInfo struct.
ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "_method_name", PropertyInfo(Variant::STRING, "value")));


All three Calculus courses cannot be found (404)

returns 404 not found error

Hello! I can work on this. Can anyone assign this issue to me?

Created PR for this issue addressing the errors


fix sitemap.xml.gz is not compressed #4622 (v2)

I removed the res.set('Content-Encoding', 'gzip'); as it makes the archive not open.

@davisagli I did as you said and the archive is opening now, I think that you are right! Thank you for enlightening me!


feat: added twitch as supported oauth provider

Added Twitch as supported OAuth Provider
Logged out:

Logged in:

Hi! I'm the autofix.ci troubleshooter bot.
It looks like you correctly set up a CI job that uses the autofix.ci GitHub Action, but the autofix.ci GitHub App has not been installed for this repository. This means that autofix.ci unfortunately does not have the permissions to fix this pull request. If you are the repository owner, please install the app and then restart the CI workflow! 😃


Improve G2CreateProject in situation where unreadable objects have been placed in /opt/senzing/

See https://senzing.zendesk.com/agent/tickets/3854
Shouldn't really happen but it did, wrap in supress of try and display what went wrong but continue with normal senzing objects.

Was originally https://github.com/Senzing/g2-python/issues/97


Video Annotator update failed, breaks system Python

I tried updating Python Video Annotator to the latest version, as per the prompt, and got the error below:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\users\\miguel gaspar\\appdata\\local\\programs\\python\\python36-32\\Lib\\site-packages\\matplotlib\\ft2font.cp36-win32.pyd'
Consider using the `--user` option or check the permissions.

Now when I try running the 'start-video-annotator' command, I get the following error:
Traceback (most recent call last):
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\Miguel Gaspar\AppData\Local\Programs\Python\Python36-32\Scripts\start-video-annotator.exe\__main__.py", line 5, in <module>
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\pythonvideoannotator\__main__.py", line 25, in <module>
    from pythonvideoannotator.base_module import BaseModule
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\pythonvideoannotator\base_module.py", line 9, in <module>
    from pyforms.controls import ControlPlayer
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\pyforms\controls.py", line 7, in <module>
    from pyforms_gui.allcontrols import *
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\pyforms_gui\allcontrols.py", line 26, in <module>
    from .controls.control_matplotlib import ControlMatplotlib
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\pyforms_gui\controls\control_matplotlib.py", line 16, in <module>
    from matplotlib.figure import Figure
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\matplotlib\figure.py", line 20, in <module>
    from matplotlib import backends, docstring, projections
  File "c:\users\miguel gaspar\appdata\local\programs\python\python36-32\lib\site-packages\matplotlib\projections\__init__.py", line 1, in <module>
    from .. import axes, cbook
ImportError: cannot import name 'axes'

This has apparently broken something in the system-installed Python, because the same error now also appears whenever I try to run my Jupyter Notebooks, which means I am no longer able to work on this machine.

Hi,
We strongly recommend the use of virtual environments to reduce the possibility of this kind of errors.
From the error you presented, it mentions an access denied in the matplotlib package. If you were using Jupyter Notebooks at the same time, that could be the problem.
You can try to make sure that you don't have anything Python related running and afterwards running the update command again. If that still doesn't work, you can try to open the Command Prompt as an Admin and force the update again.
If you need the command to update PythonVideoAnnotator it is:
pip install python-video-annotator --force-reinstall
Let me know if that fixes the problem.

Hi,
it appears that the problem was indeed trying to run the update while having a Jupyter session running.
After shutting it down and rerunning the update command everything worked.
Thanks!

I am glad that it worked.
Please consider the using of virtual environments in the future.


Embedded term "Domain Connect" opens a spam website

"Domain Connect" redirects to a spam website - I won't copy paste it here for security reasons.

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

ID: a0012093-49ca-c2f6-a3f3-4e4252fca609
Version Independent ID: 22784dda-ff03-971b-4d6e-5b0152f62942
Content: Add a domain to Microsoft 365 - Microsoft 365 admin
Content Source: microsoft-365/admin/setup/add-domain.md
Service: o365-administration
GitHub Login: @pebaum
Microsoft Alias: pebaum

@Attreyu Thank you for your feedback. I have removed the link to the third party site. This can be tracked via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/3469
Thanks
Sri


clay lint template

check against standard template rules
head components need comment with data-uri
body components need one root element with data-uri={{ default _ref _self }}
layouts need doctype

we have the stringified template, but we'd need to run cheerio or something to figure out the root element


[activityDiagram] Should draw a no-action-line when there is no else block

This is fixed in v0.7.0

Just verified thanks so much:


Api polishing

jpopelka added the mergeit label 7 days ago

You need an approval to trigger the gate pipeline.


Public exception follows .NET guidelines

Added additional constructors to InvalidModbusRequestException per .NET guidelines. The primary advantage is to allow users to supply an inner exception for their own purposes.

LGTM but if you add Serializable attribute GetObjectData also should be implemented, isn't it?
Like it was done for SlaveException https://github.com/Maxwe11/NModbus4/blob/master/NModbus4/SlaveException.cs#L153

Good catch. Fixed. I didn't change SlaveException.GetObjectData, but its null checks should be removed, since the base class method takes care of null checking.

LGTM. Thanks


Improve distribution identification via os-release file

Many automation scripts (installers, deployment, configuration management, etc.) rely on information in the os-release file. They parse fields like: NAME, ID, ID_LIKE, CPE_NAME, VARIANT, VARIANT_ID, VERSION, VERSION_ID, etc.
Some also look for the presence of dedicated software packages (e.g. fedora-release-identity-*).
Currently Bazzite has package fedora-release-identity-kinoite installed and the various fields in /etc/os-release report either "fedora" or "kinoite".
The only option I see currently to identify the distribution via this method is to either check for the presence of package ublue-update-*.bazzite-*.noarch or parse field PRETTY_NAME from /etc/os-release (e.g. PRETTY_NAME="Fedora Linux 40.20240621.0 (Bazzite)"). But this doesn't feel very elegant to me.
It would be great if Ublue-based distributions (Aurora/Bluefin/Bazzite) could improve this by identifying itself more clearly in the spirit of the Freedesktop/CPE specifications. Maybe take some pointers from how Nobara Linux does it.
Example for Fedora 39:
NAME="Fedora Linux"
VERSION="39 (Thirty Nine)"
ID=fedora
VERSION_ID=39
VERSION_CODENAME=""
PLATFORM_ID="platform:f39"
PRETTY_NAME="Fedora Linux 39 (Thirty Nine)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:39"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f39/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=39
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=39
SUPPORT_END=2024-11-12

Example for Nobara 39 (based on Fedora 39):
NAME="Nobara Linux"
VERSION="39 (KDE Plasma)"
ID=nobara
ID_LIKE="rhel centos fedora"
VERSION_ID=39
VERSION_CODENAME=""
PLATFORM_ID="platform:f39"
PRETTY_NAME="Nobara Linux 39 (KDE Plasma)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=nobara-logo-icon
CPE_NAME="cpe:/o:nobaraproject:nobara:39"
DEFAULT_HOSTNAME="nobara"
HOME_URL="https://nobaraproject.org/"
DOCUMENTATION_URL="https://www.nobaraproject.org/"
SUPPORT_URL="https://www.nobaraproject.org/"
BUG_REPORT_URL="https://gitlab.com/gloriouseggroll/nobara-images"
REDHAT_BUGZILLA_PRODUCT="Nobara"
REDHAT_BUGZILLA_PRODUCT_VERSION=39
REDHAT_SUPPORT_PRODUCT="Nobara"
REDHAT_SUPPORT_PRODUCT_VERSION=39
SUPPORT_END=2024-05-14
VARIANT="KDE Plasma"
VARIANT_ID=kde

On Bazzite it looks like this:
NAME="Fedora Linux"
VERSION="40.20240621.0 (Kinoite)"
ID=fedora
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Linux 40.20240621.0 (Bazzite)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://kinoite.fedoraproject.org"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-kinoite/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://pagure.io/fedora-kde/SIG/issues"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
VARIANT="Kinoite"
VARIANT_ID=kinoite
OSTREE_VERSION='40.20240621.0'

The reason why Bazzite doesn't modify /etc/os-release file is because scripts which rely on it would fail, in case they would want to do modifications related to Fedora. They would look for fedora ID or similar, which wouldn't be present if modified if applying your suggestion.

I'm sorry to see this issue is closed so quickly and dismissed as "not planned".
No doubt scripts rely on that information. As it should be. It is IMO just bad practice to solely rely on "ID".
That's why "ID_LIKE", "VARIANT", "VARIANT_ID" and the likes are available. It seems to work for Nobara Linux. That's why I included their os-release file as an example.
It also seems to work OK for other derivative distributions. I have checked distributions based on others: CentOS, AlmaLinux, RockyLinux, Ubuntu, VanillaOS, Mint. They all identify themselves uniquely with "ID" but make use of "ID_LIKE" to give a hint about what they are based on. Even Ubuntu proper uses "ID_LIKE=debian".
Identifying as "fedora" in "ID" could even lead to issues with those scripts and Ublue based distributions. Scripts might assume they can perform tasks that won't work as expected (e.g. dnf vs rpm-ostree, grubby, mounts in /var/..., etc.)
My use case is this:
To support Linux distribution testing/distro-hopping I am working on automating a lot of setup with PyInfra. To handle Bazzite properly I need to identify it as "Bazzite" and know that it is based on Fedora and is atomic (based on Kinoite).
For now I will just have to parse PRETTY_NAME and look for VARIANT="Kinoite".
Maybe you could mark this as a feature request and keep in the backlog instead of not addressing it?

Update:
It looks like there was a change around the same time that this issue was created: https://github.com/ublue-os/bazzite/commit/58fc0b253a237df677dca6aa6f15e1d2d4bfcff4
VARIANT_ID is now set to bazzite.

Yeah not sure if related but we changed those up to match the info Fedora needed for the countme service.


https://developers.google.com/web/tools/chrome-devtools/network/get-started comes up 404

Page Affected: https://devtools.glitch.me/network/getstarted.html
What needs to be done?
The link in the lesson: http://devtools.glitch.me/network/getstarted.html
has a link to the Inspect Network Activity In Chrome DevTools tutorial https://developers.google.com/web/tools/chrome-devtools/network/get-started
which comes up 404:

The correct link is: https://developers.google.com/web/tools/chrome-devtools/network

Hey this problem is still going up. Could you check it out?


Subsample chrome by input causes processing error when changed

Describe the bug
Subsample chrome by input causes processing error when value changed.
To Reproduce
Steps to reproduce the behavior:

Open any image in squoosh app
Deselect Auto subsample chroma
Change 'Subsample chrome by' value
See error

Expected behavior
No error should be shown and Even if there is it should not be [object Object]
Version:

Ubuntu 18.04
Chrome and Mozilla

Additional context, screenshots, screencasts

I can recreate this. It only happens with subsample values of 3 or 4.

Looks like this bug was introduced in 912c1fac0865cc708476057ccadb82c3289e7245.


Should Pages search in /Pages/Shared ?

https://github.com/aspnet/Mvc/blob/a8eb5bee7023a2a5d49fcdaea0c25b3416a69211/src/Microsoft.AspNetCore.Mvc.RazorPages/Internal/RazorPagesRazorViewEngineOptionsSetup.cs
RazorPages appear to only look in /Views/Shared, not /Pages/Shared for shared view resources. Should they look in /Pages/Shared instead or as well? That seems intuitive to me, although I can understand how it could undermine the ability to use "Shared" in page-based routes. If this is by design, it should be documented.

If this is by design, it should be documented.

This is by design for the reasons you mentioned. We also don't document stuff we don't do, because the list would be pretty long.
If you want this behavior you can add it to PageViewLocationFormats

We also don't document stuff we don't do

Fair enough, but it's not obvious that pages will search for shared files in /Views/Shared. That, at least, should be documented, yes?

FYI, I was messing around with this and did add this:
services.AddMvc()
           .AddRazorOptions(options =>
            {
                options.PageViewLocationFormats.Add("/Pages/Shared/{0}.cshtml");
            });

The result was pretty disappointing. The only file that worked in there was _Layout.cshtml of the 4 I was hoping to put there (Error.cshtml, _ViewImports, _ViewStart). I'm sure other partial views would also work, but I was trying to declutter the root of my /Pages folder (so that it would only have Index.cshtml in it) but for that I was unsuccessful. The Error page route naturally only worked with /Shared/Error, which wasn't what I wanted. The _ViewImports/_ViewStart files simply stopped working.
Do you happen to know if there's a way to move the _ViewImports and _ViewStart files to a different, shared location?
What about putting razor page Error.cshtml somewhere else but still having its URL be /Error ? Thanks!

Do you happen to know if there's a way to move the _ViewImports and _ViewStart files to a different, shared location?

Both these files are based on folder hieararchy. You could move it to a folder up (to the app root), but it has to be in the hierarchy of the file you're trying to execute.

The Error page route naturally only worked with /Shared/Error, which wasn't what I wanted.

You can use AddPageRoute (https://github.com/aspnet/Mvc/blob/dev/test/WebSites/RazorPagesWebSite/Startup.cs#L23) to create a route for your error page.

I faced similar issue two weeks ago when I was working on theming in Bloggy specifically when I created a custom IViewLocationExpander
It would be nice to add /Pages/Shared into the set of the locations here  PageViewLocationExpander, IMHO /Views/Shared may useful for heterogeneous application (RazorPages & MVC)

Should be resolved as part of https://github.com/aspnet/Mvc/issues/6604


V1.4 dg update

Codecov Report

Merging #271 (1bc0684) into master (d62e0e4) will decrease coverage by 1.29%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #271      +/-   ##
============================================
- Coverage     59.32%   58.02%   -1.30%
+ Complexity      681      679       -2
============================================
  Files           131      131
  Lines          2532     2585      +53
  Branches        268      273       +5
============================================
- Hits           1502     1500       -2
- Misses          927      986      +59
+ Partials        103       99       -4

Impacted Files
Coverage Δ

...rc/main/java/tutoraid/logic/parser/ParserUtil.java
73.77% <0.00%> (-8.05%)
:arrow_down:

src/main/java/tutoraid/ui/UiManager.java
5.71% <0.00%> (-3.59%)
:arrow_down:

src/main/java/tutoraid/model/lesson/Lesson.java
67.14% <0.00%> (-0.98%)
:arrow_down:

src/main/java/tutoraid/ui/HelpWindow.java
0.00% <0.00%> (ø)

...raid/logic/commands/AddStudentToLessonCommand.java
0.00% <0.00%> (ø)

.../logic/parser/AddStudentToLessonCommandParser.java
0.00% <0.00%> (ø)

...logic/commands/DeleteStudentFromLessonCommand.java
0.00% <0.00%> (ø)

...c/parser/DeleteStudentFromLessonCommandParser.java
0.00% <0.00%> (ø)

.../java/tutoraid/logic/parser/FindCommandParser.java
45.45% <0.00%> (+1.97%)
:arrow_up:

src/main/java/tutoraid/model/ModelManager.java
87.96% <0.00%> (+3.14%)
:arrow_up:

Continue to review full report at Codecov.

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


Add coins function

I am not sure how to deal with the lifetime issues & borrow checker. Coin from types has a 'a lifetime, and requires to pass a borrowed Object. I cannot figure out how to make it happy when converting from Object to a Coin such that I can return the page of coins.

what is the shape of the data that is being fetched from graphql? If we do want it to eventually return it as the framework "Coin" type we can change the type to use a Cow so that we can use an owned version (and consequently a 'static lifetime)

what is the shape of the data that is being fetched from graphql?

So, I am using the objects top-level query and filtering by owner address and type ("0x2::coin::Coin"). The objects function returns a list of Objects, which are converted into Object from the bcs returned by GraphQL.

If the question was about GraphQL's Coin type, then this is more complex.
https://github.com/MystenLabs/sui-rust-sdk/blob/gql_coin_api/crates/sui-graphql-client/schema/graphql_rpc.graphql#L497-L637

what is the shape of the data that is being fetched from graphql?

So, I am using the objects top-level query and filtering by owner address and type (0x2::coin::Coin). The objects function returns a list of Objects; converting each bcs into an Object object. Then each object is converted into a Coin object through the Coin::try_from_object.

Ah then we should be able to use a cow with a static lifetime to solve this issue

Nice, thanks for the suggestion. Pushed that change in another PR, let me know what you think.
https://github.com/MystenLabs/sui-rust-sdk/pull/15

I also added a stream function for coins, and put it under stream feature. Should we gate it or just make it always available?

There's no reason to gate that feature i think. What you could do is change the tokio import to not bring in everything (ie not use full) but as it stands today with the graphql client crate, you don't really gain much by gating the streaming feature, as you're already essentially bringing in those deps elsewhere

Thanks for the suggestion!

just need to resolve the conflicts then we can get this landed

just need to resolve the conflicts then we can get this landed

Resolved!


Deploy openms2.5

TS is not yet on 20.05. Therefore deployment of https://github.com/galaxyproteomics/tools-galaxyp/pull/415 did not work yet.

We can check here: https://toolshed.g2.bx.psu.edu/api/version

Hrm. Now SiriusAdapter failed.

I have a list with failed uploaded tools here:

openms_peakpickerhires
openms_noisefiltergaussian
openms_transformationevaluation
openms_externalcalibration

Now it is just openms_peakpickerhires... not sure what is wrong here.

Guess this is done.


FIRApp - validate app name using NSCharacterSet

Fixes #2609

@paulb777 Looks like the console allows non-ascii alphabetic characters for an app name:

Marked for M48


investigate missing polygon transactions

fireeth tools firehose-client polygon.streamingfast.io:443  45526256 45526256  |jq . > polygon45526256.json
grep -i 7ed01e15e7282696cf3dc73268ef2c84a46203bb54fed6f0451d4a0eb5e5cbd5 polygon45526256.json ## this transaction should be there: https://polygonscan.com/tx/0x7ed01e15e7282696cf3dc73268ef2c84a46203bb54fed6f0451d4a0eb5e5cbd5
fireeth tools firehose-client polygon.streamingfast.io:443  45772976 45772976  |jq . > polygon45772976.json
grep -i 33315f4c921b9c1321448bcc23806742b7aee9081b5c7c96bdd8a097082a61de polygon45772976 ## this transaction should be there: https://polygonscan.com/tx/0x33315f4c921b9c1321448bcc23806742b7aee9081b5c7c96bdd8a097082a61de
polygon blocks are reordered here:
https://github.com/streamingfast/firehose-ethereum/blob/develop/codec/console_reader.go#L993
https://github.com/streamingfast/firehose-ethereum/blob/develop/codec/postprocess.go#L156

We have those 3 extraneous trxs, all at block index=1
"f6675f3059f9761b2aca8de2d8dfaa286d56cbbb01c0f5e691309115bfcb9096"
"7a6f467d02f311522331afa4c39621f3f17878d67a342f59d349258ab8fd4873"
"122953921e81fa17ea6e5760e8a61cb97a96826143a0e64601e720d2bff7d77c"

Link to issue https://github.com/streamingfast/firehose-ethereum/issues/72

explanation here https://github.com/streamingfast/firehose-ethereum/pull/74#issue-1877475671

New PR fixes this. However, we discovered that firehose contains the details of another transaction that happens every 6400 blocks. it has no logs, but has some calls and lots of state changes.
This difference between rpc and firehose provider will stay, as firehose allows access to ALL the state changes.
This should not be an issue with TheGraph PoIs since polygon chain does not have CallHandlers or filtered BlockHandlers.

Fixed here: https://github.com/streamingfast/firehose-ethereum/pull/74


[Event Hubs Trigger] MinBatch WaitTime Adjustments

Summary
The focus of these changes is to guard against the scenario where partition ownership changes while the trigger is waiting to build a batch of the requested size.  Because the new owner has no insight into how long the previous owner has already waited, the wait time will restart and obey the configured MaxWaitTime.  This could result in a batch for the partition not being dispatched in a timely manner.   In the worst case, where ownership of the partition changes multiple times, this could lead to a batch for the partition appearing to be severely delayed or to never be dispatched to the Function.
To guard against this, the trigger will now consider the time that the most recently read checkpoint was created and prefer dispatching a partial batch when the partition reads events for the first time and the checkpoint is older than 1.5 times the configured MaxWaitTime or when no checkpoint was found.

API change check
API changes are not detected in this pull request.

/azp run net - eventhub - tests


DEV 👷🏽♂: dev: replace rpc_to_ec_recovered_transaction by try_from #998

Time spent on this PR:
Resolves: #998
Pull Request type
Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[x] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Testing

What is the new behavior?
We perform the Refactor, we eliminate the rpc_to_ec_recovered_transaction function and we implement the try_from, we also eliminate unused boxes and functions
Does this introduce a breaking change?

[ ] Yes
[x] No

Can you rebase here and fix the Lint (I think this is fmt issue here) so that we can check with the CI?

@PabloVillaplana For your information https://github.com/kkrt-labs/kakarot-rpc/pull/1065 should unlock your work here


Memory Efficient Attention integration

Hello, big_vision team!
Thanks for your work on the repository. Looking through the code I noticed that ViT is using classical attention (see line 91 of ViT implementation). It seems like it should be relatively easy to replace current attention implementation with a memory-efficient alternative from flaxformer (line 595 in flaxformer) just passing dot_product_attention_multihead as attention_fn in nn.MultiHeadDotProductAttnetion (line 221 in flax). I think such improvement is worth considering since Flesh Attention authors reported up to x2.4 speedup on long sequences (1k-4k tokens)
What do you think about it? Are there any limitations that make efficient attention integration harder than it seems? I'm not experienced in Jax, so your feedback would be very appreciated

I have not ran any deep investigations, but currently I expect that it is not worth it:

Speed-wise XLA is already supposed to do the optimizations that flash-attention does. However, if you try it and observe that XLA is doing worse job that manual implementation of FLASH attention, we may have a look into it. It can also be different for TPUs vs GPUs.
Memory-wise, a single attention matrix for 4k tokens weighs 64 MB. And by wrapping the whole transformer block inside flax.linen.remat one can guarantee that no more than 1 (or 2) attention matrices are materialized at any moment in time. So memory-wise it is only helpful when scaling beyond 4k tokens, which is not a typical vision scenario.

Thank you for the detailed explanation! I'll give it a try in my experiments


Catch exception raised when parsing

It seems Clang can arbitrarily raise errors (transient NULL-byte reads from files that exist). Handle those errors by retrying the parsing step 3 times, just in case it goes away.

I guess that didn't solve the issue on Ruby 2.6. It's curious that it's happening on that version and seemingly not the others.

What's really weird is that I'm running ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18], and it doesn't happen at all here. I've been running while [ $? ]; do rake test TESTOPTS="-v --name=test_can_group_functions"; done for a while, and it still hasn't stopped 🙄.


IteadSonoffButton

Hi,
after latest commits (don't ask me which one) the IteadSonoffButton example doesn't work anymore.
The ESP registers for homie/<devicename>/+/+/set, but it doesn't react to a publish on homie/<devicename>/switch/on/set
Any hints?
Thanks
Alex

I have found the same bug...this commit is the problem!
This because device_topic and deviceId is not the same :)
devices/device ID/node-ID/property
instead the device_topic is: node-ID/property
   for (uint16_t i = 0; i < strlen(device_topic); i++) {
     if ((device_topic[i] != messageDeviceId[i]) || (device_topic[i] == '/' && messageDeviceId[i] != '\0')) {
         Interface::get().getLogger() << F("DEBUG: USCITA!!! ") << device_topic[i] << messageDeviceId[i]  << endl;
       return;
     }
   }

@elbowz : Yes ,that's the issue. Thanks

Hi Guys,
My bad, this issue is on me. @elbowz You are right I don't use the right topic to check the device (got confused by the name, and circumstances of my sketch made this still work for me :-/ ).
Please find fix here
Apologies for any inconveniences.

Thanks for your rapidly solution! :)

Merged, thanks guys!


glscopeclient fails to run on Fedora under Wayland due to GLEW init failure

glewInit returns GLEW_ERROR_NO_GLX_DISPLAY. Seems like something is looking for GLX when we're using Wayland and things bork.

GDK_BACKEND="x11" seems to work if you have xwayland

Do we have a working flow for getting glscopeclient to run under Wayland, perhaps using xwayland? If so, please submit a PR to scopehal-docs with instructions on how to get this working.
Keeping this issue open and tagged for the v1.0 release because I want better native Wayland compatibility long term.

Over at the GLEW repo, https://github.com/nigels-com/glew/issues/172, the supertux folks reports that GLEW seems to be usable even if glewInit returns GLEW_ERROR_NO_GLX_DISPLAY.
I can start glscopeclient and display the waveforms for the demo device, if I make this modification:
diff --git a/src/glscopeclient/WaveformArea.cpp b/src/glscopeclient/WaveformArea.cpp
index e68601b..d8dfc09 100644
--- a/src/glscopeclient/WaveformArea.cpp
+++ b/src/glscopeclient/WaveformArea.cpp
@@ -504,7 +504,7 @@ void WaveformArea::on_realize()

                //Initialize GLEW
                GLenum glewResult = glewInit();
-               if (glewResult != GLEW_OK)
+        if (glewResult != GLEW_OK && glewResult != 4)
                {
                        string err =
                                "glscopeclient was unable to initialize GLEW and cannot continue.\n"

The Glew maintainer said that he would expose  glewContextInit in the public API which would allow for both EGL and GLX to be used (if I understood him correctly). But that was back in 2018 and no such change has been committed.
I guess we can use the glew-patch that supertux uses: https://github.com/supertuxkart/stk-code/commit/961ac4d79eda230722d270bbf46f1545b324d0c8, but then we'd have to package our own version of glew.
Or we can check for  $XDG_SESSION_TYPE == wayland and in that case ignore GLEW_ERROR_NO_GLX_DISPLAY? I'll google a bit to check what is the most reliable way of detecting if a program is running under wayland.


two problem

in the Anaconda
(mesh_funcspace) E:\occupancy_networks-master>python setup.py build_ext --inplace
running build_ext
D:\SoftWare\Anaconda\envs\mesh_funcspace\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
building 'im2mesh.utils.libkdtree.pykdtree.kdtree' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
(mesh_funcspace) E:\occupancy_networks-master>python generate.py configs/demo.yaml
Traceback (most recent call last):
File "generate.py", line 10, in
from im2mesh import config
File "E:\occupancy_networks-master\im2mesh\config.py", line 4, in
from im2mesh import onet, r2n2, psgn, pix2mesh, dmc
File "E:\occupancy_networks-master\im2mesh\onet_init_.py", line 1, in
from im2mesh.onet import (
File "E:\occupancy_networks-master\im2mesh\onet\config.py", line 5, in
from im2mesh.encoder import encoder_dict
File "E:\occupancy_networks-master\im2mesh\encoder_init_.py", line 1, in
from im2mesh.encoder import (
File "E:\occupancy_networks-master\im2mesh\encoder\conv.py", line 4, in
from im2mesh.common import normalize_imagenet
File "E:\occupancy_networks-master\im2mesh\common.py", line 3, in
from im2mesh.utils.libkdtree import KDTree
File "E:\occupancy_networks-master\im2mesh\utils\libkdtree_init_.py", line 1, in
from .pykdtree.kdtree import KDTree
ModuleNotFoundError: No module named 'im2mesh.utils.libkdtree.pykdtree.kdtree'

same as you，did you solve it？

I have the same question as your second question of “No module named 'im2mesh.utils.libkdtree.pykdtree.kdtree' ”,did you have
solved it? help me please


Don't sign out during first run flow unless on password screen

Users may try clicking the LBRY logo button or X during the first run on screens like channel create/rewards approval/claim youtube channel - this signs them out. It should only sign out if they are stuck at the password screen.

This should be fixed now.


[test] Use %refactor-check-compiles in more places

Add a hidden frontend flag -warn-on-editor-placeholder that allows %refactor-check-compiles to be more lenient with placeholders, and update a bunch of async refactoring tests to use %refactor-check-compiles in more cases.
Note the diff is best viewed without whitespace.

@swift-ci please test

@swift-ci please test Windows

@swift-ci please smoke test


Talents bar disappears

The talent bar just disappears, I don't know why. Passier more often than borg
Could have something to do with the switching of the modules, but I'm not sure
Since then there has been no changelog, the problem has been recurring, I looked at Github and didn't see anyone reporting it.

resetallents command should fix it, iirc its a pvs issue

Yeah but is not only 1 time is happen one shift 20 times or something, i hope a fix coming for it


Big checkmark isn't detected

Notice:

What was just played
The extra x not colored in green

example 2

New Function Idea for detecting checkmarks:

Check 7 in a row
All lines diagonally connected to center + All lines diagonally again

If (vertical column of squares with more than 7 squares crossing the latest move) then (the selection is a win)

If (horizontal column of squares with more than 7 squares crossing the latest move) then (the selection is a win)

For both diagonals where the slope of the diagonal is positive or negative 1, and which cross over the latest move:
a. If (diagonal has more than 7 squares) then (the selection is a win)
b. For each square on that diagonal excluding the latest move,
     1. Let d be the diagonal steps away from the king

     2. For each ray starting from the square and going on a diagonal crossing that square but not the latest move

         1. If (that ray has 2+ squares, and, the ray starting at the square and which crosses the original move has 4+ squares), then (that selection is a win)

         2. If (that ray has 4+ squares, and, the ray starting at the square and which crosses the original move has 2+ squares), then (that selection is a win if it isn't already)

c. For (the rays included in the diagonals crossing the latest move, and starting on the latest move)
 i. If (the first ray has 2+ squares, and, the second ray has 4+ squares), then (that selection is a win)

 ii. If (the first ray has 4+ squares, and, the second ray has 2+ squares), then (that selection is a win if it isn't already)

Hmm, the checkmarks function isn't detecting any checkmarks

Hmm, the checkmarks function isn't detecting any checkmarks

Ok it works now

Ok it works now


Training a reward model with LoRA gets weird logs when using SEQ_CLS

System Info

Platform: Linux-5.15.0-121-generic-x86_64-with-glibc2.35
Python version: 3.10.15
PyTorch version: 2.5.1
CUDA device(s): NVIDIA GeForce RTX 3060
Transformers version: 4.46.2
Accelerate version: 1.1.1
Accelerate config: not found
Datasets version: 3.1.0
HF Hub version: 0.26.2
TRL version: 0.12.0
bitsandbytes version: not installed
DeepSpeed version: not installed
Diffusers version: not installed
Liger-Kernel version: not installed
LLM-Blender version: not installed
OpenAI version: not installed
PEFT version: 0.13.2

Information

[X] The official example scripts
[ ] My own modified scripts

Tasks

[X] An officially supported task in the examples folder
[X] My own task or dataset (give details below)

Reproduction
Hi, I'm using the example code from here, running it with the following params:
python reward_modeling.py \
    --model_name_or_path Qwen/Qwen2.5-Math-1.5B-Instruct \
    --dataset_name all_preference_pairs.jsonl \
    --output_dir Qwen2.5-Math-1.5B-Instruct-Reward-LoRA \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 32 \
    --num_train_epochs 3 \
    --gradient_checkpointing True \
    --learning_rate 1.0e-5 \
    --logging_steps 5 \
    --eval_strategy no \
    --eval_steps 50 \
    --max_length 4096 \
    --use_peft \
    --lora_r 32 \
    --lora_alpha 16

And I get reasonable logs like this:
{'loss': 0.7776, 'grad_norm': 5.775640487670898, 'learning_rate': 1.9948320413436695e-05, 'epoch': 0.01}
{'loss': 0.6384, 'grad_norm': 20.25526237487793, 'learning_rate': 1.7105943152454783e-05, 'epoch': 0.43}
{'loss': 0.4843, 'grad_norm': 27.412843704223633, 'learning_rate': 1.1111111111111113e-05, 'epoch': 1.33}
{'loss': 0.393, 'grad_norm': 34.913734436035156, 'learning_rate': 4.031007751937985e-06, 'epoch': 2.39}

However I also get this warning:
UserWarning: You are using a `task_type` that is different than `SEQ_CLS` for PEFT. This will lead to silent bugs Make sure to pass --lora_task_type SEQ_CLS when using this script with PEFT.

But when I add  --lora_task_type SEQ_CLS the logs go haywire:
{'loss': 1.1914025258187767e+34, 'grad_norm': nan, 'learning_rate': 9.870801033591732e-06, 'epoch': 0.04}
{'loss': 0.0, 'grad_norm': nan, 'learning_rate': 9.483204134366925e-06, 'epoch': 0.15}
{'loss': 0.0, 'grad_norm': nan, 'learning_rate': 9.354005167958657e-06, 'epoch': 0.19}

According to the docs, the dataset should be:

The RewardTrainer requires a implicit prompt preference dataset. It means that the dataset should only contain the columns "chosen" and "rejected" (and not "prompt"). The RewardTrainer supports both conversational and standard dataset format. When provided with a conversational dataset, the trainer will automatically apply the chat template to the dataset.

Here are a couple of lines from my dataset:
{"chosen": "<|im_start|>system\nPlease integrate natural language reasoning with programs to solve the problem above, and put your final answer within \\boxed{}.<|im_end|>\n<|im_start|>user\nSuppose that a polynomial of the form $p(x)=x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ has no real roots. What is the maximum possible number of coefficients of -1 in $p$?<|im_end|>\n<|im_start|>assistant\nTo solve this problem, we need to understand the behavior of the polynomial $p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$. The key point is that if $p(x)$ has no real roots, then all the roots must be complex. Since the polynomial has real coefficients, the complex roots must come in conjugate pairs. This means that if there is a complex root, its conjugate must also be a root. The only real roots possible are $\\pm 1$.\n\nTo maximize the number of coefficients of $-1$, we need to consider the polynomial $p(x)$ evaluated at $x = -1$. If $p(-1) \\neq 0$, then $-1$ cannot be a root of the polynomial. We can use this property to determine the maximum number of coefficients of $-1$.\n\nLet's denote the polynomial as $p(x) = x^{2010} + a_{2009}x^{2009} + \\cdots + a_1x + 1$, where each $a_i$ is either $1$ or $-1$. If we substitute $x = -1$ into the polynomial, we get:\n\\[ p(-1) = (-1)^{2010} + a_{2009}(-1)^{2009} + \\cdots + a_1(-1) + 1 = 1 - a_{2009} + a_{2008} - \\cdots - a_1 + 1. \\]\nThis simplifies to:\n\\[ p(-1) = 2 - (a_{2009} + a_{2008} + \\cdots + a_1). \\]\nFor $p(-1) \\neq 0$, we need:\n\\[ 2 - (a_{2009} + a_{2008} + \\cdots + a_1) \\neq 0. \\]\nThis means that the sum of the coefficients $a_{2009} + a_{2008} + \\cdots + a_1$ must not be equal to 2. The maximum number of coefficients of $-1$ is achieved when the sum of the coefficients is minimized, but not equal to 2. The maximum number of $-1$ coefficients is 1005, because if we have 1006 or more $-1$ coefficients, the sum will be less than or equal to $-1006$, which is not possible since the sum must be an even number (because there are 2010 terms in total and 1005 of them are $-1$).\n\nTherefore, the maximum possible number of coefficients of $-1$ is 1005. Let's confirm this with Python code.\n```python\n# We need to confirm that with 1005 coefficients of -1, the sum of the coefficients is not equal to 2.\r\n# The polynomial is x^2010 + a_2009*x^2009 + ... + a_1*x + 1, where a_i is either 1 or -1.\r\n# If we have 1005 coefficients of -1, the sum of the coefficients is -1005 + (2010 - 1005) = 1005.\r\n# This means the polynomial evaluated at x = -1 is 2 - 1005 = -1003, which is not zero.\r\n\r\n# Let's calculate the sum of the coefficients with 1005 coefficients of -1\r\nnum_terms = 2010\r\ncoefficients_of_minus_one = 1005\r\nsum_of_coefficients = num_terms - 2 * coefficients_of_minus_one\r\n\r\n# Check if the sum of coefficients is not equal to 2\r\nis_not_zero = sum_of_coefficients != 2\r\n\r\nprint((sum_of_coefficients, is_not_zero))\n```\n```output\n(0, True)\n```\nThe sum of the coefficients with 1005 coefficients of $-1$ is $0$, which means the polynomial evaluated at $x = -1$ is $2 - 0 = 2$, but this is not a root of the polynomial because the polynomial has no real roots. Therefore, the maximum possible number of coefficients of $-1$ is indeed 1005.\n\nSo the final answer is:\n\\[\n\\boxed{1005}\n\\]", "rejected": "<|im_start|>system\nPlease integrate natural language reasoning with programs to solve the problem above, and put your final answer within \\boxed{}.<|im_end|>\n<|im_start|>user\nSuppose that a polynomial of the form $p(x)=x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ has no real roots. What is the maximum possible number of coefficients of -1 in $p$?<|im_end|>\n<|im_start|>assistant\nTo determine the maximum possible number of coefficients of -1 in the polynomial \\(p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1\\) that has no real roots, we need to analyze the properties of such polynomials. Specifically, we need to consider the behavior of polynomials with alternating signs and determine the maximum number of -1 coefficients without the polynomial having any real roots.\n\nA key observation is that a polynomial with only even powers of \\(x\\) (i.e., \\(x^{2010}, x^{2008}, \\ldots, x^2, 1\\)) and all coefficients equal to 1 will always have no real roots. This is because the polynomial \\(P(x) = x^{2010} + x^{2008} + \\cdots + x^2 + 1\\) is always positive for all real \\(x\\) (since all terms are non-negative and at least one term is positive). Adding or subtracting an odd power term (like \\(x^{2009}\\) or \\(x^{2007}\\)) can potentially introduce real roots, but we need to ensure that no such roots are created.\n\nLet's consider the polynomial with the maximum number of -1 coefficients. If we have too many -1 coefficients, the polynomial could potentially have real roots. The key is to balance the polynomial in such a way that it remains without real roots.\n\nTo ensure the polynomial has no real roots, we need to balance the polynomial in a way that the sum of the coefficients of the polynomial is positive. This can be achieved by having the same number of positive and negative coefficients, or by having a slight majority of positive coefficients.\n\nThe maximum number of -1 coefficients can be determined by considering the polynomial with alternating signs, but ensuring that the sum of the coefficients is positive. This means we can have up to 1005 -1 coefficients and still have a positive sum of coefficients.\n\nLet's implement this in Python to verify the maximum possible number of -1 coefficients.\n\n```python\n# The maximum number of -1 coefficients in the polynomial p(x) = x^2010 \u00b1 x^2009 \u00b1 ... \u00b1 x \u00b1 1\n# such that the polynomial has no real roots can be determined by ensuring the sum of the coefficients is positive.\n# This means we can have up to 1005 -1 coefficients and still have a positive sum of coefficients.\n\n# Let's verify this with Python code.\ndef max_negatives_in_polynomial(n):\n    # The polynomial x^n \u00b1 x^(n-1) \u00b1 ... \u00b1 x \u00b1 1\n    # We need to balance the polynomial such that the sum of the coefficients is positive.\n    # This means we can have up to n//2 - 1 negative coefficients and still have a positive sum.\n    return n // 2 - 1\n\n# For the polynomial of degree 2010\nmax_negatives = max_negatives_in_polynomial(2010)\nprint(max_negatives)\n```\n```output\n1004\n```\nThe maximum possible number of coefficients of -1 in the polynomial \\(p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1\\) that has no real roots is \\(\\boxed{1004}\\)."}

{"chosen": "<|im_start|>system\nPlease integrate natural language reasoning with programs to solve the problem above, and put your final answer within \\boxed{}.<|im_end|>\n<|im_start|>user\nSuppose that a polynomial of the form $p(x)=x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ has no real roots. What is the maximum possible number of coefficients of -1 in $p$?<|im_end|>\n<|im_start|>assistant\nTo solve the problem, we need to understand the behavior of the polynomial $p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$. The key observation here is that if $p(x)$ has no real roots, then all the roots of the polynomial must be complex. For a polynomial with real coefficients, complex roots come in conjugate pairs. Therefore, if there is a polynomial of the form $x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ with no real roots, then the polynomial must have an even degree, and all its roots must be complex.\n\nThe polynomial $x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ has 2011 terms, and we need to determine the maximum number of coefficients that can be $-1$ such that the polynomial has no real roots. The polynomial will have no real roots if and only if it is always positive or always negative for all real $x$. This means that the polynomial must be either a sum of squares or a difference of squares. Since the polynomial has an even degree and the leading coefficient is 1 (which is positive), the polynomial will be always positive if the sum of the absolute values of the coefficients is even. This means that the number of $-1$ coefficients must be even, and the number of $1$ coefficients must be even.\n\nGiven that the polynomial has 2011 terms in total, if we let the number of $-1$ coefficients be $k$, then the number of $1$ coefficients is $2011 - k$. For the polynomial to have no real roots, both $k$ and $2011 - k$ must be even. This means that $k$ must be odd. The maximum possible value for $k$ is 2010, because if $k = 2010$, then $2011 - k = 1$, which is odd. Therefore, the maximum possible number of coefficients of $-1$ in $p$ is 2010.\n\nLet's confirm this reasoning with Python and sympy:\n\n```python\n# We don't need to use sympy for this particular problem, but we can use it to verify the logic.\n\nimport sympy as sp\n\n# Define the polynomial and the variable\nx = sp.symbols('x')\nn = 2010\n\n# The polynomial is of the form x^n \u00b1 x^(n-1) \u00b1 ... \u00b1 x \u00b1 1\n# We need to find the maximum number of -1 coefficients such that the polynomial has no real roots\n\n# The polynomial will be always positive or always negative if the sum of the absolute values of the coefficients is even\n# This means the number of -1 coefficients must be even, and the number of 1 coefficients must be even\n\n# The total number of terms is n + 1 = 2011, so if we let the number of -1 coefficients be k, then the number of 1 coefficients is 2011 - k\n# For the polynomial to have no real roots, both k and 2011 - k must be even, which means k must be odd\n# The maximum possible value for k is 2010, because if k = 2010, then 2011 - k = 1, which is odd\n\n# Therefore, the maximum possible number of coefficients of -1 in p is 2010\nmax_neg_coefficients = 2010\n\nprint(max_neg_coefficients)\n```\n```output\n2010\n```\nThe maximum possible number of coefficients of $-1$ in the polynomial $p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ such that $p(x)$ has no real roots is \\(\\boxed{1005}\\).", "rejected": "<|im_start|>system\nPlease integrate natural language reasoning with programs to solve the problem above, and put your final answer within \\boxed{}.<|im_end|>\n<|im_start|>user\nSuppose that a polynomial of the form $p(x)=x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1$ has no real roots. What is the maximum possible number of coefficients of -1 in $p$?<|im_end|>\n<|im_start|>assistant\nTo solve this problem, we need to understand the nature of the polynomial \\(p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1\\). The polynomial has 2011 terms, including the constant term 1. If it has no real roots, then it must not change sign for any real value of \\(x\\). This means that all the coefficients must be such that the polynomial does not cross the x-axis.\n\nThe polynomial \\(p(x)\\) can be written as \\(p(x) = x^{2010} + a_{2009}x^{2009} + \\cdots + a_1x + 1\\), where each \\(a_i\\) is either 1 or -1. The polynomial \\(p(x)\\) is a sum of terms where each term is either \\(x^{2010}\\) or \\(-x^{2010}\\) for \\(x^{2009}\\), and so on, down to \\(-x\\) or \\(+x\\), and finally \\(1\\).\n\nThe key observation is that the polynomial \\(p(x)\\) will not have any real roots if the sum of the coefficients of the polynomial is non-zero. If the sum of the coefficients is zero, then the polynomial could potentially have a real root. However, if the sum of the coefficients is non-zero, then the polynomial will not have any real roots because it will not change sign.\n\nThe sum of the coefficients of the polynomial \\(p(x)\\) is \\(1 + a_{2009} + a_{2008} + \\cdots + a_1 + 1\\). Since each \\(a_i\\) is either 1 or -1, the sum of the coefficients will be an even number (because there are 2011 terms, and each term is either 1 or -1). Therefore, the sum of the coefficients will be non-zero if and only if there is an odd number of terms with coefficient -1.\n\nThe maximum number of coefficients that can be -1 while still maintaining a non-zero sum is 2010, because if all but one of the coefficients are -1, then the sum will be -2010 + 1 = -2009, which is non-zero. If 2011 of the coefficients are -1, then the sum will be -2011, which is also non-zero. However, if 2011 of the coefficients are -1, then the polynomial will have a real root, so this is not allowed.\n\nTherefore, the maximum possible number of coefficients of -1 in \\(p(x)\\) is 2009. Let's confirm this with Python code.\n```python\n# The maximum number of coefficients that can be -1 while still maintaining a non-zero sum\n# is 2010 because if all but one of the coefficients are -1, then the sum will be -2010 + 1 = -2009,\n# which is non-zero. If 2011 of the coefficients are -1, then the sum will be -2011, which is also non-zero,\n# but this would mean the polynomial has a real root, so this is not allowed.\n\n# Therefore, the maximum possible number of coefficients of -1 in p(x) is 2009.\nmax_neg_coefficients = 2010 - 1\nprint(max_neg_coefficients)\n```\n```output\n2009\n```\nThe maximum possible number of coefficients of -1 in the polynomial \\(p(x) = x^{2010} \\pm x^{2009} \\pm \\cdots \\pm x \\pm 1\\) that has no real roots is \\(\\boxed{2009}\\)."}

Am I doing something wrong with the dataset, or is the model incompatible with seqforclassification, or is there a bug in trl? Any feedback would be appreciated.
Expected behavior
I would expect the logs to show reasonable loss throughout training with the lora_task_type set to SEQ_CLS, or at least looking for some feedback if I used the wrong type of dataset. Getting inf loss followed by 0.0 loss and nan's usually means I did something wrong...
Checklist

[X] I have checked that my issue isn't already filed (see open issues)
[X] I have included my system information
[X] Any code provided is minimal, complete, and reproducible (more on MREs)
[X] Any code provided is properly formatted in code blocks, (no screenshot, more on code blocks)
[X] Any traceback provided is complete

I think I found the issue. For posterity, it seems that it was caused by setting torch_dtype to "half" instead of "auto". User error.


Terraform exited with code 1.

During the AWS process I get this error. I am completely new to AWS so it's probably something simple, although this is the step before AWS right?
I have made a IAP user with full S3 permissions, just in case that is at all relevant.
Please help! Thank you.

I fixed this by changing the S3 bucket permissions to allows ASLs.
https://stackoverflow.com/questions/71080354/getting-the-bucket-does-not-allow-acls-error


Put Photos for Each Milestone in the Description Area

In order to better understand the Milestone a photo is helpful to give the audience an overview. This task is then to put two or more photos in the Description Area to give a quick glance of the issue.

Today I'm going to continue working on the milestone description, attend an interview with an applicant, attend an interview for a USIVA applicant, and find small wood for the microphone set-up in the morning shift and then in the afternoon shift there's a meeting with a Realtor to check out a property.


pull request for e2e test at 01/16/2017 19:56:15

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Move QuietBackgroundProcesses UI to Windows customization

Summary of the pull request
Move QuietBackgroundProcesses UI to Windows customization instead of a top-level page.
References and relevant issues

Detailed description of the pull request / Additional comments
Merge the UI project for QuietBackgroundProcesses into Customization and control the view's visibility based on the experimental features enablement status.
Validation steps performed
With the feature disabled in Settings -> Experimental features navigate to Windows customization and see that the Quiet mode card is not visible.
Enable the feature and notice that the settings card is visible upon navigating back to Windows customization.
Start a session, navigate away from the page and back and ensure the session remains active.
Close Dev Home and verify that DevHome.QuietBackgroundProcesses.ElevatedServer.exe is still running, launch, navigate back to Windows customization and stop session. Confirm that everything cleans up.
PR checklist

[ ] Closes #xxx
[ ] Tests added/passed
[ ] Documentation updated

I'm good with these changes as-is, but @EricJohnson327 mentioned here  that,
"The QuiteBackgroundProcesses stuff should go in its own tools/QuietBackgroundProcesses project. All code should be written as if it wasn't an experimental feature, then the experimental feature checks just wrap it to enable/disable it. That way when it's not experimental anymore, we just remove the checks and the rest of the code stays exactly the same."
I'm signing off, but giving Eric a chance to respond (I'm not sure if what he's saying is possible for WindCust anyway).
Thanks @nieubank!


Emit generalization

Some brief updates for generality based on EMIT data.  The only controversial item here is the change of the initial guess to utilize the prior outside of the inversion windows.  This decreases the number of required iterations for a solution under some conditions, and - if inversion windows are set correctly - provides more continuous reflectances through the deep water features.

Thanks, Phil! Replacing the surface first guess by the prior mean outside the inversion windows is a nice gimmick (the name of the respective commit misleadingly attributed this to within the inversion windows, right?). My only point here would be if we might want to keep this optional to the user or have it as a fixed implementation. But anyway, I completely agree with this update! Likewise, adding x0 to the trajectory is useful.
As for opening up default LUT bounds and spacing, these can now be controlled by the macro config file in the new multi surface approach. The only parameters still missing here are spacing and ranges for aerosol_0 to aerosol_2. Do we want to add these to the macro config as well?
In any case, I recommend merging this PR! @davidraythompson What do you think?

Apologies, I did indeed mislabel the commit....the initial guess is only set with the closest (scaled) surface prior outside of the inversion windows.
Adding this into the configuration is a good idea, and I've modified accordingly.


Task Scheduler intermittently freezes

Description:
ListenerImapReceiveTest and ListenerPopReceiveTest are intermittently freezes in Email Connector integration tests as the Scheduler freezes intermittently.
Steps to reproduce:
When running the Integration tests where the above test cases are enabled, the process hangs on at the above tests intermittently.

Closing this due to this fixed in https://github.com/ballerina-platform/ballerina-standard-library/issues/59

Closing this due to this fixed in https://github.com/ballerina-platform/ballerina-standard-library/issues/59


[BUG] Media re-downloads if app loses focus before media saved notice dismisses itself

Describe the bug
Hiding or switching to another app after a media download has started will restart the download when returning to the app, even if the download has already completed.
This happens even if the "Media saved" notice shows up. You will have to wait until the notice disappears on its own after a few seconds to not trigger this bug.
To Reproduce
Steps to reproduce the behavior:

Start downloading any media.
Hide or switch to another app before the "media saved" notice fully disappears on its own after 5 seconds.
Switch back to the app.

Device
Model: Samsung Galaxy S9+
OS: Android 10
Language: English
Fritter Version: v3.0.0-beta1

Not sure what happened but restarting the app after a while I cannot reproduce this bug anymore.


The postgres example does not compile for me

I created a new project with main.rs populated by:
https://github.com/maxcountryman/tower-sessions-stores/blob/main/sqlx-store/examples/postgres.rs
And cargo.toml dependencies of:
axum = "0.7.8"
serde = "1.0.215"
sqlx = { version = "0.8.2", features = ["runtime-tokio", "tls-rustls", "postgres"] }
time = "0.3.36"
tokio = { version = "1.41.1", features = ["full"] }
tower-sessions = "0.13.0"
tower-sessions-sqlx-store = { version = "0.13.0", features = ["postgres"] }

But I get a bunch of errors, that appear to be from tower-session not properly fitting into something:
warning: unused import: `session_store::ExpiredDeletion`
 --> src/main.rs:7:22
  |
7 | use tower_sessions::{session_store::ExpiredDeletion, Expiry, Session, SessionManagerLayer};
  |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error[E0599]: no method named `continuously_delete_expired` found for struct `PostgresStore` in the current scope
   --> src/main.rs:31:14
    |
29  | /         session_store
30  | |             .clone()
31  | |             .continuously_delete_expired(tokio::time::Duration::from_secs(60)),
    | |_____________-^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
   ::: /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-sessions-core-0.12.3/src/session_store.rs:283:14
    |
283 |       async fn continuously_delete_expired(self, period: tokio::time::Duration) -> Result<()> {
    |                --------------------------- the method is available for `PostgresStore` here
    |
    = help: items from traits can only be used if the trait is in scope
help: there is a method `delete_expired` with a similar name, but with different arguments
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-sessions-core-0.12.3/src/session_store.rs:250:5
    |
250 |     async fn delete_expired(&self) -> Result<()>;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: trait `ExpiredDeletion` which provides `continuously_delete_expired` is implemented but not in scope; perhaps you want to import it
    |
1   + use tower_sessions_core::session_store::ExpiredDeletion;
    |

error[E0277]: the trait bound `PostgresStore: SessionStore` is not satisfied
   --> src/main.rs:34:50
    |
34  |     let session_layer = SessionManagerLayer::new(session_store)
    |                         ------------------------ ^^^^^^^^^^^^^ the trait `SessionStore` is not implemented for `PostgresStore`
    |                         |
    |                         required by a bound introduced by this call
    |
    = help: the following other types implement trait `SessionStore`:
              CachingSessionStore<Cache, Store>
              MemoryStore
note: required by a bound in `SessionManagerLayer::<Store>::new`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-sessions-0.13.0/src/service.rs:503:13
    |
503 | impl<Store: SessionStore> SessionManagerLayer<Store> {
    |             ^^^^^^^^^^^^ required by this bound in `SessionManagerLayer::<Store>::new`
...
515 |     pub fn new(session_store: Store) -> Self {
    |            --- required by a bound in this associated function

error[E0599]: the method `with_secure` exists for struct `SessionManagerLayer<PostgresStore>`, but its trait bounds were not satisfied
  --> src/main.rs:35:10
   |
34 |       let session_layer = SessionManagerLayer::new(session_store)
   |  _________________________-
35 | |         .with_secure(false)
   | |         -^^^^^^^^^^^ method cannot be called on `SessionManagerLayer<PostgresStore>` due to unsatisfied trait bounds
   | |_________|
   |
   |
  ::: /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-sessions-sqlx-store-0.13.0/src/postgres_store.rs:13:1
   |
13 |   pub struct PostgresStore {
   |   ------------------------ doesn't satisfy `PostgresStore: SessionStore`
   |
   = note: the following trait bounds were not satisfied:
           `PostgresStore: SessionStore`

error[E0277]: the trait bound `PostgresStore: SessionStore` is not satisfied
   --> src/main.rs:34:25
    |
34  |     let session_layer = SessionManagerLayer::new(session_store)
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `SessionStore` is not implemented for `PostgresStore`
    |
    = help: the following other types implement trait `SessionStore`:
              CachingSessionStore<Cache, Store>
              MemoryStore
note: required by a bound in `SessionManagerLayer`
   --> /home/chris/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-sessions-0.13.0/src/service.rs:291:39
    |
291 | pub struct SessionManagerLayer<Store: SessionStore, C: CookieController = PlaintextCookie> {
    |                                       ^^^^^^^^^^^^ required by this bound in `SessionManagerLayer`

Any suggestions what is somehow wrong with my setup? I'm using rust 1.82 if it matters. Thanks.

hello this is not documented but you need to add feature postgres  (see sourcecode lib.rs):
tower-sessions-sqlx-store = { version = "0.14", features = ["postgres"]}


Greedy thread allocation and pause empty entities

Make thread limit shared across entities not all jobs so X busy entities gets Y% of the threads to avoid long tasks holding up the total threads for every entity. Entities with no children and have no actions run that tick should be allocated no threads.

No longer needed - can supply own engine


[WIP] Multi color text manager

Description
This allows text color to either be specified as a ColorManager, or as anything that can be coerced into ColorManager.colors (e.g. 'red', ['red', 'green'], [[1., 0., 0.], [0., 1., 0.]]), to support passing multiple colors as described in #2019. Here's a simple/minimal example.
import numpy as np
import napari

viewer = napari.view_image(np.zeros((400, 400)))
points = np.array([[100, 100], [200, 300], [333, 111]])
properties = {
    'number': [1, 2, 3],
}
text = {
    'text': '{number}',
    'size': 20,
    'color': ['green', 'red', 'blue'],
}

points_layer = viewer.add_points(
    points,
    properties=properties,
    size=20,
    text=text,
)

napari.run()

This is a WIP because I'm unsure of how TextMode and ColorMode should affect this behavior and if there are other usages I've missed (e.g. setting multiple text colors through properties). Currently, I've done something simple, which is to generate colors for text when needed and truncate/cycle ColorManager.colors to match the number of text values. But I suspect that's missing some intended use cases and maybe not taking advantage of ColorMode, so feedback on that would be really helpful!
Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

This adds new functionality, but also breaks anyone relying on TextManager.color being a length-4 numpy array. I think it's fairly easy to make this a non-breaking change, so let me know if that's desired.
References
This partly closes #2019, though does not cover adding borders around text, which should probably handled separately and another issue should be defined.
How has this been tested?

[ ] Newly added tests that cover the new functionality pass.
[ ] All other affected tests pass.

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

Thanks for the reviews!

Can you add this an a simple example python examples/multi_color_text.py, i think will be nice to have

@sofroniewn: I actually modified the existing add_shapes_with_text.py example because a new one would be almost exactly the same as that anyway, and the use of multiple/matching text colors makes sense there. I think that example has a bug where the order of shape edge colors is permuted (as I demoed in the dev meeting yesterday), which can hopefully be fixed by updating the Shapes layer to use ColorManager like Points (which doesn't have the same bug). I'll create a separate issue and may fix that in a separate PR first.
@kevinyamauchi: some really useful points and questions. Let me try to address them.

Currently, the ColorManager instance is public at layer.text.color. We might want to make this private since a lot of the fields shouldn't really be modified by the user - especially if setting colors by properties is not yet supported.

Agreed. But I'm not sure how to do this with Pydantic in a consistent way. I read the Pydantic docs on private attributes and I think our EventedModel means that any attributes with a leading _ will be private. But I can't seem to add a validator for the private attribute and I'm not sure if it would be serialized. Any help or existing examples in napari would be helpful!

In other places, the color values for all items (e.g., points, shapes) are stored on the model. For example, when a user provides a single color to be broadcasted to all Points, upon setting the color, the full array of colors is generated and stored. Here, the broadcasting/cycling to create the array of colors is performed when the view_colors() method is called.

The main reason I cycled in view_colors() was because it was the simplest thing I could think of and that didn't require maintaining state across TextManager and ColorManager. As consistency is our long term goal, I don't think we should make things less consistent, so I'm going to try your suggestions. I think making them work well might require changing TextManager.__init__ and TextManager._set_text but that's probably a good idea anyway.

Hey @andy-sweet !

Agreed. But I'm not sure how to do this with Pydantic in a consistent way. I read the Pydantic docs on private attributes and I think our EventedModel means that any attributes with a leading _ will be private. But I can't seem to add a validator for the private attribute and I'm not sure if it would be serialized. Any help or existing examples in napari would be helpful!

My recollection is that you are right about private attributes not being serialized. When I wrote that comment, I had thought that we could add a getter method to fields, but now I can't figure out a way. I think I may have been confused with the EventedDataclass that we experimented with before @tlambert03 made the EventedModel.
In an ideal world, I think the user would be able to interact with the ColorManager. As we discussed last week, I think this is a little tricky because currently, the ColorManager needs to know about the layer properties to properly set colors as a function of the properties. Perhaps this means we need to rethink the implementation.
I think an alternate approach would be to skip the ColorManager for now if we aren't going to add setting by properties and just convert the color argument to a RGBA array and broadcast as necessary (use the number of text elements. I think this could be done either in the color validator (if the text is validated first) or using a root validator. I am happy to expand more if it's helpful (just a bit short on time at the moment)!

Mostly for my own record, here's my attempt to turn color into a private _color Pydantic field, but still capture a color input parameter in the constructor, and a public property color that exposes an array of colors.

Define a field with the name _color.
Add a keyword argument color to __init__ with a default value of None, and assign it to self._color if it's not None.
Update the Pydantic validator's decorator to use the _color field.
Add a color property with a setter that returns self._color.colors.

But this gives the following error.
../text_manager.py:16: in <module>
    class TextManager(EventedModel):
../../../utils/events/evented_model.py:79: in __new__
    cls = super().__new__(mcs, name, bases, namespace, **kwargs)
pydantic/main.py:340: in pydantic.main.ModelMetaclass.__new__
    ???
pydantic/class_validators.py:173: in pydantic.class_validators.ValidatorGroup.check_for_unused
    ???

E   ValueError: "TextManager" object has no field "color"

Based on that error message I assume you can't have property setters when extending Pydantic models. I can do the following to workaround that
    def __setattr__(self, name, value):
        if name != 'color':
            super().__setattr__(name, value)

but at that point, understanding the implementation becomes difficult and we've drifted pretty far from the intended usage of Pydantic as I understand it. Even with that change, tests still fail because I think equality checks rely on an == definition from public Pydantic fields (which I think is also true for serialization).
Any other advice/tips from more experienced Pydants would be appreciated, but I'm considering making color a broadcastable array as suggested by @kevinyamauchi until we think that ColorManager is ready to be publicly exposed.

I'm sorry I haven't fully followed this conversation, what's the challenge/goal here?  do we want .color to be a part of the model, or a private implementation detail?  do you want it serialized?  (if you want it private except for serialization, you can probably reimplement .dict() and add it?)

In my mind, these are the goals.

_color be a private field of the model that gets serialized
color be a property that exposes some simpler state of _color (e.g. a color array)

Let me try overriding .dict().

gotcha, then yeah, I'd try to make _color a private class attribute, as you have, with a @property used on access..., and then for dict do something like:
def dict(self, *args, **kwargs):
    d = super().dict(*args, **kwargs)
    d['color'] = whatever_you_want
    return d

Sorry for the long delay on this issue. I took a break from it to work on the larger properties refactor and to get some more context on this.
@tlambert03 : thanks for the tip. I tried that out, but ultimately I still think that the usage I'm describing drifts too far from the intended usage of Pydantic and ultimately just makes things confusing. Here's a trivial example that hopefully demonstrates that: https://gist.github.com/andy-sweet/e10550283c00f319fab4bab005b1afea
Even if we decide that looks OK, I think the approach I described still has issues because whenever color is modified, we need access to properties to properly update the ColorManager (as @kevinyamauchi mentioned).
At least I did learn one thing, which is that private fields do not exist in Pydantic. You can declare a private Python attribute, in which case Pydantic will not recognize that as a field, and thus will not try to validate it.
@kevinyamauchi: I tried turning TextManager.color into a numpy array as suggested (broadcasting colors to match the length of text values in a root validator), which almost worked. That approach breaks when TextManager.add/remove are called because we have to add/remove colors to keep things in sync, so the root validator will issue a warning after the first field (either color or values) is changed.
Instead of a root validator, I can add the extra values argument to the color validator and always update color after values in the implementation of TextManager. But even then I need to block the values event because it triggers a redraw when the sizes of values and colors don't match, and then manually emit it after both are updated. But then there are new problems like what happens when TextManager.set_text is called.
To summarize, I've turned this seemingly small issue into a bit of a monster, but I am struggling to see how enable this feature without doing one of the following defining new/inconsistent behavior (i.e. truncating/cycling/repeating colors to match the length of values when TextManager.view_text is called). @kevinyamauchi: if you have some other ideas, it might be best if we find some time to do some pair programming rather than add more comments here.

I still think that the usage I'm describing drifts too far from the intended usage of Pydantic and ultimately just makes things confusing. Here's a trivial example that hopefully demonstrates that

I see, so you not only want to provide some dynamic value when accessing the value, you also want to do it when setting the value (which requires a custom setattr)?  If so, then yes I agree, there's some model abuse still going on here.  Can we maybe sync up on this in person sometime?  It's still feeling overly complicated to me, but I know that I'm probably missing something.
For the example you gave in your test, it seemed like the main thing you wanted was the ability to set name on CustomModel with a simple string, while still having it be a complex NameManager object.  If that's the case, you need to tell CustomModel how to parse a simple string into an object using a pre validator:
class CustomModel(EventedModel):

    name: NameManager = 'kermit'

    @validator('name', pre=True)
    def _fix_name(cls, value):
        if isinstance(value, str):
            return {'name': value}
        return value

Thanks for the comments here. I think PR #3327 represents a better solution to this issue, so I'm going to close this PR to clean things up.


game 3 play button buggy and advances past segment ending

Clicking on the play button is buggy. It is better to click on the segment itself. Clicking it will play through to the end once, but clicking on it after that will not restart the segment once the playthrough has ended.
Also, if you play the segment all the way through the end and keep clicking on it, you get small half second portions of the recording past the end point, and could presumably keep doing that until you're at the end of the whole recording.

This is something we are working on also. Another feature related to this is adding transcript timestamp progress.


Update README.md

:white_check_mark: Build LatLongNet-SDK-dotnet 1.0.58 completed (commit https://github.com/guibranco/LatLongNet-SDK-dotnet/commit/40e2a64920 by @guibranco)


Use integration parameter for Mailgun domain

Description

Removes hidden input by using integration parameter for domain
Motivation and Context

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have read the CONTRIBUTING document.
[x] I haven't repeated the code. (DRY)
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Wrong base branch 🤦


Transform nested value only if it exists

I have a nested map:
{:services {:telephone {:cost 1                                       :line_rental {:monthly 15}}                    :broadband {:cost 12}}}
Occasionally telephone service doesn't exist. I want to update :line_rental only if the :telephone already exists. The approaches that I came up with either blew up or added the previously non-existent path to the map. Any hints?

There's two approaches you could use. The first is to check for the existence of the key before navigating to it, and the second is to make a new navigator that only navigates to the key if it already exists in the map. Both approaches are shown below:
(use 'com.rpl.specter)
(use 'com.rpl.specter.macros)

(def data
  {:services
    {:telephone
      {:cost 1
       :line_rental {:monthly 15}}
     :broadband
      {:cost 12}}})

(def data2
  {:services
    {:telephone
      {:cost 1}
     :broadband
      {:cost 12}}})

(defpath keynav [k]
  (select* [this structure next-fn]
    (if (contains? structure k)
      (next-fn (get structure k))))
  (transform* [this structure next-fn]
    (if (contains? structure k)
      (assoc structure k (next-fn (get structure k)))
      structure
      )))

;; Check for existence of key before navigating to it
(transform
  [:services
   :telephone
   (selected? :line_rental some?)
   :line_rental
   :monthly]
  inc
  data)

(transform
  [:services
   :telephone
   (selected? :line_rental some?)
   :line_rental
   :monthly]
  inc
  data2)

;; Use the new navigator that only navigates if the key already exists
(transform
  [:services
   :telephone
   (keynav :line_rental)
   :monthly]
  inc
  data)

(transform
  [:services
   :telephone
   (keynav :line_rental)
   :monthly]
  inc
  data2)

Thanks! That helped!