Title: Operator overloads support by christabella · Pull Request #1324 · pythonnet/pythonnet · GitHub
Open Graph Title: Operator overloads support by christabella · Pull Request #1324 · pythonnet/pythonnet
X Title: Operator overloads support by christabella · Pull Request #1324 · pythonnet/pythonnet
Description: What does this implement/fix? Explain your changes. Adapts @amos402's PR #907 for the latest Pythonnet version. I can also modify Amos's PR directly if that is more convenient for @amos402 @lostmsu who have already made comments on it. Tests are kept the same, as well as the links in classmanager, typemanager, and runtime. However, the methodbinder logic in Amos's PR is quite different from the current methodbinder and cannot be copied directly. Renamed 2 variables pynargs and clrnargs for readability and consistency with the rest of methodbinder. Added specialized slot types (e.g. nb_subtract, nb_and) from the PyNumberMethods struct. Because a recent PR https://github.com/pythonnet/pythonnet/pull/1292/files defined the TypeOffset and ITypeOffset classes separately such that they no longer depends on interop3x.cs of a specific Python version. Put bit shift operators (<< and >>) a separate test because they are quite different from the rest of the operators (+/-/& etc.)---the C# language specification is such that that shift operators always need an int for the second arg: https://stackoverflow.com/questions/7586887/c-sharp-shift-operator-overload. Instead of doing c = a >> b, we have to do c = a >> b.Num or get an ArgumentException. Added other operators including reverse operators (e.g. __radd__). Although Amos's PR had some params array tests, it looks like params array handling is currently being looked into by @filmor (#1304 and #1311), so I removed those for now, since they are not related to operator overloading. Does this close any currently open issues? Fixes #906. Suggestions/future work Unary operators 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 Can add docs once reverse operators are handled. Add yourself to AUTHORS Updated the CHANGELOG
Open Graph Description: What does this implement/fix? Explain your changes. Adapts @amos402's PR #907 for the latest Pythonnet version. I can also modify Amos's PR directly if that is more convenient for @amos402 ...
X Description: What does this implement/fix? Explain your changes. Adapts @amos402's PR #907 for the latest Pythonnet version. I can also modify Amos's PR directly if that is more convenient for @...
Opengraph URL: https://github.com/pythonnet/pythonnet/pull/1324
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/checks(.:format) |
| route-controller | pull_requests |
| route-action | checks |
| fetch-nonce | v2:30d3995b-6568-9048-5045-c67efb3b6457 |
| current-catalog-service-hash | 87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a |
| request-id | C96A:67735:3287385:43EFF32:69706957 |
| html-safe-nonce | 6694b4eaba7ecea99c003d2be5d8c7a287a7858e083f32f5ea6f86a2a6471f63 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDOTZBOjY3NzM1OjMyODczODU6NDNFRkYzMjo2OTcwNjk1NyIsInZpc2l0b3JfaWQiOiI0NTMxOTA2MzExMTgzNDI3OTI3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | ed5c7426c32c0a174a98bdfcb1257ae51f9fa19dfadd3974a17f89740091f791 |
| hovercard-subject-tag | pull_request:541500058 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,checks,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/pythonnet/pythonnet/pull/1324/checks |
| twitter:image | https://avatars.githubusercontent.com/u/2038751?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/2038751?s=400&v=4 |
| og:image:alt | What does this implement/fix? Explain your changes. Adapts @amos402's PR #907 for the latest Pythonnet version. I can also modify Amos's PR directly if that is more convenient for @amos402 ... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 9920a62ba22d06470388e2904804fb7e5ec51c9e35f81784e9191394c74b2bd2 |
| turbo-cache-control | no-preview |
| go-import | github.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git |
| octolytics-dimension-user_id | 6050430 |
| octolytics-dimension-user_login | pythonnet |
| octolytics-dimension-repository_id | 14748123 |
| octolytics-dimension-repository_nwo | pythonnet/pythonnet |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 14748123 |
| octolytics-dimension-repository_network_root_nwo | pythonnet/pythonnet |
| turbo-body-classes | logged-out env-production page-responsive full-width full-width-p-0 |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7d6181066430cc06553c8396ca201e194ae33cb9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width