{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import showast" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "Expr\n", "\n", "\n", "\n", "1\n", "Call\n", "[value]\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "Name\n", "[func]\n", "\n", "\n", "\n", "1--2\n", "\n", "\n", "\n", "\n", "5\n", "BinOp\n", "[args]\n", "\n", "\n", "\n", "1--5\n", "\n", "\n", "\n", "\n", "3\n", ""print"\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "4\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "2--4\n", "\n", "\n", "\n", "\n", "6\n", "Num\n", "[left]\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "Add\n", "[op]\n", "\n", "\n", "\n", "5--8\n", "\n", "\n", "\n", "\n", "9\n", "Num\n", "[right]\n", "\n", "\n", "\n", "5--9\n", "\n", "\n", "\n", "\n", "7\n", "1\n", "\n", "\n", "\n", "6--7\n", "\n", "\n", "\n", "\n", "10\n", "2\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "print(1 + 2)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "Module\n", "\n", "\n", "\n", "1\n", "Assign\n", "[body]\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "7\n", "Assign\n", "[body]\n", "\n", "\n", "\n", "0--7\n", "\n", "\n", "\n", "\n", "18\n", "AugAssign\n", "[body]\n", "\n", "\n", "\n", "0--18\n", "\n", "\n", "\n", "\n", "2\n", "Name\n", "[targets]\n", "\n", "\n", "\n", "1--2\n", "\n", "\n", "\n", "\n", "5\n", "Num\n", "[value]\n", "\n", "\n", "\n", "1--5\n", "\n", "\n", "\n", "\n", "3\n", ""a"\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "4\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "2--4\n", "\n", "\n", "\n", "\n", "6\n", "1\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "Name\n", "[targets]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "11\n", "BinOp\n", "[value]\n", "\n", "\n", "\n", "7--11\n", "\n", "\n", "\n", "\n", "9\n", ""b"\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "10\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "8--10\n", "\n", "\n", "\n", "\n", "12\n", "Name\n", "[left]\n", "\n", "\n", "\n", "11--12\n", "\n", "\n", "\n", "\n", "15\n", "Add\n", "[op]\n", "\n", "\n", "\n", "11--15\n", "\n", "\n", "\n", "\n", "16\n", "Num\n", "[right]\n", "\n", "\n", "\n", "11--16\n", "\n", "\n", "\n", "\n", "13\n", ""a"\n", "\n", "\n", "\n", "12--13\n", "\n", "\n", "\n", "\n", "14\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "12--14\n", "\n", "\n", "\n", "\n", "17\n", "2\n", "\n", "\n", "\n", "16--17\n", "\n", "\n", "\n", "\n", "19\n", "Name\n", "[target]\n", "\n", "\n", "\n", "18--19\n", "\n", "\n", "\n", "\n", "22\n", "Div\n", "[op]\n", "\n", "\n", "\n", "18--22\n", "\n", "\n", "\n", "\n", "23\n", "Num\n", "[value]\n", "\n", "\n", "\n", "18--23\n", "\n", "\n", "\n", "\n", "20\n", ""b"\n", "\n", "\n", "\n", "19--20\n", "\n", "\n", "\n", "\n", "21\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "19--21\n", "\n", "\n", "\n", "\n", "24\n", "2.0\n", "\n", "\n", "\n", "23--24\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "a = 1\n", "b = a + 2\n", "b /= 2." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "Expr\n", "\n", "\n", "\n", "1\n", "Attribute\n", "[value]\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "Call\n", "[value]\n", "\n", "\n", "\n", "1--2\n", "\n", "\n", "\n", "\n", "12\n", ""t"\n", "\n", "\n", "\n", "1--12\n", "\n", "\n", "\n", "\n", "13\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "1--13\n", "\n", "\n", "\n", "\n", "3\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "4\n", "Attribute\n", "[value]\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "10\n", ""z"\n", "\n", "\n", "\n", "3--10\n", "\n", "\n", "\n", "\n", "11\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "3--11\n", "\n", "\n", "\n", "\n", "5\n", "Name\n", "[value]\n", "\n", "\n", "\n", "4--5\n", "\n", "\n", "\n", "\n", "8\n", ""y"\n", "\n", "\n", "\n", "4--8\n", "\n", "\n", "\n", "\n", "9\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "4--9\n", "\n", "\n", "\n", "\n", "6\n", ""x"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "7\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "5--7\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "x.y.z().t" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", ""abc"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "3\n", "For\n", "[body]\n", "\n", "\n", "\n", "0--3\n", "\n", "\n", "\n", "\n", "17\n", "Return\n", "[body]\n", "\n", "\n", "\n", "0--17\n", "\n", "\n", "\n", "\n", "4\n", "Name\n", "[target]\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "7\n", "Str\n", "[iter]\n", "\n", "\n", "\n", "3--7\n", "\n", "\n", "\n", "\n", "9\n", "Expr\n", "[body]\n", "\n", "\n", "\n", "3--9\n", "\n", "\n", "\n", "\n", "5\n", ""x"\n", "\n", "\n", "\n", "4--5\n", "\n", "\n", "\n", "\n", "6\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "4--6\n", "\n", "\n", "\n", "\n", "8\n", ""abc"\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "10\n", "Call\n", "[value]\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "11\n", "Name\n", "[func]\n", "\n", "\n", "\n", "10--11\n", "\n", "\n", "\n", "\n", "14\n", "Name\n", "[args]\n", "\n", "\n", "\n", "10--14\n", "\n", "\n", "\n", "\n", "12\n", ""print"\n", "\n", "\n", "\n", "11--12\n", "\n", "\n", "\n", "\n", "13\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "11--13\n", "\n", "\n", "\n", "\n", "15\n", ""x"\n", "\n", "\n", "\n", "14--15\n", "\n", "\n", "\n", "\n", "16\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "14--16\n", "\n", "\n", "\n", "\n", "18\n", "Num\n", "[value]\n", "\n", "\n", "\n", "17--18\n", "\n", "\n", "\n", "\n", "19\n", "0\n", "\n", "\n", "\n", "18--19\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "def abc():\n", " for x in 'abc':\n", " print(x)\n", " return 0" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "Assign\n", "\n", "\n", "\n", "1\n", "Tuple\n", "[targets]\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "9\n", "ListComp\n", "[value]\n", "\n", "\n", "\n", "0--9\n", "\n", "\n", "\n", "\n", "2\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "1--2\n", "\n", "\n", "\n", "\n", "5\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "1--5\n", "\n", "\n", "\n", "\n", "8\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "1--8\n", "\n", "\n", "\n", "\n", "3\n", ""a"\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "4\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "2--4\n", "\n", "\n", "\n", "\n", "6\n", ""b"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "7\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "5--7\n", "\n", "\n", "\n", "\n", "10\n", "Name\n", "[elt]\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "13\n", "comprehension\n", "[generators]\n", "\n", "\n", "\n", "9--13\n", "\n", "\n", "\n", "\n", "11\n", ""x"\n", "\n", "\n", "\n", "10--11\n", "\n", "\n", "\n", "\n", "12\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "10--12\n", "\n", "\n", "\n", "\n", "14\n", "Name\n", "[target]\n", "\n", "\n", "\n", "13--14\n", "\n", "\n", "\n", "\n", "17\n", "Name\n", "[iter]\n", "\n", "\n", "\n", "13--17\n", "\n", "\n", "\n", "\n", "20\n", "Attribute\n", "[ifs]\n", "\n", "\n", "\n", "13--20\n", "\n", "\n", "\n", "\n", "26\n", "0\n", "\n", "\n", "\n", "13--26\n", "\n", "\n", "\n", "\n", "15\n", ""x"\n", "\n", "\n", "\n", "14--15\n", "\n", "\n", "\n", "\n", "16\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "14--16\n", "\n", "\n", "\n", "\n", "18\n", ""y"\n", "\n", "\n", "\n", "17--18\n", "\n", "\n", "\n", "\n", "19\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "17--19\n", "\n", "\n", "\n", "\n", "21\n", "Name\n", "[value]\n", "\n", "\n", "\n", "20--21\n", "\n", "\n", "\n", "\n", "24\n", ""z"\n", "\n", "\n", "\n", "20--24\n", "\n", "\n", "\n", "\n", "25\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "20--25\n", "\n", "\n", "\n", "\n", "22\n", ""x"\n", "\n", "\n", "\n", "21--22\n", "\n", "\n", "\n", "\n", "23\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "21--23\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "a, b = [x for x in y if x.z]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", ""decorated"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "3\n", "Import\n", "[body]\n", "\n", "\n", "\n", "0--3\n", "\n", "\n", "\n", "\n", "6\n", "Expr\n", "[body]\n", "\n", "\n", "\n", "0--6\n", "\n", "\n", "\n", "\n", "15\n", "Call\n", "[decorator_list]\n", "\n", "\n", "\n", "0--15\n", "\n", "\n", "\n", "\n", "4\n", "alias\n", "[names]\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "5\n", ""time"\n", "\n", "\n", "\n", "4--5\n", "\n", "\n", "\n", "\n", "7\n", "Yield\n", "[value]\n", "\n", "\n", "\n", "6--7\n", "\n", "\n", "\n", "\n", "8\n", "Call\n", "[value]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "9\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "10\n", "Name\n", "[value]\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "13\n", ""time"\n", "\n", "\n", "\n", "9--13\n", "\n", "\n", "\n", "\n", "14\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "9--14\n", "\n", "\n", "\n", "\n", "11\n", ""time"\n", "\n", "\n", "\n", "10--11\n", "\n", "\n", "\n", "\n", "12\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "10--12\n", "\n", "\n", "\n", "\n", "16\n", "Name\n", "[func]\n", "\n", "\n", "\n", "15--16\n", "\n", "\n", "\n", "\n", "17\n", ""decorator"\n", "\n", "\n", "\n", "16--17\n", "\n", "\n", "\n", "\n", "18\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "16--18\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "@decorator()\n", "def decorated():\n", " import time\n", " yield time.time()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "Module\n", "\n", "\n", "\n", "1\n", "Import\n", "[body]\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "4\n", "Import\n", "[body]\n", "\n", "\n", "\n", "0--4\n", "\n", "\n", "\n", "\n", "7\n", "Expr\n", "[body]\n", "\n", "\n", "\n", "0--7\n", "\n", "\n", "\n", "\n", "17\n", "FunctionDef\n", "[body]\n", "\n", "\n", "\n", "0--17\n", "\n", "\n", "\n", "\n", "2\n", "alias\n", "[names]\n", "\n", "\n", "\n", "1--2\n", "\n", "\n", "\n", "\n", "3\n", ""webbrowser"\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "5\n", "alias\n", "[names]\n", "\n", "\n", "\n", "4--5\n", "\n", "\n", "\n", "\n", "6\n", ""hashlib"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "Call\n", "[value]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "9\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "15\n", "Str\n", "[args]\n", "\n", "\n", "\n", "8--15\n", "\n", "\n", "\n", "\n", "10\n", "Name\n", "[value]\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "13\n", ""open"\n", "\n", "\n", "\n", "9--13\n", "\n", "\n", "\n", "\n", "14\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "9--14\n", "\n", "\n", "\n", "\n", "11\n", ""webbrowser"\n", "\n", "\n", "\n", "10--11\n", "\n", "\n", "\n", "\n", "12\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "10--12\n", "\n", "\n", "\n", "\n", "16\n", ""https://xkcd.com/353/"\n", "\n", "\n", "\n", "15--16\n", "\n", "\n", "\n", "\n", "18\n", ""geohash"\n", "\n", "\n", "\n", "17--18\n", "\n", "\n", "\n", "\n", "19\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "17--19\n", "\n", "\n", "\n", "\n", "26\n", "Assign\n", "[body]\n", "\n", "\n", "\n", "17--26\n", "\n", "\n", "\n", "\n", "44\n", "Assign\n", "[body]\n", "\n", "\n", "\n", "17--44\n", "\n", "\n", "\n", "\n", "97\n", "Expr\n", "[body]\n", "\n", "\n", "\n", "17--97\n", "\n", "\n", "\n", "\n", "20\n", "arg\n", "[args]\n", "\n", "\n", "\n", "19--20\n", "\n", "\n", "\n", "\n", "22\n", "arg\n", "[args]\n", "\n", "\n", "\n", "19--22\n", "\n", "\n", "\n", "\n", "24\n", "arg\n", "[args]\n", "\n", "\n", "\n", "19--24\n", "\n", "\n", "\n", "\n", "21\n", ""latitude"\n", "\n", "\n", "\n", "20--21\n", "\n", "\n", "\n", "\n", "23\n", ""longitude"\n", "\n", "\n", "\n", "22--23\n", "\n", "\n", "\n", "\n", "25\n", ""datedow"\n", "\n", "\n", "\n", "24--25\n", "\n", "\n", "\n", "\n", "27\n", "Name\n", "[targets]\n", "\n", "\n", "\n", "26--27\n", "\n", "\n", "\n", "\n", "30\n", "Call\n", "[value]\n", "\n", "\n", "\n", "26--30\n", "\n", "\n", "\n", "\n", "28\n", ""h"\n", "\n", "\n", "\n", "27--28\n", "\n", "\n", "\n", "\n", "29\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "27--29\n", "\n", "\n", "\n", "\n", "31\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "30--31\n", "\n", "\n", "\n", "\n", "32\n", "Call\n", "[value]\n", "\n", "\n", "\n", "31--32\n", "\n", "\n", "\n", "\n", "42\n", ""hexdigest"\n", "\n", "\n", "\n", "31--42\n", "\n", "\n", "\n", "\n", "43\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "31--43\n", "\n", "\n", "\n", "\n", "33\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "32--33\n", "\n", "\n", "\n", "\n", "39\n", "Name\n", "[args]\n", "\n", "\n", "\n", "32--39\n", "\n", "\n", "\n", "\n", "34\n", "Name\n", "[value]\n", "\n", "\n", "\n", "33--34\n", "\n", "\n", "\n", "\n", "37\n", ""md5"\n", "\n", "\n", "\n", "33--37\n", "\n", "\n", "\n", "\n", "38\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "33--38\n", "\n", "\n", "\n", "\n", "35\n", ""hashlib"\n", "\n", "\n", "\n", "34--35\n", "\n", "\n", "\n", "\n", "36\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "34--36\n", "\n", "\n", "\n", "\n", "40\n", ""datedow"\n", "\n", "\n", "\n", "39--40\n", "\n", "\n", "\n", "\n", "41\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "39--41\n", "\n", "\n", "\n", "\n", "45\n", "Tuple\n", "[targets]\n", "\n", "\n", "\n", "44--45\n", "\n", "\n", "\n", "\n", "53\n", "ListComp\n", "[value]\n", "\n", "\n", "\n", "44--53\n", "\n", "\n", "\n", "\n", "46\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "45--46\n", "\n", "\n", "\n", "\n", "49\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "45--49\n", "\n", "\n", "\n", "\n", "52\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "45--52\n", "\n", "\n", "\n", "\n", "47\n", ""p"\n", "\n", "\n", "\n", "46--47\n", "\n", "\n", "\n", "\n", "48\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "46--48\n", "\n", "\n", "\n", "\n", "50\n", ""q"\n", "\n", "\n", "\n", "49--50\n", "\n", "\n", "\n", "\n", "51\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "49--51\n", "\n", "\n", "\n", "\n", "54\n", "BinOp\n", "[elt]\n", "\n", "\n", "\n", "53--54\n", "\n", "\n", "\n", "\n", "72\n", "comprehension\n", "[generators]\n", "\n", "\n", "\n", "53--72\n", "\n", "\n", "\n", "\n", "55\n", "Str\n", "[left]\n", "\n", "\n", "\n", "54--55\n", "\n", "\n", "\n", "\n", "57\n", "Mod\n", "[op]\n", "\n", "\n", "\n", "54--57\n", "\n", "\n", "\n", "\n", "58\n", "Call\n", "[right]\n", "\n", "\n", "\n", "54--58\n", "\n", "\n", "\n", "\n", "56\n", ""%f"\n", "\n", "\n", "\n", "55--56\n", "\n", "\n", "\n", "\n", "59\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "58--59\n", "\n", "\n", "\n", "\n", "65\n", "BinOp\n", "[args]\n", "\n", "\n", "\n", "58--65\n", "\n", "\n", "\n", "\n", "60\n", "Name\n", "[value]\n", "\n", "\n", "\n", "59--60\n", "\n", "\n", "\n", "\n", "63\n", ""fromhex"\n", "\n", "\n", "\n", "59--63\n", "\n", "\n", "\n", "\n", "64\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "59--64\n", "\n", "\n", "\n", "\n", "61\n", ""float"\n", "\n", "\n", "\n", "60--61\n", "\n", "\n", "\n", "\n", "62\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "60--62\n", "\n", "\n", "\n", "\n", "66\n", "Str\n", "[left]\n", "\n", "\n", "\n", "65--66\n", "\n", "\n", "\n", "\n", "68\n", "Add\n", "[op]\n", "\n", "\n", "\n", "65--68\n", "\n", "\n", "\n", "\n", "69\n", "Name\n", "[right]\n", "\n", "\n", "\n", "65--69\n", "\n", "\n", "\n", "\n", "67\n", ""0."\n", "\n", "\n", "\n", "66--67\n", "\n", "\n", "\n", "\n", "70\n", ""x"\n", "\n", "\n", "\n", "69--70\n", "\n", "\n", "\n", "\n", "71\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "69--71\n", "\n", "\n", "\n", "\n", "73\n", "Name\n", "[target]\n", "\n", "\n", "\n", "72--73\n", "\n", "\n", "\n", "\n", "76\n", "Tuple\n", "[iter]\n", "\n", "\n", "\n", "72--76\n", "\n", "\n", "\n", "\n", "96\n", "0\n", "\n", "\n", "\n", "72--96\n", "\n", "\n", "\n", "\n", "74\n", ""x"\n", "\n", "\n", "\n", "73--74\n", "\n", "\n", "\n", "\n", "75\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "73--75\n", "\n", "\n", "\n", "\n", "77\n", "Subscript\n", "[elts]\n", "\n", "\n", "\n", "76--77\n", "\n", "\n", "\n", "\n", "85\n", "Subscript\n", "[elts]\n", "\n", "\n", "\n", "76--85\n", "\n", "\n", "\n", "\n", "95\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "76--95\n", "\n", "\n", "\n", "\n", "78\n", "Name\n", "[value]\n", "\n", "\n", "\n", "77--78\n", "\n", "\n", "\n", "\n", "81\n", "Slice\n", "[slice]\n", "\n", "\n", "\n", "77--81\n", "\n", "\n", "\n", "\n", "84\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "77--84\n", "\n", "\n", "\n", "\n", "79\n", ""h"\n", "\n", "\n", "\n", "78--79\n", "\n", "\n", "\n", "\n", "80\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "78--80\n", "\n", "\n", "\n", "\n", "82\n", "Num\n", "[upper]\n", "\n", "\n", "\n", "81--82\n", "\n", "\n", "\n", "\n", "83\n", "16\n", "\n", "\n", "\n", "82--83\n", "\n", "\n", "\n", "\n", "86\n", "Name\n", "[value]\n", "\n", "\n", "\n", "85--86\n", "\n", "\n", "\n", "\n", "89\n", "Slice\n", "[slice]\n", "\n", "\n", "\n", "85--89\n", "\n", "\n", "\n", "\n", "94\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "85--94\n", "\n", "\n", "\n", "\n", "87\n", ""h"\n", "\n", "\n", "\n", "86--87\n", "\n", "\n", "\n", "\n", "88\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "86--88\n", "\n", "\n", "\n", "\n", "90\n", "Num\n", "[lower]\n", "\n", "\n", "\n", "89--90\n", "\n", "\n", "\n", "\n", "92\n", "Num\n", "[upper]\n", "\n", "\n", "\n", "89--92\n", "\n", "\n", "\n", "\n", "91\n", "16\n", "\n", "\n", "\n", "90--91\n", "\n", "\n", "\n", "\n", "93\n", "32\n", "\n", "\n", "\n", "92--93\n", "\n", "\n", "\n", "\n", "98\n", "Call\n", "[value]\n", "\n", "\n", "\n", "97--98\n", "\n", "\n", "\n", "\n", "99\n", "Name\n", "[func]\n", "\n", "\n", "\n", "98--99\n", "\n", "\n", "\n", "\n", "102\n", "BinOp\n", "[args]\n", "\n", "\n", "\n", "98--102\n", "\n", "\n", "\n", "\n", "100\n", ""print"\n", "\n", "\n", "\n", "99--100\n", "\n", "\n", "\n", "\n", "101\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "99--101\n", "\n", "\n", "\n", "\n", "103\n", "Str\n", "[left]\n", "\n", "\n", "\n", "102--103\n", "\n", "\n", "\n", "\n", "105\n", "Mod\n", "[op]\n", "\n", "\n", "\n", "102--105\n", "\n", "\n", "\n", "\n", "106\n", "Tuple\n", "[right]\n", "\n", "\n", "\n", "102--106\n", "\n", "\n", "\n", "\n", "104\n", ""%d%s %d%s"\n", "\n", "\n", "\n", "103--104\n", "\n", "\n", "\n", "\n", "107\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "106--107\n", "\n", "\n", "\n", "\n", "110\n", "Subscript\n", "[elts]\n", "\n", "\n", "\n", "106--110\n", "\n", "\n", "\n", "\n", "118\n", "Name\n", "[elts]\n", "\n", "\n", "\n", "106--118\n", "\n", "\n", "\n", "\n", "121\n", "Subscript\n", "[elts]\n", "\n", "\n", "\n", "106--121\n", "\n", "\n", "\n", "\n", "129\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "106--129\n", "\n", "\n", "\n", "\n", "108\n", ""latitude"\n", "\n", "\n", "\n", "107--108\n", "\n", "\n", "\n", "\n", "109\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "107--109\n", "\n", "\n", "\n", "\n", "111\n", "Name\n", "[value]\n", "\n", "\n", "\n", "110--111\n", "\n", "\n", "\n", "\n", "114\n", "Slice\n", "[slice]\n", "\n", "\n", "\n", "110--114\n", "\n", "\n", "\n", "\n", "117\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "110--117\n", "\n", "\n", "\n", "\n", "112\n", ""p"\n", "\n", "\n", "\n", "111--112\n", "\n", "\n", "\n", "\n", "113\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "111--113\n", "\n", "\n", "\n", "\n", "115\n", "Num\n", "[lower]\n", "\n", "\n", "\n", "114--115\n", "\n", "\n", "\n", "\n", "116\n", "1\n", "\n", "\n", "\n", "115--116\n", "\n", "\n", "\n", "\n", "119\n", ""longitude"\n", "\n", "\n", "\n", "118--119\n", "\n", "\n", "\n", "\n", "120\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "118--120\n", "\n", "\n", "\n", "\n", "122\n", "Name\n", "[value]\n", "\n", "\n", "\n", "121--122\n", "\n", "\n", "\n", "\n", "125\n", "Slice\n", "[slice]\n", "\n", "\n", "\n", "121--125\n", "\n", "\n", "\n", "\n", "128\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "121--128\n", "\n", "\n", "\n", "\n", "123\n", ""q"\n", "\n", "\n", "\n", "122--123\n", "\n", "\n", "\n", "\n", "124\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "122--124\n", "\n", "\n", "\n", "\n", "126\n", "Num\n", "[lower]\n", "\n", "\n", "\n", "125--126\n", "\n", "\n", "\n", "\n", "127\n", "1\n", "\n", "\n", "\n", "126--127\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# showast can also be used to visualize inspectable objects\n", "from showast import show_source\n", "\n", "import antigravity\n", "show_source(antigravity)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", ""choice"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "7\n", "Try\n", "[body]\n", "\n", "\n", "\n", "0--7\n", "\n", "\n", "\n", "\n", "38\n", "Return\n", "[body]\n", "\n", "\n", "\n", "0--38\n", "\n", "\n", "\n", "\n", "3\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "5\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--5\n", "\n", "\n", "\n", "\n", "4\n", ""self"\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "6\n", ""seq"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "Assign\n", "[body]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "26\n", "ExceptHandler\n", "[handlers]\n", "\n", "\n", "\n", "7--26\n", "\n", "\n", "\n", "\n", "9\n", "Name\n", "[targets]\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "12\n", "Call\n", "[value]\n", "\n", "\n", "\n", "8--12\n", "\n", "\n", "\n", "\n", "10\n", ""i"\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "11\n", "Store\n", "[ctx]\n", "\n", "\n", "\n", "9--11\n", "\n", "\n", "\n", "\n", "13\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "12--13\n", "\n", "\n", "\n", "\n", "19\n", "Call\n", "[args]\n", "\n", "\n", "\n", "12--19\n", "\n", "\n", "\n", "\n", "14\n", "Name\n", "[value]\n", "\n", "\n", "\n", "13--14\n", "\n", "\n", "\n", "\n", "17\n", ""_randbelow"\n", "\n", "\n", "\n", "13--17\n", "\n", "\n", "\n", "\n", "18\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "13--18\n", "\n", "\n", "\n", "\n", "15\n", ""self"\n", "\n", "\n", "\n", "14--15\n", "\n", "\n", "\n", "\n", "16\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "14--16\n", "\n", "\n", "\n", "\n", "20\n", "Name\n", "[func]\n", "\n", "\n", "\n", "19--20\n", "\n", "\n", "\n", "\n", "23\n", "Name\n", "[args]\n", "\n", "\n", "\n", "19--23\n", "\n", "\n", "\n", "\n", "21\n", ""len"\n", "\n", "\n", "\n", "20--21\n", "\n", "\n", "\n", "\n", "22\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "20--22\n", "\n", "\n", "\n", "\n", "24\n", ""seq"\n", "\n", "\n", "\n", "23--24\n", "\n", "\n", "\n", "\n", "25\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "23--25\n", "\n", "\n", "\n", "\n", "27\n", "Name\n", "[type]\n", "\n", "\n", "\n", "26--27\n", "\n", "\n", "\n", "\n", "30\n", "Raise\n", "[body]\n", "\n", "\n", "\n", "26--30\n", "\n", "\n", "\n", "\n", "28\n", ""ValueError"\n", "\n", "\n", "\n", "27--28\n", "\n", "\n", "\n", "\n", "29\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "27--29\n", "\n", "\n", "\n", "\n", "31\n", "Call\n", "[exc]\n", "\n", "\n", "\n", "30--31\n", "\n", "\n", "\n", "\n", "37\n", "NameConstant\n", "[cause]\n", "\n", "\n", "\n", "30--37\n", "\n", "\n", "\n", "\n", "32\n", "Name\n", "[func]\n", "\n", "\n", "\n", "31--32\n", "\n", "\n", "\n", "\n", "35\n", "Str\n", "[args]\n", "\n", "\n", "\n", "31--35\n", "\n", "\n", "\n", "\n", "33\n", ""IndexError"\n", "\n", "\n", "\n", "32--33\n", "\n", "\n", "\n", "\n", "34\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "32--34\n", "\n", "\n", "\n", "\n", "36\n", ""Cannot choose from an empty sequence"\n", "\n", "\n", "\n", "35--36\n", "\n", "\n", "\n", "\n", "39\n", "Subscript\n", "[value]\n", "\n", "\n", "\n", "38--39\n", "\n", "\n", "\n", "\n", "40\n", "Name\n", "[value]\n", "\n", "\n", "\n", "39--40\n", "\n", "\n", "\n", "\n", "43\n", "Index\n", "[slice]\n", "\n", "\n", "\n", "39--43\n", "\n", "\n", "\n", "\n", "47\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "39--47\n", "\n", "\n", "\n", "\n", "41\n", ""seq"\n", "\n", "\n", "\n", "40--41\n", "\n", "\n", "\n", "\n", "42\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "40--42\n", "\n", "\n", "\n", "\n", "44\n", "Name\n", "[value]\n", "\n", "\n", "\n", "43--44\n", "\n", "\n", "\n", "\n", "45\n", ""i"\n", "\n", "\n", "\n", "44--45\n", "\n", "\n", "\n", "\n", "46\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "44--46\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "show_source(random.choice)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", ""__enter__"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "5\n", "Return\n", "[body]\n", "\n", "\n", "\n", "0--5\n", "\n", "\n", "\n", "\n", "3\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "4\n", ""self"\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "6\n", "Attribute\n", "[value]\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "7\n", "Name\n", "[value]\n", "\n", "\n", "\n", "6--7\n", "\n", "\n", "\n", "\n", "10\n", ""thing"\n", "\n", "\n", "\n", "6--10\n", "\n", "\n", "\n", "\n", "11\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "6--11\n", "\n", "\n", "\n", "\n", "8\n", ""self"\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "9\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "7--9\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", ""__exit__"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "7\n", "Expr\n", "[body]\n", "\n", "\n", "\n", "0--7\n", "\n", "\n", "\n", "\n", "3\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "5\n", "arg\n", "[vararg]\n", "\n", "\n", "\n", "2--5\n", "\n", "\n", "\n", "\n", "4\n", ""self"\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "6\n", ""exc_info"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "Call\n", "[value]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "9\n", "Attribute\n", "[func]\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "10\n", "Attribute\n", "[value]\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "16\n", ""close"\n", "\n", "\n", "\n", "9--16\n", "\n", "\n", "\n", "\n", "17\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "9--17\n", "\n", "\n", "\n", "\n", "11\n", "Name\n", "[value]\n", "\n", "\n", "\n", "10--11\n", "\n", "\n", "\n", "\n", "14\n", ""thing"\n", "\n", "\n", "\n", "10--14\n", "\n", "\n", "\n", "\n", "15\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "10--15\n", "\n", "\n", "\n", "\n", "12\n", ""self"\n", "\n", "\n", "\n", "11--12\n", "\n", "\n", "\n", "\n", "13\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "11--13\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import contextlib\n", "show_source(contextlib.closing.__enter__)\n", "show_source(contextlib.closing.__exit__)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# styling options can also be set\n", "from showast import Settings\n", "Settings['font'] = 'Century'\n", "Settings['shape'] = 'oval'\n", "Settings['nonterminal_color'] = '#7733AA'" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "%3\n", "\n", "\n", "\n", "0\n", "\n", "FunctionDef\n", "\n", "\n", "\n", "1\n", "\n", ""add"\n", "\n", "\n", "\n", "0--1\n", "\n", "\n", "\n", "\n", "2\n", "\n", "arguments\n", "[args]\n", "\n", "\n", "\n", "0--2\n", "\n", "\n", "\n", "\n", "7\n", "\n", "Return\n", "[body]\n", "\n", "\n", "\n", "0--7\n", "\n", "\n", "\n", "\n", "3\n", "\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--3\n", "\n", "\n", "\n", "\n", "5\n", "\n", "arg\n", "[args]\n", "\n", "\n", "\n", "2--5\n", "\n", "\n", "\n", "\n", "4\n", "\n", ""x"\n", "\n", "\n", "\n", "3--4\n", "\n", "\n", "\n", "\n", "6\n", "\n", ""y"\n", "\n", "\n", "\n", "5--6\n", "\n", "\n", "\n", "\n", "8\n", "\n", "BinOp\n", "[value]\n", "\n", "\n", "\n", "7--8\n", "\n", "\n", "\n", "\n", "9\n", "\n", "Name\n", "[left]\n", "\n", "\n", "\n", "8--9\n", "\n", "\n", "\n", "\n", "12\n", "\n", "Add\n", "[op]\n", "\n", "\n", "\n", "8--12\n", "\n", "\n", "\n", "\n", "13\n", "\n", "Name\n", "[right]\n", "\n", "\n", "\n", "8--13\n", "\n", "\n", "\n", "\n", "10\n", "\n", ""x"\n", "\n", "\n", "\n", "9--10\n", "\n", "\n", "\n", "\n", "11\n", "\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "9--11\n", "\n", "\n", "\n", "\n", "14\n", "\n", ""y"\n", "\n", "\n", "\n", "13--14\n", "\n", "\n", "\n", "\n", "15\n", "\n", "Load\n", "[ctx]\n", "\n", "\n", "\n", "13--15\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%showast\n", "def add(x, y):\n", " return x + y" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 1 }