Title: List conversion fails on new version of pythonnet compared to 3.0.0.post1 · Issue #2004 · pythonnet/pythonnet · GitHub
Open Graph Title: List conversion fails on new version of pythonnet compared to 3.0.0.post1 · Issue #2004 · pythonnet/pythonnet
X Title: List conversion fails on new version of pythonnet compared to 3.0.0.post1 · Issue #2004 · pythonnet/pythonnet
Description: Environment Pythonnet version: Works with pythonnet==3.0.0.post1 Failes with pythonnet>=3.0.0.post1 Python version: Python 3.8.0 Operating System: Windows .NET Runtime: netstandard2.0;net471 Details I followed the notes to write a codec ...
Open Graph Description: Environment Pythonnet version: Works with pythonnet==3.0.0.post1 Failes with pythonnet>=3.0.0.post1 Python version: Python 3.8.0 Operating System: Windows .NET Runtime: netstandard2.0;net471 Detail...
X Description: Environment Pythonnet version: Works with pythonnet==3.0.0.post1 Failes with pythonnet>=3.0.0.post1 Python version: Python 3.8.0 Operating System: Windows .NET Runtime: netstandard2.0;net471 Det...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/2004
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"List conversion fails on new version of pythonnet compared to 3.0.0.post1","articleBody":"### Environment\r\n\r\n- Pythonnet version:\r\nWorks with pythonnet==3.0.0.post1\r\nFailes with pythonnet\u003e=3.0.0.post1\r\n\r\n- Python version:\r\nPython 3.8.0\r\n\r\n- Operating System:\r\nWindows\r\n\r\n- .NET Runtime:\r\nnetstandard2.0;net471\r\n\r\n### Details\r\n\r\nI followed the notes to write a codec to convert a C# List\u003cstrings\u003e to a Python list, here it is:\r\n\r\n ```\r\n /// \u003csummary\u003e\r\n /// This class will convert a C# list of strings to a Python list [] of strings.\r\n /// \u003c/summary\u003e\r\n public class ListStringConversions : IPyObjectEncoder\r\n {\r\n bool IPyObjectEncoder.CanEncode(Type type)\r\n {\r\n return type == typeof(IList\u003cstring\u003e);\r\n }\r\n\r\n PyObject IPyObjectEncoder.TryEncode(object value)\r\n {\r\n using (var scope = Py.CreateScope())\r\n {\r\n scope.Exec($\"a = []\");\r\n var input = (List\u003cstring\u003e)value;\r\n foreach (var item in input)\r\n scope.Exec($\"a.append('{item}')\"); // {item}\r\n return scope.Get(\"a\");\r\n }\r\n }\r\n }\r\n```\r\n\r\nI have a simple test which calls in to a C# assembly and returns a list. With pythonnet version 3.0.0.post1, the C# list is successfully converted to a python list.\r\n\r\nIn my requirements file, I had this\r\npythonnet\u003e=3.0.0.post1\r\n\r\nNow on the CICD process it has updated the pythonnet package and the same test fails:\r\n\r\n```\r\n\u003e assert isinstance(codes, list)\r\nE assert False\r\nE + where False = isinstance(\u003cSystem.Collections.Generic.IList[String] object at 0x0000023C1D9D5180\u003e, list)\r\n\r\n```\r\n\r\nThe code no longer is returning a python list. I switched the requirements file to \r\npythonnet==3.0.0.post1\r\n\r\nand the test passes. As such I think there is a breaking change in the latest release that prevents the conversions been executed.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","author":{"url":"https://github.com/screig","@type":"Person","name":"screig"},"datePublished":"2022-11-07T13:33:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":19},"url":"https://github.com/2004/pythonnet/issues/2004"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:a8a3b1c9-6a58-645d-cee6-c30575fd63dd |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A3D4:22A73C:2936DB5:374199A:69704A83 |
| html-safe-nonce | 8f65645063564dfef3906713c41d0fb5353b0ac54da0315ba09a18f5118c9590 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBM0Q0OjIyQTczQzoyOTM2REI1OjM3NDE5OUE6Njk3MDRBODMiLCJ2aXNpdG9yX2lkIjoiNTE2OTk1MTY4OTAxMTEyMDc3MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 9510237a72477c699b125cce7edeeeb5ca73830bdbb72c5322a386c6cd8f97df |
| hovercard-subject-tag | issue:1438377297 |
| github-keyboard-shortcuts | repository,issues,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/_view_fragments/issues/show/pythonnet/pythonnet/2004/issue_layout |
| twitter:image | https://opengraph.githubassets.com/876d4735f9005b2960e737ff11501433be3a17811289fe217203788a7f8a4ae9/pythonnet/pythonnet/issues/2004 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/876d4735f9005b2960e737ff11501433be3a17811289fe217203788a7f8a4ae9/pythonnet/pythonnet/issues/2004 |
| og:image:alt | Environment Pythonnet version: Works with pythonnet==3.0.0.post1 Failes with pythonnet>=3.0.0.post1 Python version: Python 3.8.0 Operating System: Windows .NET Runtime: netstandard2.0;net471 Detail... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | screig |
| 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 |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | f643964067a552f02067066d6a910b2f90a5721f |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width