{"action":"opened","issue":{"url":"https://api.github.com/repos/schwehr/libais/issues/123","labels_url":"https://api.github.com/repos/schwehr/libais/issues/123/labels{/name}","comments_url":"https://api.github.com/repos/schwehr/libais/issues/123/comments","events_url":"https://api.github.com/repos/schwehr/libais/issues/123/events","html_url":"https://github.com/schwehr/libais/issues/123","id":113098077,"number":123,"title":"Parser's don't cast values to Python types","user":{"login":"geowurster","id":2676083,"avatar_url":"https://avatars.githubusercontent.com/u/2676083?v=3","gravatar_id":"","url":"https://api.github.com/users/geowurster","html_url":"https://github.com/geowurster","followers_url":"https://api.github.com/users/geowurster/followers","following_url":"https://api.github.com/users/geowurster/following{/other_user}","gists_url":"https://api.github.com/users/geowurster/gists{/gist_id}","starred_url":"https://api.github.com/users/geowurster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geowurster/subscriptions","organizations_url":"https://api.github.com/users/geowurster/orgs","repos_url":"https://api.github.com/users/geowurster/repos","events_url":"https://api.github.com/users/geowurster/events{/privacy}","received_events_url":"https://api.github.com/users/geowurster/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-23T20:52:10Z","updated_at":"2015-10-23T20:52:10Z","closed_at":null,"body":"`ais.tag_block.Parse()` and `ais.vdm.Parse()` return dictionaries with some keys that should be cast to `int` and `float.  For example, result from `ais.vdm.Parse()`:\r\n\r\n```python\r\n{\r\n    \"body\": \"15SimR001Q6jmk9pwgp<Rr1n06sd\",\r\n    \"chan\": \"A\",\r\n    \"checksum\": \"66\",\r\n    \"fill_bits\": \"0\",\r\n    \"sen_num\": \"1\",\r\n    \"sen_tot\": \"1\",\r\n    \"seq_id\": null,\r\n    \"talker\": \"AI\",\r\n    \"vdm\": \"!AIVDM,1,1,,A,15SimR001Q6jmk9pwgp<Rr1n06sd,0*66\",\r\n    \"vdm_type\": \"VDM\"\r\n}\r\n```\r\n\r\nAll numeric values except `checksum` should be converted to the appropriate Python type with [`ais.util.MaybeToNumber()`](https://github.com/schwehr/libais/blob/master/ais/util.py#L4-L19).  Additionally, `MaybeToNumber()` should probably add `NoneType` to the `isinsance()` checks at the top.\r\n\r\n@schwehr I can take care of this."}}