{"action":"created","issue":{"url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/35","labels_url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/35/comments","events_url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/35/events","html_url":"https://github.com/SpiNNakerManchester/sPyNNaker/issues/35","id":59942521,"number":35,"title":"Create provenance data interface for individual cores","user":{"login":"rowleya","id":7584931,"avatar_url":"https://avatars.githubusercontent.com/u/7584931?v=3","gravatar_id":"","url":"https://api.github.com/users/rowleya","html_url":"https://github.com/rowleya","followers_url":"https://api.github.com/users/rowleya/followers","following_url":"https://api.github.com/users/rowleya/following{/other_user}","gists_url":"https://api.github.com/users/rowleya/gists{/gist_id}","starred_url":"https://api.github.com/users/rowleya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rowleya/subscriptions","organizations_url":"https://api.github.com/users/rowleya/orgs","repos_url":"https://api.github.com/users/rowleya/repos","events_url":"https://api.github.com/users/rowleya/events{/privacy}","received_events_url":"https://api.github.com/users/rowleya/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/milestones/2","html_url":"https://github.com/SpiNNakerManchester/sPyNNaker/milestones/September%202015%20Release","labels_url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/milestones/2/labels","id":1005419,"number":2,"title":"September 2015 Release","description":"SpiNNaker workshop / HBP review release\r\nCode freeze date to be determined.\r\nNew features to include:\r\n - Buffered output of recorded data to allow longer simulations with recorded data\r\n - Data structure improvements to allow the use of multiple boards\r\n - Reduction in processing and load times before simulations start\r\n - PyNN 0.8 Support","creator":{"login":"rowleya","id":7584931,"avatar_url":"https://avatars.githubusercontent.com/u/7584931?v=3","gravatar_id":"","url":"https://api.github.com/users/rowleya","html_url":"https://github.com/rowleya","followers_url":"https://api.github.com/users/rowleya/followers","following_url":"https://api.github.com/users/rowleya/following{/other_user}","gists_url":"https://api.github.com/users/rowleya/gists{/gist_id}","starred_url":"https://api.github.com/users/rowleya/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rowleya/subscriptions","organizations_url":"https://api.github.com/users/rowleya/orgs","repos_url":"https://api.github.com/users/rowleya/repos","events_url":"https://api.github.com/users/rowleya/events{/privacy}","received_events_url":"https://api.github.com/users/rowleya/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":1,"state":"open","created_at":"2015-03-04T09:42:07Z","updated_at":"2015-04-09T17:40:44Z","due_on":"2015-08-31T23:00:00Z","closed_at":null},"comments":2,"created_at":"2015-03-05T12:01:57Z","updated_at":"2015-04-09T17:40:44Z","closed_at":"2015-04-09T17:40:44Z","body":"At present, there is no means for run time provenance data to be retrieved and reported on from individual cores.  We should provide a class for the data such as:\r\n\r\nclass ProvanenceData(object):\r\n    def __init__(item_name, item_value)\r\n\r\nand then an abstract class for this such as:\r\nclass AbstractProvidesProvanenceData(object):\r\n    \r\n    @abstractmethod\r\n    def get_provanence_data_items(self):\r\n       pass\r\n\r\nget_provanence_data_items can then return an iterable of ProvenanceData."},"comment":{"url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/comments/91304303","html_url":"https://github.com/SpiNNakerManchester/sPyNNaker/issues/35#issuecomment-91304303","issue_url":"https://api.github.com/repos/SpiNNakerManchester/sPyNNaker/issues/35","id":91304303,"user":{"login":"alan-stokes","id":7520968,"avatar_url":"https://avatars.githubusercontent.com/u/7520968?v=3","gravatar_id":"","url":"https://api.github.com/users/alan-stokes","html_url":"https://github.com/alan-stokes","followers_url":"https://api.github.com/users/alan-stokes/followers","following_url":"https://api.github.com/users/alan-stokes/following{/other_user}","gists_url":"https://api.github.com/users/alan-stokes/gists{/gist_id}","starred_url":"https://api.github.com/users/alan-stokes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alan-stokes/subscriptions","organizations_url":"https://api.github.com/users/alan-stokes/orgs","repos_url":"https://api.github.com/users/alan-stokes/repos","events_url":"https://api.github.com/users/alan-stokes/events{/privacy}","received_events_url":"https://api.github.com/users/alan-stokes/received_events","type":"User","site_admin":false},"created_at":"2015-04-09T17:40:44Z","updated_at":"2015-04-09T17:40:44Z","body":"So ive added a interface into front end common which is called AbstractProvidesProanenceData which takes msot of what was described above, but instead of get_provanence_items as described above, i felt it was better to force the object using this to be restricted to one file to write proanence data into.\r\n\r\nSo it suppies _write_provanence_data_in_xml(file_path) which allows the object in question to write all its data into this file. \r\n\r\nThis i feel is more controlled (though only slightly) than using a retun of iterables of provanence data which could be in any format and thus more difficult to interprete in the front end.\r\n\r\nIve also added a front_end_common_provanence_functions which allows a front end to extract data from the machine (currently only does routing diagnostics) as making the machine/chip/router felt ......clunky. The spinnMachine object is really imutable and thus cant really be expected to provide the ability to get data from the real machine. SpinnMan is just a interface and shouldnt be forced to udnerstand what a machiens provanence is, thus i landed on the front end.\r\n\r\nThis has been committed, but as its a very little change, i feel its not too great a task to modify. Im going to close this issue, with the pervado that anyone's feelings cna open it bakc up. "}}