Created
January 5, 2016 13:19
-
-
Save oyamad/c2f44d6f9e82a7d30833 to your computer and use it in GitHub Desktop.
jitclass constructor
This file contains 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": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"from numba import jitclass, typeof" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"class MyClass(object):\n", | |
" def __init__(self, value):\n", | |
" self.value = value" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def create_my_class(value):\n", | |
" custom_cls = jitclass([('value', typeof(value))])(MyClass)\n", | |
" # may want to cache the class object for the future\n", | |
" return custom_cls(value)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"my_instance = create_my_class(np.array([0]))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0])" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"my_instance.value" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"ename": "TypingError", | |
"evalue": "Failed at nopython (nopython frontend)\nInternal error at <numba.typeinfer.CallConstraint object at 0x106b57dd8>:\n--%<-----------------------------------------------------------------\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 196, in lower_block\n self.lower_inst(inst)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 334, in lower_inst\n signature.args[1])\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/base.py\", line 597, in cast\n return impl(self, builder, fromty, toty, val)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/arrayobj.py\", line 2675, in array_to_array\n assert toty.layout == 'A'\nAssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 111, in propagate\n constraint(typeinfer)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 284, in __call__\n self.resolve(typeinfer, typevars, fnty)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 311, in resolve\n sig = context.resolve_function_type(fnty, pos_args, kw_args)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/context.py\", line 113, in resolve_function_type\n return func.get_call_type(self, args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/types.py\", line 1463, in get_call_type\n return self.ctor_template(context).apply(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/templates.py\", line 155, in apply\n sig = generic(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\", line 178, in generic\n template, args, kws = ctor.get_call_template(boundargs, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 143, in get_call_template\n self.compile(tuple(args))\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 350, in compile\n flags=flags, locals=self.locals)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 663, in compile_extra\n return pipeline.compile_extra(func)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 364, in compile_extra\n return self.compile_bytecode(bc, func_attr=self.func_attr)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 373, in compile_bytecode\n return self._compile_bytecode()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 650, in _compile_bytecode\n return pm.run(self.status)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 251, in run\n raise patched_exception\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 243, in run\n res = stage()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 604, in stage_nopython_backend\n return self._backend(lowerfn, objectmode=False)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 557, in _backend\n lowered = lowerfn()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 544, in backend_nopython_mode\n self.flags)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 792, in native_lowering_stage\n lower.lower()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 123, in lower\n self.lower_normal_function(self.fndesc)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 158, in lower_normal_function\n entry_block_tail = self.lower_function_body()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 183, in lower_function_body\n self.lower_block(block)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 201, in lower_block\n raise LoweringError(msg, inst.loc)\nnumba.errors.LoweringError: Failed at nopython (nopython mode backend)\nInternal error:\nAssertionError: \nFile \"<ipython-input-2-52286d75f1ed>\", line 3\n--%<-----------------------------------------------------------------\n\nFile \"<string>\", line 3", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypingError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-6-e5131887eef6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmy_instance2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_my_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\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[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m<ipython-input-3-50c22779bb50>\u001b[0m in \u001b[0;36mcreate_my_class\u001b[0;34m(value)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mcustom_cls\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjitclass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'value'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtypeof\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMyClass\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# may want to cache the class object for the future\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcustom_cls\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[0m", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 91\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ctor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 92\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\u001b[0m in \u001b[0;36m_compile_for_args\u001b[0;34m(self, *args, **kws)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mkws\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0msig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypeof_pyval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minspect_llvm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sig)\u001b[0m\n\u001b[1;32m 348\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpy_func\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 350\u001b[0;31m flags=flags, locals=self.locals)\n\u001b[0m\u001b[1;32m 351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0;31m# Check typing error if object mode is used\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[0;34m(typingctx, targetctx, func, args, return_type, flags, locals, library)\u001b[0m\n\u001b[1;32m 661\u001b[0m pipeline = Pipeline(typingctx, targetctx, library,\n\u001b[1;32m 662\u001b[0m args, return_type, flags, locals)\n\u001b[0;32m--> 663\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpipeline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile_extra\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 664\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 665\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[0;34m(self, func)\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 363\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 364\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile_bytecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_attr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 365\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m def compile_bytecode(self, bc, lifted=(), lifted_from=None,\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_bytecode\u001b[0;34m(self, bc, lifted, lifted_from, func_attr)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlifted_from\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlifted_from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 372\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_attr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 373\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile_bytecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 374\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 375\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompile_internal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mDEFAULT_FUNCTION_ATTRIBUTES\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36m_compile_bytecode\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfinalize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 650\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 651\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, status)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0;31m# No more fallback pipelines?\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_final_pipeline\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 251\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mpatched_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 252\u001b[0m \u001b[0;31m# Go to next fallback pipeline\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, status)\u001b[0m\n\u001b[1;32m 241\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mstage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstage_name\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpipeline_stages\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpipeline_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 243\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 244\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0m_EarlyPipelineCompletion\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mstage_nopython_frontend\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 461\u001b[0;31m self.locals)\n\u001b[0m\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 463\u001b[0m with self.fallback_context('Function \"%s\" has invalid return type'\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mtype_inference_stage\u001b[0;34m(typingctx, interp, args, return_type, locals)\u001b[0m\n\u001b[1;32m 776\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 777\u001b[0m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_constraint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 778\u001b[0;31m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpropagate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 779\u001b[0m \u001b[0mtypemap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrestype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcalltypes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 780\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\u001b[0m in \u001b[0;36mpropagate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 567\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpropagate_finished\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 569\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 570\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 571\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0madd_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0munless_locked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mTypingError\u001b[0m: Failed at nopython (nopython frontend)\nInternal error at <numba.typeinfer.CallConstraint object at 0x106b57dd8>:\n--%<-----------------------------------------------------------------\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 196, in lower_block\n self.lower_inst(inst)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 334, in lower_inst\n signature.args[1])\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/base.py\", line 597, in cast\n return impl(self, builder, fromty, toty, val)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/arrayobj.py\", line 2675, in array_to_array\n assert toty.layout == 'A'\nAssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 111, in propagate\n constraint(typeinfer)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 284, in __call__\n self.resolve(typeinfer, typevars, fnty)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 311, in resolve\n sig = context.resolve_function_type(fnty, pos_args, kw_args)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/context.py\", line 113, in resolve_function_type\n return func.get_call_type(self, args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/types.py\", line 1463, in get_call_type\n return self.ctor_template(context).apply(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/templates.py\", line 155, in apply\n sig = generic(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\", line 178, in generic\n template, args, kws = ctor.get_call_template(boundargs, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 143, in get_call_template\n self.compile(tuple(args))\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 350, in compile\n flags=flags, locals=self.locals)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 663, in compile_extra\n return pipeline.compile_extra(func)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 364, in compile_extra\n return self.compile_bytecode(bc, func_attr=self.func_attr)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 373, in compile_bytecode\n return self._compile_bytecode()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 650, in _compile_bytecode\n return pm.run(self.status)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 251, in run\n raise patched_exception\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 243, in run\n res = stage()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 604, in stage_nopython_backend\n return self._backend(lowerfn, objectmode=False)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 557, in _backend\n lowered = lowerfn()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 544, in backend_nopython_mode\n self.flags)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 792, in native_lowering_stage\n lower.lower()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 123, in lower\n self.lower_normal_function(self.fndesc)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 158, in lower_normal_function\n entry_block_tail = self.lower_function_body()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 183, in lower_function_body\n self.lower_block(block)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 201, in lower_block\n raise LoweringError(msg, inst.loc)\nnumba.errors.LoweringError: Failed at nopython (nopython mode backend)\nInternal error:\nAssertionError: \nFile \"<ipython-input-2-52286d75f1ed>\", line 3\n--%<-----------------------------------------------------------------\n\nFile \"<string>\", line 3" | |
] | |
} | |
], | |
"source": [ | |
"my_instance2 = create_my_class(np.array([0.]))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"class MyClass(object):\n", | |
" def __init__(self, value):\n", | |
" self.value = value" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"my_instance3 = create_my_class(np.array([0.]))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0.])" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"my_instance3.value" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"ename": "TypingError", | |
"evalue": "Failed at nopython (nopython frontend)\nInternal error at <numba.typeinfer.CallConstraint object at 0x106b1d898>:\n--%<-----------------------------------------------------------------\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 196, in lower_block\n self.lower_inst(inst)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 334, in lower_inst\n signature.args[1])\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/base.py\", line 597, in cast\n return impl(self, builder, fromty, toty, val)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/arrayobj.py\", line 2675, in array_to_array\n assert toty.layout == 'A'\nAssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 111, in propagate\n constraint(typeinfer)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 284, in __call__\n self.resolve(typeinfer, typevars, fnty)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 311, in resolve\n sig = context.resolve_function_type(fnty, pos_args, kw_args)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/context.py\", line 113, in resolve_function_type\n return func.get_call_type(self, args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/types.py\", line 1463, in get_call_type\n return self.ctor_template(context).apply(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/templates.py\", line 155, in apply\n sig = generic(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\", line 178, in generic\n template, args, kws = ctor.get_call_template(boundargs, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 143, in get_call_template\n self.compile(tuple(args))\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 350, in compile\n flags=flags, locals=self.locals)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 663, in compile_extra\n return pipeline.compile_extra(func)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 364, in compile_extra\n return self.compile_bytecode(bc, func_attr=self.func_attr)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 373, in compile_bytecode\n return self._compile_bytecode()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 650, in _compile_bytecode\n return pm.run(self.status)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 251, in run\n raise patched_exception\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 243, in run\n res = stage()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 604, in stage_nopython_backend\n return self._backend(lowerfn, objectmode=False)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 557, in _backend\n lowered = lowerfn()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 544, in backend_nopython_mode\n self.flags)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 792, in native_lowering_stage\n lower.lower()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 123, in lower\n self.lower_normal_function(self.fndesc)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 158, in lower_normal_function\n entry_block_tail = self.lower_function_body()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 183, in lower_function_body\n self.lower_block(block)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 201, in lower_block\n raise LoweringError(msg, inst.loc)\nnumba.errors.LoweringError: Failed at nopython (nopython mode backend)\nInternal error:\nAssertionError: \nFile \"<ipython-input-7-52286d75f1ed>\", line 3\n--%<-----------------------------------------------------------------\n\nFile \"<string>\", line 3", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypingError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-10-6189a28097d4>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmy_instance4\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_my_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\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[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m<ipython-input-3-50c22779bb50>\u001b[0m in \u001b[0;36mcreate_my_class\u001b[0;34m(value)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mcustom_cls\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjitclass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'value'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtypeof\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMyClass\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# may want to cache the class object for the future\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcustom_cls\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[0m", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 91\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ctor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 92\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\u001b[0m in \u001b[0;36m_compile_for_args\u001b[0;34m(self, *args, **kws)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mkws\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0msig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypeof_pyval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msig\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minspect_llvm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\u001b[0m in \u001b[0;36mcompile\u001b[0;34m(self, sig)\u001b[0m\n\u001b[1;32m 348\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpy_func\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_type\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 350\u001b[0;31m flags=flags, locals=self.locals)\n\u001b[0m\u001b[1;32m 351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[0;31m# Check typing error if object mode is used\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[0;34m(typingctx, targetctx, func, args, return_type, flags, locals, library)\u001b[0m\n\u001b[1;32m 661\u001b[0m pipeline = Pipeline(typingctx, targetctx, library,\n\u001b[1;32m 662\u001b[0m args, return_type, flags, locals)\n\u001b[0;32m--> 663\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpipeline\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile_extra\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 664\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 665\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_extra\u001b[0;34m(self, func)\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 363\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 364\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile_bytecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_attr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 365\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 366\u001b[0m def compile_bytecode(self, bc, lifted=(), lifted_from=None,\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mcompile_bytecode\u001b[0;34m(self, bc, lifted, lifted_from, func_attr)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlifted_from\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlifted_from\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 372\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc_attr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 373\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compile_bytecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 374\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 375\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcompile_internal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfunc_attr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mDEFAULT_FUNCTION_ATTRIBUTES\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36m_compile_bytecode\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 649\u001b[0m \u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfinalize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 650\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 651\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, status)\u001b[0m\n\u001b[1;32m 249\u001b[0m \u001b[0;31m# No more fallback pipelines?\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_final_pipeline\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 251\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mpatched_exception\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 252\u001b[0m \u001b[0;31m# Go to next fallback pipeline\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, status)\u001b[0m\n\u001b[1;32m 241\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mstage\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstage_name\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpipeline_stages\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpipeline_name\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 242\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 243\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 244\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0m_EarlyPipelineCompletion\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mstage_nopython_frontend\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreturn_type\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 461\u001b[0;31m self.locals)\n\u001b[0m\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 463\u001b[0m with self.fallback_context('Function \"%s\" has invalid return type'\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\u001b[0m in \u001b[0;36mtype_inference_stage\u001b[0;34m(typingctx, interp, args, return_type, locals)\u001b[0m\n\u001b[1;32m 776\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 777\u001b[0m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_constraint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 778\u001b[0;31m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpropagate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 779\u001b[0m \u001b[0mtypemap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrestype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcalltypes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minfer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munify\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 780\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\u001b[0m in \u001b[0;36mpropagate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 567\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpropagate_finished\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 569\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 570\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 571\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0madd_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0munless_locked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mTypingError\u001b[0m: Failed at nopython (nopython frontend)\nInternal error at <numba.typeinfer.CallConstraint object at 0x106b1d898>:\n--%<-----------------------------------------------------------------\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 196, in lower_block\n self.lower_inst(inst)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 334, in lower_inst\n signature.args[1])\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/base.py\", line 597, in cast\n return impl(self, builder, fromty, toty, val)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/targets/arrayobj.py\", line 2675, in array_to_array\n assert toty.layout == 'A'\nAssertionError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 111, in propagate\n constraint(typeinfer)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 284, in __call__\n self.resolve(typeinfer, typevars, fnty)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typeinfer.py\", line 311, in resolve\n sig = context.resolve_function_type(fnty, pos_args, kw_args)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/context.py\", line 113, in resolve_function_type\n return func.get_call_type(self, args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/types.py\", line 1463, in get_call_type\n return self.ctor_template(context).apply(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/typing/templates.py\", line 155, in apply\n sig = generic(args, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/jitclass/base.py\", line 178, in generic\n template, args, kws = ctor.get_call_template(boundargs, kws)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 143, in get_call_template\n self.compile(tuple(args))\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/dispatcher.py\", line 350, in compile\n flags=flags, locals=self.locals)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 663, in compile_extra\n return pipeline.compile_extra(func)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 364, in compile_extra\n return self.compile_bytecode(bc, func_attr=self.func_attr)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 373, in compile_bytecode\n return self._compile_bytecode()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 650, in _compile_bytecode\n return pm.run(self.status)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 251, in run\n raise patched_exception\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 243, in run\n res = stage()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 604, in stage_nopython_backend\n return self._backend(lowerfn, objectmode=False)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 557, in _backend\n lowered = lowerfn()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 544, in backend_nopython_mode\n self.flags)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/compiler.py\", line 792, in native_lowering_stage\n lower.lower()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 123, in lower\n self.lower_normal_function(self.fndesc)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 158, in lower_normal_function\n entry_block_tail = self.lower_function_body()\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 183, in lower_function_body\n self.lower_block(block)\n File \"//anaconda/envs/numba-dev/lib/python3.5/site-packages/numba/lowering.py\", line 201, in lower_block\n raise LoweringError(msg, inst.loc)\nnumba.errors.LoweringError: Failed at nopython (nopython mode backend)\nInternal error:\nAssertionError: \nFile \"<ipython-input-7-52286d75f1ed>\", line 3\n--%<-----------------------------------------------------------------\n\nFile \"<string>\", line 3" | |
] | |
} | |
], | |
"source": [ | |
"my_instance4 = create_my_class(np.array([0]))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'0.22.1+283.g2f2302f'" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import numba\n", | |
"numba.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"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.5.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment