Skip to content

Fixes a bunch of broken links in different parts of the book #56

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion advanced-iterators.html
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ <h2 id=furtherreading>Further Reading</h2>
<ul>
<li><a href=http://docs.python.org/3.1/library/itertools.html><code>itertools</code> module</a>
<li><a href=http://www.doughellmann.com/PyMOTW/itertools/><code>itertools</code>&nbsp;&mdash;&nbsp;Iterator functions for efficient looping</a>
<li><a href=http://blip.tv/file/1947373/>Watch Raymond Hettinger&#8217;s &#8220;Easy AI with Python&#8221; talk</a> at PyCon 2009
<li><a href=https://www.youtube.com/watch?v=M9V1e-rG7VA>Watch Raymond Hettinger&#8217;s &#8220;Easy AI with Python&#8221; talk</a> at PyCon 2009
<li><a href=http://code.activestate.com/recipes/576615/>Recipe 576615: Alphametics solver</a>, Raymond Hettinger&#8217;s original alphametics solver for Python 2
<li><a href=http://code.activestate.com/recipes/users/178123/>More of Raymond Hettinger&#8217;s recipes</a> in the ActiveState Code repository
<li><a href=http://en.wikipedia.org/wiki/Verbal_arithmetic>Alphametics on Wikipedia</a>
Expand Down
2 changes: 1 addition & 1 deletion comprehensions.html
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ <h2 id=furtherreading>Further Reading</h2>
<li><a href=http://docs.python.org/3.1/library/os.html><code>os</code> module</a>
<li><a href=http://www.doughellmann.com/PyMOTW/os/><code>os</code>&nbsp;&mdash;&nbsp;Portable access to operating system specific features</a>
<li><a href=http://docs.python.org/3.1/library/os.path.html><code>os.path</code> module</a>
<li><a href=http://www.doughellmann.com/PyMOTW/ospath/><code>os.path</code>&nbsp;&mdash;&nbsp;Platform-independent manipulation of file names</a>
<li><a href=https://pymotw.com/3/os.path/><code>os.path</code>&nbsp;&mdash;&nbsp;Platform-independent manipulation of file names</a>
<li><a href=http://docs.python.org/3.1/library/glob.html><code>glob</code> module</a>
<li><a href=http://www.doughellmann.com/PyMOTW/glob/><code>glob</code>&nbsp;&mdash;&nbsp;Filename pattern matching</a>
<li><a href=http://docs.python.org/3.1/library/time.html><code>time</code> module</a>
Expand Down
2 changes: 1 addition & 1 deletion http-web-services.html
Original file line number Diff line number Diff line change
Expand Up @@ -974,7 +974,7 @@ <h2 id=furtherreading>Further Reading</h2>
<p><code>httplib2</code>:

<ul>
<li><a href=http://code.google.com/p/httplib2/><code>httplib2</code> project page</a>
<li><a href=https://github.com/httplib2/httplib2><code>httplib2</code> project page</a>
<li><a href=http://code.google.com/p/httplib2/wiki/ExamplesPython3>More <code>httplib2</code> code examples</a>
<li><a href=http://www.xml.com/pub/a/2006/02/01/doing-http-caching-right-introducing-httplib2.html>Doing <abbr>HTTP</abbr> Caching Right: Introducing <code>httplib2</code></a>
<li><a href=http://www.xml.com/pub/a/2006/03/29/httplib2-http-persistence-and-authentication.html><code>httplib2</code>: <abbr>HTTP</abbr> Persistence and Authentication</a>
Expand Down
2 changes: 1 addition & 1 deletion special-method-names.html
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ <h2 id=esoterica>Really Esoteric Stuff</h2>
<td><a href=http://docs.python.org/3.1/library/abc.html#abc.ABCMeta.__subclasshook__><code>MyABC.<dfn>__subclasshook__</dfn>(C)</code></a>
</table>

<p><sup>*</sup> Exactly when Python calls the <code>__del__()</code> special method <a href=http://www.python.org/doc/3.1/reference/datamodel.html#object.__del__>is incredibly complicated</a>. To fully understand it, you need to know how <a href=http://www.python.org/doc/3.1/reference/datamodel.html#objects-values-and-types>Python keeps track of objects in memory</a>. Here&#8217;s a good article on <a href=http://www.electricmonk.nl/log/2008/07/07/python-destructor-and-garbage-collection-notes/>Python garbage collection and class destructors</a>. You should also read about <a href=http://mindtrove.info/articles/python-weak-references/>weak references</a>, the <a href=http://docs.python.org/3.1/library/weakref.html><code>weakref</code> module</a>, and probably the <a href=http://www.python.org/doc/3.1/library/gc.html><code>gc</code> module</a> for good measure.
<p><sup>*</sup> Exactly when Python calls the <code>__del__()</code> special method <a href=http://www.python.org/doc/3.1/reference/datamodel.html#object.__del__>is incredibly complicated</a>. To fully understand it, you need to know how <a href=http://www.python.org/doc/3.1/reference/datamodel.html#objects-values-and-types>Python keeps track of objects in memory</a>. Here&#8217;s a good article on <a href=http://www.electricmonk.nl/log/2008/07/07/python-destructor-and-garbage-collection-notes/>Python garbage collection and class destructors</a>. You should also read about <a href=https://mindtrove.info/python-weak-references/>weak references</a>, the <a href=http://docs.python.org/3.1/library/weakref.html><code>weakref</code> module</a>, and probably the <a href=http://www.python.org/doc/3.1/library/gc.html><code>gc</code> module</a> for good measure.

<h2 id=furtherreading>Further Reading</h2>

Expand Down
2 changes: 1 addition & 1 deletion whats-new.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ <h2 id=divingin><i>a.k.a.</i> &#8220;the minus level&#8221;</h2>

<p>Iterators are everywhere in Python 3, and I understand them a lot better than I did five years ago when I wrote &#8220;Dive Into Python&#8221;. You need to understand them too, because lots of functions that used to return lists in Python 2 will now return iterators in Python 3. At a minimum, you should read <a href=iterators.html#a-fibonacci-iterator>the second half of the Iterators chapter</a> and <a href=advanced-iterators.html#generator-expressions>the second half of the Advanced Iterators chapter</a>.

<p>By popular request, I&#8217;ve added an appendix on <a href=special-method-names.html>Special Method Names</a>, which is kind of like <a href=http://www.python.org/doc/3.1/reference/datamodel.html#special-method-names>the Python docs &#8220;Data Model&#8221; chapter</a> but with more snark.
<p>By popular request, I&#8217;ve added an appendix on <a href=special-method-names.html>Special Method Names</a>, which is kind of like <a href=https://docs.python.org/3.6/reference/datamodel.html>the Python docs &#8220;Data Model&#8221; chapter</a> but with more snark.

<p>When I was writing &#8220;Dive Into Python&#8221;, all of the available XML libraries sucked. Then Fredrik Lundh wrote <a href=http://effbot.org/zone/element-index.htm>ElementTree</a>, which doesn&#8217;t suck at all. The Python gods wisely <a href=http://docs.python.org/3.1/library/xml.etree.elementtree.html>incorporated ElementTree into the standard library</a>, and now it forms the basis for <a href=xml.html>my new XML chapter</a>. The old ways of parsing XML are still around, but you should avoid them, because they suck!

Expand Down
12 changes: 6 additions & 6 deletions where-to-go-from-here.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ <h2 id=things-to-read>Things to Read</h2>
<p>Descriptors:

<ul>
<li><a href=http://users.rcn.com/python/download/Descriptor.htm>How-To Guide For Descriptors</a> by Raymond Hettinger
<li><a href=http://www.ibm.com/developerworks/linux/library/l-python-elegance-2.html>Charming Python: Python elegance and warts, Part 2</a> by David Mertz
<li><a href=https://docs.python.org/3/howto/descriptor.html>How-To Guide For Descriptors</a> by Raymond Hettinger
<li><a href=http://gnosis.cx/publish/programming/charming_python_b26.txt>Charming Python: Python elegance and warts, Part 2</a> by David Mertz
<li><a href='http://www.informit.com/articles/printerfriendly.aspx?p=1309289'>Python Descriptors</a> by Mark Summerfield
<li><a href=http://docs.python.org/3.1/reference/datamodel.html#invoking-descriptors>Invoking Descriptors</a> in the official Python documentation
</ul>
Expand All @@ -53,18 +53,18 @@ <h2 id=things-to-read>Things to Read</h2>
<li><a href=http://docs.python.org/3.1/library/multiprocessing.html><code>multiprocessing</code> module</a>
<li><a href=http://www.doughellmann.com/PyMOTW/multiprocessing/><code>multiprocessing</code>&nbsp;&mdash;&nbsp;Manage processes like threads</a>
<li><a href=http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/>Python threads and the Global Interpreter Lock</a> by Jesse Noller
<li><a href=http://blip.tv/file/2232410>Inside the Python <abbr>GIL</abbr> (video)</a> by David Beazley
<li><a href=https://www.youtube.com/watch?v=ph374fJqFPE>Inside the Python <abbr>GIL</abbr> (video)</a> by David Beazley
</ul>

<p>Metaclasses:

<ul>
<li><a href=http://www.ibm.com/developerworks/linux/library/l-pymeta.html>Metaclass programming in Python</a> by David Mertz and Michele Simionato
<li><a href=http://www.ibm.com/developerworks/linux/library/l-pymeta2/>Metaclass programming in Python, Part 2</a> by David Mertz and Michele Simionato
<li><a href=http://gnosis.cx/publish/programming/metaclass_1.html>Metaclass programming in Python</a> by David Mertz and Michele Simionato
<li><a href=http://gnosis.cx/publish/programming/metaclass_2.html>Metaclass programming in Python, Part 2</a> by David Mertz and Michele Simionato
<li><a href=http://www.ibm.com/developerworks/linux/library/l-pymeta3.html>Metaclass programming in Python, Part 3</a> by David Mertz and Michele Simionato
</ul>

<p>In addition, Doug Hellman&#8217;s <a href=http://www.doughellmann.com/PyMOTW/contents.html>Python Module of the Week</a> is a fantastic guide to many of the modules in the Python standard library.
<p>In addition, Doug Hellman&#8217;s <a href=https://pymotw.com/3/>Python Module of the Week</a> is a fantastic guide to many of the modules in the Python standard library.

<h2 id=code>Where To Look For Python 3-Compatible Code</h2>

Expand Down
8 changes: 4 additions & 4 deletions xml.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ <h1>XML</h1>
<h2 id=divingin>Diving In</h2>
<p class=f>Nearly all the chapters in this book revolve around a piece of sample code. But <abbr>XML</abbr> isn&#8217;t about code; it&#8217;s about data. One common use of <abbr>XML</abbr> is &#8220;syndication feeds&#8221; that list the latest articles on a blog, forum, or other frequently-updated website. Most popular blogging software can produce a feed and update it whenever new articles, discussion threads, or blog posts are published. You can follow a blog by &#8220;subscribing&#8221; to its feed, and you can follow multiple blogs with a dedicated &#8220;<a href=http://en.wikipedia.org/wiki/List_of_feed_aggregators>feed aggregator</a>&#8221; like <a href=http://www.google.com/reader/>Google Reader</a>.

<p>Here, then, is the <abbr>XML</abbr> data we&#8217;ll be working with in this chapter. It&#8217;s a feed&nbsp;&mdash;&nbsp;specifically, an <a href=http://atompub.org/rfc4287.html>Atom syndication feed</a>.
<p>Here, then, is the <abbr>XML</abbr> data we&#8217;ll be working with in this chapter. It&#8217;s a feed&nbsp;&mdash;&nbsp;specifically, an <a href=https://www.ietf.org/rfc/rfc4287>Atom syndication feed</a>.

<p class=d>[<a href=examples/feed.xml>download <code>feed.xml</code></a>]
<pre class=pp><code>&lt;?xml version='1.0' encoding='utf-8'?>
Expand Down Expand Up @@ -663,9 +663,9 @@ <h2 id=furtherreading>Further Reading</h2>
<li><a href=http://effbot.org/zone/element.htm>Elements and Element Trees</a>
<li><a href=http://effbot.org/zone/element-xpath.htm>XPath Support in ElementTree</a>
<li><a href=http://effbot.org/zone/element-iterparse.htm>The ElementTree iterparse Function</a>
<li><a href=http://codespeak.net/lxml/><code>lxml</code></a>
<li><a href=http://codespeak.net/lxml/1.3/parsing.html>Parsing <abbr>XML</abbr> and <abbr>HTML</abbr> with <code>lxml</code></a>
<li><a href=http://codespeak.net/lxml/1.3/xpathxslt.html>XPath and <abbr>XSLT</abbr> with <code>lxml</code></a>
<li><a href=http://lxml.de/><code>lxml</code></a>
<li><a href=http://lxml.de/parsing.html>Parsing <abbr>XML</abbr> and <abbr>HTML</abbr> with <code>lxml</code></a>
<li><a href=http://lxml.de/xpathxslt.html>XPath and <abbr>XSLT</abbr> with <code>lxml</code></a>
<li><a href=http://github.com/galvez/xmlwitch/tree/master>xmlwitch</a>
</ul>

Expand Down