{"action":"opened","issue":{"url":"https://api.github.com/repos/nengo/nengo/issues/935","labels_url":"https://api.github.com/repos/nengo/nengo/issues/935/labels{/name}","comments_url":"https://api.github.com/repos/nengo/nengo/issues/935/comments","events_url":"https://api.github.com/repos/nengo/nengo/issues/935/events","html_url":"https://github.com/nengo/nengo/issues/935","id":128636708,"number":935,"title":"Processes with inputs","user":{"login":"hunse","id":1952250,"avatar_url":"https://avatars.githubusercontent.com/u/1952250?v=3","gravatar_id":"","url":"https://api.github.com/users/hunse","html_url":"https://github.com/hunse","followers_url":"https://api.github.com/users/hunse/followers","following_url":"https://api.github.com/users/hunse/following{/other_user}","gists_url":"https://api.github.com/users/hunse/gists{/gist_id}","starred_url":"https://api.github.com/users/hunse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hunse/subscriptions","organizations_url":"https://api.github.com/users/hunse/orgs","repos_url":"https://api.github.com/users/hunse/repos","events_url":"https://api.github.com/users/hunse/events{/privacy}","received_events_url":"https://api.github.com/users/hunse/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-25T20:59:06Z","updated_at":"2016-01-25T20:59:06Z","closed_at":null,"body":"Right now, the interface for running processes outside of a model (i.e., the `Process.run` and `Process.run_steps` functions) assumes that the process does not take any input. We'd like to have Processes with inputs, for example the Synapse classes should be derived from Process. What should the interface look like?\r\n\r\nSome questions are:\r\n- Do we want to support processes that may or may not have inputs, or will everything always be one type or the other? I currently can't think of any type of Process that I'd want to be both.\r\n- If all Processes will either have inputs or not, should we have two subclasses? Like `ProcessWithInput` and `ProcessWithoutInput` (certainly we can think of better names, but be careful, because something like `InputProcess` is ambiguous, since Processes without inputs are typically used as inputs to a model).\r\n- Could we come up with one interface that will serve both situations? One option would be to have all separate functions that would all take care of specific situations (`run_steps` running inputless for n steps, `run_time` running inputless for t seconds, `run_input` running with an input where the length of the input determines the runtime). We could also try to have one `run` function that tries to determine what to do based on the arguments it gets (e.g. given an array, run with input, given a float, run for t seconds without input) but that kind of programming model can get confusing and have insidious bugs."}}