{"action":"created","comment":{"url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/comments/34954389","id":34954389,"diff_hunk":"@@ -0,0 +1,432 @@\n+from dis import Bytecode, HAVE_ARGUMENT\n+from enum import IntEnum, unique\n+from functools import reduce\n+import operator\n+from types import CodeType\n+\n+from .instructions import Instruction, LOAD_CONST\n+from .utils.functional import scanl\n+\n+\n+@unique\n+class Flags(IntEnum):\n+    CO_OPTIMIZED = 0x0001\n+    CO_NEWLOCALS = 0x0002\n+    CO_VARARGS = 0x0004\n+    CO_VARKEYWORDS = 0x0008\n+    CO_NESTED = 0x0010\n+    CO_GENERATOR = 0x0020\n+\n+    # The CO_NOFREE flag is set if there are no free or cell variables.\n+    # This information is redundant, but it allows a single flag test\n+    # to determine whether there is any extra work to be done when the\n+    # call frame it setup.\n+    CO_NOFREE = 0x0040\n+\n+    # The CO_COROUTINE flag is set for coroutine functions (defined with\n+    # ``async def`` keywords)\n+    CO_COROUTINE = 0x0080\n+    CO_ITERABLE_COROUTINE = 0x0100\n+\n+\n+def _sparse_args(instrs):\n+    \"\"\"\n+    Makes the arguments sparse so that instructions live at the correct\n+    index for the jump resolution step.\n+    The `None` instructions will be filtered out.\n+    \"\"\"\n+    for instr in instrs:\n+        yield instr\n+        if instr.opcode >= HAVE_ARGUMENT:\n+            yield None\n+            yield None\n+\n+\n+class Code(object):\n+    \"\"\"A higher abstraction over python's CodeType.\n+\n+    See Include/code.h for more information.\n+\n+    Parameters\n+    ----------\n+    instrs : iterable of Instruction\n+        A sequence of codetransformer Instruction objects.\n+    argnames : iterable of str, optional\n+        The names of the arguments to the code object.\n+    name : str, optional\n+        The name of this code object.\n+    filename : str, optional\n+        The file that this code object came from.\n+    firstlineno : int, optional\n+        The first line number of the code in this code object.\n+    lnotab : bytes, optional\n+        Bytes (encoding addr<->lineno mapping).\n+        See Objects/lnotab_notes.txt for details.\n+    nested : bool, optional\n+        Is this code object nested in another code object?\n+    generator : bool, optional\n+        Is this code object a generator?\n+    coroutine : bool, optional\n+        Is this code object a coroutine (async def)?\n+    iterable_coroutine : bool, optional\n+        Is this code object a coroutine iterator?\n+    \"\"\"\n+    __slots__ = (\n+        '_instrs',\n+        '_argnames',\n+        '_argcount',\n+        '_kwonlyargcount',\n+        '_cellvars',\n+        '_freevars',\n+        '_name',\n+        '_filename',\n+        '_firstlineno',\n+        '_lnotab',\n+        '_flags',\n+    )\n+\n+    def __init__(self,\n+                 instrs,\n+                 argnames=(),\n+                 *,\n+                 cellvars=(),\n+                 freevars=(),\n+                 name='<code>',\n+                 filename='<code>',\n+                 firstlineno=1,\n+                 lnotab=b'',\n+                 nested=False,\n+                 generator=False,\n+                 coroutine=False,\n+                 iterable_coroutine=False):\n+\n+        instrs = tuple(instrs)  # strictly evaluate any generators.\n+\n+        # Create the base flags for the function.\n+        flags = reduce(\n+            operator.or_, (\n+                (nested and Flags.CO_NESTED),\n+                (generator and Flags.CO_GENERATOR),\n+                (coroutine and Flags.CO_COROUTINE),\n+                (iterable_coroutine and Flags.CO_ITERABLE_COROUTINE),\n+            ),\n+            Flags.CO_NEWLOCALS,\n+        )\n+\n+        # The starting varnames (the names of the arguments to the function)\n+        argcount = [0]\n+        kwonlyargcount = [0]\n+        argcounter = argcount  # Which set of args are we currently counting.\n+        _argnames = []\n+        append_argname = _argnames.append\n+        varg = kwarg = None\n+        for argname in argnames:\n+            if argname.startswith('**'):\n+                if kwarg is not None:\n+                    raise ValueError('cannot specify **kwargs more than once')\n+                kwarg = argname[2:]\n+                continue\n+            elif argname.startswith('*'):\n+                if varg is not None:\n+                    raise ValueError('cannot specify *args more than once')\n+                varg = argname[1:]\n+                argcounter = kwonlyargcount  # all following args are kwonly.\n+                continue\n+            argcounter[0] += 1\n+            append_argname(argname)\n+\n+        if varg is not None:\n+            flags |= Flags.CO_VARARGS\n+            append_argname(varg)\n+        if kwarg is not None:\n+            flags |= Flags.CO_VARKEYWORDS\n+            append_argname(kwarg)\n+\n+        if not any(map(operator.attrgetter('uses_free'), instrs)):\n+            flags |= Flags.CO_NOFREE\n+\n+        self._instrs = instrs\n+        self._argnames = tuple(_argnames)\n+        self._argcount = argcount[0]\n+        self._kwonlyargcount = kwonlyargcount[0]\n+        self._cellvars = cellvars\n+        self._freevars = freevars\n+        self._name = name\n+        self._filename = filename\n+        self._firstlineno = firstlineno\n+        self._lnotab = lnotab\n+        self._flags = flags\n+\n+    @classmethod\n+    def from_pycode(cls, co):\n+        \"\"\"Create a Code object from a python code object.\n+\n+        Parameters\n+        ----------\n+        co : CodeType\n+            The python code object.\n+\n+        Returns\n+        -------\n+        code : Code\n+            The codetransformer Code object.\n+        \"\"\"\n+        # Make it sparse to instrs[n] is the instruction at bytecode[n]\n+        instrs = tuple(\n+            _sparse_args(\n+                Instruction.from_opcode(\n+                    b.opcode,\n+                    Instruction._no_arg if b.arg is None else b.arg,\n+                ) for b in Bytecode(co)\n+            ),\n+        )\n+        for idx, instr in enumerate(instrs):\n+            if instr is None:\n+                # The sparse value\n+                continue\n+            if instr.absjmp:\n+                instr.arg = instrs[instr.arg]\n+            elif instr.reljmp:\n+                instr.arg = instrs[instr.arg + idx + 3]\n+            elif isinstance(instr, LOAD_CONST):\n+                instr.arg = co.co_consts[instr.arg]\n+            elif instr.uses_name:\n+                instr.arg = co.co_names[instr.arg]\n+            elif instr.uses_varname:\n+                instr.arg = co.co_varnames[instr.arg]\n+\n+        flags = co.co_flags\n+        has_vargs = bool(flags & Flags.CO_VARARGS)\n+        has_kwargs = bool(flags & Flags.CO_VARKEYWORDS)\n+\n+        # Here we convert the varnames format into our argnames format.\n+        paramnames = co.co_varnames[\n+            :(co.co_argcount +\n+              co.co_kwonlyargcount +\n+              has_vargs +\n+              has_kwargs)\n+        ]\n+        # We start with the positional arguments.\n+        new_paramnames = list(paramnames[:co.co_argcount])\n+        # Add *args next.\n+        if has_vargs:\n+            new_paramnames.append('*' + paramnames[-1 - has_kwargs])\n+        # Add positional only arguments next.\n+        new_paramnames.extend(paramnames[\n+            co.co_argcount:co.co_argcount + co.co_kwonlyargcount\n+        ])\n+        # Add **kwargs last.\n+        if has_kwargs:\n+            new_paramnames.append('**' + paramnames[-1])\n+\n+        return cls(\n+            filter(bool, instrs),\n+            argnames=new_paramnames,\n+            cellvars=co.co_cellvars,\n+            freevars=co.co_freevars,\n+            name=co.co_name,\n+            filename=co.co_filename,\n+            firstlineno=co.co_firstlineno,\n+            lnotab=co.co_lnotab,\n+            nested=flags & Flags.CO_NESTED,\n+            generator=flags & Flags.CO_GENERATOR,\n+            coroutine=flags & Flags.CO_COROUTINE,\n+            iterable_coroutine=flags & Flags.CO_ITERABLE_COROUTINE\n+        )\n+\n+    @property\n+    def as_pycode(self):\n+        \"\"\"Create a python code object from a codetransformer code object.","path":"codetransformer/code.py","position":239,"original_position":239,"commit_id":"0eaa3a0b68ee85b28caad1abc02caf294256164b","original_commit_id":"0eaa3a0b68ee85b28caad1abc02caf294256164b","user":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"body":"I was trying to use codetransformer to modify code, maybe I should say 'create a python code object from a `codetransformer.Code` object'","created_at":"2015-07-19T03:48:35Z","updated_at":"2015-07-19T03:48:35Z","html_url":"https://github.com/llllllllll/codetransformer/pull/9#discussion_r34954389","pull_request_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9","_links":{"self":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/comments/34954389"},"html":{"href":"https://github.com/llllllllll/codetransformer/pull/9#discussion_r34954389"},"pull_request":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9"}}},"pull_request":{"url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9","id":40300176,"html_url":"https://github.com/llllllllll/codetransformer/pull/9","diff_url":"https://github.com/llllllllll/codetransformer/pull/9.diff","patch_url":"https://github.com/llllllllll/codetransformer/pull/9.patch","issue_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/9","number":9,"state":"open","locked":false,"title":"Code object","user":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-07-18T23:18:39Z","updated_at":"2015-07-19T03:48:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"465e96dd9ff0c3579061919a37d312be5465644a","assignee":{"login":"ssanderson","id":1588357,"avatar_url":"https://avatars.githubusercontent.com/u/1588357?v=3","gravatar_id":"","url":"https://api.github.com/users/ssanderson","html_url":"https://github.com/ssanderson","followers_url":"https://api.github.com/users/ssanderson/followers","following_url":"https://api.github.com/users/ssanderson/following{/other_user}","gists_url":"https://api.github.com/users/ssanderson/gists{/gist_id}","starred_url":"https://api.github.com/users/ssanderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ssanderson/subscriptions","organizations_url":"https://api.github.com/users/ssanderson/orgs","repos_url":"https://api.github.com/users/ssanderson/repos","events_url":"https://api.github.com/users/ssanderson/events{/privacy}","received_events_url":"https://api.github.com/users/ssanderson/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/llllllllll/codetransformer/milestones/3","html_url":"https://github.com/llllllllll/codetransformer/milestones/0.6.0","labels_url":"https://api.github.com/repos/llllllllll/codetransformer/milestones/3/labels","id":1214443,"number":3,"title":"0.6.0","description":"","creator":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2015-07-18T23:19:08Z","updated_at":"2015-07-18T23:19:14Z","due_on":"2015-07-31T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9/commits","review_comments_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9/comments","review_comment_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/9/comments","statuses_url":"https://api.github.com/repos/llllllllll/codetransformer/statuses/0eaa3a0b68ee85b28caad1abc02caf294256164b","head":{"label":"llllllllll:code-object","ref":"code-object","sha":"0eaa3a0b68ee85b28caad1abc02caf294256164b","user":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"repo":{"id":31524592,"name":"codetransformer","full_name":"llllllllll/codetransformer","owner":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/llllllllll/codetransformer","description":"Python code object transformers","fork":false,"url":"https://api.github.com/repos/llllllllll/codetransformer","forks_url":"https://api.github.com/repos/llllllllll/codetransformer/forks","keys_url":"https://api.github.com/repos/llllllllll/codetransformer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/llllllllll/codetransformer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/llllllllll/codetransformer/teams","hooks_url":"https://api.github.com/repos/llllllllll/codetransformer/hooks","issue_events_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/events{/number}","events_url":"https://api.github.com/repos/llllllllll/codetransformer/events","assignees_url":"https://api.github.com/repos/llllllllll/codetransformer/assignees{/user}","branches_url":"https://api.github.com/repos/llllllllll/codetransformer/branches{/branch}","tags_url":"https://api.github.com/repos/llllllllll/codetransformer/tags","blobs_url":"https://api.github.com/repos/llllllllll/codetransformer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/llllllllll/codetransformer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/llllllllll/codetransformer/git/refs{/sha}","trees_url":"https://api.github.com/repos/llllllllll/codetransformer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/llllllllll/codetransformer/statuses/{sha}","languages_url":"https://api.github.com/repos/llllllllll/codetransformer/languages","stargazers_url":"https://api.github.com/repos/llllllllll/codetransformer/stargazers","contributors_url":"https://api.github.com/repos/llllllllll/codetransformer/contributors","subscribers_url":"https://api.github.com/repos/llllllllll/codetransformer/subscribers","subscription_url":"https://api.github.com/repos/llllllllll/codetransformer/subscription","commits_url":"https://api.github.com/repos/llllllllll/codetransformer/commits{/sha}","git_commits_url":"https://api.github.com/repos/llllllllll/codetransformer/git/commits{/sha}","comments_url":"https://api.github.com/repos/llllllllll/codetransformer/comments{/number}","issue_comment_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/comments{/number}","contents_url":"https://api.github.com/repos/llllllllll/codetransformer/contents/{+path}","compare_url":"https://api.github.com/repos/llllllllll/codetransformer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/llllllllll/codetransformer/merges","archive_url":"https://api.github.com/repos/llllllllll/codetransformer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/llllllllll/codetransformer/downloads","issues_url":"https://api.github.com/repos/llllllllll/codetransformer/issues{/number}","pulls_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls{/number}","milestones_url":"https://api.github.com/repos/llllllllll/codetransformer/milestones{/number}","notifications_url":"https://api.github.com/repos/llllllllll/codetransformer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/llllllllll/codetransformer/labels{/name}","releases_url":"https://api.github.com/repos/llllllllll/codetransformer/releases{/id}","created_at":"2015-03-02T05:18:03Z","updated_at":"2015-06-30T05:56:55Z","pushed_at":"2015-07-18T23:18:39Z","git_url":"git://github.com/llllllllll/codetransformer.git","ssh_url":"git@github.com:llllllllll/codetransformer.git","clone_url":"https://github.com/llllllllll/codetransformer.git","svn_url":"https://github.com/llllllllll/codetransformer","homepage":null,"size":268,"stargazers_count":13,"watchers_count":13,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":2,"forks":2,"open_issues":2,"watchers":13,"default_branch":"master"}},"base":{"label":"llllllllll:master","ref":"master","sha":"1002f2f1609fc320d04bb7b32ee6ed1c06775dc5","user":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"repo":{"id":31524592,"name":"codetransformer","full_name":"llllllllll/codetransformer","owner":{"login":"llllllllll","id":3064397,"avatar_url":"https://avatars.githubusercontent.com/u/3064397?v=3","gravatar_id":"","url":"https://api.github.com/users/llllllllll","html_url":"https://github.com/llllllllll","followers_url":"https://api.github.com/users/llllllllll/followers","following_url":"https://api.github.com/users/llllllllll/following{/other_user}","gists_url":"https://api.github.com/users/llllllllll/gists{/gist_id}","starred_url":"https://api.github.com/users/llllllllll/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/llllllllll/subscriptions","organizations_url":"https://api.github.com/users/llllllllll/orgs","repos_url":"https://api.github.com/users/llllllllll/repos","events_url":"https://api.github.com/users/llllllllll/events{/privacy}","received_events_url":"https://api.github.com/users/llllllllll/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/llllllllll/codetransformer","description":"Python code object transformers","fork":false,"url":"https://api.github.com/repos/llllllllll/codetransformer","forks_url":"https://api.github.com/repos/llllllllll/codetransformer/forks","keys_url":"https://api.github.com/repos/llllllllll/codetransformer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/llllllllll/codetransformer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/llllllllll/codetransformer/teams","hooks_url":"https://api.github.com/repos/llllllllll/codetransformer/hooks","issue_events_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/events{/number}","events_url":"https://api.github.com/repos/llllllllll/codetransformer/events","assignees_url":"https://api.github.com/repos/llllllllll/codetransformer/assignees{/user}","branches_url":"https://api.github.com/repos/llllllllll/codetransformer/branches{/branch}","tags_url":"https://api.github.com/repos/llllllllll/codetransformer/tags","blobs_url":"https://api.github.com/repos/llllllllll/codetransformer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/llllllllll/codetransformer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/llllllllll/codetransformer/git/refs{/sha}","trees_url":"https://api.github.com/repos/llllllllll/codetransformer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/llllllllll/codetransformer/statuses/{sha}","languages_url":"https://api.github.com/repos/llllllllll/codetransformer/languages","stargazers_url":"https://api.github.com/repos/llllllllll/codetransformer/stargazers","contributors_url":"https://api.github.com/repos/llllllllll/codetransformer/contributors","subscribers_url":"https://api.github.com/repos/llllllllll/codetransformer/subscribers","subscription_url":"https://api.github.com/repos/llllllllll/codetransformer/subscription","commits_url":"https://api.github.com/repos/llllllllll/codetransformer/commits{/sha}","git_commits_url":"https://api.github.com/repos/llllllllll/codetransformer/git/commits{/sha}","comments_url":"https://api.github.com/repos/llllllllll/codetransformer/comments{/number}","issue_comment_url":"https://api.github.com/repos/llllllllll/codetransformer/issues/comments{/number}","contents_url":"https://api.github.com/repos/llllllllll/codetransformer/contents/{+path}","compare_url":"https://api.github.com/repos/llllllllll/codetransformer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/llllllllll/codetransformer/merges","archive_url":"https://api.github.com/repos/llllllllll/codetransformer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/llllllllll/codetransformer/downloads","issues_url":"https://api.github.com/repos/llllllllll/codetransformer/issues{/number}","pulls_url":"https://api.github.com/repos/llllllllll/codetransformer/pulls{/number}","milestones_url":"https://api.github.com/repos/llllllllll/codetransformer/milestones{/number}","notifications_url":"https://api.github.com/repos/llllllllll/codetransformer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/llllllllll/codetransformer/labels{/name}","releases_url":"https://api.github.com/repos/llllllllll/codetransformer/releases{/id}","created_at":"2015-03-02T05:18:03Z","updated_at":"2015-06-30T05:56:55Z","pushed_at":"2015-07-18T23:18:39Z","git_url":"git://github.com/llllllllll/codetransformer.git","ssh_url":"git@github.com:llllllllll/codetransformer.git","clone_url":"https://github.com/llllllllll/codetransformer.git","svn_url":"https://github.com/llllllllll/codetransformer","homepage":null,"size":268,"stargazers_count":13,"watchers_count":13,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":2,"forks":2,"open_issues":2,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9"},"html":{"href":"https://github.com/llllllllll/codetransformer/pull/9"},"issue":{"href":"https://api.github.com/repos/llllllllll/codetransformer/issues/9"},"comments":{"href":"https://api.github.com/repos/llllllllll/codetransformer/issues/9/comments"},"review_comments":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9/comments"},"review_comment":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/llllllllll/codetransformer/pulls/9/commits"},"statuses":{"href":"https://api.github.com/repos/llllllllll/codetransformer/statuses/0eaa3a0b68ee85b28caad1abc02caf294256164b"}}}}