Skip to content

Instantly share code, notes, and snippets.

@oyamad
Created January 5, 2016 13:19
Show Gist options
  • Save oyamad/c2f44d6f9e82a7d30833 to your computer and use it in GitHub Desktop.
Save oyamad/c2f44d6f9e82a7d30833 to your computer and use it in GitHub Desktop.
jitclass constructor
Display the source blob
Display the rendered blob
Raw
{
"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