You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Mike Dusenberry (JIRA)" <ji...@apache.org> on 2016/07/29 19:38:20 UTC
[jira] [Commented] (SYSTEMML-830) Python API Broken In Python 3 Due
To Changes In Dictionary Iteration
[ https://issues.apache.org/jira/browse/SYSTEMML-830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15399901#comment-15399901 ]
Mike Dusenberry commented on SYSTEMML-830:
------------------------------------------
Fix added to {{master}} in [commit 60d000a | https://github.com/apache/incubator-systemml/commit/60d000aa794e29b2acbba76a44f9b39b5c37d0a0], and to {{branch-0.10}} in [commit 944c044 | https://github.com/apache/incubator-systemml/commit/944c0445f87809cedf52f10c8712f9f716eee41f].
> Python API Broken In Python 3 Due To Changes In Dictionary Iteration
> --------------------------------------------------------------------
>
> Key: SYSTEMML-830
> URL: https://issues.apache.org/jira/browse/SYSTEMML-830
> Project: SystemML
> Issue Type: Bug
> Affects Versions: SystemML 0.10, SystemML 0.11
> Reporter: Mike Dusenberry
> Assignee: Mike Dusenberry
> Priority: Minor
>
> Currently, the {{executeScript(...)}} function in the Python API ({{SystemML.py}}) has a bug in Python 3 due to changes from Python 2 -> 3 dealing with iteration over a dictionary. {{dictName.items()}} returned a list of the current items in the dictionary in Python 2, while it returns a live iterable in Python 3. The consequence is that a dictionary cannot be modified in a loop using {{dictName.items()}} in Python 3. This fix will simply force the iterable to a list in either Python version, as discussed in \[1]. We simply use this in the existing API for lightweight argument parsing, so performance is not a concern.
> \[1]: [PEP 0469 | http://legacy.python.org/dev/peps/pep-0469/#lists-as-mutable-snapshots]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)