{"action":"created","comment":{"url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/comments/53063914","id":53063914,"diff_hunk":"@@ -24,10 +26,22 @@ class Node(NodeBase):\n class Terminal(Node):\n     \"\"\"Abstract class for terminal Impero nodes\"\"\"\n \n+    __metaclass__ = ABCMeta\n+\n     __slots__ = ()\n \n     children = ()\n \n+    @abstractmethod\n+    def loop_shape(self, free_indices):\n+        \"\"\"Gives the loop shape, an ordering of indices for an Impero\n+        terminal.\n+\n+        :arg free_indices: a mapping of GEM expressions to ordered\n+                           free indices.","path":"tsfc/impero.py","position":25,"original_position":25,"commit_id":"de4968cb2d21bb389a85b4465285bb9105ea7004","original_commit_id":"de4968cb2d21bb389a85b4465285bb9105ea7004","user":{"login":"wence-","id":1126981,"avatar_url":"https://avatars.githubusercontent.com/u/1126981?v=3","gravatar_id":"","url":"https://api.github.com/users/wence-","html_url":"https://github.com/wence-","followers_url":"https://api.github.com/users/wence-/followers","following_url":"https://api.github.com/users/wence-/following{/other_user}","gists_url":"https://api.github.com/users/wence-/gists{/gist_id}","starred_url":"https://api.github.com/users/wence-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wence-/subscriptions","organizations_url":"https://api.github.com/users/wence-/orgs","repos_url":"https://api.github.com/users/wence-/repos","events_url":"https://api.github.com/users/wence-/events{/privacy}","received_events_url":"https://api.github.com/users/wence-/received_events","type":"User","site_admin":false},"body":"It looks like the usage suggests that `free_indices` is used as a function that takes an expression and returns some ordered free indices for that expression.","created_at":"2016-02-16T19:27:38Z","updated_at":"2016-02-16T19:27:38Z","html_url":"https://github.com/firedrakeproject/tsfc/pull/20#discussion_r53063914","pull_request_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20","_links":{"self":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/comments/53063914"},"html":{"href":"https://github.com/firedrakeproject/tsfc/pull/20#discussion_r53063914"},"pull_request":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20"}}},"pull_request":{"url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20","id":59535930,"html_url":"https://github.com/firedrakeproject/tsfc/pull/20","diff_url":"https://github.com/firedrakeproject/tsfc/pull/20.diff","patch_url":"https://github.com/firedrakeproject/tsfc/pull/20.patch","issue_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/20","number":20,"state":"open","locked":false,"title":"Clean up code generation","user":{"login":"miklos1","id":4210841,"avatar_url":"https://avatars.githubusercontent.com/u/4210841?v=3","gravatar_id":"","url":"https://api.github.com/users/miklos1","html_url":"https://github.com/miklos1","followers_url":"https://api.github.com/users/miklos1/followers","following_url":"https://api.github.com/users/miklos1/following{/other_user}","gists_url":"https://api.github.com/users/miklos1/gists{/gist_id}","starred_url":"https://api.github.com/users/miklos1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miklos1/subscriptions","organizations_url":"https://api.github.com/users/miklos1/orgs","repos_url":"https://api.github.com/users/miklos1/repos","events_url":"https://api.github.com/users/miklos1/events{/privacy}","received_events_url":"https://api.github.com/users/miklos1/received_events","type":"User","site_admin":false},"body":"Mostly clean up and docstrings for the code generation (GEM -> COFFEE) part of the pipeline. Partial clean up for `driver.py`.","created_at":"2016-02-16T18:52:11Z","updated_at":"2016-02-16T19:27:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"025fc5e0e1dc291950d5abc69d49e6c1380f0d85","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20/commits","review_comments_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20/comments","review_comment_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/20/comments","statuses_url":"https://api.github.com/repos/firedrakeproject/tsfc/statuses/de4968cb2d21bb389a85b4465285bb9105ea7004","head":{"label":"firedrakeproject:cleanup-codegen","ref":"cleanup-codegen","sha":"de4968cb2d21bb389a85b4465285bb9105ea7004","user":{"login":"firedrakeproject","id":5558005,"avatar_url":"https://avatars.githubusercontent.com/u/5558005?v=3","gravatar_id":"","url":"https://api.github.com/users/firedrakeproject","html_url":"https://github.com/firedrakeproject","followers_url":"https://api.github.com/users/firedrakeproject/followers","following_url":"https://api.github.com/users/firedrakeproject/following{/other_user}","gists_url":"https://api.github.com/users/firedrakeproject/gists{/gist_id}","starred_url":"https://api.github.com/users/firedrakeproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firedrakeproject/subscriptions","organizations_url":"https://api.github.com/users/firedrakeproject/orgs","repos_url":"https://api.github.com/users/firedrakeproject/repos","events_url":"https://api.github.com/users/firedrakeproject/events{/privacy}","received_events_url":"https://api.github.com/users/firedrakeproject/received_events","type":"Organization","site_admin":false},"repo":{"id":50843402,"name":"tsfc","full_name":"firedrakeproject/tsfc","owner":{"login":"firedrakeproject","id":5558005,"avatar_url":"https://avatars.githubusercontent.com/u/5558005?v=3","gravatar_id":"","url":"https://api.github.com/users/firedrakeproject","html_url":"https://github.com/firedrakeproject","followers_url":"https://api.github.com/users/firedrakeproject/followers","following_url":"https://api.github.com/users/firedrakeproject/following{/other_user}","gists_url":"https://api.github.com/users/firedrakeproject/gists{/gist_id}","starred_url":"https://api.github.com/users/firedrakeproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firedrakeproject/subscriptions","organizations_url":"https://api.github.com/users/firedrakeproject/orgs","repos_url":"https://api.github.com/users/firedrakeproject/repos","events_url":"https://api.github.com/users/firedrakeproject/events{/privacy}","received_events_url":"https://api.github.com/users/firedrakeproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/firedrakeproject/tsfc","description":"Two-stage form compiler","fork":false,"url":"https://api.github.com/repos/firedrakeproject/tsfc","forks_url":"https://api.github.com/repos/firedrakeproject/tsfc/forks","keys_url":"https://api.github.com/repos/firedrakeproject/tsfc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/firedrakeproject/tsfc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/firedrakeproject/tsfc/teams","hooks_url":"https://api.github.com/repos/firedrakeproject/tsfc/hooks","issue_events_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/events{/number}","events_url":"https://api.github.com/repos/firedrakeproject/tsfc/events","assignees_url":"https://api.github.com/repos/firedrakeproject/tsfc/assignees{/user}","branches_url":"https://api.github.com/repos/firedrakeproject/tsfc/branches{/branch}","tags_url":"https://api.github.com/repos/firedrakeproject/tsfc/tags","blobs_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/refs{/sha}","trees_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/firedrakeproject/tsfc/statuses/{sha}","languages_url":"https://api.github.com/repos/firedrakeproject/tsfc/languages","stargazers_url":"https://api.github.com/repos/firedrakeproject/tsfc/stargazers","contributors_url":"https://api.github.com/repos/firedrakeproject/tsfc/contributors","subscribers_url":"https://api.github.com/repos/firedrakeproject/tsfc/subscribers","subscription_url":"https://api.github.com/repos/firedrakeproject/tsfc/subscription","commits_url":"https://api.github.com/repos/firedrakeproject/tsfc/commits{/sha}","git_commits_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/commits{/sha}","comments_url":"https://api.github.com/repos/firedrakeproject/tsfc/comments{/number}","issue_comment_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/comments{/number}","contents_url":"https://api.github.com/repos/firedrakeproject/tsfc/contents/{+path}","compare_url":"https://api.github.com/repos/firedrakeproject/tsfc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/firedrakeproject/tsfc/merges","archive_url":"https://api.github.com/repos/firedrakeproject/tsfc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/firedrakeproject/tsfc/downloads","issues_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues{/number}","pulls_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls{/number}","milestones_url":"https://api.github.com/repos/firedrakeproject/tsfc/milestones{/number}","notifications_url":"https://api.github.com/repos/firedrakeproject/tsfc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/firedrakeproject/tsfc/labels{/name}","releases_url":"https://api.github.com/repos/firedrakeproject/tsfc/releases{/id}","deployments_url":"https://api.github.com/repos/firedrakeproject/tsfc/deployments","created_at":"2016-02-01T14:07:32Z","updated_at":"2016-02-01T14:10:54Z","pushed_at":"2016-02-16T18:52:11Z","git_url":"git://github.com/firedrakeproject/tsfc.git","ssh_url":"git@github.com:firedrakeproject/tsfc.git","clone_url":"https://github.com/firedrakeproject/tsfc.git","svn_url":"https://github.com/firedrakeproject/tsfc","homepage":null,"size":121,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":7,"forks":0,"open_issues":7,"watchers":0,"default_branch":"master"}},"base":{"label":"firedrakeproject:master","ref":"master","sha":"f7bc4a69d4ca7fd3467960c16393632678d77ccc","user":{"login":"firedrakeproject","id":5558005,"avatar_url":"https://avatars.githubusercontent.com/u/5558005?v=3","gravatar_id":"","url":"https://api.github.com/users/firedrakeproject","html_url":"https://github.com/firedrakeproject","followers_url":"https://api.github.com/users/firedrakeproject/followers","following_url":"https://api.github.com/users/firedrakeproject/following{/other_user}","gists_url":"https://api.github.com/users/firedrakeproject/gists{/gist_id}","starred_url":"https://api.github.com/users/firedrakeproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firedrakeproject/subscriptions","organizations_url":"https://api.github.com/users/firedrakeproject/orgs","repos_url":"https://api.github.com/users/firedrakeproject/repos","events_url":"https://api.github.com/users/firedrakeproject/events{/privacy}","received_events_url":"https://api.github.com/users/firedrakeproject/received_events","type":"Organization","site_admin":false},"repo":{"id":50843402,"name":"tsfc","full_name":"firedrakeproject/tsfc","owner":{"login":"firedrakeproject","id":5558005,"avatar_url":"https://avatars.githubusercontent.com/u/5558005?v=3","gravatar_id":"","url":"https://api.github.com/users/firedrakeproject","html_url":"https://github.com/firedrakeproject","followers_url":"https://api.github.com/users/firedrakeproject/followers","following_url":"https://api.github.com/users/firedrakeproject/following{/other_user}","gists_url":"https://api.github.com/users/firedrakeproject/gists{/gist_id}","starred_url":"https://api.github.com/users/firedrakeproject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/firedrakeproject/subscriptions","organizations_url":"https://api.github.com/users/firedrakeproject/orgs","repos_url":"https://api.github.com/users/firedrakeproject/repos","events_url":"https://api.github.com/users/firedrakeproject/events{/privacy}","received_events_url":"https://api.github.com/users/firedrakeproject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/firedrakeproject/tsfc","description":"Two-stage form compiler","fork":false,"url":"https://api.github.com/repos/firedrakeproject/tsfc","forks_url":"https://api.github.com/repos/firedrakeproject/tsfc/forks","keys_url":"https://api.github.com/repos/firedrakeproject/tsfc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/firedrakeproject/tsfc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/firedrakeproject/tsfc/teams","hooks_url":"https://api.github.com/repos/firedrakeproject/tsfc/hooks","issue_events_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/events{/number}","events_url":"https://api.github.com/repos/firedrakeproject/tsfc/events","assignees_url":"https://api.github.com/repos/firedrakeproject/tsfc/assignees{/user}","branches_url":"https://api.github.com/repos/firedrakeproject/tsfc/branches{/branch}","tags_url":"https://api.github.com/repos/firedrakeproject/tsfc/tags","blobs_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/refs{/sha}","trees_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/firedrakeproject/tsfc/statuses/{sha}","languages_url":"https://api.github.com/repos/firedrakeproject/tsfc/languages","stargazers_url":"https://api.github.com/repos/firedrakeproject/tsfc/stargazers","contributors_url":"https://api.github.com/repos/firedrakeproject/tsfc/contributors","subscribers_url":"https://api.github.com/repos/firedrakeproject/tsfc/subscribers","subscription_url":"https://api.github.com/repos/firedrakeproject/tsfc/subscription","commits_url":"https://api.github.com/repos/firedrakeproject/tsfc/commits{/sha}","git_commits_url":"https://api.github.com/repos/firedrakeproject/tsfc/git/commits{/sha}","comments_url":"https://api.github.com/repos/firedrakeproject/tsfc/comments{/number}","issue_comment_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues/comments{/number}","contents_url":"https://api.github.com/repos/firedrakeproject/tsfc/contents/{+path}","compare_url":"https://api.github.com/repos/firedrakeproject/tsfc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/firedrakeproject/tsfc/merges","archive_url":"https://api.github.com/repos/firedrakeproject/tsfc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/firedrakeproject/tsfc/downloads","issues_url":"https://api.github.com/repos/firedrakeproject/tsfc/issues{/number}","pulls_url":"https://api.github.com/repos/firedrakeproject/tsfc/pulls{/number}","milestones_url":"https://api.github.com/repos/firedrakeproject/tsfc/milestones{/number}","notifications_url":"https://api.github.com/repos/firedrakeproject/tsfc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/firedrakeproject/tsfc/labels{/name}","releases_url":"https://api.github.com/repos/firedrakeproject/tsfc/releases{/id}","deployments_url":"https://api.github.com/repos/firedrakeproject/tsfc/deployments","created_at":"2016-02-01T14:07:32Z","updated_at":"2016-02-01T14:10:54Z","pushed_at":"2016-02-16T18:52:11Z","git_url":"git://github.com/firedrakeproject/tsfc.git","ssh_url":"git@github.com:firedrakeproject/tsfc.git","clone_url":"https://github.com/firedrakeproject/tsfc.git","svn_url":"https://github.com/firedrakeproject/tsfc","homepage":null,"size":121,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":7,"forks":0,"open_issues":7,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20"},"html":{"href":"https://github.com/firedrakeproject/tsfc/pull/20"},"issue":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/issues/20"},"comments":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/issues/20/comments"},"review_comments":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20/comments"},"review_comment":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/pulls/20/commits"},"statuses":{"href":"https://api.github.com/repos/firedrakeproject/tsfc/statuses/de4968cb2d21bb389a85b4465285bb9105ea7004"}}}}