GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — `IComparable` and `IEquatable` implementations by lostmsu · Pull Request #2322 · pythonnet/pythonnet

Conversation

@lostmsu

@lostmsu lostmsu commented Feb 15, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

IComparable and IEquatable implementations for PyInt, PyFloat, and PyString for primitive .NET types

What does this implement/fix? Explain your changes.

Let's one do PyInt.CompareTo(42) and similar things

Does this close any currently open issues?

N/A

Any other comments?

Should we take GIL in these methods? Might be useful for Array.Sort when called from Python.

On a more general topic: should we have a way for Python to call a .NET method and have it not release the GIL for compatibility with 3rd party (to Python.NET) libraries that assume they can call back any methods they wish at any time. Because having explicit GIL acquisition in CompareTo to use with Array.Sort would kill performance. E.g. something like:

with clr.HoldGIL():
  Array.Sort(dotnet_array_of_python_objects)

Checklist

Check all those that are applicable and complete.

  • Make sure to include one or more tests for your change
  • If an enhancement PR, please create docs and at best an example
  • Add yourself to AUTHORS
  • Updated the CHANGELOG

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@lostmsu
lostmsu requested a review from filmor February 27, 2024 03:14
filmor
filmor approved these changes Feb 28, 2024
View reviewed changes
@filmor

filmor commented Feb 28, 2024

Copy link
Copy Markdown
Member

Regarding the GIL, maybe we could a custom thread local ref count could speed things up?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@lostmsu
lostmsu force-pushed the ComparableEquatable branch from 3e27819 to f3d8c60 Compare February 28, 2024 19:57
@lostmsu
IComparable and IEquatable implementations for PyInt, PyFloat, and Py…
f738505
…String for primitive .NET types
@lostmsu
lostmsu force-pushed the ComparableEquatable branch 2 times, most recently from ebab183 to f738505 Compare February 28, 2024 20:08
@lostmsu
lostmsu merged commit 563e369 into pythonnet:master Feb 28, 2024
@lostmsu
lostmsu deleted the ComparableEquatable branch February 28, 2024 21:46
@dependabot dependabot Bot mentioned this pull request Jan 16, 2026
Bump pythonnet from 3.0.3 to 3.0.5 mattemangia/Deep3DStudio#99
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@filmor filmor filmor approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@lostmsu @filmor
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.