Add support for the dtstart field

Basically, according to the spec:

dtstart defines when a todo should/can be started.
If it's NULL, it can be considered current every day.
due defined when a todo is overdue.

To comply with this, hide todos which have a dtstart in the future by default (this is configurable).

I'm very much willing to listen to better names for the setting/flag. today is the best I could think of and sucks. started is a bit ambiguous, because started todos are those with percent_complete > 0. workable might to but is also really unintuitive.
I really prefer to keep this default, but if there's strong opposition (@untitaker?), I can revert it.
I'm inclined to remove --today since it looks superfluous (unless we revert the default).

This allows on to create far-into-the-future todos, and not have them clutter up the default view. It also makes recurring todos less painful.
Somewhat related to #184. Paves the way for #17.

I wouldn't hide todos that start in the future, but only put dtstart into the
default sort order.
On Mon, Mar 20, 2017 at 07:49:20PM -0700, Hugo Osvaldo Barrera wrote:

Basically, according to the spec:

dtstart defines when a todo should/can be started.
If it's NULL, it can be considered current every day.
due defined when a todo is overdue.

To comply with this, hide todos which have a dtstart in the future by default (this is configurable).

I'm very much willing to listen to better names for the setting/flag. today is the best I could think of and sucks. started is a bit ambiguous, because started todos are those with percent_complete > 0. workable might to but is also really unintuitive.
I really prefer to keep this default, but if there's strong opposition (@untitaker?), I can revert it.
I'm inclined to remove --today since it looks superfluous (unless we revert the default).

This allows on to create far-into-the-future todos, and not have them clutter up the default view. It also makes recurring todos less painful.
Somewhat related to #184. Paves the way for #17.
You can view, comment on, or merge this pull request online at:
https://github.com/pimutils/todoman/pull/200
-- Commit Summary --

Add support for the dtstart field
Swap start and due in the UI

-- File Changes --
M CHANGELOG.rst (2)
M tests/test_cli.py (14)
M tests/test_model.py (13)
M todoman/cli.py (13)
M todoman/confspec.ini (6)
M todoman/interactive.py (2)
M todoman/model.py (11)

-- Patch Links --
https://github.com/pimutils/todoman/pull/200.patch
https://github.com/pimutils/todoman/pull/200.diff
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/pimutils/todoman/pull/200

I just realized that the default I'd left was actually what you prefer. 😆
I've added tests to make sure we don't inadvertently change that.


Fix some weird sorting things

Guides sorting is funky because I was trying to sort both by weight and by the prefix so that we can do things like "Tech: What Is?" first then "Tech: Getting Started" next, but the "Tech" pieces would be alphabetized. That's what sortTitle was for, but it's confusing, and also doesn't solve all cases. I think we should:

[ ] Rename sortTitle to titlePrefix or something more clear about how guides are sorted
[ ] Change the box-index pages to sort by title (or weight in the case of topics) instead of sortTitle` - they end up sorting randomly otherwise
[ ] Figure out if there's a way to maybe pin guides to the front (so we can do things like make "What Is CI/CD?" the first in the list under CI/CD instead of "ArgoCD")

Removed sortTitle in https://github.com/vmware-tanzu/tanzu-dev-portal/pull/459 thankfully...

Removed sortTitle in https://github.com/vmware-tanzu/tanzu-dev-portal/pull/459 thankfully...


Subclasses of str missing iter attribute

class A(str): pass
getattr(A("abc"), '__iter__')

CPython produces <method-wrapper '__iter__' of A object at 0x00000000031584F8> (a factory for an iterator of length 3).
IronPython (release) throws AttributeError: 'A' object has no attribute '__iter__'
IronPython (debug) hits Debug.Assert(false) at PythonTypes.cs:523
Originally discovered during analysis of #955.

This got resolved by https://github.com/IronLanguages/ironpython3/pull/1088


Fix incorrect documentation links

About this change - What it does
Fixes incorrect documentation links.
Why this way
Self evident

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 75.543%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
278

Relevant Lines:
368

💛  - Coveralls


PARequest timed out.

This error has been seen in both the production and staging environment.
I suspect it has to do with the volume control that sets volume to 50% when playing the first gong and raises it to 100% for subsequent ones. It is done by a library in the player container that talks to PulseAudio in the audio container over the pulse socket. It seems to loose connection and is not able to restore it.
Effect seams to be that volume is not adjusted up and down when playing.
Library
https://github.com/balena-io-modules/balena-audio
Stack trace
https://dhamma-sobhana-f7a823593.sentry.io/share/issue/32bd5d2b3ecb4e1fb337d6ce942c854b/
[player] Playing in locations 'all'
2023-10-30T17:18:05+01:00  player  This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
2023-10-30T17:18:05+01:00  player  Error: PARequest timed out.
2023-10-30T17:18:05+01:00  player      at Timeout._onTimeout (/usr/src/app/node_modules/@tmigone/pulseaudio/build/request.js:15:28)
2023-10-30T17:18:05+01:00  player      at listOnTimeout (node:internal/timers:559:17)
2023-10-30T17:18:05+01:00  player      at processTimers (node:internal/timers:502:7)
2023-10-30T17:18:10+01:00  player  [player] Stopping playback

This issue has not been seen since the bug was reported. Hopefully it was solved by testing connection to Audio block before volume call as well as setting subToEvents to false when instantiating the Audio block.
See commit: https://github.com/Dhamma-Sobhana/gong/commit/2f1674f2c629eb3bcc6b7328aa75a60193463ec4
Reopen this issue if problem reappears.


Fixes

@GeniusGeeek
Renamed the variables in the examples in the new commit.

Noted

Thanks for your valid contribution


Fix embedding weights for NMT's datatype

Currently the embedding weights are not convert to the same datatype.

Thank you for the PR and sorry for delay responding. Close this PR since the converter is refined.


GH1727: Corrected documentation for XmlPeek alias

Fixes #1727

@gep13  your changes have been merged, thanks for your contribution 👍

Woot! I contributed! 👍


Windows Project Configuration docs out of date

Hi there, I was using this document to familiarize myself with push notifications on Windows phones, and I ran into an issue with the documentation.
On step number 6 under the subheader "Register your Windows app for push notifications with Windows Notification Service (WNS)", when navigating to the link specified by "Live Services site", I was given an error, telling me that the application no longer exists or is no longer associated with my account. I verified with other members of my organization that they are receiving a similar message when they attempt to follow the same steps, despite having navigated from the app I associated with the Microsoft store. The error information is as follows:
Error Info:  Wed, 31 Jul 2019 20:58:20 GMT | AYg0p | 9OSRS
I also notice that the portal where the Application Secret and Package SID can be located has been deprecated and directs the user to the Azure portal. It's unclear to me how app registrations in the Azure portal correspond to the app the user associates with the Windows store in steps 1-4. How can I find my app's Application Secret and Package SID? Thanks in advance for the help!

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

ID: 6f503e37-b16e-c92c-8668-313428451053
Version Independent ID: edc66d3e-bf88-3c4d-a148-6288a7022f16
Content: Add push notifications to your Xamarin.Forms app
Content Source: articles/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push.md
Service: app-service-mobile
GitHub Login: @elamalani
Microsoft Alias: emalani

Hi @pmullins-ewn, thank you for the detailed question. We are currently investigating and will update you when we have accurate information to provide.

@pmullins-ewn,  Upon further review we feel your feedback would be best received by the doc author to determine if an update to the current doc is necessary, or to create a new doc if they align with the feedback.

@pmullins-ewn Please check out App Center for setting up Push notifications in your Windows app.
https://docs.microsoft.com/en-us/appcenter/push/
As mentioned at the start of this doc, App Center is investing in new and integrated services central to mobile app development and it supports Push service for use.

Thanks for the feedback, I'll give the App Center a go.

The content in question is no longer under support. #please-close


feat:Splitting website data

What type of PR is this?
What this PR does / why we need it
Which issue(s) this PR fixes
Special notes for your reviewer

@bjwswang 封装了一个AsyncPlaywrightLoader进行web数据爬取。


How put my own inference logic

Thanks for your work. I have chat logic with my own code. For example I must use Azure Open AI. How I could incluye My own inference logic in some class using the raptor methodogy?

Hey! You can define your own inference code by defining your custom SummarizationModel, QAModel, and Embedding model. We have a tutorial for this available here.

Thanks, that is true. The library is very flexible. Maybe should be good idea make simple examples of this.


Docker caching not working

It appears that docker caching isn't working. To reproduce, scale down your builder stack to 1 host, and then run a docker build step a few times. Steps aren't cached.
https://github.com/buildkite-plugins/docker-compose-buildkite-plugin/blob/master/hooks/commands/build.sh#L22

Closed by #24

Is caching enabled only if cache-from is specified?
All our builds do not reuse any cached step.
This is my config:
steps:
  - plugins:
      docker-compose#v2.5.1:
        run: ci

If you run jobs on the same agents, then most of your docker layers should be cached, if you’ve configured your Dockerfile and .dockerignore correctly.
For maximum caching/speed we recommend a builder agent or two, which doesn’t scale down, and to use the build step in this plugin.

If you’re still having troubles though @badosu, email support with all the details of your setup and we’ll help you out!

I'll hit support, thanks!


Vulnerability roundup 110: gpac-1.0.1: 34 advisories [7.8]

search, files

[ ] CVE-2021-36417 CVSSv3=7.8 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40568 CVSSv3=7.8 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40570 CVSSv3=7.8 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40571 CVSSv3=7.8 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40574 CVSSv3=7.8 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40559 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40562 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40563 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40564 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40565 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40566 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40567 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40569 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40572 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40573 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40575 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-40576 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-45288 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-45289 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-45291 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-45292 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-45831 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46038 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46039 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46040 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46041 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46042 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46043 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46044 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46045 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46046 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46047 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46049 CVSSv3=5.5 (nixos-21.11, nixos-unstable)
[ ] CVE-2021-46051 CVSSv3=5.5 (nixos-21.11, nixos-unstable)

CVE details
CVE-2021-36417
A heap-based buffer overflow vulnerability exists in GPAC v1.0.1 in the gf_isom_dovi_config_get function in MP4Box, which causes a denial of service or execute arbitrary code via a crafted file.
CVE-2021-40568
A buffer overflow vulnerability exists in Gpac through 1.0.1 via a malformed MP4 file in the svc_parse_slice function in av_parsers.c, which allows attackers to cause a denial of service, even code execution and escalation of privileges.
CVE-2021-40570
The binary MP4Box in Gpac 1.0.1 has a double-free vulnerability in the avc_compute_poc function in av_parsers.c, which allows attackers to cause a denial of service, even code execution and escalation of privileges.
CVE-2021-40571
The binary MP4Box in Gpac 1.0.1 has a double-free vulnerability in the ilst_box_read function in box_code_apple.c, which allows attackers to cause a denial of service, even code execution and escalation of privileges.
CVE-2021-40574
The binary MP4Box in Gpac 1.0.1 has a double-free vulnerability in the gf_text_get_utf8_line function in load_text.c, which allows attackers to cause a denial of service, even code execution and escalation of privileges.
CVE-2021-40559
A null pointer deference vulnerability exists in gpac through 1.0.1 via the naludmx_parse_nal_avc function in reframe_nalu, which allows a denail of service.
CVE-2021-40562
A Segmentation fault caused by a floating point exception exists in Gpac through 1.0.1 using mp4box via the naludmx_enqueue_or_dispatch function in reframe_nalu.c, which causes a denial of service.
CVE-2021-40563
A Segmentation fault exists casued by null pointer dereference exists in Gpac through 1.0.1 via the naludmx_create_avc_decoder_config function in reframe_nalu.c when using mp4box, which causes a denial of service.
CVE-2021-40564
A Segmentation fault caused by null pointer dereference vulnerability eists in Gpac through 1.0.2 via the avc_parse_slice function in av_parsers.c when using mp4box, which causes a denial of service.
CVE-2021-40565
A Segmentation fault caused by a null pointer dereference vulnerability exists in Gpac through 1.0.1 via the gf_avc_parse_nalu function in av_parsers.c when using mp4box, which causes a denial of service.
CVE-2021-40566
A Segmentation fault casued by heap use after free vulnerability exists in Gpac through 1.0.1 via the mpgviddmx_process function in reframe_mpgvid.c when using mp4box, which causes a denial of service.
CVE-2021-40567
Segmentation fault vulnerability exists in Gpac through 1.0.1 via the gf_odf_size_descriptor function in desc_private.c when using mp4box, which causes a denial of service.
CVE-2021-40569
The binary MP4Box in Gpac through 1.0.1 has a double-free vulnerability in the iloc_entry_del funciton in box_code_meta.c, which allows attackers to cause a denial of service.
CVE-2021-40572
The binary MP4Box in Gpac 1.0.1 has a double-free bug in the av1dmx_finalize function in reframe_av1.c, which allows attackers to cause a denial of service.
CVE-2021-40573
The binary MP4Box in Gpac 1.0.1 has a double-free vulnerability in the gf_list_del function in list.c, which allows attackers to cause a denial of service.
CVE-2021-40575
The binary MP4Box in Gpac 1.0.1 has a null pointer dereference vulnerability in the mpgviddmx_process function in reframe_mpgvid.c, which allows attackers to cause a denial of service. This vulnerability is possibly due to an incomplete fix for CVE-2021-40566.
CVE-2021-40576
The binary MP4Box in Gpac 1.0.1 has a null pointer dereference vulnerability in the gf_isom_get_payt_count function in hint_track.c, which allows attackers to cause a denial of service.
CVE-2021-45288
A Double Free vulnerability exists in filedump.c in GPAC 1.0.1, which could cause a Denail of Service via a crafted file in the MP4Box command.
CVE-2021-45289
A vulnerability exists in GPAC 1.0.1 due to an omission of security-relevant Information, which could cause a Denial of Service. The program terminates with signal SIGKILL.
CVE-2021-45291
The gf_dump_setup function in GPAC 1.0.1 allows malicoius users to cause a denial of service (Invalid memory address dereference) via a crafted file in the MP4Box command.
CVE-2021-45292
The gf_isom_hint_rtp_read function in GPAC 1.0.1 allows attackers to cause a denial of service (Invalid memory address dereference) via a crafted file in the MP4Box command.
CVE-2021-45831
A Null Pointer Dereference vulnerability exitgs in GPAC 1.0.1 in MP4Box via __strlen_avx2, which causes a Denial of Service.
CVE-2021-46038
A Pointer Dereference vulnerability exists in GPAC 1.0.1 in unlink_chunk.isra, which causes a Denial of Service (context-dependent).
CVE-2021-46039
A Pointer Dereference Vulnerabilty exists in GPAC 1.0.1 via the shift_chunk_offsets.part function, which causes a Denial of Service (context-dependent).
CVE-2021-46040
A Pointer Dereference Vulnerabilty exists in GPAC 1.0.1 via the finplace_shift_moov_meta_offsets function, which causes a Denial of Servie (context-dependent).
CVE-2021-46041
A Segmentation Fault Vulnerability exists in GPAC 1.0.1 via the co64_box_new function, which causes a Denial of Service.
CVE-2021-46042
A Pointer Dereference Vulnerability exists in GPAC 1.0.1 via the _fseeko function, which causes a Denial of Service.
CVE-2021-46043
A Pointer Dereference Vulnerability exits in GPAC 1.0.1 in the gf_list_count function, which causes a Denial of Service.
CVE-2021-46044
A Pointer Dereference Vulnerabilty exists in GPAC 1.0.1via ShiftMetaOffset.isra, which causes a Denial of Service (context-dependent).
CVE-2021-46045
GPAC 1.0.1 is affected by: Abort failed. The impact is: cause a denial of service (context-dependent).
CVE-2021-46046
A Pointer Derefernce Vulnerbility exists GPAC 1.0.1 the gf_isom_box_size function, which could cause a Denial of Service (context-dependent).
CVE-2021-46047
A Pointer Dereference Vulnerability exists in GPAC 1.0.1 via the gf_hinter_finalize function.
CVE-2021-46049
A Pointer Dereference Vulnerability exists in GPAC 1.0.1 via the gf_fileio_check function, which could cause a Denial of Service.
CVE-2021-46051
A Pointer Dereference Vulnerability exists in GPAC 1.0.1 via the Media_IsSelfContained function, which could cause a Denial of Service. .

Scanned versions: nixos-21.11: 3ddd960a3b5; nixos-unstable: 5aaed40d22f.
Cc @bluescreen303
Cc @mgdelacroix

See also: #142974, #138671, #133957, #124632

We no longer support nixos-21.11, but all of these have been fixed in the currently supported NixOS versions:

nixos-22.05: gpac-2.0.0
nixos-unstable: gpac-2.0.0


ClassVar set to elipsis should be required by daughter classes

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
Currently
Running this raises no errors:
import abc

from pydantic import BaseModel
from typing import ClassVar

class AbstractModel(BaseModel, abc.ABC):
    required_class_var: ClassVar[str] = ...

class MyModel(AbstractModel):
    against_the_world: str = "forgot_to_define_required_class_var"

Proposal
This should raise an error:
class MyModel(AbstractModel):
    against_the_world: str = "forgot_to_define_required_class_var"

This is should be OK:
class MyModel(AbstractModel):
    required_class_var: str = "defined!"

This is also should be OK:
class MyModel(AbstractModel, abc.ABC)):
    this_var: str = "procastrinates"

Affected Components

[ ] Compatibility between releases
[ ] Data validation/parsing
[ ] Data serialization - .dict() and .json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[X] Other Model behaviour - construct(), pickling, private attributes, ORM mode
[ ] Settings Management
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

Please can you update your issue to be clearer about what the current behaviour is and what you're proposing.
Also, is there any recommendation on this from the standard lib or a PEP?

Please can you update your issue to be clearer about what the current behaviour is and what you're proposing.

Done.

Also, is there any recommendation on this from the standard lib or a PEP?

No, do you think it should? To me, it makes sense considering pydantic.Fields act this way with elipsis.

Makes sense to me, only problem is we might remove use of abc in V2 due to https://github.com/python/cpython/issues/92810

Makes sense to me, only problem is we might remove use of abc in V2 due to python/cpython#92810

So no more abstract classes in pydantic? What? :cry:

we'll definitely support abstract classes, we just might not use the abc module.
But if there's a good reason to stick with abc, we can just override __isinstance__.

Great! I have no particular attachment to abc, just translate the behaviour above to the new way in v2.

@samuelcolvin Is there any other way in pydantic currently that allows base classes to require a subclass to implement a class attribute? If not, I'm open to owning the PR that would resolve this issue.

@samuelcolvin ^?

@dlqqq this is a way you can make base classes require subclasses implement a class attribute:
import abc

from pydantic import BaseModel
from typing import ClassVar

class AbstractModel(BaseModel, abc.ABC):
    required_class_var: ClassVar[str] = ...

    def __init_subclass__(cls, **kwargs):
        super().__init_subclass__(**kwargs)
        if cls.required_class_var is ...:
            raise TypeError(f"{cls.__name__} must define required_class_var")

class MyGoodModel(AbstractModel):
    required_class_var: ClassVar[str] = "okay"

    not_required_class_var: str = "not okay"

class MyBadModel(AbstractModel):
    not_required_class_var: str = "not okay"

#> TypeError: MyBadModel must define required_class_var

If you want this done more automatically by pydantic, that would require a pull request.

From a type checking perspective, the ellipsis has no meaning, so a simple annotation without any assignments can be used.
One question related to this: what if a subclass of MyModel sets the class variable? pyright does not complain about the provided code snippet unless @final is used on MyModel (playground).

Considering:

One question related to this: what if a subclass of MyModel sets the class variable? pyright does not complain about the provided code snippet unless @final is used on MyModel (playground).

I think this would be only viable to be enforced if the class is marked as @final, otherwise this would be too opinionated. However, final classes are only introspectable in 3.11 unless typing_extensions.final is used.
For this reason, and the fact that as David mentioned this can be implemented pretty easily in user code to better fit specific needs (whether the ellipsis should be used/the class should be marked as final), I'll close as not planned.


Rustfix does not work when using a workspace

When using rustfix in a workspaced project it fails to apply the correct fixes and gives an IO error.

Rustup is not currently aware of workspaces at all. We should make sure it does something useful, and then probably also add some features to let users decide which workspace member to run it on.

I think this was fixed in https://github.com/rust-lang-nursery/rustfix/pull/66, so closing


feature request : support octotree alike layout

Is it remotely possible to have built-in support for features like https://www.octotree.io/ ?
octotree supports both github and gitlab, it's a for-profit company so it's impossible for them to consider gitea.
this feature makes browsing code super easy, considering we read more code than writing them these days, features like this will be a huge plus and can make gitea really stand out.

More details in

https://github.com/go-gitea/gitea/issues/18192


Set python package version explicitly and expose in package

The cog python package sets version metadata but this has never been updated:
In [1]: from importlib.metadata import version

In [2]: version('cog')
Out[2]: '0.0.1'

In addition, there's no __version__ property on the package. This isn't essential but it would be nice to have this too:
In [3]: import cog

In [4]: cog.__version__
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [4], line 1
----> 1 cog.__version__

AttributeError: module 'cog' has no attribute '__version__'

It would be really nice to do this in a way that:

returns the same version from both of the above
returns the tagged version in tagged builds (e.g. 0.3.4)
appends git metadata when not on a tagged build (e.g. 0.3.4-dev+630e696)

Some prior art for the fetching version from git bit of this (note that this is from a repo that doesn't have a need for tagged builds): https://github.com/hypothesis/h/blob/main/h/_version.py

Some other prior art for how this is done in the replicate Python client: https://github.com/replicate/replicate-python/commit/6ffed387d6616fecb5e6e439de671fe87d903c3f


Fixed deprecated install step

After attempting to build with the master branch of zig, there was an error indicating that exe.install() is deprecated.

Thanks!


See this question on SO, it could be solved easier maybe? :
dat = df.groupby("cyl")
aggs = [dat.select_columns("*p").mean(), dat.select_columns("*t").sum()]
pd.concat(aggs, axis=1)

with this, users can build functions and concatenate, while still being performant, and obviating the need for #1225


Add initial new audio

It looks interesting? what is it going to do?

The main reason is to remove my old messy code (to add a new messier one (:), maybe make it compatible with various backends such as GStreamer, to try to implement a canonical resampler (yours works almost all the time, actually) or use SoX, and to try one experimental thing with varying audio frame duration of WebRTC Opus. Not to wait for 20ms of audio from the emulator, just send ASAP all the audio stretched to the nearest allowed by Opus audio frame duration. That's also could be related to the old Firefox bug with audio distortion of not 20ms audio frames.

The original resampler is broken for 2.5,5,40...ms frame durations.


Crash when Throwing yoyo (specifically tinkers ones)

crash log?

crash-2019-07-24_09.57.40-client.txt
i think this one is it

This is not an issue on the latest version of tinkers' construct. It can be solved by updating


NamedTuple style Models (immutable instances, _replace method, etc)

To support immutable data structures there will need to be some slight tweaks to the BaseModel:
you cannot override the constructor, and would not want to, as there should be a type safe way to construct instances. Will need a staticmethod: eg parse.
from datetime import datetime
from typing import NamedTuple
from pydantic import ImmutableModel

class UserModel(ImmutableModel, NamedTuple):
    id: int = ...
    name = 'John Doe'
    signup_ts: datetime = None

external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22'}
user = UserModel.parse(**external_data)
print(user)
# > UserModel id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22)
print(user.id)
# > 123
print(user[0])
# > 123
print(user._replace(name='foo'))
# > UserModel id=123 name='foo' signup_ts=datetime.datetime(2017, 6, 1, 12, 22)

can you give some more details.

@samuelcolvin added some more details

Not a complete solution, but _replace is already available via setattr.
As the docstring says this was preferable to overriding __setattr__ as that caused a significant performance decrease.
I'd be happy to consider making models immutable if there's a way which doesn't effect (or improves) performance and doesn't effect the simple & main use case of pydantic: define a class with some fields, initialise it with data. Done.

@samuelcolvin _replace is different from setattr because setattr mutates the model in place.
ImmutableModel would be an alternative API available for users who want to program more pedantically.

closed via #44


Passwords with '=' in them fail when passed by DSN

I can't authenticate when the password has an = in it, using Schema::load

This is easy enough to fix (and I'll get a pull request in for that shortly) but it does raise another question.
Do we want to worry about being able to have semicolons in passwords? Because at the moment, there's simply no way to have a literal semicolon in a DSN.

Fixed with urlencoding and better equals handling


[Question] token limit settings on model's performance

❓ General Questions

I tried the vicuna models on android platform with max-seq-len of 768 , 1000, and 2048. Compared to 768 version, it appeared that the prefill token speed of 1000 and 2048 version both are lowered tremendously from 14 token/s to 3 token/s. My question is why the 1000 token limit version had such a huge performance downgrade compared to 768 token limit version. Thanks!

It should not influence the performance if memory is enough. What's the memory size of your device?
One possible reason is that the android system uses swap when the program is out of memory

It should not influence the performance if memory is enough. What's the memory size of your device?
One possible reason is that the android system uses swap when the program is out of memory

The memory should be enough for a 12gb device. It is weird that a slight increase of 768 token to 1000 token will limit the model's performance this much. I wonder if memory is not the issue that causes this problem.


Added DockerHost to support containerized hosts

DockerHost
This PR adds a new class DockerHost to examples/dockerhost.py that allows running arbitrary docker containers as network hosts in the mininet emulation.
This extension is designed to require minimal modification of the existing codebase and should not require Docker to be installed on the system if DockerHost is not used.
The basic idea of DockerHost is to start a new container via the Docker python package, find out it's PID and to spawn a new shell with mnexec while entering all namespaces used by Docker containers with setns. This design allows most of mininets code to remain unchanged, unlike the approach chosen by the team of Containernet.
The docker image should have iproute2 and a shell installed. The widely used image alpine works out of the box. Ubuntu would need some modifications as seen below:
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y --no-install-recommends \
    iputils-ping \
    iproute2 \
    iperf \
    && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/bin/bash"]

See examples/test/test_dockerhost.py for a working usage example.
Changelog
Changes in examples/dockerhost.py:

added class DockerHost

Changes in examples/test/test_dockerhost.py:

added test module for class DockerHost

Changes in mininet/util.py:

modified makeIntfPair to run the command for creating veth pairs
in global namespace (before that, this command was issued in the
first node which would need to find PID namespaces of the second
node, which should be avoided for DockerHost)

Changes in mnexec.c:

added new input argument -e that allows entering all namespaces
used by docker containers (pid, ips, uts, net, mnt)

Changes in .travis.yml:

added global installation of the docker python package which is
needed for pylint and some checks to run successfully

Comment
This is an updated version of PR #885 which got a bit messy because I had a hard time to get it through the Travis pipeline. This happened because the docker python package was never found (it was installed in the local virtualenv but not globally).

Yeah, it is annoying that the root travis environment is different from the user environment.

I have incorporated your suggestions 0-4 and updated this pull request accordingly.
To change mnexec as done in servernode is not a good idea in my opinion because it makes the CLI interface very confusing. Consider the option for entering PID namespaces -P --- it would need to be upper case because -p is already assigned but serves a very similar purpose as -n, which is lower case and also implying -m --- not a very good design I think. But in the end I slightly changed the help text to eliminate any connection with docker ('-e' is very general after all).

Aha, this is looking better!
I'm puzzled by the changes to util.py - it seems they don't belong in this PR.
I haven't looked at servernode in a while - I think that I also wanted -P, not sure why it is something else haha! It's almost certain there is a better version somewhere. I will check it out when I get the chance.

Concerning util.py:
Assume you have two nodes with PIDs 6612 and 6613. The first node is an emulated host and the second one is a switch.
To create a connection between the two, makeIntfPair would run the command ip link add name h1-eth0 type veth peer name s1-eth0 netns 6113 inside the network namespace of PID 6612. Therefore node1 needs to have access to the root PID namespace to find PID 6613.
When using containers with full encapsulation as realized with DockerHost, node1 won't find PID 6613 because it only can see processes running inside its container. To solve this, I modified makeIntfPair to run the command ip link add name h1-eth0 netns 6612 type veth peer name s1-eth0 netns 6613 instead, which would be done in the root PID namespace using errRun.
As you see, this modification is absolutely necessary and was not introduced for iproute2 compatibility.
Concerning mnexec.c:
I haven't thought about unifying -a and -e before, but to evaluate this idea, I just created the branch dev-mnexec-merge, removed all the 'legacy' code of -a and replaced it with my new solution for -e. The tests went through without errors which makes me confident that the two options could be unified.
It somewhat depends on CpuLimitedHost and X11-tunneling in term.py having proper test routines as these are the only places I know of, where -a was used.

Ah of course; it wasn't immediately obvious because it was next to the iproute2 change. I think this is probably fine, although looking at it we might be able to improve it a bit.
I am thinking that we should revise mnexec to support servernode as well as dockerhost (and things like it) in the future. I haven't had much time to think about it, but as I recall -a was intended to attach to a Mininet host, so that means we want to attach to all of its namespaces (or possibly chroot if mount namespaces don't work properly for some reason, as I recall they didn't for certain ubuntu/debian releases.)

@lantz Hi Mr. Lantz. I am currently also working on a project that adds more heavy-weight node types like Docker containers for some NFV applications. But I agree with your idea that these things are not meaningful for the mainline Mininet for SDN emulations and meet some special requirements of some applications. So I did not fork the Mininet and just add these features by sub-classing minimum classes in my own Repo (As recommended in SIGCOMM/Mininet Hackerthoon ).  It just provides a Mininet extension for specific use-cases and keep the mainline Mininet elegant and minimal.
I have faced the same issue of makeIntPair in the util.py explained by Mr.Ziegler. And this issue is difficult to fix without modifying the util.py or fork (I want to avoid this). Could it be possible to just merge the change in util.py into mainline Mininet ? It does not have negative impacts on functionalities of current Mininet. Thanks so much for your help.

As mentioned in PR #887 the iproute2 issue has been fixed lately and I therefore removed the temporary workaround from this PR.

Why hasn't this been merged yet?!
I have had to use containernet for the last couple of years which is a mess (sorry)! I stumbled on @patrickziegler 's pull request by accident and have to say that I find his solution quite elegant. I think there are a lot of people who would love this feature! Please integrate asap :)

Any recent work on this? It seems very useful.

I really have no idea why this was not merged back then.


JS GIPHY API call amendments

currently the API call only looks at trending - there's no input into the URL from the user

also needs modification for only 4 GIFs to be pulled - either that, or pull the max then we write code to randomly select from the list


This fixes #99

Changes core:name from an ObjectProperty to a DataProperty. Changes observerable:name IRI to observable:sectionName.
THESE WERE THE ONLY CHANGES made by rhohimer, however, the default namespace of the core.ttl file was changed from "core:" to ":" by the rdftoolkit.

This still has the issue of rdf-toolkit changing the prefix from core: to :
It may be that we have to contribute to the rdf-toolkit source code to fix this issue. Frankly, I just don't have the time or resources.

core:id was not touched by me in this modification. Nor were the class definitions for Identity, MarkingDefintion, or Identifier.


Test form reminder 2

test 2

Hey! I see that you made changes to our Form component. Make sure to update the docs in FORMS.md accordingly. Cheers!

Testing. Closing.


Corrected creative common message in hindi

Fixes #1124
Changes:
Corrected translation of creative common use & code of conduct message in hindi version of website.
Screenshots of the change:

Looks good. Thanks!


Add retention TTL to sensitive request fields

From OpenAI's API data usage policy:

Any data sent through the API will be retained for abuse and misuse monitoring purposes for a maximum of 30 days, after which it will be deleted (unless otherwise required by law).

Helicone retains all request data at the moment, and this is totally understandable if you wish to debug issues or tune your model. However, if you are developing an application where end-users could potentially send sensitive data to the Helicone API, it would be best to be able to tell users "your request data will be deleted automatically in x time" or immediately, with no TTL.
This setting would be fine to set account-wide, or on messages with a certain header such as sensitive: true.
Helicone has a distinct advantage in being able to track costs per user, model, key etc, but tracking the actual messages themselves may not be necessary. This could also be implemented as a "metadata only mode" where only the following fields are kept:

time
total tokens
user
model

This is such a feature request @DragonStuff thanks

Added to our roadmap


WildFly 19 configuration

Hello,
is there any tutorial or guide to configure the jdbc trace for WildfFly or any other application server without touching the application or the JPA persistent unit?
Our application is in JTA mode so we configure the datasource in the application server but we don't instantiate it directly.
In the source folder I have not seen any class specific for MSSQL, could it be an issue?
Thanks for your attention.

there is no tutorial, but probably you can load TracingDriver jar and change jdbc url to start with jdbc:tracing:.
but unfortunately I cannot help on this.


Support Hoster: clicknupload.org

I wrote an email to ask for the premium api and a developer/test account


Link 3rd-party stylesheets and JavaScript files via CDN

Instead of including the files with chaise, we should let a CDN host it for us to improve site speed, especially for popular tools on popular CDNs — like using Google's hosted jQuery.

I would disagree with making our sites have an unnecessary run-time
dependency which we do not control nor sub-contract.
If we really have an optimization goal for a remote client where the
CDN-based cache helps dramatically, we would need to consider how to
apply the CDN benefit to all our real science assets as part of the
solution.  I don't think a few JS libraries or other static files are
worth targeting on their own.
But, if these static assets are a substantial part of the request
latency, we should consider how to solve that from our own hosted
copies. For example: minification, pre-compressed encodings, removing
gratuitous asset references, combining many small assets into a few
larger ones, or introducing asynchronous prefetching so the UX does
something useful prior to fetching everything.

Hmm I didn't think about the dependency control thing :disappointed:
Actually, I was looking at PageSpeed Insights to see how we could speed up Chaise, and its suggestions overlap with a lot of your suggestions as well. Perhaps we could use PageSpeed like a checklist?


Python related tests fail with python 3.13

Steps to reproduce

Install python 3.13
./configure.sh --with-features=huge --enable-python3interp=yes --with-python3-command=which python3.13`
make
cd src/testdir
make test_python3
make test_pyx3

Expected behaviour
All tests should pass.
Version of Vim
9.1.0771
Environment
Operating system: Gentoo linux x64
Terminal: st
TERM: xterm-256color
shell: zsh 5.9
Logs and stack traces
### `test_python3` failures

13 FAILED:
Found errors in Test_Catch_Exception_Message():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_Catch_Exception_Message line 4: Pattern '^Vim(.*):RuntimeError: TEST$' does not match 'Vim(py3):\e[1;35mRuntimeError\e[0m: \e[35mTEST\e[0m'
Found errors in Test_py3do():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[37]..AssertException line 9: Pattern 'Vim(py3do):NameError: name ''non_existing_cmd'' is not defined' does not match 'Vim(py3do):\e[1;35mNameError\e[0m: \e[35mname ''non_existing_cmd'' is not defined\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[39]..AssertException line 9: Pattern 'Vim(py3do):Exception: test' does not match 'Vim(py3do):\e[1;35mException\e[0m: \e[35mtest\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[41]..AssertException line 9: Pattern 'Vim(py3do):SyntaxError: invalid syntax' does not match 'Vim(py3do):failed to run the code'
Found errors in Test_python3_buffer():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[21]..AssertException line 9: Pattern 'Vim(py3):ValueError: slice step cannot be zero' does not match 'Vim(py3):\e[1;35mValueError\e[0m: \e[35mslice step cannot be zero\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[23]..AssertException line 9: Pattern 'Vim(py3):ValueError: slice step cannot be zero' does not match 'Vim(py3):\e[1;35mValueError\e[0m: \e[35mslice step cannot be zero\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[25]..AssertException line 9: Pattern 'Vim(py3):TypeError: index must be int or slice, not dict' does not match 'Vim(py3):\e[1;35mTypeError\e[0m: \e[35mindex must be int or slice, not dict\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[27]..AssertException line 9: Pattern 'Vim(py3):TypeError: index must be int or slice, not dict' does not match 'Vim(py3):\e[1;35mTypeError\e[0m: \e[35mindex must be int or slice, not dict\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[31]..AssertException line 9: Pattern 'Vim(py3):ValueError: slice step cannot be zero' does not match 'Vim(py3):\e[1;35mValueError\e[0m: \e[35mslice step cannot be zero\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[33]..AssertException line 9: Pattern 'Vim(py3):ValueError: slice step cannot be zero' does not match 'Vim(py3):\e[1;35mValueError\e[0m: \e[35mslice step cannot be zero\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[42]..AssertException line 9: Pattern 'Vim(py3):IndexError: line number out of range' does not match 'Vim(py3):\e[1;35mIndexError\e[0m: \e[35mline number out of range\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[46]..AssertException line 9: Pattern 'Vim(py3):TypeError: expected bytes() or str() instance, but got int' does not match 'Vim(py3):\e[1;35mTypeError\e[0m: \e[35mexpected bytes() or str() instance, but got int\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[150]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[152]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[154]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[156]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[158]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[160]..AssertException line 9: Pattern 'Vim(py3):vim.error: Vim:E21: Cannot make changes, ''modifiable'' is off' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mVim:E21: Cannot make changes, ''modifiable'' is off\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[177]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[181]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[183]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[187]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[189]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[191]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[193]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[195]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[197]..AssertException line 9: Pattern 'Vim(py3):vim.error: attempt to refer to deleted buffer' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mattempt to refer to deleted buffer\e[0m'
Found errors in Test_python3_chdir():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_chdir[31]..AssertException line 9: Pattern 'Vim(py3):TypeError:' does not match 'Vim(py3):\e[1;35mTypeError\e[0m: \e[35mchdir: path should be string, bytes, os.PathLike or integer, not NoneType\e[0m'
Found errors in Test_python3_dict():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_dict[2]..AssertException line 9: Pattern 'Vim(py3):SystemError: \\(<built-in function eval> returned NULL without setting an \\(error\\|exception\\)\\|error return without exception set\\)' does not match 'Vim(py3):\e[1;35mSystemError\e[0m: \e[35m<built-in function eval> returned NULL without setting an exception\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_dict[6]..AssertException line 9: Pattern 'Vim(py3):SystemError: \\(<built-in function eval> returned NULL without setting an \\(error\\|exception\\)\\|error return without exception set\\)' does not match 'Vim(py3):\e[1;35mSystemError\e[0m: \e[35m<built-in function eval> returned NULL without setting an exception\e[0m'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_dict[19]..AssertException line 9: Pattern 'Vim(py3):KeyError: ''c''' does not match 'Vim(py3):\e[1;35mKeyError\e[0m: \e[35m''c''\e[0m'
Found errors in Test_python3_dict_extend():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_dict_extend[24]..AssertException line 9: Pattern 'Vim(py3):vim.error: dictionary is locked' does not match 'Vim(py3):\e[1;35mvim.error\e[0m: \e[35mdictionary is locked\e[0m'
Found errors in Test_python3_iter_ref():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0
Found errors in Test_python3_opts():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_opts[408]..AssertException line 9: Pattern 'Vim(let):ValueError: empty keys are not allowed' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_pyeval():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_pyeval[19]..AssertException line 9: Pattern 'Vim(let):NameError: name ''undefined_name'' is not defined' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_range2():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[9]..AssertException line 9: Pattern 'Vim(let):IndexError: line number out of range' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[31]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.range'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_tabpage():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[6]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[8]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_window():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_window[18]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted window' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_vim_function():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_vim_function[23]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.function'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'

test_pyx3 failures
1 FAILED:
Found errors in Test_Catch_Exception_Message():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_Catch_Exception_Message line 4: Pattern '^Vim(.*):RuntimeError: TEST$' does not match 'Vim(pyx):\e[1;35mRuntimeError\e[0m: \e[35mTEST\e[0m'

Some of these tests fail because python 3.13 now uses ansii escape sequences to colour the stack traces by default.
https://docs.python.org/3.13/whatsnew/3.13.html says

Color support in the new interactive interpreter, as well as in tracebacks and doctest output. This can be disabled through the PYTHON_COLORS and NO_COLOR environment variables.

After exporting PYTHON_COLORS=0, the results are better. test_pyx3 passes. test_python3 has fewer errors:
9 FAILED:
Found errors in Test_py3do():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[41]..AssertException line 9: Pattern 'Vim(py3do):SyntaxError: invalid syntax' does not match 'Vim(py3do):failed to run the code'
Found errors in Test_python3_buffer():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[181]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[191]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_iter_ref():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0
Found errors in Test_python3_opts():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_opts[408]..AssertException line 9: Pattern 'Vim(let):ValueError: empty keys are not allowed' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_pyeval():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_pyeval[19]..AssertException line 9: Pattern 'Vim(let):NameError: name ''undefined_name'' is not defined' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_range2():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[9]..AssertException line 9: Pattern 'Vim(let):IndexError: line number out of range' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[31]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.range'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_tabpage():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[6]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[8]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_window():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_window[18]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted window' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_vim_function():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_vim_function[23]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.function'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
make: *** [Makefile:70: test_python3] Error 1

I'll continue figuring out what's wrong with the tests and report whatever I find.

Second group of tests is about how v:exception from py3eval or py3do is populated.
The actual error looks the same to the user. For example:
:py3do {lambda}
  File "<string>", line 2
    {lambda}
           ^
SyntaxError: invalid syntax
failed to run the code

Vim with python3.12 passes this assertion:
https://github.com/vim/vim/blob/master/src/testdir/test_python3.vim#L1819
With python3.13, inside AssertException, save_exception has the value of the last line, not the line with SyntaxError.
While the above example is with :py3do thing, expressions like :let x = py3eval('thing') behave in the same way.

Oh boy...

command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0

That one is going to be fun! Turned out vim.buffer at the start has the ref count of UINT_MAX, which suggests it is an immortal object.
Then incref for the iterator does its thing and then old minus new refcount is 0 - UINT_MAX == 0.
Now why does vim.buffers suddenly have UINT_MAX refcount at the start, I don't know.
CPython talks about immortality here:
https://github.com/python/cpython/blob/main/Include/refcount.h#L24-L35

Oh boy...

command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0

That one is going to be fun! Turned out vim.buffer at the start has the ref count of UINT_MAX, which suggests it is an immortal object.
Then incref for the iterator does its thing and then old minus new refcount is 0 - UINT_MAX == 0. Now why does vim.buffers suddenly have UINT_MAX refcount at the start, I don't know. CPython talks about immortality here: https://github.com/python/cpython/blob/main/Include/refcount.h#L24-L35

After a long session or poring over python source code, @bstaletic  and I agree that:

the change between 3.12 and 3.13 is that user-defined head objects are now immortal (vim.buffers being such an object)
immortals have a sentinel value reference count
incrementing the refcount of an immortal is an NOP
the failing test is checking the result of sys.getrefcount() on such an immortal, expecting it to be 1 greater than its initial value after creating an iterator
but in fact, the ref count never changes,because immortal leading to test failing (expecting delta ref count to be 1, but delta is 0)

Long story short, the behaviour change means the test no longer matches reality. Nothing is actually broken, but it's a pain in the dick to have a test that differs by python version. I suggest to just remove this test.
adding this:
      for el in v:
          vim.eval( 'assert_report("' + str(sys.getrefcount(v)) + '")')
          vim.vars['bufmap_iter_ref_count_increase'] = sys.getrefcount(v) - base_ref_count

leads to:
|| Test_python3_iter_ref():
|| command line..script /Users/ben/Development/vim/vim-clean/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 35:<PHONE_NUMBER>
|| command line..script /Users/ben/Development/vim/vim-clean/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 39: Expected 1 but got 0

which agrees with the theory.
Boris is going to try to confirm my finding.

Some of these tests fail because python 3.13 now uses ansii escape sequences to colour the stack traces by default. https://docs.python.org/3.13/whatsnew/3.13.html says

Color support in the new interactive interpreter, as well as in tracebacks and doctest output. This can be disabled through the PYTHON_COLORS and NO_COLOR environment variables.

After exporting PYTHON_COLORS=0, the results are better. test_pyx3 passes. test_python3 has fewer errors:
9 FAILED:
Found errors in Test_py3do():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[41]..AssertException line 9: Pattern 'Vim(py3do):SyntaxError: invalid syntax' does not match 'Vim(py3do):failed to run the code'
Found errors in Test_python3_buffer():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[181]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[191]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_iter_ref():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0
Found errors in Test_python3_opts():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_opts[408]..AssertException line 9: Pattern 'Vim(let):ValueError: empty keys are not allowed' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_pyeval():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_pyeval[19]..AssertException line 9: Pattern 'Vim(let):NameError: name ''undefined_name'' is not defined' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_range2():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[9]..AssertException line 9: Pattern 'Vim(let):IndexError: line number out of range' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[31]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.range'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_tabpage():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[6]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[8]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_window():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_window[18]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted window' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_vim_function():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_vim_function[23]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.function'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
make: *** [Makefile:70: test_python3] Error 1

I'll continue figuring out what's wrong with the tests and report whatever I find.

We can sort of fix this with a hack in if_python3.c:
ben@BenMBP2021 testdir % git diff
diff --git a/src/if_python3.c b/src/if_python3.c
index 139ec54df..7f8583ce7 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -1338,6 +1338,11 @@ Python3_Init(void)
            goto fail;
        }
 #endif
+       // Python 3.13 introduced a really useful feature: colorized exceptions.
+       // This is great if you're reading them from the terminal, but useless
+       // and broken everywhere else (such as in log files, or text editors).
+       // Opt out, forcefully.
+       vim_setenv((char_u*)"PYTHON_COLOR", (char_u*)"0");

        init_structs();

Some of these tests fail because python 3.13 now uses ansii escape sequences to colour the stack traces by default. https://docs.python.org/3.13/whatsnew/3.13.html says

Color support in the new interactive interpreter, as well as in tracebacks and doctest output. This can be disabled through the PYTHON_COLORS and NO_COLOR environment variables.

After exporting PYTHON_COLORS=0, the results are better. test_pyx3 passes. test_python3 has fewer errors:
9 FAILED:
Found errors in Test_py3do():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_py3do[41]..AssertException line 9: Pattern 'Vim(py3do):SyntaxError: invalid syntax' does not match 'Vim(py3do):failed to run the code'
Found errors in Test_python3_buffer():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[181]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_buffer[191]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted buffer' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_iter_ref():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_iter_ref line 38: Expected 1 but got 0
Found errors in Test_python3_opts():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_opts[408]..AssertException line 9: Pattern 'Vim(let):ValueError: empty keys are not allowed' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_pyeval():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_pyeval[19]..AssertException line 9: Pattern 'Vim(let):NameError: name ''undefined_name'' is not defined' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_range2():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[9]..AssertException line 9: Pattern 'Vim(let):IndexError: line number out of range' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_range2[31]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.range'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_tabpage():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[6]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_tabpage[8]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted tab page' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_python3_window():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_python3_window[18]..AssertException line 9: Pattern 'Vim(let):vim.error: attempt to refer to deleted window' does not match 'Vim(let):E858: Eval did not return a valid python object'
Found errors in Test_vim_function():
command line..script /home/bstaletic/work/vim/src/testdir/runtest.vim[607]..function RunTheTest[57]..Test_vim_function[23]..AssertException line 9: Pattern 'Vim(let):AttributeError: ''vim.function'' object has no attribute ''abc''' does not match 'Vim(let):E858: Eval did not return a valid python object'
make: *** [Makefile:70: test_python3] Error 1

I'll continue figuring out what's wrong with the tests and report whatever I find.

This can be solved with a simple change in if_python3.c
ben@BenMBP2021 testdir % git diff
diff --git a/src/if_python3.c b/src/if_python3.c
index 139ec54df..5d45ba15f 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -1338,6 +1338,11 @@ Python3_Init(void)
            goto fail;
        }
 #endif
+       // Python 3.13 introduced a really useful feature: colorized exceptions.
+       // This is great if you're reading them from the terminal, but useless
+       // and broken everywhere else (such as in log files, or text editors).
+       // Opt out, forcefully.
+       vim_setenv((char_u*)"PYTHON_COLORS", (char_u*)"0");

        init_structs();

Second group of tests is about how v:exception from py3eval or py3do is populated. The actual error looks the same to the user. For example:
:py3do {lambda}
  File "<string>", line 2
    {lambda}
           ^
SyntaxError: invalid syntax
failed to run the code

Vim with python3.12 passes this assertion: https://github.com/vim/vim/blob/master/src/testdir/test_python3.vim#L1819
With python3.13, inside AssertException, save_exception has the value of the last line, not the line with SyntaxError.
While the above example is with :py3do thing, expressions like :let x = py3eval('thing') behave in the same way.

This one is caused by a slight change in the output sequence of PyErr_PrintEx(). Previously, by luck, the last output was always to stdout, so ended up calling OutputWrite with error=0 which sets emsg_severe to TRUE.
But in 3.12 something was clearly setting it back to FALSE before the return of this function and subsequent call to emsg("failed to run the code").
This patch fixes the tests:
ben@BenMBP2021 testdir % git diff
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 3643f8be2..6200f8d29 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -6096,7 +6096,10 @@ run_do(const char *cmd, void *arg UNUSED
        return;
     }
     else
+    {
        PyErr_PrintEx(1);
+       emsg_severe = FALSE;
+    }

     PyMem_Free(code);

@@ -6200,7 +6203,10 @@ run_eval(const char *cmd, void *arg
        else
        {
            if (PyErr_Occurred() && !msg_silent)
+           {
                PyErr_PrintEx(0);
+               emsg_severe = FALSE;
+           }
            emsg(_(e_eval_did_not_return_valid_python_object));
        }
     }

but seems suspicious. need to debug 2.12 version more to see what was making it "work"

Actually it's simpler than I thought.
in python 3.12 the last message is always to stderr and always a non-empty string containing a newline
in python 3.13 the last message is always to stderr, but is not always a non-empty string containing a newline
As a resulting the later case, we set emsg_severe to TRUE, but then don't actually call emsg which resets it. Messy.
either way, this is the fix:
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 3643f8be2..92e2fdcc8 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -13,6 +13,7 @@
  * Common code for if_python.c and if_python3.c.
  */

+#include "vim.h"
 #if PY_VERSION_HEX < 0x02050000
 typedef int Py_ssize_t;  // Python 2.4 and earlier don't have this type.
 #endif
@@ -635,13 +636,14 @@ PythonIO_Flush(void)
     if (old_fn != NULL && io_ga.ga_len > 0)
     {
        ((char *)io_ga.ga_data)[io_ga.ga_len] = NUL;
+       // We don't know what emsg_severe should be here, so ... hope?
        old_fn((char *)io_ga.ga_data);
     }
     io_ga.ga_len = 0;
 }

     static void
-writer(writefn fn, char_u *str, PyInt n)
+writer(writefn fn, char_u *str, PyInt n, int severe)
 {
     char_u *ptr;

@@ -665,6 +667,7 @@ writer(writefn fn, char_u *str, PyInt n)

        mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
        ((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
+       emsg_severe = severe;
        fn((char *)io_ga.ga_data);
        str = ptr + 1;
        n -= len + 1;
@@ -692,9 +695,7 @@ write_output(OutputObject *self, PyObject *string)

     Py_BEGIN_ALLOW_THREADS
     Python_Lock_Vim();
-    if (error)
-       emsg_severe = TRUE;
-    writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+    writer((writefn)(error ? emsg : msg), (char_u *)str, len, error);
     Python_Release_Vim();
     Py_END_ALLOW_THREADS
     PyMem_Free(str);

Boris is going to try to confirm my finding.

Confirmed.
For that test, I see two options:

skip the part of the test that has to do with vim.buffers if sys.version >= (3, 13).
skip the part of the test that has to do with vim.buffers if _Py_IsImmortal(TheBufferMap) == TRUE (or maybe _Py_IsImmortalLoose(). Though these are implementation details.

Args, what an unpleasant surprise. Yeah, let's please go ahead with your changes and create a followup PR please :) ?

@chrisbra

Args, what an unpleasant surprise.

At this point I am surprised when a new python release does not break things left and right.

Yeah, let's please go ahead with your changes and create a followup PR please :) ?

Here you go! :)
https://github.com/vim/vim/pull/15842

Hi all,
I've got into the same errors some time ago and here is my PR from 2 weeks ago, which resolved the first part of the breakage.
https://github.com/vim/vim/pull/15711


cannot be removed: non-daemonset, non-mirrored, non-pdb-assigned kube-system pod present

Description
Single replicas in kube-system namespace can change the results of cluster autoscaler, because it cannot release the node where the pods are running.
Message log in autoscaler:
cannot be removed: non-daemonset, non-mirrored, non-pdb-assigned kube-system pod present

Thank you for reporting. We will take a look and come back to you if we need additional information!

Hey there @njoaquim!
We need more information to check the specific context of this issue.
What Installation and Cluster did the issue occur?
Thanks!


How to refresh stale records

I just started using flask-admin and it is pretty easy to setup. Unfortunately, I cannot see newly created records after starting up the server.
There is no mention in the documentation that explains how to fix this problem. The only way I can see new values is by restarting my server.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

# Your SQLAlchemy models
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

# Flask-Admin setup
admin = Admin(app, name='Admin Panel', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))

# Commit session after creating or updating records
@app.route('/create_user')
def create_user():
    new_user = User(username='test_user')
    db.session.add(new_user)
    db.session.commit()  # Ensure session is committed after adding or updating
    return 'User created successfully!'

if __name__ == '__main__':
    app.run(debug=True)


Fix chart homepage url

Pull Request
Related issue
none
What does this PR do?

The current url leads to a not found error

PR checklist
Please check if your PR fulfills the following requirements:

[x] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)?
[x] Have you read the contributing guidelines?
[x] Have you made sure that the title is accurate and descriptive of the changes?

Thank you so much for contributing to Meilisearch!

bors merge


Unable to set property 'connectedlinename' and Unable to set property 'connectedlinenum'

WARN 22572 --- [tion-0-Reader-0] o.a.manager.internal.EventBuilderImpl    : Unable to set property 'connectedlinename' to 'XXXXXXXX' on org.asteriskjava.manager.event.StatusEvent: no setter.
WARN 22572 --- [tion-0-Reader-0] o.a.manager.internal.EventBuilderImpl    : Unable to set property 'connectedlinenum' to 'XXXXXXXX' on org.asteriskjava.manager.event.StatusEvent: no setter.

fixed in https://github.com/asterisk-java/asterisk-java/pull/188/commits/ea8fa4cd4a862fa0b0d26f21ce4d47e968c451c7


Fix sort by word length method

[x] Running yarn lint does not trigger any linter errors
[x] The test of the method you have fixed is passing
[x] You have written a new skeleton method for someone else to work on!
[x] You have written tests to accompany your skeleton method

Hey @emanuelcasco !! This looks awesome. Thanks for the contribution! I'm going to go ahead and merge this puppy in. If you don't mind, we are trying to encourage our contributors to open up an Issue for the "Skeleton Method" they created! Thanks so much!!

@BlakeGuilloud I will create the issue right now!! Thank you!


Crash with AssetAttributeMethodCall

https://console.firebase.google.com/u/0/project/alphawallet-ios-prod/crashlytics/app/ios:com.stormbird.alphawallet/issues/2667f4bf9b6d3a0f2892c21ebf84ee4c?time=last-hour&sessionEventKey=2f27bd8cee9144eaa02f262c320a876f_1786829893316723845
I got it after clicking in dapp to sign message at https://www.daylight.xyz

https://www.daylight.xyz in macoS Safari
Click Connect Wallet and connect with AlphaWallet
Click Send Message in dapp
Crashes

It's probably not related. Repeating the steps doesn't reproduce the crash
With the app store version 67adcf86cd0b888dd31002b8077e03f8a41254c8

now sure, but we got ticket with this issue, its not always reproducing, so its hard to catch it.

but i found that its don't like struct AssetAttributeMethodCall: ContractMethodCall
and crashes on line
guard let dictionary = resultObject as? [String: AnyObject] else {
            throw CastError(actualValue: resultObject, expectedType: [String: AnyObject].self)
        }

same issue as https://github.com/AlphaWallet/alpha-wallet-ios/issues/6452


kaps: wip container state

The purpose of this PR is to implement the behavior for saving the state of the running container launched with kaps. This state can be useful for future topics like listing or interacting with current containers.

First of all we have to define the minimal state that follows the OCI runtime spec.
Then implement the behaviors for saving, updating, and deleting the state.

Close #10

@sameo Sorry for the delay, but my PR is finally ready for review !!
I think there is room for improvement for example on the update of the container state but as you say it will not be perfect.
Furthermore, I have another issue related to this one :smile:

Hi, @sameo I finally get over all comments also I have some questions on some points.

Hi, @sameo all comments as been resolved and all tests are ok.
The PR is ready for another review everything seems to be ok.


Display duck://payer instead of youtube-nocookie in custom tabs

Task/Issue URL:
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5072  👈
#5067
#5066
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CrisBarreiro and the rest of your teammates on  Graphite


add schemas for derived/cached properties

PR https://github.com/research-software-directory/backend/pull/15

[x] mentions
[x] organizations
[ ] projects  (in progress; https://github.com/research-software-directory/backend/blob/25a8afc8b0414d8793b92438ac35a3e3534309b8/schemas/software_cache.json)
[ ] software (in progress; https://github.com/research-software-directory/backend/blob/25a8afc8b0414d8793b92438ac35a3e3534309b8/schemas/software_cache.json)

We can use this as a basis https://github.com/research-software-directory/backend/blob/25a8afc8b0414d8793b92438ac35a3e3534309b8/schemas/software_cache.json#L228-L270


feat: usage and billing ce

Description

Removes feature flags for usage & billing.
moves pricing url to constant.

/ok-to-test sha=61b4cb1

/ok-to-test sha=a518345


NParallelTextCorpus

Here's the Machine PR needed to support the updates to Serval.

This change is

Codecov Report
Attention: Patch coverage is 86.59128% with 83 lines in your changes missing coverage. Please review.

Project coverage is 70.09%. Comparing base (7f2af4e) to head (7d47b9e).
Report is 1 commits behind head on master.

Files with missing lines
Patch %
Lines

src/SIL.Machine/Corpora/NParallelTextCorpus.cs
89.68%
32 Missing and 10 partials :warning:

src/SIL.Machine/Corpora/NParallelTextRow.cs
59.25%
6 Missing and 5 partials :warning:

src/SIL.Machine/Corpora/CorporaExtensions.cs
84.12%
5 Missing and 5 partials :warning:

src/SIL.Machine/Corpora/NParallelTextCorpusBase.cs
40.00%
9 Missing :warning:

src/SIL.Machine/Corpora/TextCorpusEnumerator.cs
91.86%
6 Missing and 1 partial :warning:

...rc/SIL.Machine/Corpora/CorpusAlignmentException.cs
0.00%
3 Missing :warning:

src/SIL.Machine/Corpora/ParallelTextCorpus.cs
94.44%
0 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #270      +/-   ##
==========================================
+ Coverage   69.96%   70.09%   +0.12%
==========================================
  Files         379      383       +4
  Lines       31778    31912     +134
  Branches     4456     4481      +25
==========================================
+ Hits        22235    22369     +134
+ Misses       8509     8500       -9
- Partials     1034     1043       +9

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

Fixes https://github.com/sillsdev/machine/issues/266

The only outstanding bullet point from the original description that I think I haven't covered is: "NParallelTextCorpora will take a parameter to determine how equivalent references are combined: choose first, combine all, or permutate all". Is this something we'll really want? Or is there a behavior we'll always prefer? Right now it's permutating.

-- commits line 65 at r1:
Can you clean up this history?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 577 at r1 (raw file):

            public override IEnumerable<TextRow> GetRows(IEnumerable<string> textIds)
            {
                int indexOfInRangeRow = -1;

Can you explain in English what the indexOfInRangeRow is trying to accomplish?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 586 at r1 (raw file):

                        .ToList();
                    IReadOnlyList<int> indices =
                        nonEmptyIndices.Count > 0 ? nonEmptyIndices : Enumerable.Range(0, nRow.N).ToList();

How does this logic work with AllRows?  Are they blank rows being send down?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 586 at r1 (raw file):
Previously, johnml1135 (John Lambert) wrote…
How does this logic work with AllRows?  Are they blank rows being send down?

Could you elaborate on the connection with allRows? Yes, there may be empty rows output if all the rows available are empty. But it would be an unusual circunstance.

src/SIL.Machine/Corpora/CorporaExtensions.cs line 577 at r1 (raw file):
Previously, johnml1135 (John Lambert) wrote…
Can you explain in English what the indexOfInRangeRow is trying to accomplish?

The point of the variable is to keep track of whether you previously picked a row from a particular source that was the beginning of a range. This way, you'll keep picking from that source until the range is finished.

-- commits line 65 at r1:
Previously, johnml1135 (John Lambert) wrote…
Can you clean up this history?

Sure! Would it be simpler just to squash this when I'm merging/rebasing?

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 222 at r1 (raw file):

                    {
                        int compareAlignmentCorpus = -1;
                        if (AlignmentCorpus != null)

What exactly is the function of the alignment corpus?  Why is it active here, but not above when not all corpora were in lock-step?

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 250 at r1 (raw file):

                                    && minRefIndexes.All(j => j == i || !AllRowsList[j])
                                )
                                .Any(b => b)

Many of these are cryptic logic.  Let's have at least a sentence per set of logic.  "doing it the right way" would likely involve creating a dozen or so sub-functions to do the intermediate processing, but that may lead to more confusion.  I just want to have enough bread crumbs that when someone comes back in 3 years, they'll be able to understand what is going on here without having to spend 3 days.

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 250 at r1 (raw file):
Previously, johnml1135 (John Lambert) wrote…
Many of these are cryptic logic.  Let's have at least a sentence per set of logic.  "doing it the right way" would likely involve creating a dozen or so sub-functions to do the intermediate processing, but that may lead to more confusion.  I just want to have enough bread crumbs that when someone comes back in 3 years, they'll be able to understand what is going on here without having to spend 3 days.

Or, if you take the complicated logic in these if statements and make functions with descriptive names, like below with "rangeInfo.IsInRange && AllInRangeHaveSegments(currentIncompleteRows)".  That is decodable - the above logic less so.

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 345 at r1 (raw file):

            object[] defaultRefs = new object[] { };
            if (rows.Any(r => r != null))

Why rows.Any if you already threw a Argument null exception above?

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 76 at r1 (raw file):

                    var enumerator = Corpora[i].GetRows(filterTextIds).GetEnumerator();
                    enumeratedCorpora.Add(
                        new TextCorpusEnumerator(enumerator, Corpora[0].Versification, Corpora[i].Versification)

My understanding was that this line (and this line alone) fixed all versification issues.  Why is this here and the "correctVersification" later?

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 373 at r1 (raw file):

                NSegments = rows.Select(r => r?.Segment ?? Array.Empty<string>()).ToArray(),
                NFlags = flags.ToReadOnlyList(),
                AlignedWordPairs = alignedWordPairs

I would have assumed that AlignedWordPairs was pushed up to ParallelTextCorpus, as it really only makes sense with two corpora.

src/SIL.Machine/Corpora/NParallelTextRow.cs line 49 at r1 (raw file):

        public string GetText(int i) => string.Join(" ", NSegments[i]);

        public IReadOnlyCollection<AlignedWordPair> AlignedWordPairs { get; set; }

Again, I am skeptical whether there should be AlignedWordPairs in the NParallelTextCorpus/Row at all.  I think it makes much more sense with "Pairs" of corpora.

tests/SIL.Machine.Tests/Corpora/CorporaExtensionsTests.cs line 149 at r1 (raw file):

        {
            Assert.That(rows[0].Text, Is.EqualTo("source 1 segment 1 ."));
            Assert.That(rows[1].Text, Is.EqualTo("source 1 segment 2 ."));

Can you use a different seed to make it not just be all from source 1?  It needs to fail if it were "first".

tests/SIL.Machine.Tests/Corpora/CorporaExtensionsTests.cs line 149 at r1 (raw file):
Previously, johnml1135 (John Lambert) wrote…
Can you use a different seed to make it not just be all from source 1?  It needs to fail if it were "first".

Ah, 2 different seeds.

tests/SIL.Machine.Tests/Corpora/NParallelTextCorpusTests.cs line 86 at r1 (raw file):

        var nParallelCorpus = new NParallelTextCorpus([corpus1, corpus2, corpus3]);
        NParallelTextRow[] rows = nParallelCorpus.ToArray();
        Assert.That(rows.Length, Is.EqualTo(1));

I'm confused... If I am correct the "AllRows" flag means that even if there is a row in the ITextCorpus that has a blank string for text, that reference is still included.  Here, there appear to be two issues:

If not all corpora have text, text is not returned (shouldn't it be returned if any have text?
The next test doesn't have blank strings with references in it to test the logic of AllRows.

tests/SIL.Machine.Tests/Corpora/NParallelTextCorpusTests.cs line 204 at r1 (raw file):

        NParallelTextRow[] rows = nParallelCorpus.ToArray();
        Assert.That(rows.Length, Is.EqualTo(3));
        Assert.That(rows[1].NRefs.All(r => r.Count == 0 || (int)r[0] == 2));

My understanding is that when you say "get rows"it always returns an array of size [N], including the blank strings.  Is that is what is happening here?

tests/SIL.Machine.Tests/Corpora/NParallelTextCorpusTests.cs line 415 at r1 (raw file):

        NParallelTextRow[] rows = nParallelCorpus.ToArray();
        Assert.That(rows.Length, Is.EqualTo(3), JsonSerializer.Serialize(rows));
        Assert.That(rows[0].NRefs[0], Is.EquivalentTo(new object[] { 1 }));

I'm trying to figure out - so, wouldn't the ranges mandate that all three references be merged into one segment?

tests/SIL.Machine.Tests/Corpora/NParallelTextCorpusTests.cs line 562 at r1 (raw file):

                    TextRow("text1", 1, "source segment 1 ."),
                    TextRow("text1", 2, "source segment 2-1 ."),
                    TextRow("text1", 2, "source segment 2-2 ."),

There should be an option for the "Many-to-many" or "condense it all down to 1", depending on if it is keyterms or scripture.

@Damien - I thought that for scripture verses, if there are multiple verses with the same reference, we merge them together and treat it as a single entity.  Is that is what is being done here?

-- commits line 65 at r1:
Previously, Enkidu93 (Eli C. Lowry) wrote…
Sure! Would it be simpler just to squash this when I'm merging/rebasing?

Yes, that is fine.

src/SIL.Machine/Corpora/NParallelTextCorpus.cs line 282 at r1 (raw file):
Previously, Enkidu93 (Eli C. Lowry) wrote…
This is the "permute all" part. I'll try and refactor a bit for clar9ity & efficiency.

Could the permutation be broken out into a function, or at least given a comment explaining what is happening?

@Enkidu93  - please review the code coverage.  There are a few things I am noting:

A lot of the exception handling is not being tested (this is likely ok - as it is low risk of not working).
NParallelTextCorpus has the following testing needs:

//At least one of the non-min rows is not completed, is in a range, and has content
Line 342 - continue;
if (Versifications.All(v => v != null) && row.Refs.Count() == 0)

NParallelTextRow - Invert
CorporaExtensions:

IsTokenized
2 if statements in GetRows

NParallelCorpusBase - Count
TextCorpusEnumerator - Reset
CorpusAlignmentException - at least one exception each should be tested.

If you think they should be removed, just do it.  It seemed logical to me, but I only went half way down the rabbit hole.

If you thing sameRefRows should be removed from RangeInfo...

tests/SIL.Machine.Tests/Corpora/NParallelTextCorpusTests.cs line 86 at r1 (raw file):
Previously, Enkidu93 (Eli C. Lowry) wrote…
Well, it's certainly possible that I'm confused haha :). Given that the implementation is consistent with the original ParallelTextCorpus, I figured it was correct, but maybe, @ddaspit, you could clarify the intended behavior (particularly in the case of N corpora). As I understand it, if all of the values of AllRows are false, the the only rows that are yielded are rows that exist in all corpora. However, if AllRows is true for a particular corpus, then all the rows of that corpus will have a parallel row yielded with the ref and content of that row regardless of whether the row is not in the other corpora or if the row ref were just mid-range in the other corpora. In regard to empty segments, you're right: I hadn't done any testing to do with that I don't think. I was mainly following the existing testing for ParallelTextCorpus and I don't know that there's any such test there either. What's the intended behavior in that case, @ddaspit?

@ddaspit - can you bring in clarity - this may be the last issue...

Once Damien's concerns are resolved, I'm fine with the changes.

src/SIL.Machine/Corpora/CorporaExtensions.cs line 541 at r2 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
I don't think that AllRows is useful in this context. Do we need it? If not, we could simply not pass AllRows at all.

Let me see - "AllRows" is valuable when wanting to align to VRef.txt - so you get one line per vref entry (needed for AQUA as it relies on that specific format).  Beyond that, I can't think of any need for "AllRows".  And that should likely be it's own function, taking a single TextCorpus and then calling "AlignToVref" which would return a single TextCorpus with 1 entry per VRef.  Therefore, it would not be needed when "merging" or "choosing random" but merely in adding another extension to format a single existing corpus.  @ddaspit, does this sound right to you?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 541 at r2 (raw file):
Previously, johnml1135 (John Lambert) wrote…
Let me see - "AllRows" is valuable when wanting to align to VRef.txt - so you get one line per vref entry (needed for AQUA as it relies on that specific format).  Beyond that, I can't think of any need for "AllRows".  And that should likely be it's own function, taking a single TextCorpus and then calling "AlignToVref" which would return a single TextCorpus with 1 entry per VRef.  Therefore, it would not be needed when "merging" or "choosing random" but merely in adding another extension to format a single existing corpus.  @ddaspit, does this sound right to you?

Actually, should we remove "AllRows" entirely from NParallelCorpus and rather just have a separate function that takes a single ITextCorpus to "AlignToVref"?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 541 at r2 (raw file):
Previously, johnml1135 (John Lambert) wrote…
Actually, should we remove "AllRows" entirely from NParallelCorpus and rather just have a separate function that takes a single ITextCorpus to "AlignToVref"?

We could also just rip out "AllRows" right now and then add the new function later, as it is not needed now.

Actually, should there be an ability to filter out non-scripture?  What is the best way to do that?

src/SIL.Machine/Corpora/CorporaExtensions.cs line 541 at r2 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
We shouldn't remove AllRows altogether. We just don't need to pass it in this function. Also, there is already an "AlignToVref" function, it is called ExtractScriptureCorpus.

I think that AllRows is generally useful not just for us but perhaps even for others using the Machine library. One place we need it on the Serval side is when we align the pretranslate source and the train target: Since many rows will not have a target, this is necessary. Also, we use it currently (see the other PR) when doing the AlignManys since each corpus has already been filtered by textId/scriptureRange, meaning that in many cases, they won't overlap.

@johnml1135, it's saying I can't merge without your approval. I tried to dismiss you from the discussion because I think your question was answered, but it's still not letting me. If you could take a look when you have time, I'd appreciate it :)