{"action":"created","issue":{"url":"https://api.github.com/repos/stonier/py_trees/issues/59","repository_url":"https://api.github.com/repos/stonier/py_trees","labels_url":"https://api.github.com/repos/stonier/py_trees/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/stonier/py_trees/issues/59/comments","events_url":"https://api.github.com/repos/stonier/py_trees/issues/59/events","html_url":"https://github.com/stonier/py_trees/pull/59","id":233897996,"number":59,"title":"[timers] assert int/float is passed as duration argument in Timers ","user":{"login":"naveedhd","id":3486082,"avatar_url":"https://avatars1.githubusercontent.com/u/3486082?v=3","gravatar_id":"","url":"https://api.github.com/users/naveedhd","html_url":"https://github.com/naveedhd","followers_url":"https://api.github.com/users/naveedhd/followers","following_url":"https://api.github.com/users/naveedhd/following{/other_user}","gists_url":"https://api.github.com/users/naveedhd/gists{/gist_id}","starred_url":"https://api.github.com/users/naveedhd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naveedhd/subscriptions","organizations_url":"https://api.github.com/users/naveedhd/orgs","repos_url":"https://api.github.com/users/naveedhd/repos","events_url":"https://api.github.com/users/naveedhd/events{/privacy}","received_events_url":"https://api.github.com/users/naveedhd/received_events","type":"User","site_admin":false},"labels":[{"id":544211853,"url":"https://api.github.com/repos/stonier/py_trees/labels/component:behaviours","name":"component:behaviours","color":"000000","default":false},{"id":385048339,"url":"https://api.github.com/repos/stonier/py_trees/labels/type:enhancement","name":"type:enhancement","color":"1d76db","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-06-06T13:49:00Z","updated_at":"2017-06-06T17:55:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/stonier/py_trees/pulls/59","html_url":"https://github.com/stonier/py_trees/pull/59","diff_url":"https://github.com/stonier/py_trees/pull/59.diff","patch_url":"https://github.com/stonier/py_trees/pull/59.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/stonier/py_trees/issues/comments/306566441","html_url":"https://github.com/stonier/py_trees/pull/59#issuecomment-306566441","issue_url":"https://api.github.com/repos/stonier/py_trees/issues/59","id":306566441,"user":{"login":"stonier","id":687378,"avatar_url":"https://avatars2.githubusercontent.com/u/687378?v=3","gravatar_id":"","url":"https://api.github.com/users/stonier","html_url":"https://github.com/stonier","followers_url":"https://api.github.com/users/stonier/followers","following_url":"https://api.github.com/users/stonier/following{/other_user}","gists_url":"https://api.github.com/users/stonier/gists{/gist_id}","starred_url":"https://api.github.com/users/stonier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stonier/subscriptions","organizations_url":"https://api.github.com/users/stonier/orgs","repos_url":"https://api.github.com/users/stonier/repos","events_url":"https://api.github.com/users/stonier/events{/privacy}","received_events_url":"https://api.github.com/users/stonier/received_events","type":"User","site_admin":false},"created_at":"2017-06-06T17:55:10Z","updated_at":"2017-06-06T17:55:10Z","body":"I was going to say that we should probably adopt a convention to check everything in `setup` as it provides a one spot check for failure, but I don't think it's that important to do so - especially as we have a few asserts here and there already for which that doesn't make sense. Current asserts are:\r\n\r\n```\r\n./blackboard.py:64:                assert(blackboard.foo, \"bar\")\r\n./behaviour.py:61:        assert isinstance(name, basestring), \"a behaviour name should be a string, but you passed in %s\" % type(name)\r\n./composites.py:140:        assert isinstance(child, Behaviour), \"children must be behaviours, but you passed in %s\" % type(child)\r\n./composites.py:153:            assert isinstance(child, Behaviour), \"children must be behaviours, but you passed in %s\" % type(child)\r\n./trees.py:68:        assert root is not None, \"root node must not be 'None'\"\r\n./trees.py:69:        assert isinstance(root, behaviour.Behaviour), \"root node must be an instance of or descendant of pytrees.behaviour.Behaviour\"\r\n./trees.py:122:        assert self.root.id != unique_id, \"may not prune the root node\"\r\n./trees.py:159:                assert isinstance(node, composites.Composite), \"parent must be a Composite behaviour.\"\r\n./trees.py:181:        assert self.root.id != unique_id, \"may not replace the root node\"\r\n```\r\n\r\n"}}
{"actor":{"display_login":"stonier"}}