Title: Implicit List conversion breaks backwards compatibility + numpy support · Issue #514 · pythonnet/pythonnet · GitHub
Open Graph Title: Implicit List conversion breaks backwards compatibility + numpy support · Issue #514 · pythonnet/pythonnet
X Title: Implicit List conversion breaks backwards compatibility + numpy support · Issue #514 · pythonnet/pythonnet
Description: Environment Computer 1: Pythonnet version: 2.3, installed via pip I think Python version: 2.7.12 Operating System: Ubuntu 16.04.2 Computer 2: Pythonnet version: manual build on master from commit ce14424 (currently 11 commits behind) Pyt...
Open Graph Description: Environment Computer 1: Pythonnet version: 2.3, installed via pip I think Python version: 2.7.12 Operating System: Ubuntu 16.04.2 Computer 2: Pythonnet version: manual build on master from commit c...
X Description: Environment Computer 1: Pythonnet version: 2.3, installed via pip I think Python version: 2.7.12 Operating System: Ubuntu 16.04.2 Computer 2: Pythonnet version: manual build on master from commit c...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/514
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Implicit List conversion breaks backwards compatibility + numpy support","articleBody":"### Environment\r\n\r\nComputer 1:\r\n- Pythonnet version: 2.3, installed via pip I think\r\n- Python version: 2.7.12\r\n- Operating System: Ubuntu 16.04.2\r\n\r\nComputer 2:\r\n- Pythonnet version: manual build on master from commit ce14424 (currently 11 commits behind)\r\n- Python version: 2.7.12\r\n- Operating System: Ubuntu 16.04.2\r\n\r\n### Details\r\n\r\nDescription: Python calls .NET function which returns a List\u003cMyType\u003e. Python then passes the return value, without modification, to a second .NET function which accepts a List\u003cMyType\u003e. Computer 1 executes this code just fine. On Computer 2, there is no .NET function found that matches the arguments because the return value of the .NET function has been transformed into a Python list.\r\n\r\nPython code:\r\n```\r\nimport clr\r\nfrom MyDotNetProject import PythonInterop\r\n\r\nx = PythonInterop.GetDoubleList()\r\nPythonInterop.PrintDoubleList(x)\r\n```\r\n\r\n.NET code:\r\n```\r\n public class PythonInterop\r\n {\r\n public static List\u003cDouble\u003e GetDoubleList() {\r\n var result = new List\u003cDouble\u003e();\r\n result.Add(1);\r\n result.Add(2);\r\n result.Add(3);\r\n return result;\r\n }\r\n\r\n public static void PrintDoubleList(List\u003cDouble\u003e list) {\r\n Console.WriteLine(\"You list has \" + list.Count + \" elements\");\r\n }\r\n }\r\n```\r\n\r\nThe Python code works fine on Computer 1. On Computer 2, the PrintDoubleList call produces\r\nTypeError: No method matches given arguments\r\n\r\nIf I print type(x) in Python, Computer 1 gives me a .NET List type while Computer 2 gives me a Python list. I can print x.Count on Computer 1, but I get a missing attribute error on Computer 2.\r\n\r\nIf I build manually from the 2.3 tag, I get the same (good) behavior as on Computer 1.\r\n\r\nIt seems that some feature has been partially added to automatically convert .NET objects into Python objects when possible. I suppose this is ok (though I would prefer that not happen because I don't want the mandatory performance hit of converting even when I don't want to convert), but if that's the intention, there *must* be automatic conversion of Python objects to .NET objects also. One without the other is a critical bug.","author":{"url":"https://github.com/BenjaminPelletier","@type":"Person","name":"BenjaminPelletier"},"datePublished":"2017-07-20T00:03:42.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":37},"url":"https://github.com/514/pythonnet/issues/514"}
| 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:2e837200-71e6-48a7-d99b-f18129c2b9c8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DB9E:27873:A732D4:EA3CDF:6970B81D |
| html-safe-nonce | f08c0293207bf2b05b8e107fa246d4e94c9326314922d8c3b9315fd13f793e2b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQjlFOjI3ODczOkE3MzJENDpFQTNDREY6Njk3MEI4MUQiLCJ2aXNpdG9yX2lkIjoiMzM2MTExODE4OTMwMTgzOTkwMSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 7bbb93dfd83d61a1e7df07cdec70bef892044ebda28057a067bef9a3c2bdd12a |
| hovercard-subject-tag | issue:244208983 |
| 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/514/issue_layout |
| twitter:image | https://opengraph.githubassets.com/6e4d442b38eb69486058138536a5f6d3ba4be7259839dfe10a202688932d45ce/pythonnet/pythonnet/issues/514 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/6e4d442b38eb69486058138536a5f6d3ba4be7259839dfe10a202688932d45ce/pythonnet/pythonnet/issues/514 |
| og:image:alt | Environment Computer 1: Pythonnet version: 2.3, installed via pip I think Python version: 2.7.12 Operating System: Ubuntu 16.04.2 Computer 2: Pythonnet version: manual build on master from commit c... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | BenjaminPelletier |
| hostname | github.com |
| expected-hostname | github.com |
| None | 8e0be80373b724b033cdf8a7b1f78bf5fb6a5d7a2182a9a403aa30894606e390 |
| 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 | 84d9d5bf3b01412ea10f7c2429cbfc735ccce9ce |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width