Changeset 333
- Timestamp:
- 06/20/08 22:54:01 (4 years ago)
- Location:
- hodgestar/Talks/PythonObjects
- Files:
-
- 2 added
- 7 modified
-
. (modified) (1 prop)
-
html/pyobjects-0.html (modified) (1 diff)
-
html/pyobjects-2.html (modified) (2 diffs)
-
html/pyobjects-4.html (modified) (1 diff)
-
html/pyobjects-5.html (modified) (1 diff)
-
html/pyobjects-6.html (modified) (1 diff)
-
html/pyobjects-7.html (added)
-
pyobjects.py (modified) (3 diffs)
-
util.py (added)
Legend:
- Unmodified
- Added
- Removed
-
hodgestar/Talks/PythonObjects
-
Property
svn:ignore set
to
*.pyc
-
Property
svn:ignore set
to
-
hodgestar/Talks/PythonObjects/html/pyobjects-0.html
r332 r333 11 11 <li><a href='pyobjects-2.html'>Out With The Old ...</a></li> 12 12 <li><a href='pyobjects-3.html'>Strings</a></li> 13 <li><a href='pyobjects-4.html'>Gamboling With Slots</a></li> 14 <li><a href='pyobjects-5.html'>PyObject C API</a></li> 15 <li><a href='pyobjects-6.html'>object.c</a></li> 13 <li><a href='pyobjects-4.html'>Find Big Dict</a></li> 14 <li><a href='pyobjects-5.html'>Gamboling With Slots</a></li> 15 <li><a href='pyobjects-6.html'>PyObject C API</a></li> 16 <li><a href='pyobjects-7.html'>object.c</a></li> 16 17 </ol> 17 18 <br /></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-2.html
r332 r333 9 9 <li>Old style:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">class</span> <span class="nc">Old</span><span class="p">:</span> 10 10 <span class="gp">... </span> <span class="k">pass</span> 11 <span class="gp">... </span>11 <span class="gp">... </span> 12 12 <span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">Old</span><span class="p">),</span> <span class="nb">type</span><span class="p">(</span><span class="n">Old</span><span class="p">())</span> 13 13 <span class="go">(<type 'classobj'>, <type 'instance'>)</span> … … 17 17 <li>New Style:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">class</span> <span class="nc">New</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> 18 18 <span class="gp">... </span> <span class="k">pass</span> 19 <span class="gp">... </span>19 <span class="gp">... </span> 20 20 <span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">New</span><span class="p">),</span> <span class="nb">type</span><span class="p">(</span><span class="n">New</span><span class="p">())</span> 21 21 <span class="go">(<type 'type'>, <class '__main__.New'>)</span> -
hodgestar/Talks/PythonObjects/html/pyobjects-4.html
r332 r333 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-3.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-5.html">Next</a><h2>Gamboling With Slots</h2><ul> 8 <a accesskey="P" href="pyobjects-3.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-5.html">Next</a><h2>Find Big Dict</h2><ul> 9 <li>Util:<div class="highlight"><pre><span class="k">def</span> <span class="nf">find_big_dict</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 10 <span class="k">import</span> <span class="nn">gc</span> 11 <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">gc</span><span class="o">.</span><span class="n">get_referrers</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 12 <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">dict</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">></span> <span class="mf">1000</span><span class="p">:</span> 13 <span class="k">return</span> <span class="n">obj</span> 14 <span class="k">return</span> <span class="bp">None</span> 15 </pre></div> 16 </li> 17 18 <li>Example:<div class="highlight"><pre><span class="gp">>>> </span><span class="n">interned</span> <span class="o">=</span> <span class="n">find_big_dict</span><span class="p">(</span><span class="s">"a"</span><span class="p">)</span> 19 </pre></div> 20 </li> 21 22 <li>Game:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">util</span> 23 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">keyword_quiz</span><span class="p">()</span> 24 </pre></div> 25 </li> 9 26 </ul> 10 27 <br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-5.html
r332 r333 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-4.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-6.html">Next</a><h2> PyObject C API</h2><ul>8 <a accesskey="P" href="pyobjects-4.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-6.html">Next</a><h2>Gamboling With Slots</h2><ul> 9 9 </ul> 10 10 <br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-6.html
r332 r333 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-5.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | Next<h2>object.c</h2><ul> 9 <li><img src='tabs.png' alt='' /></li> 8 <a accesskey="P" href="pyobjects-5.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-7.html">Next</a><h2>PyObject C API</h2><ul> 10 9 </ul> 11 10 <br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/pyobjects.py
r332 r333 24 24 class CODE(object): 25 25 def __init__(self, code, lexer="python", formatter="html", style="default"): 26 self.code = code26 self.code = self._strip_indent(code) 27 27 self.lexer = get_lexer_by_name(lexer) 28 28 self.formatter = get_formatter_by_name(formatter, style=style) … … 31 31 return pygments.highlight(self.code, self.lexer, self.formatter) 32 32 33 def _strip_indent(self, code): 34 """Remove lead and trailing blank lines and strip indents.""" 35 itr = iter(code.split("\n")) 36 for line in itr: 37 if line.strip(): 38 break 39 indent = len(line) - len(line.lstrip()) 40 lines = [line[indent:]] 41 for line in itr: 42 lines.append(line[indent:]) 43 while lines and not lines[-1]: 44 del lines[-1] 45 return "\n".join(lines) 46 47 class PYCODE(CODE): 48 def __init__(self, code, formatter="html", style="default"): 49 super(PYCODE, self).__init__(code, "python", formatter, style) 50 33 51 class PYCON(CODE): 34 52 def __init__(self, code, formatter="html", style="default"): 35 code = "\n".join([x.strip() for x in code.split("\n")]) 36 lexer = "pycon" 37 super(PYCON, self).__init__(code, lexer, formatter, style) 53 super(PYCON, self).__init__(code, "pycon", formatter, style) 38 54 39 55 class MyLecture(Lecture): … … 88 104 Bullet("Constants strings of size <= 20 cache by parser (TODO: check)."), 89 105 ), 106 Slide("Find Big Dict", 107 Bullet("Util:", PYCODE(""" 108 def find_big_dict(x): 109 import gc 110 for obj in gc.get_referrers(x): 111 if type(obj) is dict and len(obj) > 1000: 112 return obj 113 return None 114 """)), 115 Bullet("Example:", PYCON(""" 116 >>> interned = find_big_dict("a") 117 """)), 118 Bullet("Game:", PYCON(""" 119 >>> import util 120 >>> util.keyword_quiz() 121 """)), 122 ), 90 123 Slide("Gamboling With Slots", 91 124 ),
