Add ability to pass agents to python
I think they should be represented as dict-like objects, where keys are agent variables.
For a first pass, they should be read-only.
One tricky thing is keeping them in sync with NetLogo. For instance:
py:set "t" turtle 0
ask turtle 0 [ set color red ]
print py:runresult "t['color']" ;; This will be out of date
I think just not caring is good enough for a first pass, as long as it's clear in the docs. Otherwise, we'd have to track and sync all agent-objects on every call, which sounds awful.
I think they should be represented as dict-like objects, where keys are agent variables.
For a first pass, they should be read-only.
One tricky thing is keeping them in sync with NetLogo. For instance:
py:set "t" turtle 0
ask turtle 0 [ set color red ]
print py:runresult "t['color']" ;; This will be out of date
I think just not caring is good enough for a first pass, as long as it's clear in the docs. Otherwise, we'd have to track and sync all agent-objects on every call, which sounds awful.
Copied from https://github.com/qiemem/PythonExtension/issues/2
As a side note, this could have really cool uses in LevelSpace for having persistent representations of inter-model agents. (Though arguably that should be part of LevelSpace, and maybe we don't want to make extensions interdependent.)