Last active
June 30, 2018 21:47
-
-
Save hmaarrfk/3852d40bc82362499f48083092efb702 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"@jakirkham's [suggestion](https://github.com/dask/dask/issues/3692#issuecomment-401565777)\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.18.1+15.g04aa145f\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([[Delayed('int-85ced4dc-cf3d-4aea-8a34-7e6a2cbe716c'),\n", | |
" Delayed('int-6ccfdfcd-90db-4e29-95da-fcecc48da82d')],\n", | |
" [Delayed('add-2bec8b3f0b1aece89b261a7c317f23d7'),\n", | |
" Delayed('mul-e13f9c8ec4fa12057c5bfd875c9e6ab9')]], dtype=object),)" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from dask import delayed, visualize, compute\n", | |
"import dask\n", | |
"import dask.array\n", | |
"import numpy as np\n", | |
"\n", | |
"print(dask.__version__)\n", | |
"a = delayed(5)\n", | |
"b = delayed(2)\n", | |
"c = a + b\n", | |
"d = b * a\n", | |
"\n", | |
"import numpy as np\n", | |
"my_list = [[a, b], [c, d]]\n", | |
"da_array = dask.array.asarray(my_list)\n", | |
"compute(da_array)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAT8AAAEXCAYAAADbWUPwAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deVhU59k/8O+ZBRiGTVEEwYgaAY24gBo1LoD7ihuiBtK+ica0pta0SWpe2zR7bGLfpKm2Ro2pWyIa44KikU3BjWiUEFEWQVQ0CMo+wMAw9+8PfzMNASLLzJxZ7s91zXU5hzPPuYfH8+U5u0BEBMYYszESsQtgjDExcPgxxmwShx9jzCbJfj6hrq4OcXFxaGxsFKMemzNixAj4+voarf3U1FQUFRUZrX3WlFQqxYwZM+Dg4CB2KexR6Gf2799PAPhlotfixYt/3gUGJZPJRP+Otvbav3+/UfuUGUazkZ9GowEAEB8ENrpFixYZfYSt0WgQExODRYsWGXU57CFBEPTrEDNvvM+PMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTzCL89uzZA0EQIAhCm+6D1t75H9XO6dOnAQB5eXkQBAHr169vNm9ZWRk2bdqEsLAwdO3aFQqFAv3798fTTz+N77//vsM1MGD9+vX6/vTx8elwO+3pTyLCmTNnsHLlSvj5+cHe3h4eHh4YO3Ysdu3axXc1sgFmEX6LFy8GEWHixIlGmb81KSkpsLe3x4gRIwA8vPEnAIwfP77ZvK+88gp+97vfITw8HFevXsWDBw+wbds2pKenIzg4GAcPHuxULbbs5ZdfBhFhyJAhnWqnPf2ZnZ2NsWPHIicnB1999RUqKipw/vx5PPbYY4iOjsYrr7zSqVqY+TOL8BNLSkoKRo4cCXt7ewAPVxalUomgoKAW53/22Wfx+9//Hp6ennB0dMS4cePwxRdfoLGxEa+++qopS2ctaG9/ymQy7N27F4MHD4aDgwP69u2L//znP3B3d8eGDRugVqtNWT4zMZsNv9LSUly9ehVjx47VT0tNTcWYMWMgkzW7xyu2bt2KTz/9tNn0IUOGQKFQIC8vjzeVRNTe/gwICEBDQwO6dOnSZLqdnR169eoFtVqNuro6o9fNxGNT4bdu3Tr9viV3d3cQEd5//339tNzcXMTHx+vfr1u37pFtqlQq1NbWYtCgQRAEwQTfgukYoz/Ly8uRm5uLYcOGwdXV1QTfgonFIOGnu1X65MmT4enpCYVCgcDAQPzjH/+AVqttNn9WVhbmzp0LV1dXKJVKjBs3Tr+TuiXtnb81a9asARGBiLB06VK4uLhAq9WCiPDJJ58AeLgvSDfPmjVrHtnmvn37AABr165tdz3m5uDBg/qgEAQBN2/eRGRkJJydneHu7o7o6GiUlZWhoKAAs2fPhrOzM7y8vLB8+XJUVVXp23nnnXf0bfx0JHb8+HH99G7dunW6XkP2Z2VlJc6cOYM5c+bA09MTO3bs6HR9zMz9/KEeMTEx1MLkXxQbG0sA6L333qPS0lIqKSmhTz75hCQSCb388stN5s3NzSU3Nzfy9vamEydOUFVVFWVkZNCUKVPI19eX7O3tOzV/Ww0YMIAmTJigf//ss8+Sk5MTNTY2trmNoqIi6tGjBy1btqxDNURERFBERESHPttWACgmJqZdnwkPDycANH/+fLp48SJVV1fTjh07CABNnz6dwsPD6fLly1RVVUWbNm0iAPTSSy81a0epVNJTTz3VbHpwcDC5u7s3mz5kyBDy9vZuV606nenPt99+W//woZCQEMrIyOhQDUQd+30zcRgs/EJCQppNj4qKIrlcThUVFfppERERBIC++uqrJvPeuXOH7O3tm4VZe+dvC5VKRVKptMkKGxQU1OKK2pr79+/T0KFDKTIykjQaTbtrIDL/8Dt69GiT6U888QQBoFOnTjWZ3qdPH/L392/WjqnCzxD9qVar6dq1a/TCCy+QVCqlt956q911EHH4WRKDbPbOmjULycnJzaYPGTIEDQ0NyMzM1E87fvw4AGDq1KlN5u3Zsyf8/PyatdGe+a9cudJks00QBLz44ovN2szIyEBjY6P+KKBGo0FmZiaGDh3alq8LlUqFqVOnYuDAgdi9ezekUmmbPmdphg8f3uR9z549W5zu7e2Nu3fvGnz5pupP4OGBjoCAAPz73//GnDlz8PrrryMhIcFg34WZH4OEX0VFBV5//XUEBgaiS5cu+v+ounOlampqAABqtRpVVVVwcHCAk5NTs3Y8PDyavG/v/IMGDdLv39G9NmzYAODh/iFdXaNHjwYAREdHQxAEyOVyqNVqbNy4UT/P1q1bW/yuGo0GERER8Pb2xvbt2602+ADAxcWlyXuJRAKpVApHR8cm06VSaYv7djvLFP3ZktmzZwMAjhw5YvDvxMyHQcJv9uzZePvtt7F8+XLk5OTodzp/9NFHAP77DGB7e3s4Ozujrq4O1dXVzdopLS1t8r698/+SdevW6Veg4cOHIzg4WP9+5cqVsLe3R21trX7asmXLWmxnxYoVUKvV2Lt3b5NTKB5//HGcP3++zfXYAolEgvr6+mbTy8vLO922ofqzJbrzBNvz/4tZnk6HX2NjI86cOQNPT0+sWrUK3bt315/yUVtb22z+6dOnA/jv5qzO/fv3kZ2d3en5H0WlUiE9PR3jxo3TT0tJScGIESMeeancG2+8gczMTBw6dEi/grDWeXl54c6dO02mFRUV4datWwZbRkf78+WXX0ZUVFSLPzt27BgA6K8UYdap0+EnlUoREhKCoqIifPjhh7h//z5qa2uRnJyMTZs2NZv/vffeQ9euXbF69WrEx8ejuroaV69eRVRUVIubtu2d/1HOnz8PjUajX1nKyspw5cqVJitPS/7zn//gzTffRFpaGpydnZvti8rLy2t3LdZuypQpuHv3LjZs2IDq6mrk5eXh97//fbPdFZ3R0f4EgC+++AJvvfUWCgoKoFarUVBQgD/96U/YtWsXgoOD2zVaZBbo50dAOnK0t6SkhFasWEG9evUiuVxOPXr0oF//+te0Zs0a/SkEwcHB+vmzs7Np7ty55OLiQgqFgkaMGEFHjhyhiRMn6ud/7rnnOjz/L3nzzTcJAN27d4+IiA4fPtzikc2fmzlzpn5Zrb3OnTvXrt+buR3tPXfuXLPvtHbtWrpw4UKz6e+//z6lpqY2m/7Xv/5V3155eTktW7aMvLy8SKFQ0NixY+nChQsUHBysn/9Pf/oTffjhhy0uty062p8VFRW0detWmjp1Kvn6+pKdnR05OTlRcHAwvf/++1RTU9Om5f9ce37fTFwCUdNrsvbu3YvIyEi+VMsEFi1aBODh79xYBEFATEyMflnMuPj3bTls6vI2xhjT4fBjjNkkDj/GmE3i8GOM2SQOP8aYTeLwY4zZJA4/xphN4vBjjNkkDj/GmE3i8GOM2SQOP8aYTeLwY4zZJA4/xphN4vBjjNkkDj/GmE3i8GOM2SQOP8aYTZK19oN9+/aZsg6bdPv2bfTq1cvoyzl//rz+oVKWQKvVQiLhv8vMuJqFn5eXF2QyGd+G20R0z5w1Fh8fH3z00Uf6x4gy45LJZPDy8hK7DNYWIj9DxGB27txJAOjNN98UuxTWCX/4wx8IAL399ttil8KsXLMHGFmqBQsW4Ouvv4aXlxcKCwt5s8kC1dXVoUePHqisrERwcDAuXrwodknMillFQqjVav2Dpn/88UfEx8eLXBHriL1796K6uhoAcOnSJdy7d0/kipg1s4rwS0xMRG1tLQBALpfj008/Fbki1hEbNmzQH5iRSCQ4fvy4yBUxa2YV4Xfo0CHY2dkBABoaGhAbG4vi4mKRq2LtkZGRgQsXLqCxsVE/LTY2VsSKmLWz+PAjIhw4cAD19fVNpu/YsUOkilhHbNq0CXK5XP++sbERx44da9avjBmKxR/wSEtLw6hRo5pN79OnD/Ly8izq/DZbVV1djR49eqCmpqbZzxITExEWFiZCVczaWfzI79ChQ01GDDo3btzA6dOnRaiItdfu3buhVqubTZfL5Th69KgIFTFbYPHht2/fPjQ0NDSbLpfLsXnzZhEqYu21ceNGtLQB0tDQgAMHDohQEbMFFr3Zm5eXh8cff7zVn9vZ2aGoqAhdunQxYVWsPVrbbfFTOTk56N+/v4kqYrbCokd+Bw8ehEzW6uXJaGxsxBdffGHCilh7bdq0SX+kviUymYw3fZlRWPTIb/To0UhLS2txkwkABEFAQEAArl69auLKWFuUl5fD09Ozxf19OhKJBOPHj0dycrIJK2O2wGJHfvfv38e3337bavABD0+DuXbtGr777jsTVsba6sCBA1Cr1ZDL5bC3t4e9vT3s7OwglUr182i1Wpw+fRqVlZUiVsqsUevbjGbuxo0b+n8rFArIZDIIggAiQu/eveHg4AClUglXV1c4OzuLWClrTXh4OD7//HNUV1dDpVKhrKwM+/fvh6enJ7y8vHD//n1UVVVBIpGgrq4OLi4uYpfMrIhFb/YSUZPz+F544QXk5uYiMTFRxKpYZ/Tu3RurVq3CH//4R7FLYVbOYjd7ATQ7gdnR0bHFE2WZ5aiuruaROjMJiw6/n1MoFPobHDDLVF1dDScnJ7HLYDbA6sKPR36WS61Wo76+nkd+zCSsKvwcHR155GfBqqqqAIDDj5mEVYUfj/wsm+5GprzZy0zBqsKPR36WjUd+zJSsKvwUCgXq6uqg1WrFLoV1AIcfMyWrCj9HR0cQEerq6sQuhXWALvx4s5eZglWFn0KhAADe9LVQ1dXVEAQBSqVS7FKYDbCq8HN0dAQAPuhhoaqqquDo6Njk2l7GjMWqwo9HfpatqqqK9/cxk7Gq8OORn2XjS9uYKXH4MbNRVVXFBzuYyVhV+PFmr2XjkR8zJasKPx75WTbe58dMyarCz8HBAYIg8MjPQvFmLzMlqwo/QRDg4ODAIz8LxSM/ZkpWFX4AX99ryXifHzMlqws/vrOL5eLNXmZKVhd+PPKzXLzZy0zJ6sKPb2VvuXizl5mS1YUfP8TIcvFmLzMlqws/HvlZpoaGBqjVah75MZOxuvDjkZ9l4huZMlOzuvDjkZ9l4ud3MFOzuvDjkZ9l4pEfMzWrDD8e+VkeDj9malYXfnySs2Xi53cwU7O68OORn2XifX7M1Kwu/HjkZ5mqqqqgUCggk8nELoXZCA4/Zhb40jZmalb3Z5Y3e81XY2MjCgoKcPPmTZSWlqK6uhoqlQoqlQppaWkQBAGHDh1Ct27d4Ofnh+7du4tdMrNiVhF+9fX1yM/PR3FxMUpKSuDr64vNmzfDyckJSqUSSqUS3bp1Q58+feDq6ip2uTYjMzMTycnJSElJwdWrV3H9+nWo1Wr9zx0dHaFUKuHk5ISysjJUVVVh7ty5+p937doVfn5+GDZsGEJDQxESEsKByAxGICISu4j2qK+vR1paGpKSknDhwgVkZ2ejoKAAGo2myXxubm6orq5uNr1Hjx4ICAhAYGAgQkNDMWHCBLi7u5vyK1gtrVaLkydPYufOnTh27Bju3bsHNzc3jB8/HoGBgQgICIC/vz98fX3RrVs3CILQrA21Wo3i4mLk5OQgJycHWVlZ+Pbbb3Hx4kU0NjYiMDAQ8+fPR1RUFPr16yfCt2TWwiLCr7q6Gvv378eXX36J1NRU1NTUoHfv3hgzZgwGDhwIPz8/+Pn5wcvLSz+S0FGr1VCpVCgpKUF+fj6ysrKQk5ODixcv4vLlyyAiDB48GPPnz0d0dDR8fX3F+6IWqrCwEP/617+wa9cu3L59GyNHjsSCBQsQFhaGYcOGGeQh5FVVVTh16hTi4+Oxd+9e3Lt3D2PGjMGzzz6LqKgo2NnZGeCbMJtCZuzs2bMUFRVFSqWS7OzsaN68ebRlyxbKy8szSPtlZWV06NAhWrlyJXl4eJAgCDR+/Hjavn071dfXG2QZ1iwvL4+WL19OdnZ25O3tTa+99hpdu3bN6MvVaDQUFxdHS5YsIXt7e/Lx8aGPP/6YVCqV0ZfNrIdZhl9CQgKFhoYSABoxYgRt3LiRHjx4YNRlNjQ00JEjR2jRokUkl8upd+/etHHjRqqtrTXqci3R/fv3afny5SSTyahfv360ZcsWUqvVotRSWFhIq1evJkdHR/Lw8KAtW7ZQY2OjKLUwy2JW4ZeRkUHjx48nADRp0iRKSkoSpY6bN2/SypUrycHBgXr27Em7d+8WpQ5zo9VqaevWrdStWzfq2bMn7dixgzQajdhlERFRcXExrV69mmQyGY0ePZouX74sdknMzJlF+FVWVtIf/vAHkslk9OSTT9K5c+fELomIiH788Ud6/vnnSSKRUGhoKF29elXskkRTWFhIEyZMIJlMRqtXr6aKigqxS2rR999/T0899RRJpVL685//bDbhzMyP6OF37tw56t27N7m7u9PmzZvNcpMlLS2NgoODyc7Ojj766CPSarVil2RScXFx1L17dwoICLCIEZVWq6V//etf5ODgQBMmTKDCwkKxS2JmSLTw02q1tH79epLL5TRjxgwqLi4Wq5Q20Wg09O6775JMJqO5c+dSaWmp2CUZnVarpddff50EQaDo6GiqqqoSu6R2SU9PJ39/f+revTulpKSIXQ4zM6KEX21tLS1YsIBkMhmtW7fOokZSKSkp5OPjQ3369KGsrCyxyzEajUZDy5YtI5lMRps3bxa7nA6rrKykefPmkYODAx04cEDscpgZMXn4VVRUUEhICLm5udHJkydNvXiDKCkpodGjR1O3bt0oLS1N7HIMrra2lubOnUuOjo4UGxsrdjmdptFoaMWKFSSVSmnLli1il8PMhEnDr7i4mIYNG0Y9e/akjIwMUy7a4FQqFc2YMYOcnJwoPj5e7HIMpqGhgebMmUNdunSh06dPi12OQek24f/zn/+IXQozAyYLv8rKSho+fDj169ePbty4YarFGlV9fT0tXbqUlEolnT9/XuxyOk2r1dJzzz1Hjo6OVhd8Oq+99hpJpVL6+uuvxS6Ficwk4adWq2nq1KnUvXt3ys7ONsUiTUaj0dC8efPI3d3d4k+Fee2110gul1NcXJzYpRjNTwPeXE6pYuIwSfhFRUWRq6urRZwm0REqlYrGjBlDjz32GJWUlIhdToccOHDAZjYJGxoaaMaMGeTj42Ox/cU6z+g3Nti8eTN+85vf4NixY5gyZYoxFyWqBw8eIDg4GAMHDsTRo0dbvGOJubp9+zaGDRuGBQsW4NNPPxW7HJMoKytDUFAQBgwYYHH9xQzEmMn6ww8/kKOjI/35z3825mLMRlpaGtnZ2dHf/vY3sUtps4aGBho1ahQFBgZSTU2N2OWY1NmzZ0kul9P69evFLoWJwGjhp1araeDAgTRhwgSbusRo/fr1JJPJ6NKlS2KX0iYfffQR2dvbW/z+yo569913SaFQUH5+vtilMBMz2mbv+++/j3feeQeZmZk2dY88IsL48ePR0NCAs2fPQiIx38ekFBUVISAgAKtWrcJbb70ldjmi0Gg0CAoKgre3N44dOyZ2OcyUjJGoN2/eJKVSSe+++64xmjd7P/zwA8nlcrO/MmLx4sXUt29fm9vc/bnk5GQSBIEOHjwodinMhIwy8lu0aBEyMjKQkZFhs3fY/eMf/4jt27cjLy/PLJ8bkp6ejqCgIBw4cADh4eFilyO6pUuX4vvvv8cPP/xg1qN1ZkCGTtPMzEySSCS0f/9+QzdtUcrKysjV1ZXee+89sUtp0cKFC2no0KEWdV21MV27do3/39oYg4/8oqOj8d133+HKlSs2/xd07dq1+PTTT1FQUNDkuSJiy8rKwhNPPIG9e/diwYIFYpdjNhYuXIi8vDxcunSJT32xAQZNp4KCAuzZswf/+7//a/PBBwAvvfQS6urq8Nlnn4ldShMfffQR/Pz8MG/ePLFLMStr165Feno6kpKSxC6FmYBBE2rbtm3w8PDA4sWLDdmsxerWrRueeeYZbNmyRexS9Orq6rB37148//zz/AfqZ4YNG4aRI0dix44dYpfCTMBg//uJCLt370ZUVBRkMqt4FrpBREdHIzMzE5cvXxa7FADAwYMHUV1djSVLlohdilmKjo7G/v37UV1dLXYpzMgMFn4pKSnIz89HVFSUoZq0CqNHj4a/vz927twpdikAgF27dmHKlCnw9PQUuxSztGTJEjQ0NODAgQNil8KMzGDh99VXX2Hw4MEIDAw0VJNWY/Hixdi3b5/YZaC2thYJCQlYtGiR2KWYLXd3d0ycOBFHjhwRuxRmZAYLv6SkJEybNs1QzVmVKVOmoLCwEDk5OaLWcebMGajVaoSGhopah7kLDQ3FyZMnYeATIZiZMUj4FRcX49q1a2a1Uu3ZsweCIEAQBDg4OBh8/vYYOXIkXFxcRD+KmJycDD8/Pzz22GOi1tFZ69ev1/eVj4+PwdsPCwtDcXExrly5YvC2mfkwSPglJSVBJpNh7NixhmjOIBYvXgwiwsSJE40yf3vIZDKMGzdO9PA7deoUQkJCRK3BEF5++WUQEYYMGWKU9ocNG4auXbvi5MmTRmmfmQeDhF96ejoGDhxoVifympsnn3wS6enpotaQmZmJoKAgUWuwBBKJBIMHD+aRn5UzSPhlZ2cjICDAEE1ZLT8/P9y4cQP19fWiLL+oqAjl5eXw9/cXZfmWxt/fH9nZ2WKXwYzIYOHn5+dniKaslr+/PzQaDfLz80VZvm5F5vBrGw4/69fp8CMi5OXlGTz8NBoNYmJiMHnyZHh6ekKhUCAwMBD/+Mc/oNVqm82flZWFuXPnwtXVFUqlEuPGjcPp06dbbb+983eW7vcj1hHfvLw8KJVKg57fd/DgQf2BB0EQcPPmTURGRsLZ2Rnu7u6Ijo5GWVkZCgoKMHv2bDg7O8PLywvLly9HVVWVvp133nlH38ZP9xsfP35cP71bt24Gq7st+vfvj6KiIj7Z2Zp19s4IlZWVBICOHTvW2aaaiI2NJQD03nvvUWlpKZWUlNAnn3xCEomEXn755Sbz5ubmkpubG3l7e9OJEyeoqqqKMjIyaMqUKeTr60v29vadmt9QFAqFaA8I+vvf/04+Pj5GaTs8PJwA0Pz58+nixYtUXV1NO3bsIAA0ffp0Cg8Pp8uXL1NVVRVt2rSJANBLL73UrB2lUklPPfVUs+nBwcHk7u7ebPqQIUPI29vbKN/pzJkzBIAKCwuN0j4TX6fD7+7duwSAUlNTDVGPXmxsLIWEhDSbHhUVRXK5nCoqKvTTIiIiCAB99dVXTea9c+cO2dvbNwuz9s5vKB4eHvTPf/7TKG0/yhtvvEEDBgwwStu68Dt69GiT6U888QQBoFOnTjWZ3qdPH/L392/WjjmFX0ZGBgGga9euGaV9Jr5Ob/bqNl+cnZ0721QTs2bNQnJycrPpQ4YMQUNDAzIzM/XTjh8/DgCYOnVqk3l79uzZ4uZ4e+c3FGdn5yabe6ZUVVVl8D76ueHDhzd537Nnzxane3t74+7du0atpbN0vyux+osZX6fDr7a2FgAMfmJwRUUFXn/9dQQGBqJLly76fT+vvPIKAKCmpgYAoFarUVVVBQcHhxZPtfHw8Gjyvr3zG5JSqdTXbWp1dXVQKBRGXYaLi0uT9xKJBFKpFI6Ojk2mS6XSFvfbmhNdzWL1FzO+Toef7j+JLgQNZfbs2Xj77bexfPly5OTkQKvVgojw0UcfAYD+0iN7e3s4Ozujrq6uxZ3TpaWlTd63d35Dqq6uhlKpNFr7v0ShUJj9iiyRSFo8Fai8vNzktahUKgAQrb+Y8XU6/IyxedDY2IgzZ87A09MTq1atQvfu3fV31m0pZKdPnw7gv5uzOvfv32/xdIX2zm8optj0bI2Ym9xt5eXlhTt37jSZVlRUhFu3bpm8FmPtzmHmo9Php9t0NOQpAVKpFCEhISgqKsKHH36I+/fvo7a2FsnJydi0aVOz+d977z107doVq1evRnx8PKqrq3H16lVERUW1uGnb3vkNhcPvl02ZMgV3797Fhg0bUF1djby8PPz+97836q6I1nD42YDOHjHRarXk4OBg8FM4SkpKaMWKFdSrVy+Sy+XUo0cP+vWvf01r1qwhAASAgoOD9fNnZ2fT3LlzycXFhRQKBY0YMYKOHDlCEydO1M//3HPPdXj+ztKdEhQbG2uwNtvj888/J0dHR4M+sOjcuXP635XutXbtWrpw4UKz6e+//z6lpqY2m/7Xv/5V3155eTktW7aMvLy8SKFQ0NixY+nChQsUHBysn/9Pf/oTffjhhy0u15AOHTpEgiCQSqUyaLvMfBjkAUaBgYGYM2cO3n333c42ZbW+++47DB8+HDk5Oejfv7/Jl3/69GmMGzcOt2/fNsqdUKzN+vXr8fHHH6OwsFDsUpiRGOTyNr4U6NGys7Mhl8vh6+sryvJ1l7VxP7VNdnY2Xwpo5QwSfgEBAbxSPUJ2djb69esHuVwuyvK7d+8Od3d37qc24vCzfgYJv6CgIFy7dk2UUxIsxblz50S/nVRgYCAuXrwoag2WQKPR4Pvvv+dHMlg5g4TfhAkTQERISUkxRHNWp76+HmfPnkVYWJiodUyYMAGJiYmi1mAJLl68iMrKSrO6MzkzPIOEn7u7OwYPHtzi5Wjs4ahPpVKJHn5hYWG4deuWaLfVshRJSUno2bMn36PSyhnsAUYTJ07EsWPHDNWcVTl+/Dj69u2LPn36iFrHqFGj4OjoiISEBFHrMHeJiYmi/6Fixmew8IuIiEB2djbvU/oZIsKePXsQGRkpdimws7PDtGnTEBMTI3YpZuvevXtISUlBeHi42KUwIzNY+D355JMICAgwm4dzm4tTp06hoKAAS5cuFbsUAEB0dDROnjyJ27dvi12KWdq5cyeUSiVmzpwpdinMyAwWfsDDFevLL7+EWq02ZLMWbfv27QgODsagQYPELgUAMHPmTHTt2hW7du0SuxSztHPnTkRGRhr9DjhMfAYNv1//+teorKzE9u3bDdmsxbpz5w6+/PJLPP/882KXoieXy7F06VJs2bIFDQ0NYpdjVs6cOYOMjAz86le/ErsUZgIGubztp1544QXExzw7R0QAABuESURBVMcjOzsbMpnMkE1bnNWrV2P//v24fv067O3txS5H79atW3j88cexdetWPPPMM2KXYzZmzJiB8vJynD17VuxSmCkY+mLh/Px8kslktGPHDkM3bVHu3btHjo6O9PHHH4tdSot+9atfUUBAADU2Nopdilm4fPkyCYJg8GfRMPNl8JEfADz33HNISEjA1atXbfZmkMuXL0dcXBxyc3Ob3cnYHGRnZ2PgwIHYvn07oqKixC5HdLNnz8aPP/7IZyvYEmMkalFREbm5udGaNWuM0bzZ+/bbb0kikdCePXvELuUXLV++nDw9PamsrEzsUkR17NgxAkCJiYlil8JMyCgjPwDYuHEj/vCHPyA9PR0DBgwwxiLMkkajwciRI+Hu7o74+Hixy/lFpaWlCAgIwNKlS/Hxxx+LXY4oamtrMWjQIIwaNQq7d+8WuxxmSsZKVY1GQyNGjKCgoCCqq6sz1mLMzp///GdSKBSUlZUldilt8tlnn5FMJqNvv/1W7FJE8eqrr5KLiwvdvXtX7FKYiRkt/IiIrl+/Tq6urrRy5UpjLsZsJCUlkVQqpU8//VTsUtpMq9XS5MmTqW/fvlReXi52OSb1zTffkEQioS1btohdChOBUcOPiCgmJoYEQaCYmBhjL0pUhYWF5OHhQYsXLxa7lHa7d+8e9ezZkxYuXCh2KSZTVFREnp6eFBkZKXYpTCRGDz8iot/97nfk4OBAp06dMsXiTK6srIwCAwNpwIABVFlZKXY5HaIbtf79738XuxSjq62tpbFjx5K/vz9VVVWJXQ4TiUnCr7GxkSIiIsjFxYUuXbpkikWaTG1tLY0bN468vb2poKBA7HI65e9//ztJJBLavXu32KUYjUajofnz51OXLl3oypUrYpfDRGSS8CN6GBIhISHk5eVFP/zwg6kWa1QqlYqmTZtGXbt2tZoV6ZVXXiG5XE5xcXFil2IUv/vd70ihUFBKSorYpTCRmSz8iIgqKipo/Pjx1KVLF0pNTTXlog3uwYMH5O/vT4Ig0OLFi6mwsFDskgxCq9XSM888Qw4ODvT555+LXY7BaDQa+u1vf0symYwOHTokdjnMDJg0/IgejgDnzZtHCoWC9u/fb+rFG0R+fj4NHDiQfHx8yM7OjgCQTCajF154gW7cuCF2eZ1y6dIlCg8PJ0EQSBAEqzgSqlarKTIykuzt7Wnv3r1il8PMhMnDj+jhX+Hf/OY3JAgCvfTSS6RWq8Uoo0O+/vprcnNzoyFDhlBhYSGtWrWKZDIZASC5XE5SqZSioqIs5jw/nfPnz9P06dP1oScIAi1btowEQaC33nrLYq8BvnfvHk2YMIHc3Nys9oAb6xhRwk9nx44d5OTkRE8++STl5eWJWcoj1dTU0KpVq0gQBFq+fDnV1NQQEdHt27f14ad7yeVyEgSBZsyYYfYHeFJTU2natGn6unWj2FmzZhER0YYNG8jOzo6mTZtGxcXFIlfbPsnJydSzZ0/q06cPff/992KXw8yMqOFHRHTt2jUaPHgwKRQKevvtt83yapAjR45Q3759ycXFhb744otmP3/22Wf1wfHTl52dHQmCQNOnTze7KyhSU1NpwoQJ+rD7ee1nzpzRz3v+/Hny9fUlb29vSkhIELHqtqmvr6c33niDpFIpzZ8/3+avXWYtEz38iB7+Z/3b3/5GSqWS+vfvTwcPHiStVit2WXT16lUKDw8nABQZGUl37txpcb7r16+TRCJpFiA/HQkCoJCQEDp37pyJv0VT8fHxNHz48FZDTyaT0YQJE5p9rrS0lBYsWEAAaOnSpWZ7OVhSUhINGDCAFAoFffLJJ2KXw8yYWYSfzq1bt2jhwoUkCAINHjyY9uzZI8q+pvT0dIqIiCCJREIDBw6k+Pj4R34mIiKixdFfSyH4wQcfmOBb/JdWq6V9+/bRoEGDCABJpdJfrPOXRneHDx8mX19fcnV1pfXr11N1dbUJv0nrcnNzacmSJSQIAs2aNYvy8/PFLomZObMKP53vv/+eIiMjSSKRUN++femNN96g69evG3WZFRUVtG3bNgoNDSVBEGjo0KG0b9++Nodveno6CYLwi6EilUrJ2dmZvvvuO6N+l587fPgwAWhTfUFBQY9sT6VS0dq1a0mpVFL37t3p3XffFe264CtXrtDSpUtJKpXqtxoYawuzDD+d7Oxseumll8jT05MEQaCnnnqK3n33XTp37hw1NDR0uv3r16/T5s2bKSIighQKBdnb29PChQspLi6uQ5vd06ZNa3X0J5VKycnJidLS0jpdd3s1NDTQwoULHzniA9Cu8CgpKaG1a9eSq6srubi40LJly+jUqVNG32VRVVVF27dvp0mTJpFEIqFBgwbR7t27SaPRGHW5zLoY7X5+htTY2IgTJ04gJiYG8fHxuHv3LpydnTFq1CgEBATA398f/v7+6NGjB5ycnODm5gZnZ2eoVCpUV1ejuroaDx48QG5uLrKzs5GTk4OLFy/i5s2bUCqVGDt2LObPn4+IiAh06dKlw3WeP38eo0ePbjZdKpVCoVAgKSkJI0aM6MyvosMaGxvxzDPPICYmBo2Njc1+LpFI0K9fP2RlZUEiad9zrSoqKrBt2zbs2LED6enp6NOnD+bPn4+wsDCMGzcOzs7Ona7/5s2bSEpKQnx8PA4fPoyGhgbMmDEDzz77LGbNmgVBEDq9DGZbLCL8fi4rKwvJycm4cOECsrKykJ2djdLS0kd+zt7eHn5+fvD390dgYCDCwsIwcuRI2NnZGay2sWPHIi0tDRqNBsDD4LOzs4OLiwtSUlLg5+dnsGW1V2NjI+bPn4+jR482C0CJRIKdO3d2+vnCP/zwA3bt2oW4uDhkZmZCKpVixIgRGDx4MPz8/BAQEIC+ffuiS5cucHJyavKYg7KyMlRXV6OkpAQ5OTnIzs5GdnY2vv32W+Tl5UGhUGDMmDGYP38+Fi9ejK5du3aqVmbbLDL8WnL//n2UlJSguroaly9fxooVK7BkyRK8+OKLcHJyQpcuXeDt7d3uUU17ffPNN5g2bRoAQCaTQaFQIDY2FmvWrEFBQQGSkpJEu7N1bm4uQkNDIZfLcevWLWi1WgCAIAjw8fFBfn6+QZ+4V1xcjOTkZKSkpODq1avIzs7Gjz/+2GQeQRAgk8maPUZTLpejT58+CAgIwNChQxEaGorRo0eb1VPwmIUTc5vbWF599VUCQD4+PqKcMjNkyBASBIHc3NwoPT2diIjKy8vpySefJB8fH8rNzTV5TTdu3KDevXtTUFAQlZSU0NNPP63fByiRSEx2A9aKigpKT0+nkydP0pEjR/QnWL/55pt04sQJOnv2LGVlZVF9fb1J6mG2y+rCT6vVkpeXl34Hvhjn1R09epR69+5NGRkZTaaXl5fTyJEjycfHx+hHr3+qoKCAfH19KSgoiB48eEBEDy8xjI6OJgDk4eEhysnlGo2GunbtSgDoN7/5jcmXz2yb1YVfampqkyssVq1aJXZJTegCsFevXiYJQF3wDRs2TB98Oo2NjfTqq6+K9pS548eP6/vK1dWVR3vMpKwu/H772982Od2kS5cuBjktxpDKyspoxIgR1KtXL6Ne03zz5k3q06cPDR06tFnwmYNnnnmmSV9Z6z0EmXky7t5/E9NoNPjyyy+b7DwvKyvDyZMnxSuqBW5ubjhx4gQ8PT0RGhqK/Px8gy/j1q1bCAkJgaurKxISEszuyGhdXR3279+v7yu5XI4vvvhC5KqYLbGq8IuPj0dZWVmTaea6UukC0MPDA6Ghobhx44bB2r59+zZCQ0Ph4uKChIQEuLu7G6xtQzl69Chqamr07xsaGvDVV19BpVKJWBWzJVYVfl988QXkcnmTaQ0NDYiJiUFdXZ1IVbXOzc0N8fHx6N69O0JCQgwSgLrgc3Z2NtvgA4Ddu3dDKpU2maZWq3H06FGRKmK2xmrCr66uDl9//XWz88UAoLa2FseOHROhqkf7aQCGhoaioKCgw20VFhYiNDQUSqUSCQkJ6Natm+EKNaDKykocPXpUfyK4jlQqxa5du0Sqitkaqwm/w4cPo7a2tsWfSaVS7N6928QVtV2XLl1w7NgxuLi4ICQkpEMBqAs+uVyOb775xmyDDwC+/vrrZsEHPNxne+zYsTZdrcNYZ1lN+O3atavZZpSORqNBbGwsKioqTFxV23Xv3h2JiYlwcXHB5MmTcefOnTZ/tqioCFOmTIFMJkNycjI8PT2NWGnn7dy5s9VrcYkIBw4cMHFFzBZZRfiVl5fj+PHjLY4mdDQaDQ4dOmTCqtpPF4AODg4IDQ1tUwDeu3cPYWFh0Gq1SEpKMvvgKykpwalTp1q8uQLwMPx27txp4qqYLbKK8GttX9/PWcL+JF0A2tnZITQ0FHfv3m113p8GX3JyMry8vExYacfs2bPnF+/AotVqkZKS0q6RL2MdYRXhd+nSpUfOo9VqcfnyZRNU03keHh5ISkr6xQDUBZ9Go0FSUpJFBB/w8A9Qa6M+HSLCvn37TFQRs1VWEX7/+Mc/UFpa2uQFANu2bWsy7datWyJX2nYeHh5ITEyETCZDWFhYkwAsLi7GxIkTodFokJycjJ49e4pYafvU1NRAqVTCyclJf0sre3t7/XsnJyc4OzujvLxc7FKZlbOaW1r9nCAIiImJwaJFi8QupVN0I7zGxkYkJydDKpUiLCwM9fX1OHnypEUFX0v27t2LyMhIWOl/Q2bGrGLkZ8169OiBpKQkSCQSjB8/HhMmTEB9fb3FjfgYMzeGu3MlM5oePXpg3759CA4OBhEhLS0N3t7eYpfFmEXjkZ8FKCkpwZIlS9C9e3d4eXlhyZIlKCoqErssxiwah5+ZKysrw/Tp01FZWYnU1FScPn0aDQ0NmDp1Ku7fvy92eYxZLA4/M1ZeXo7JkyejpKQEycnJ8PX1hY+PD5KTk6FSqTBp0iQOQMY6iMPPTP00+E6ePIk+ffrof9arVy8kJyejqqoKkyZNwoMHD0SslDHLxOFnhsrLyzFlyhT9089+Gnw6ugCsrKzkAGSsAzj8zIwu+IqKipCcnIy+ffu2Ou9jjz2GkydPoqKiApMmTeK7oTDWDhx+ZqSiogJTp05tU/DpPPbYY0hOTkZ5eTkHIGPtwOFnJioqKjBlyhTcvXsXycnJ6NevX5s/27t3b5w8eRJlZWWYPHkyByBjbcDhZwZ0I76OBJ9O7969kZycjAcPHmDy5MnNnmXCGGuKw09klZWVmDZtGm7evIkTJ07g8ccf73Bbvr6+iI+Px7179zgAGXsEDj8RqVQqzJ49Gzdu3EBSUhIGDBjQ6Tb79++P5ORkFBUVYebMmaisrDRApYxZHw4/kahUKsycORPZ2dkGCz4dXQDevHkT06ZNQ1VVlcHaZsxacPiJQKVSYdasWbh27RqSkpIwcOBAgy+DA5CxX8bhZ2I1NTWYNWsWrl69arTg0/Hz80NSUhJu3LiB6dOncwAy9hMcfib00+BLTEzEE088YfRl+vv7Izk5Gfn5+Zg+fTqqq6uNvkzGLAGHn4nU1NRg9uzZuHLlChITEzFo0CCTLdvf3x9JSUnIy8vjAGTs/+PwMwFd8P3www8mDz6dgIAAJCcn4/r165gxYwYHILN5HH5GVltbizlz5iAjIwOJiYkIDAwUrZaAgAAkJSUhJycHM2bMgEqlEq0WxsTG4WdEuuC7dOkSjh8/Lmrw6QwYMAAnTpzAtWvXOACZTePwMxK1Wo2IiAhcvHgRJ06cQHBwsNgl6Q0ePBgJCQnIzMzEvHnzUFtbK3ZJjJkch58R1NfXY8GCBThz5gzi4+MxfPhwsUtqZsiQIUhISMClS5cQHh7OAchsDoefgf00+E6cOGGWwaczdOhQfQDOnTsXdXV1YpfEmMlw+BlQfX09Fi5ciNTUVJw4cQIjRowQu6RH0gXgxYsXOQCZTeHwM5D6+npEREQgJSXFYoJPRxeAFy5cwLx58zgAmU3g8DMAXfCdOnUK33zzDUaOHCl2Se02bNgwxMfH49tvv8W8efOgVqvFLokxo+Lw66SGhgYsWrQIJ0+exDfffIMnn3xS7JI6LCgoCPHx8UhLS+MAZFaPw68TdMGXkJCA2NhYiw4+naCgIMTFxeHMmTOYP38+ByCzWhx+HdTQ0IDIyEjEx8cjLi4O48ePF7skgxk1ahSOHz+O06dPY8GCBRyAzCpx+HVAY2MjnnnmGZw4cQJHjx61quDTGT16NI4dO4aUlBQsXboUDQ0NYpfEmEHJOvKhyspKNDY2GroWg1OpVAZ/jkVjYyNeeOEFxMXFISYmBoMHD+7UMlxcXCCVSg1Y4X81NjZ26jb2AwYMwL59+7Bw4UIsWLAAW7duhVwuN2CF0F9eZ+7PG5FKpXBxcTHqMixlvbJELa5n1E4JCQkEgF8Geq1YsaK9XdBmK1asEP37WdMrISHBaH3F65VxXy2tZ+0e+T148AAAEB8f396Psp95++23jfqM3dLSUowfPx5/+ctfjLYMWzF58mT9/31j4PXKeFpbzzq02QsAkyZN6lRBDNi8ebPRl9GjRw/uKwvCfWV4ra1nfMCDMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTbDb89uzZA0EQcPr0aQBAXl4eBEHA+vXrW/1Meno6Zs6cCTc3Nzg7O2PSpEk4c+aMqUq2WR3pKwCIi4uDn58fZLIO37zIbK1fvx6CIEAQBPj4+IhdTqs62nc6c+bMgSAIeOeddwxem0nCr7q6Gv3798esWbNMsbg2SUlJgb29vf75uqmpqQDQ6i3p09LSMGbMGDg7O+PatWu4ceMG+vbti5CQEJw4ccJkdRubNfRVXl4e5syZg9deew337t0zWZ2m9PLLL4OIMGTIkGY/M6c+bG/f/dSOHTsQGxtrtNpMEn5EBK1WC61W2+m2nJycMHbs2E63k5KSgpEjR8Le3h7Aw05RKpUICgpqNq9Wq8Vzzz0HNzc3fP755/Dy8kK3bt3w73//G/369cOyZcus5iE/lt5XAPCXv/wFY8aMwXfffQdnZ+dOL9/SGKIPxeo7nbt372L16tWIjo7udA2tMUn4OTs7Iy8vD3FxcaZY3COVlpbi6tWrTTo3NTUVY8aMaXETKSUlBZmZmVi4cCEUCoV+ulQqxZIlS3D79m0cOXLEJLUbm6X3FQB89tlnWLNmjVVu7raFufRhR/pOZ/ny5YiIiMCUKVOMVp/N7PNbt26dfh+Ju7s7iAjvv/++flpubi7i4+P179etW6f/bFJSEgBg+PDhzdrVTUtMTDTNF7EBnekrAE3+QDHT6mzfAcC2bduQmZnZ5v2CHWX08Dt48KD+iwqCgLq6uhanFxQUIDIyEm5ubnB3d8esWbOQl5enb0e3g1elUuHMmTP6z7X1r/uaNWtARCAiLF26FC4uLtBqtSAifPLJJwCA7Oxs/Txr1qzRfzYrKwsAWtyx7O3tDQDIycnp2C/IjFhDX9m61voQANRqNV5//XUEBATA0dERXbt2xezZs3H48GH9U+PE7rvCwkL88Y9/xLZt24y+y8Lo4Td37lwQEcLDw39x+urVq7F69WrcuXMHMTExSEpKwpIlS/Tz63bwKpVKPPXUU/pfnkajaXdNly9fxrBhwyAIAoCHR3GdnJzw+OOPtzh/eXk5AECpVDb7mZOTEwDzf/RiW1hDX9m61voQAF588UV88skn+Oc//4kHDx7g2rVrCAgIQHh4uP5AhNh9t2zZMixduhRhYWHtXl57mc1m77JlyzB69GgolUpMmjQJM2fOxIULF3D//n2DLqempgY5OTlNdrimp6djyJAhkEja/+sgIgDQd7AtsNS+snWJiYl44oknMHnyZCgUCvTo0QMffvgh/Pz8DL6sjvTdli1bkJubiw8++MDg9bTEbP4H6Q6F6/Tq1QvAw6M+bXHlypUmw31BEPDiiy82my8jIwONjY36TtFoNMjMzMTQoUNbbdvNzQ3Afx+w/VO6abp5bIE59xVr3bRp03D27Fk8//zzOH/+vH5TNzs7GyEhIW1qw1h9d+vWLbzyyivYtm1bi1tYxmA24efq6trkvZ2dHQC0+XD9oEGD9EN03WvDhg0AHu6H0HXU6NGjAQDR0dEQBAFyuRxqtRobN27Uz7N169YmbQcEBAB4uD/i5+7cuQMARvnraa7Mua9Y6zZu3IgdO3YgPz8fEydOhIuLC6ZNm4YDBw60uQ1j9V1sbCwqKioQEhLSJFh1p7r85S9/0U+7fv26QX4fZhN+bdWRzct169bpO2r48OEIDg7Wv1+5ciXs7e1RW1urn7Zs2bImnw8NDQUAfPfdd83a1k2bOHFiB76NdROjr1jrdGGSkJCA8vJyHDx4EESE+fPn4//+7/+azdtenem7lStXNgtVIsLOnTsBPHzwuG6aofb3Wlz4OTo6or6+Xv/e39+/zQ//VqlUSE9Px7hx4/TTUlJSMGLECDg4OLT6uQkTJmDgwIH46quvmhw9a2xsxJ49e9CrVy/MnDmzA9/GuonRV6x1bm5u+jMX5HI5Jk+erD86fPTo0Sbz2kLfWVz4BQUFIScnB7dv38a5c+eQn5/f5Jf8S86fPw+NRqOfv6ysDFeuXHnk5yUSCT777DOUlpbif/7nf1BUVIQHDx5g5cqVyM3NxZYtW8yqU82FGH3FftkLL7yAjIwMqNVqFBcX44MPPgARNTu6ahN9R+0UExND7fnYgQMHCECT19NPP03nzp1rNn3t2rVEDw+fNnnNnDlT315WVhaNGzeOlEol9erVizZu3NjmWt58800CQPfu3SMiosOHDxMAOnr0aJs+f+nSJZo+fTq5uLiQk5MThYWF0enTp9u8/J+LiIigiIiIDn/e0O1bS1/FxsY2q0v32rJlS5tr+CkAFBMT06HPtkV716sPP/ywxT5prQ+JiNLT02nFihU0YMAAcnR0pK5du9KoUaNoy5YtpNVqm7Qv5npGRLRixYoW+2/q1KltbkOntfVAIPr/52q00d69exEZGYl2foy1YNGiRQAe/k4tsX1bIggCYmJi9L9TQ+P1ynhaWw8sbrOXMcYMgcOPMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTOPwYYzaJw48xZpM4/BhjNonDjzFmkzj8GGM2icOPMWaTOPwYYzaJw48xZpPa9hj2FljDQ7rFVl9fr3/ymTGXwX1lObivDK+19azd4Wdvbw8A6Nq1a+erYnj66aeN1radnR327dvHfWUguv/7xmyb+8o4WlrP2n0be41Gg9OnT0Oj0RisMFs2ePBgeHh4GKXt4uJiZGRkGKVtWyOTyTB27FjIZB3eWPpFvF4ZV0vrWbvDjzHGrAEf8GCM2SQOP8aYTZIB4MNLjDGb8/8A9htr6D7jobIAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"visualize(delayed(my_list))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAL0AAAGhCAYAAAA0tLVkAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deVxU5b8H8M+BGTZBQEBwoXAtkSVFLHADEv0ZmGmgpqFkmPdqWlomZstNK+2nVna161qkIeCKG2kmKEpquYCCbCIIqBA7ioizfO8fXOY6DijrnDNznvfrNa8Xc+ac83xn+MyZZ86c8xyOiAgMIyIGfBfAMNrGQs+IDgs9IzoSvgtoyoMHDxAXFweFQsF3KUwreHp6wsnJie8yGkcCtXfvXgLAbjp6mzp1Kt8RapJgt/RyuRwAQGznks6ZPHmyoD+hWZ+eER0WekZ0WOgZ0WGhZ0SHhZ4RHRZ6RnRY6BnRYaFnRIeFnhEdFnpGdFjoGdFhoWdEh4WeER29Dn12djY4jsNLL73EdylaEx0dDY7jcObMGQBATk4OOI7DmjVrNOatqKjAxo0b4efnhy5dusDU1BT9+vXD9OnTkZKSou3StUavQ//zzz8DAM6fP49r167xXI12JCYmwtjYGJ6engCA06dPAwBGjhypMe/ixYsxf/58TJgwAdeuXUNZWRl++uknJCcnw8PDA7GxsVqtXVv0NvRKpRLbt2/HoEGDAPz/G0DfJSYmYujQoTA2NgZQH/pOnTph8ODBjc4/a9YsvPfee3BwcICZmRlGjBiBnTt3QqFQ4KOPPtJm6Vqjt6H//fffIZFIsHnzZgDAjh07VCem6Kvy8nJcu3YNw4cPV007ffo0vL29IZFoni+0detWbNq0SWO6u7s7TE1NkZOTo5cn8eht6H/66SeEhoZiyJAhcHNzQ3FxMeLi4vguq92tWrUKHMeB4zjY2NiAiLBy5UrVtOzsbBw/flx1f9WqVU9dZ01NDWpra+Hi4gKO47TwLLRLL0NfXl6OQ4cOYebMmQCAt956C0D9G+FxsbGxqkBwHIfMzExMnjwZNjY2qmlbt2596jylpaWQy+WIiYmBv78/HBwcYGpqCldXV6xbtw5KpRIAUFlZqbYujuPw5ZdfAqg/RfLR6UFBQU99ruHh4SAiEBGmTZuGzp07Q6lUgojwww8/AAAyMzNV84SHhz91nbt37wYALFu2rBmvtg7i7/TcJ4uJiaHWlvff//3f5Ovrq7pfUlJCUqmUJBIJFRcXN7rMhAkTCACNGjWKEhISqKamhs6dO0eGhoZUUlLSrHkOHTpEAOjrr7+m8vJyKikpoR9++IEMDAzoww8/VGtv7NixZGBgQNevX9eoxcvLiyIjI1v8vAcMGECjRo1S3Z81axaZm5uTQqFo9jqKiorI3t6ewsLCWtx+g+DgYAoODm718h1NL0M/ePBg2r59u9q0iRMnEgBas2ZNo8s0BDouLq7J9T5tnkOHDpGPj4/G9DfffJOkUilVVVWpph07dowA0Ny5c9XmPXPmDPXo0YMePnzYZB2NqampIUNDQ1q4cKFq2uDBg2nYsGHNXkdpaSm98MILNGXKFJLL5S1q/1FCD73edW+uXLmC7OxsvP7662rTG7o4T9uLM3To0Ke20dQ8gYGBSEhI0Jju7u4OmUyGtLQ01bQxY8bA1dUVERERKCsrU01fvXo15s+fD6lUCgBITU3V6A69++67Gm1cuXIFCoVCtZdGLpcjLS0NL7zwwlOfD1Dfjx87diycnZ0RGRkJQ0PDZi2nk/h+1zWltVv6995776ljspw/f15juYateG1tbZPrfto8lZWV9Omnn5KLiwtZWVlptPvHH3+ozb9t2zYCQMuXLycioszMTLKwsKDy8vJmPdclS5a0aCyaLVu2NLoemUxG48aNo1dffZVkMlmz2n4StqXXIplMhsjISCQlJam+uD16e//99wF03D778ePHY8WKFZg9ezaysrJUXyi/++47AJpj+EyfPh329vZYv3496urqsHbtWsycORPW1tbNam/VqlWq5zZkyBB4eHio7s+bNw/Gxsaora1VTQsLC2t0PXPmzEFdXR127dqltmuzb9++OHfuXCtfDeHSq9AfOnQItra28Pb2bvTxt99+GwAQFRWF2tradm1boVAgKSkJDg4OWLBgAezs7FS7+5pqy9jYGHPnzsU///yDtWvXIjIyEu+9916L266pqUFycjJGjBihmpaYmAhPT0+YmJg8cdn/+q//QlpaGg4cOKD6QUvf6VXof/75Z8yaNavJx11cXDB06FBUVVVh37597dq2oaEhfHx8UFRUhNWrV6O0tBS1tbVISEjAxo0bm1xu7ty5MDU1xSeffILRo0ejb9++LW773LlzkMvlqtBXVFQgNTVV7U3QmIiICHzxxRc4f/48LCwsNL475OTktLgWncBLp6oZWtKnLygoUOu7vvjiixrz5ObmavRx7e3t6ezZs432fx/VnHmI6neN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\n", | |
"text/plain": [ | |
"<IPython.core.display.Image object>" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"visualize(delayed(da_array))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "AttributeError", | |
"evalue": "'list' object has no attribute 'key'", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-9-6e32209971c9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_delayed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmy_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m~/git/dask/dask/array/core.py\u001b[0m in \u001b[0;36mfrom_delayed\u001b[0;34m(value, shape, dtype, name)\u001b[0m\n\u001b[1;32m 2404\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdelayed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2405\u001b[0m \u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m'from-value-'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mtokenize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2406\u001b[0;31m \u001b[0mdsk\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2407\u001b[0m \u001b[0mchunks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2408\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mArray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msharedict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmerge\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdsk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchunks\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mAttributeError\u001b[0m: 'list' object has no attribute 'key'" | |
] | |
} | |
], | |
"source": [ | |
"dask.array.from_delayed(my_list, shape=(2, 2), dtype=object)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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.6.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment