Skip to content

Instantly share code, notes, and snippets.

@fakechris
Created April 8, 2014 04:06
Show Gist options
  • Save fakechris/10089728 to your computer and use it in GitHub Desktop.
Save fakechris/10089728 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "Python Tutorials3"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": "import time, datetime",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "time.time()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": "1396861913.915668"
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": "datetime.datetime.now()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": "datetime.datetime(2014, 4, 7, 17, 12, 2, 59767)"
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": "d = datetime.datetime.now()\ntime.mktime(d.timetuple())",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": "1396861949.0"
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": "t = time.time()\ndatetime.datetime.fromtimestamp(t)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": "datetime.datetime(2014, 4, 7, 17, 12, 50, 969017)"
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": "datetime.datetime.strptime('20120102 12:11:22', '%Y%m%d %H:%M:%S')",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": "datetime.datetime(2012, 1, 2, 12, 11, 22)"
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "d = datetime.datetime.now()\ndatetime.datetime.strftime(d, '%Y-%m-%d %H:%M:%S') ",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": "'2014-04-07 17:14:45'"
}
],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": "import struct, socket",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": "struct.unpack('>I', socket.inet_aton('127.0.0.1'))[0]",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"text": "2130706433"
}
],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": "socket.inet_ntoa(struct.pack(\">I\", 3232235521))",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 16,
"text": "'192.168.0.1'"
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": "def f(arg1, *arg, **kwargs):\n print arg1, arg, kwargs\n \nf('1starg', '2nd', '3rd', arg4='4nd', arg5='5nd')",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "1starg ('2nd', '3rd') {'arg4': '4nd', 'arg5': '5nd'}\n"
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(f)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 29,
"text": "function"
}
],
"prompt_number": 29
},
{
"cell_type": "code",
"collapsed": false,
"input": "# function return function object\ndef f(i):\n def g():\n return i + 1\n return g",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 31
},
{
"cell_type": "code",
"collapsed": false,
"input": "g = f(3)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 32
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(g)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 33,
"text": "function"
}
],
"prompt_number": 33
},
{
"cell_type": "code",
"collapsed": false,
"input": "g()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"text": "4"
}
],
"prompt_number": 34
},
{
"cell_type": "code",
"collapsed": false,
"input": "# function decorator\ndef require_int (func):\n def wrapper (arg):\n assert isinstance(arg, int)\n return func(arg)\n return wrapper\n\n@require_int\ndef p1 (arg):\n print arg\n\ndef p2(arg):\n print arg\n \ndecorated_p = require_int(p2)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": "p1(12)",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "12\n"
}
],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": "p1('12')",
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "AssertionError",
"evalue": "",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-19-84b20884328f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mp1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'12'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-17-bb38d52a4735>\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(arg)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrequire_int\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAssertionError\u001b[0m: "
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(p1)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": "function"
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": "decorated_p(12)",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "12\n"
}
],
"prompt_number": 25
},
{
"cell_type": "code",
"collapsed": false,
"input": "decorated_p('12')",
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "AssertionError",
"evalue": "",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-26-4a0ffc96d1c7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdecorated_p\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'12'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-22-866e56a1029b>\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(arg)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrequire_int\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAssertionError\u001b[0m: "
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": "if True:\n print \"ok\"\nelse:\n print \"fail\"",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "ok\n"
}
],
"prompt_number": 35
},
{
"cell_type": "code",
"collapsed": false,
"input": "i = 0\nwhile i < 10:\n i += 1\nprint i",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "10\n"
}
],
"prompt_number": 37
},
{
"cell_type": "code",
"collapsed": false,
"input": "for i in range(2):\n print i",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "0\n1\n"
}
],
"prompt_number": 38
},
{
"cell_type": "code",
"collapsed": false,
"input": "try:\n raise Exception(\"got error\")\nexcept Exception, e:\n import traceback; traceback.print_exc(e)",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": "Traceback (most recent call last):\n File \"<ipython-input-43-370ae7d80859>\", line 2, in <module>\n raise Exception(\"got error\")\nException: got error\n"
}
],
"prompt_number": 43
},
{
"cell_type": "code",
"collapsed": false,
"input": "# class\nclass foo(object):\n names = ['foo',] # instance value\n\n def __init__(self, init):\n self.init = init\n \n def __call__(self, i):\n return self.init + i\n \n def minus(self, i):\n return self.init - i",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 97
},
{
"cell_type": "code",
"collapsed": false,
"input": "class foo2:\n pass",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 88
},
{
"cell_type": "code",
"collapsed": false,
"input": "f = foo(10)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 64
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(foo)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 65,
"text": "type"
}
],
"prompt_number": 65
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(foo2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 68,
"text": "classobj"
}
],
"prompt_number": 68
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(f)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 69,
"text": "__main__.foo"
}
],
"prompt_number": 69
},
{
"cell_type": "code",
"collapsed": false,
"input": "isinstance(f, foo)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 70,
"text": "True"
}
],
"prompt_number": 70
},
{
"cell_type": "code",
"collapsed": false,
"input": "# all instance variable share same object\nf1 = foo(10); f2 = foo(20); f1.names.append('f1'); f2.names",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 98,
"text": "['foo', 'f1']"
}
],
"prompt_number": 98
},
{
"cell_type": "code",
"collapsed": false,
"input": "f(2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 71,
"text": "12"
}
],
"prompt_number": 71
},
{
"cell_type": "code",
"collapsed": false,
"input": "f.minus(2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 72,
"text": "8"
}
],
"prompt_number": 72
},
{
"cell_type": "code",
"collapsed": false,
"input": "type(f.minus)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 73,
"text": "instancemethod"
}
],
"prompt_number": 73
},
{
"cell_type": "code",
"collapsed": false,
"input": "foo.minus(2)",
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "unbound method minus() must be called with foo instance as first argument (got int instance instead)",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-74-7ab395cb57c7>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfoo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mminus\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m: unbound method minus() must be called with foo instance as first argument (got int instance instead)"
]
}
],
"prompt_number": 74
},
{
"cell_type": "code",
"collapsed": false,
"input": "foo.minus.__get__(f)(2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 75,
"text": "8"
}
],
"prompt_number": 75
},
{
"cell_type": "code",
"collapsed": false,
"input": "help(super)",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "Help on class super in module __builtin__:\n\nclass super(object)\n | super(type, obj) -> bound super object; requires isinstance(obj, type)\n | super(type) -> unbound super object\n | super(type, type2) -> bound super object; requires issubclass(type2, type)\n | Typical use to call a cooperative superclass method:\n | class C(B):\n | def meth(self, arg):\n | super(C, self).meth(arg)\n | \n | Methods defined here:\n | \n | __get__(...)\n | descr.__get__(obj[, type]) -> value\n | \n | __getattribute__(...)\n | x.__getattribute__('name') <==> x.name\n | \n | __init__(...)\n | x.__init__(...) initializes x; see help(type(x)) for signature\n | \n | __repr__(...)\n | x.__repr__() <==> repr(x)\n | \n | ----------------------------------------------------------------------\n | Data descriptors defined here:\n | \n | __self__\n | the instance invoking super(); may be None\n | \n | __self_class__\n | the type of the instance invoking super(); may be None\n | \n | __thisclass__\n | the class invoking super()\n | \n | ----------------------------------------------------------------------\n | Data and other attributes defined here:\n | \n | __new__ = <built-in method __new__ of type object>\n | T.__new__(S, ...) -> a new object with type S, a subtype of T\n\n"
}
],
"prompt_number": 76
},
{
"cell_type": "code",
"collapsed": false,
"input": "# inherit\nclass foobar(foo):\n def __init__(self, init):\n super(foobar, self).__init__(init)\n self.init *= 2",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 77
},
{
"cell_type": "code",
"collapsed": false,
"input": "fb = foobar(10); fb(2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 80,
"text": "22"
}
],
"prompt_number": 80
},
{
"cell_type": "code",
"collapsed": false,
"input": "# method missing\nclass dyntest(object):\n def __init__(self):\n self.dynamic_methods = ['add']\n\n def __getattr__(self, method_name):\n if method_name in self.dynamic_methods:\n return lambda x: x+1\n else:\n return super(dyntest, self).__getattr__(method_name)\n\nd = dyntest()\nd.add(1) ",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 81,
"text": "2"
}
],
"prompt_number": 81
},
{
"cell_type": "code",
"collapsed": false,
"input": "# meta class programming\nclass MyType(type):\n def __new__(cls, name, bases, dct):\n return type.__new__(cls, name, bases, dct)\n\n def __init__(cls, name, bases, dct):\n super(MyType, cls).__init__(name, bases, dct)\n\nDynamicClass = MyType('DynamicClass', (), {'add': lambda self, x, y: x + y, 'sub': lambda self, x, y: x - y})\n\nclass DynamicClass2:\n __metaclass__ = MyType\n\ndc = DynamicClass()\ndc.add(1,2)",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 83,
"text": "3"
}
],
"prompt_number": 83
},
{
"cell_type": "code",
"collapsed": false,
"input": "# class function decorator\ndef require_int (func):\n def wrapper (*arg):\n #print arg\n assert isinstance(arg[1], int)\n return func(*arg)\n return wrapper\n\nclass decoclass:\n @require_int\n def p1 (self, arg):\n print arg\n\ndc = decoclass()\nprint dc.p1(1)\nprint dc.p1('a')",
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "AssertionError",
"evalue": "",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-103-482b298ccd8c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0mdc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdecoclass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mdc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mp1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mdc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mp1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'a'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-103-482b298ccd8c>\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*arg)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m#print arg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAssertionError\u001b[0m: "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": "1\nNone\n"
}
],
"prompt_number": 103
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment