{"action":"created","comment":{"url":"https://api.github.com/repos/sympy/sympy/pulls/comments/64238897","id":64238897,"diff_hunk":"@@ -1117,3 +1120,382 @@ def linsolve(system, *symbols):\n     # Return solutions\n     solution = FiniteSet(tuple(solution))\n     return solution\n+\n+\n+\n+###############################################################################\n+################################ NLINSOLVE #####################################\n+###############################################################################\n+\n+\n+def substitution(system, symbols, result, known_symbols, all_symbols):\n+    r\"\"\"\n+    Solves the `system` using substitution method.\n+\n+    Parameters\n+    ==========\n+\n+    system : list of equations\n+\n+    symbols : list of unsolved symbols.\n+\n+    result : If non of the symbols are solved then it is empty list, otherwise list of already solved_syms\n+    symbols( dict symbol : value )\n+\n+    known_symbols : list of symbols already solved (might be in terms of other symbols,that will be solved).\n+\n+    all_symbols : known_symbols + unsolved symbols. \n+\n+    Returns\n+    =======\n+    Returns result of final result.\n+\n+    Examples\n+    ========\n+\n+    >>> from sympy.solvers.solveset import substitution\n+    >>> substitution([x +y], [x], [{y : 1}], [y], [x, y])\n+    [{x: -1, y: 1}]\n+\n+    \"\"\"\n+    # TODO: known_symbol is not needed, remove this variable. It is equal to keys of result.\n+    from sympy.core.compatibility import ordered, default_sort_key\n+    from sympy import Complement\n+    # sort so equation with the fewest potential symbols is first\n+    def _ok_syms(e, sort=False):\n+            rv = (e.free_symbols - set(known_symbols)) & set(all_symbols)\n+            if sort:\n+                rv = list(rv)\n+                rv.sort(key=default_sort_key)\n+            return rv\n+\n+    for eq in ordered(system, lambda _: len(_ok_syms(_))):\n+        u = Dummy()  # used in solution checking\n+        newresult = []\n+        bad_results = []\n+        got_s = set()\n+        hit = False\n+        complements = [[]]\n+        for r in result:\n+            # update eq with everything that is known so far\n+            eq2 = eq.subs(r)\n+            # if check is True then we see if it satisfies this\n+            # equation, otherwise we just accept it\n+            if r:\n+                b = checksol(u, u, eq2, minimal=True)\n+                if b is not None:\n+                    # this solution is sufficient to know whether\n+                    # it is valid or not so we either accept or\n+                    # reject it, then continue\n+                    if b:\n+                        newresult.append(r)\n+                    else:\n+                        bad_results.append(r)\n+                    continue\n+            # search for a symbol amongst those available that\n+            # can be solved for\n+            ok_syms = _ok_syms(eq2, sort=True)\n+            if not ok_syms:\n+                if r:\n+                    newresult.append(r)\n+                break  # skip as it's independent of desired symbols\n+            for s in ok_syms:\n+                not_solvable = False\n+                soln_imageset = None\n+                try:\n+                    soln = solveset_real(eq2, s)\n+                    # Not sure to add the complex solution or not\n+                    # soln = soln + solveset_complex(eq2, s)\n+                    if not soln:\n+                         soln = solveset_complex(eq2, s)\n+                except NotImplementedError:\n+                    continue\n+                # put each solution in r and append the now-expanded\n+                # result in the new result list; use copy since the\n+                # solution for s in being added in-place\n+                if isinstance(soln, ImageSet):\n+                    soln_imageset = soln\n+                    soln = FiniteSet(soln.lamda.expr)\n+                elif isinstance(soln, ConditionSet):\n+                    soln = FiniteSet()\n+                    not_solvable = True\n+                elif isinstance(soln, Complement):\n+                    # extract solution and complement\n+                    comp = {}\n+                    comp[s] = list(soln.args[1])[0]\n+                    complements.append(comp)\n+                    soln = soln.args[0]\n+                elif isinstance(soln, Intersection):\n+                    # sometimes solveset returns Intersection with S.Real\n+                    soln = soln.args[1]\n+                for sol in soln:\n+                    if got_s and any([ss in sol.free_symbols for ss in got_s]):\n+                        # sol depends on previously solved symbols: discard it\n+                        continue\n+                    rnew = r.copy()\n+                    for k, v in r.items():\n+                        if isinstance(v, Expr):\n+                            # if any unsolved symbol is present\n+                            # Then subs known value\n+                            rnew[k] = v.subs(s, sol)\n+                    # and add this new solution\n+                    rnew[s] = sol if not soln_imageset else soln_imageset\n+                    newresult.append(rnew)\n+                hit = True\n+                if not not_solvable:\n+                    got_s.add(s)\n+            if not hit:\n+                raise NotImplementedError('could not solve %s' % eq2)\n+        else:\n+            result = newresult\n+            for b in bad_results:\n+                if b in result:\n+                    result.remove(b)\n+\n+    for r in result:\n+        # If length < len(all_symbols) means infinite soln.\n+        # Some or all the soln is dependent on 1 symbol.\n+        # eg. {x: y+2} then final soln is {x: y+2, y: y}\n+        if len(r) < len(all_symbols):\n+            unsolved = []\n+            rcopy = r.copy()\n+            for k, v in r.items():\n+                sym_list = [k]\n+                if isinstance(v, Expr):\n+                    unsolved = list(filter(lambda x : x not in sym_list, all_symbols))\n+            for us in unsolved:\n+                r[us] = us\n+            # if symbol is not in `v` , means it can take any value.\n+            # eg. if k, v => y, exp(x) then above lines will add {x: x}\n+            # if we have another symbol `z` then add {z: z} using below line.\n+        if not r:\n+            # if {None : None} is present\n+            return []\n+\n+    return result\n+\n+\n+\n+def nlinsolve(system, symbols):\n+    r\"\"\"\n+    Solve system of N non linear equations with M variables, which\n+    means both under - and overdetermined systems are supported.\n+    The possible number of solutions is zero, one or infinite.\n+    solutions are represented parametrically in terms of given\n+    symbols. For unique solution a FiniteSet of ordered tuple\n+    is returned.\n+\n+    For the given set of Equations, the respective input types\n+    are given below:\n+\n+    .. math:: x*y - 1 = 0\n+    .. math:: 4*x**2 + y**2 - 5 = 0\n+\n+    `system  =  [x*y - 1, 4*x**2 + y**2 - 5]`\n+    `symbols = [x,y]`\n+\n+    >>> nlinsolve([x*y - 1, 4*x**2 + y**2 - 5],[x,y])\n+    >>> {(-1, -1), (-1/2, -2), (1/2, 2), (1, 1)}\n+\n+    Positive dimensional system is also can be solved.\n+\n+    Examples\n+    ========\n+\n+    >>> from sympy.polys.polytools import is_zero_dimensional\n+    >>> from sympy.solvers.solveset import nlinsolve\n+    >>> a, b, c, d = symbols('a, b, c, d', real = True)\n+    >>> foo =  a+b+c+d\n+    >>> bar = a*b + b*c + c*d + d*a\n+    >>> foo_bar = a*b*c+ b*c*d+ c*d*a + d*a*b \n+    >>> bar_foo = a*b*c*d- 1\n+    >>> system = [foo, bar, foo_bar, bar_foo]\n+    >>> is_zero_dimensional(system)\n+    False\n+    >>> nlinsolve(system,[a,b,c,d])\n+    {a: -1/d, c: 1/d, b: -d, d: d}\n+\n+    >>> x, y = symbols('x, y', real = True)\n+    >>> nlinsolve([(x+y)**2 - 4, x + y - 2],[x,y])\n+    {x: -y + 2, y: y}\n+\n+    Note: You have to take assumption `real = True`, otherwise solveset returns solution\n+    with Intersection S.Reals\n+\n+    * If there is complex solution for particular symbol, `nlinsolve` \n+    can give general solution for this.\n+\n+    Example\n+    =======\n+\n+    >>> nlinsolve([exp(x) - sin(y), y**2 - 4], [x, y])\n+    [{y: -2, x: ImageSet(Lambda(_n, I*(2*_n*pi + pi) + log(sin(2))), Integers())}, {y: 2, x: log(sin(2))}]\n+    * If system is linear positive dimensional system, `nlinsolve` can \n+    solve this system also.\n+\n+    Examples\n+    ========\n+\n+    >>> x, y, z = symbols('x, y, z', real = True)\n+    >>> nlinsolve([x + 2*y -z - 3, x - y - 4*z + 9 , y + z - 4],[x,y,z])\n+    {x: 3*z - 5, y: -z + 4, z: z}\n+\n+    Parameters\n+    ==========\n+\n+    system : list of equations\n+        The target system of equations\n+    symbols : list of Symbol\n+\n+    * Note : List of symbol is used here.\n+\n+    Returns\n+    =======\n+\n+    A FiniteSet of ordered tuple of values of `symbols` for which\n+    the `system` has solution.\n+\n+    Please note that general FiniteSet is unordered, the solution\n+    returned here is not simply a FiniteSet of solutions, rather\n+    it is a FiniteSet of ordered tuple, i.e. the first & only\n+    argument to FiniteSet is a tuple of solutions, which is ordered,\n+    & hence the returned solution is ordered.\n+\n+    Also note that solution could also have been returned as an\n+    ordered tuple, FiniteSet is just a wrapper `{}` around\n+    the tuple. It has no other significance except for\n+    the fact it is just used to maintain a consistent output\n+    format throughout the solveset.\n+\n+\n+    More examples:\n+    =============\n+    # poly system of equations\n+    >>> e1 = sqrt(x**2 + y**2) - 10\n+    >>> e2 = sqrt(y**2 + (-x + 10)**2) - 3\n+    >>> nlinsolve((e1, e2), (x, y))\n+    >>> {(191/20, -3*sqrt(391)/20), (191/20, 3*sqrt(391)/20)}\n+    >>> nlinsolve([x**2 + 2/y - 2, x + y - 3], [x, y])\n+    >>> {(1, 2), (1 + sqrt(5), -sqrt(5) + 2), (-sqrt(5) + 1, 2 + sqrt(5))}\n+    >>> r, t = symbols('r, t')\n+    >>> nlinsolve([r - x**2 - y**2, tan(t) - y/x], [x, y])\n+    >>> {(-sqrt(r/(tan(t)**2 + 1)), -sqrt(r/(tan(t)**2 + 1))*tan(t)), \\\n+    (sqrt(r/(tan(t)**2 + 1)), sqrt(r/(tan(t)**2 + 1))*tan(t))}\n+\n+    \"\"\"\n+    from sympy.solvers.solvers import _invert as _invert_solver\n+    from sympy.utilities.iterables import subsets\n+    from sympy.polys.polytools import is_zero_dimensional, groebner\n+    if not system:\n+        return S.EmptySet\n+\n+    if not symbols:\n+        raise ValueError('Symbols must be given, for which solution of the '\n+                         'system is to be found.')\n+    polys = []\n+    nonpolys = []\n+    for j, g in enumerate(system):\n+        # TODO : solveset `_invert, improve for more than one symbols\n+        # move all the terms, having any `symbols` in lhs and make it 'g'. currently using old solver's _invert\n+        i, d = _invert_solver(g, *symbols)\n+        g = d - i\n+        g = g.as_numer_denom()[0]\n+\n+        poly = g.as_poly(*symbols, extension=True)\n+        if poly is not None:\n+            polys.append(poly)\n+        else:\n+            nonpolys.append(g)\n+\n+    # If none of the equation is Poly\n+    if not polys:\n+        solved_syms = []\n+\n+    result = None\n+    if len(symbols) == len(polys):\n+        if is_zero_dimensional(system):\n+            try:\n+                # try to solve, when all the equations are poly\n+                result = solve_poly_system(polys, *symbols)\n+                return FiniteSet(*[s for s in result])\n+            except NotImplementedError:\n+                # Right now We don't know the failed case\n+                pass\n+        else:\n+            # positive dimensional system\n+            # Do substitution method with groebner basis of the system\n+            basis = groebner(polys, symbols, polys=True)\n+            new_system = []\n+            for p in basis:\n+                new_system.append(p.as_expr())\n+            # solved_symbols = []\n+            result = [{}]\n+            result = substitution(new_system, symbols, result, [], symbols)\n+\n+    else:\n+        result = []\n+        # all the equations are not Polynomial\n+        depend_soln = {}\n+        solved_syms = []\n+        # first solve the polynomial equations if present\n+        if polys:\n+            combinations = list(subsets(symbols, len(polys)))\n+            for new_symbols in combinations:\n+                try:\n+                    # solution for new_symbols in terms of other symbols\n+                    res = solve_poly_system(polys, new_symbols)\n+                    for r in res:\n+                        skip = False\n+                        # check tuples of res\n+                        for r1 in r:\n+                            if depend_soln and any([k in r1.free_symbols\n+                                for k, v in depend_soln.items()]):\n+                                # sol depends on previously\n+                                # solved symbols: discard it\n+                                # eg : depend_soln=> {x : -y} and\n+                                # r1 is function of x like r1 = -x for y\n+                                skip = True","path":"sympy/solvers/solveset.py","position":361,"original_position":361,"commit_id":"38a2c7fe235d691ce30ba5607b181c358836e335","original_commit_id":"38a2c7fe235d691ce30ba5607b181c358836e335","user":{"login":"Shekharrajak","id":5774448,"avatar_url":"https://avatars.githubusercontent.com/u/5774448?v=3","gravatar_id":"","url":"https://api.github.com/users/Shekharrajak","html_url":"https://github.com/Shekharrajak","followers_url":"https://api.github.com/users/Shekharrajak/followers","following_url":"https://api.github.com/users/Shekharrajak/following{/other_user}","gists_url":"https://api.github.com/users/Shekharrajak/gists{/gist_id}","starred_url":"https://api.github.com/users/Shekharrajak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shekharrajak/subscriptions","organizations_url":"https://api.github.com/users/Shekharrajak/orgs","repos_url":"https://api.github.com/users/Shekharrajak/repos","events_url":"https://api.github.com/users/Shekharrajak/events{/privacy}","received_events_url":"https://api.github.com/users/Shekharrajak/received_events","type":"User","site_admin":false},"body":"No","created_at":"2016-05-23T15:14:41Z","updated_at":"2016-05-23T15:14:41Z","html_url":"https://github.com/sympy/sympy/pull/11111#discussion_r64238897","pull_request_url":"https://api.github.com/repos/sympy/sympy/pulls/11111","_links":{"self":{"href":"https://api.github.com/repos/sympy/sympy/pulls/comments/64238897"},"html":{"href":"https://github.com/sympy/sympy/pull/11111#discussion_r64238897"},"pull_request":{"href":"https://api.github.com/repos/sympy/sympy/pulls/11111"}}},"pull_request":{"url":"https://api.github.com/repos/sympy/sympy/pulls/11111","id":70120781,"html_url":"https://github.com/sympy/sympy/pull/11111","diff_url":"https://github.com/sympy/sympy/pull/11111.diff","patch_url":"https://github.com/sympy/sympy/pull/11111.patch","issue_url":"https://api.github.com/repos/sympy/sympy/issues/11111","number":11111,"state":"open","locked":false,"title":"[WIP] solveset : nlinsolve - nonlinear system of equation","user":{"login":"Shekharrajak","id":5774448,"avatar_url":"https://avatars.githubusercontent.com/u/5774448?v=3","gravatar_id":"","url":"https://api.github.com/users/Shekharrajak","html_url":"https://github.com/Shekharrajak","followers_url":"https://api.github.com/users/Shekharrajak/followers","following_url":"https://api.github.com/users/Shekharrajak/following{/other_user}","gists_url":"https://api.github.com/users/Shekharrajak/gists{/gist_id}","starred_url":"https://api.github.com/users/Shekharrajak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shekharrajak/subscriptions","organizations_url":"https://api.github.com/users/Shekharrajak/orgs","repos_url":"https://api.github.com/users/Shekharrajak/repos","events_url":"https://api.github.com/users/Shekharrajak/events{/privacy}","received_events_url":"https://api.github.com/users/Shekharrajak/received_events","type":"User","site_admin":false},"body":"It is better to show the progress of work. If I am going wrong somewhere feel free to comment.\r\n* Work is still in progress. \r\n\r\n- [ ] Modify testcases.\r\n- [ ] Non poly cases ( where `_solve_poly_system` can't help) .\r\n","created_at":"2016-05-15T13:08:25Z","updated_at":"2016-05-23T15:14:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"accfedd170fc742b28ba07748f5d511c2743a023","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/sympy/sympy/pulls/11111/commits","review_comments_url":"https://api.github.com/repos/sympy/sympy/pulls/11111/comments","review_comment_url":"https://api.github.com/repos/sympy/sympy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sympy/sympy/issues/11111/comments","statuses_url":"https://api.github.com/repos/sympy/sympy/statuses/38a2c7fe235d691ce30ba5607b181c358836e335","head":{"label":"Shekharrajak:gsoc_nlinsolve","ref":"gsoc_nlinsolve","sha":"38a2c7fe235d691ce30ba5607b181c358836e335","user":{"login":"Shekharrajak","id":5774448,"avatar_url":"https://avatars.githubusercontent.com/u/5774448?v=3","gravatar_id":"","url":"https://api.github.com/users/Shekharrajak","html_url":"https://github.com/Shekharrajak","followers_url":"https://api.github.com/users/Shekharrajak/followers","following_url":"https://api.github.com/users/Shekharrajak/following{/other_user}","gists_url":"https://api.github.com/users/Shekharrajak/gists{/gist_id}","starred_url":"https://api.github.com/users/Shekharrajak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shekharrajak/subscriptions","organizations_url":"https://api.github.com/users/Shekharrajak/orgs","repos_url":"https://api.github.com/users/Shekharrajak/repos","events_url":"https://api.github.com/users/Shekharrajak/events{/privacy}","received_events_url":"https://api.github.com/users/Shekharrajak/received_events","type":"User","site_admin":false},"repo":{"id":42365606,"name":"sympy","full_name":"Shekharrajak/sympy","owner":{"login":"Shekharrajak","id":5774448,"avatar_url":"https://avatars.githubusercontent.com/u/5774448?v=3","gravatar_id":"","url":"https://api.github.com/users/Shekharrajak","html_url":"https://github.com/Shekharrajak","followers_url":"https://api.github.com/users/Shekharrajak/followers","following_url":"https://api.github.com/users/Shekharrajak/following{/other_user}","gists_url":"https://api.github.com/users/Shekharrajak/gists{/gist_id}","starred_url":"https://api.github.com/users/Shekharrajak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shekharrajak/subscriptions","organizations_url":"https://api.github.com/users/Shekharrajak/orgs","repos_url":"https://api.github.com/users/Shekharrajak/repos","events_url":"https://api.github.com/users/Shekharrajak/events{/privacy}","received_events_url":"https://api.github.com/users/Shekharrajak/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Shekharrajak/sympy","description":"A computer algebra system written in pure Python","fork":true,"url":"https://api.github.com/repos/Shekharrajak/sympy","forks_url":"https://api.github.com/repos/Shekharrajak/sympy/forks","keys_url":"https://api.github.com/repos/Shekharrajak/sympy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Shekharrajak/sympy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Shekharrajak/sympy/teams","hooks_url":"https://api.github.com/repos/Shekharrajak/sympy/hooks","issue_events_url":"https://api.github.com/repos/Shekharrajak/sympy/issues/events{/number}","events_url":"https://api.github.com/repos/Shekharrajak/sympy/events","assignees_url":"https://api.github.com/repos/Shekharrajak/sympy/assignees{/user}","branches_url":"https://api.github.com/repos/Shekharrajak/sympy/branches{/branch}","tags_url":"https://api.github.com/repos/Shekharrajak/sympy/tags","blobs_url":"https://api.github.com/repos/Shekharrajak/sympy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Shekharrajak/sympy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Shekharrajak/sympy/git/refs{/sha}","trees_url":"https://api.github.com/repos/Shekharrajak/sympy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Shekharrajak/sympy/statuses/{sha}","languages_url":"https://api.github.com/repos/Shekharrajak/sympy/languages","stargazers_url":"https://api.github.com/repos/Shekharrajak/sympy/stargazers","contributors_url":"https://api.github.com/repos/Shekharrajak/sympy/contributors","subscribers_url":"https://api.github.com/repos/Shekharrajak/sympy/subscribers","subscription_url":"https://api.github.com/repos/Shekharrajak/sympy/subscription","commits_url":"https://api.github.com/repos/Shekharrajak/sympy/commits{/sha}","git_commits_url":"https://api.github.com/repos/Shekharrajak/sympy/git/commits{/sha}","comments_url":"https://api.github.com/repos/Shekharrajak/sympy/comments{/number}","issue_comment_url":"https://api.github.com/repos/Shekharrajak/sympy/issues/comments{/number}","contents_url":"https://api.github.com/repos/Shekharrajak/sympy/contents/{+path}","compare_url":"https://api.github.com/repos/Shekharrajak/sympy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Shekharrajak/sympy/merges","archive_url":"https://api.github.com/repos/Shekharrajak/sympy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Shekharrajak/sympy/downloads","issues_url":"https://api.github.com/repos/Shekharrajak/sympy/issues{/number}","pulls_url":"https://api.github.com/repos/Shekharrajak/sympy/pulls{/number}","milestones_url":"https://api.github.com/repos/Shekharrajak/sympy/milestones{/number}","notifications_url":"https://api.github.com/repos/Shekharrajak/sympy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Shekharrajak/sympy/labels{/name}","releases_url":"https://api.github.com/repos/Shekharrajak/sympy/releases{/id}","deployments_url":"https://api.github.com/repos/Shekharrajak/sympy/deployments","created_at":"2015-09-12T17:09:44Z","updated_at":"2016-02-09T11:08:45Z","pushed_at":"2016-05-23T14:55:59Z","git_url":"git://github.com/Shekharrajak/sympy.git","ssh_url":"git@github.com:Shekharrajak/sympy.git","clone_url":"https://github.com/Shekharrajak/sympy.git","svn_url":"https://github.com/Shekharrajak/sympy","homepage":"http://sympy.org/","size":77465,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"sympy:master","ref":"master","sha":"db73ed37b955474ad9f1b3d2c5c762e32ce2cbfe","user":{"login":"sympy","id":260832,"avatar_url":"https://avatars.githubusercontent.com/u/260832?v=3","gravatar_id":"","url":"https://api.github.com/users/sympy","html_url":"https://github.com/sympy","followers_url":"https://api.github.com/users/sympy/followers","following_url":"https://api.github.com/users/sympy/following{/other_user}","gists_url":"https://api.github.com/users/sympy/gists{/gist_id}","starred_url":"https://api.github.com/users/sympy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sympy/subscriptions","organizations_url":"https://api.github.com/users/sympy/orgs","repos_url":"https://api.github.com/users/sympy/repos","events_url":"https://api.github.com/users/sympy/events{/privacy}","received_events_url":"https://api.github.com/users/sympy/received_events","type":"Organization","site_admin":false},"repo":{"id":640534,"name":"sympy","full_name":"sympy/sympy","owner":{"login":"sympy","id":260832,"avatar_url":"https://avatars.githubusercontent.com/u/260832?v=3","gravatar_id":"","url":"https://api.github.com/users/sympy","html_url":"https://github.com/sympy","followers_url":"https://api.github.com/users/sympy/followers","following_url":"https://api.github.com/users/sympy/following{/other_user}","gists_url":"https://api.github.com/users/sympy/gists{/gist_id}","starred_url":"https://api.github.com/users/sympy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sympy/subscriptions","organizations_url":"https://api.github.com/users/sympy/orgs","repos_url":"https://api.github.com/users/sympy/repos","events_url":"https://api.github.com/users/sympy/events{/privacy}","received_events_url":"https://api.github.com/users/sympy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sympy/sympy","description":"A computer algebra system written in pure Python","fork":false,"url":"https://api.github.com/repos/sympy/sympy","forks_url":"https://api.github.com/repos/sympy/sympy/forks","keys_url":"https://api.github.com/repos/sympy/sympy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sympy/sympy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sympy/sympy/teams","hooks_url":"https://api.github.com/repos/sympy/sympy/hooks","issue_events_url":"https://api.github.com/repos/sympy/sympy/issues/events{/number}","events_url":"https://api.github.com/repos/sympy/sympy/events","assignees_url":"https://api.github.com/repos/sympy/sympy/assignees{/user}","branches_url":"https://api.github.com/repos/sympy/sympy/branches{/branch}","tags_url":"https://api.github.com/repos/sympy/sympy/tags","blobs_url":"https://api.github.com/repos/sympy/sympy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sympy/sympy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sympy/sympy/git/refs{/sha}","trees_url":"https://api.github.com/repos/sympy/sympy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sympy/sympy/statuses/{sha}","languages_url":"https://api.github.com/repos/sympy/sympy/languages","stargazers_url":"https://api.github.com/repos/sympy/sympy/stargazers","contributors_url":"https://api.github.com/repos/sympy/sympy/contributors","subscribers_url":"https://api.github.com/repos/sympy/sympy/subscribers","subscription_url":"https://api.github.com/repos/sympy/sympy/subscription","commits_url":"https://api.github.com/repos/sympy/sympy/commits{/sha}","git_commits_url":"https://api.github.com/repos/sympy/sympy/git/commits{/sha}","comments_url":"https://api.github.com/repos/sympy/sympy/comments{/number}","issue_comment_url":"https://api.github.com/repos/sympy/sympy/issues/comments{/number}","contents_url":"https://api.github.com/repos/sympy/sympy/contents/{+path}","compare_url":"https://api.github.com/repos/sympy/sympy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sympy/sympy/merges","archive_url":"https://api.github.com/repos/sympy/sympy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sympy/sympy/downloads","issues_url":"https://api.github.com/repos/sympy/sympy/issues{/number}","pulls_url":"https://api.github.com/repos/sympy/sympy/pulls{/number}","milestones_url":"https://api.github.com/repos/sympy/sympy/milestones{/number}","notifications_url":"https://api.github.com/repos/sympy/sympy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sympy/sympy/labels{/name}","releases_url":"https://api.github.com/repos/sympy/sympy/releases{/id}","deployments_url":"https://api.github.com/repos/sympy/sympy/deployments","created_at":"2010-04-30T20:37:14Z","updated_at":"2016-05-23T10:52:17Z","pushed_at":"2016-05-23T14:21:18Z","git_url":"git://github.com/sympy/sympy.git","ssh_url":"git@github.com:sympy/sympy.git","clone_url":"https://github.com/sympy/sympy.git","svn_url":"https://github.com/sympy/sympy","homepage":"http://sympy.org/","size":118070,"stargazers_count":2872,"watchers_count":2872,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1463,"mirror_url":null,"open_issues_count":2348,"forks":1463,"open_issues":2348,"watchers":2872,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sympy/sympy/pulls/11111"},"html":{"href":"https://github.com/sympy/sympy/pull/11111"},"issue":{"href":"https://api.github.com/repos/sympy/sympy/issues/11111"},"comments":{"href":"https://api.github.com/repos/sympy/sympy/issues/11111/comments"},"review_comments":{"href":"https://api.github.com/repos/sympy/sympy/pulls/11111/comments"},"review_comment":{"href":"https://api.github.com/repos/sympy/sympy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sympy/sympy/pulls/11111/commits"},"statuses":{"href":"https://api.github.com/repos/sympy/sympy/statuses/38a2c7fe235d691ce30ba5607b181c358836e335"}}}}
{"actor":{"display_login":"Shekharrajak"}}